【Garry逆袭校招】之 计算机网络 知识点学习--Android地基系列(二)

转载请注明: http://write.blog.csdn.net/postedit/44019791

嗯,没什么好抱怨,再接再厉自己打气~,没学不会,可以理解,但是放任盲点!绝对不能容忍,被自己气到(打气太多了),哈哈哈,自己气自己,我真可爱~~,不说废话。(推荐搜索问题直接Ctrl +F)

以下内容为各路大牛提供,我只是个大牛的搬运工~~,做一个汇总,方便大家查找。(当然Garry我还需要看书学习,推荐书籍:计算机网络(谢希仁)),习得的过程不是一下子就完成的,Garry也没有完全吃透这些知识,只是作为分享,和自己翻看使用,一定要多看书啊啊~!

1.电路交换与分组交换的区别?优劣对比。

答:区别:电路交换意味着在两个站点(端设备)之间建立一个专用的物理连接,网络必须为该连接的电路保留交换容量和信道容量。因此,该信道具有独占性,在断开连接之前即使不使用,也无法用于其它连接。分组交换将数据分为长度可变的分组,并将分组选择相同或者不同的路径发送到目的站。网络中各节点间的链路可以供属于不同虚电路或者发往不同目的地址的分组分时共享。

优略对比:这里我们扩展成:多个方面比较电路交换、报文交换和分组交换的主要优缺点

答案:(1)电路交换  优点:通话中两用户始终占用端到端的通信资源。缺点:线路传输效率很低用户占用的通信线路大部分时间是空闲的,资源未被使用而消费(2)分组交换
 优点:较高的交换速率数据传输效率高  可靠性非常高效,灵活和迅速。  缺点:造成时延,开销

(3)报文交换  优点:用户可随时发送报文,可靠性,容易发现代码转换和速率匹配,同时发送多个目的地址,优先报文优先转换,通信线路利用率高。缺点:时延较长。

2. OSI七层协议,自己要能画出来,要能理解各层作用

这是十分常考的题型,要了解OSI七层模型,介绍链接OSI七层模型基础知识及各层常见应用,需要我们花时间研究透而非仅仅只是知道。(Garry:呵!)

概括来讲就是:

第1层物理层—原始比特流的传输(比特:bit)

第2层数据链路层—在此层将数据分帧,并处理流控制。本层指定拓扑结构并提供硬件寻址      (帧:Frame)

第3层网络层—本层通过寻址来建立两个节点之间的连接,它包括通过互连网络来路由和中继数据       (数据包:Package)

第4层传输层—常规数据递送-面向连接或无连接。包括全双工或半双工、 流控制和错误恢复服务       (数据段:Segment)

第5层会话层—在两个节点之间建立端连接。此服务包括建立连接是以全双工还是以半双工的方式进行设置,尽管可以在层4中处理双工方式

第6层表示层—格式化数据,以便为应用程序提供通用接口。这可以包括加密服务

第7层应用层—直接对应用程序提供服务,应用程序可以变化,但要包括电子消息传输

各层常见应用(从高层到低层排):

应用层 ………………计算机:应用程序,如FTP,SMTP,HTTP

表示层 ………………计算机:编码方式,图像编解码、URL字段传输编码

会话层 ………………计算机:建立会话,SESSION认证、断点续传

传输层 ………………计算机:进程和端口

网络层……………… 网络:路由器,防火墙、多层交换机

数据链路层 …………网络:网卡,网桥,交换机

物理层……………… 网络:中继器,集线器、网线、HUB

各层应用总结:第一层到第三层,属于低层,与移动数据有关,都是在网络;第四到第七,高层,包含应用程序数据;

3. TCP/IP有哪几层,能画出图,知道所有层数的作用,会列举各层主要的协议名称。

嗯装13,表喷我,下文介绍(感觉要死掉。。)

TCP/IP协议被组织成四个概念层,其中有三层对应于ISO参考模型中的相应层。ICP/IP协议族并不包含物理层和数据链路层,因此它不能独立完成整个计算机网络系统的功能,必须与许多其他的协议协同工作。

表1-1是 TCP/IP四层模型和OSI七层模型对应表。我们把OSI七层网络模型和Linux TCP/IP四层概念模型对应,然后将各种网络协议归类。

表1-1  TCP/IP四层模型和OSI七层模型对应表


OSI七层网络模型


Linux TCP/IP四层概念模型


对应网络协议


应用层(Application)


应用层


TFTP, FTP, NFS, WAIS


表示层(Presentation)


Telnet, Rlogin, SNMP, Gopher


会话层(Session)


SMTP, DNS


传输层(Transport)


传输层


TCP, UDP


网络层(Network)


网际层


IP, ICMP, ARP, RARP, AKP, UUCP


数据链路层(Data Link)


网络接口


FDDI, Ethernet, Arpanet, PDN, SLIP, PPP


物理层(Physical)


IEEE 802.1A, IEEE 802.2到IEEE 802.11

概括:TCP/IP共四层:1.网络接口2.网际层3.传输层4.应用层

各层作用,字数过多附上链接:我是传送门~

4.计算机网络体系结构?

答:一句话-----计算机网络是分层结构和协议的集合。

5. 硬件(MAC)地址的概念及作用。

概念:MAC地址就是在媒体接入层上使用的地址,也叫物理地址、硬件地址或链路地址,其被固化在适配器的ROM中。可见MAC地址实际上就是适配器地址或适配器标识符。当某台计算机使用某块适配器后,适配器上的标识符就成为该计算机的MAC地址。MAC地址长度为6字节(48比特),由IEEE的注册管理结构RA进行管理分配。

作用:MAC地址是计算机的唯一标识,在数据链路层中,交换机通过识别MAC地址进行数据包的传输。

6.数据链路层互联设备

答:(1)网桥:互连两个采用不同数据链路层协议,不同传输介质与不同传输速率的网络,网桥互连的网络在数据链路层以上采用相同的协议。

(2)交换机在数据链路层上实现互连的存储转发设备。交换机按每个包中的MAC地址相对简单地决策信息转发,交换机对应硬件设备,网桥对应软件。

7. 以太网MAC帧格式?

答:


目的地址(6字节)


源地址(6字节)


类型(2字节)


数据(46——1500字节)


FCS(4字节)

8. 虚拟局域网VLAN?

答:(1)VLAN只是局域网提供给用户的一种服务,而并不是一种新的局域网络。VLAN限制了接收广播消息的工作站数,使得网络不会因传播过多的广播信息(即广播风暴)而引起性能恶化。

(2)划分VLAN的方法:基于端口;基于MAC地址;基于IP地址。

(3)VLAN的帧格式


目的地址(6字节)


源地址(6字节)


VLAN标记(表明该站是属于哪个VLAN的)


类型(2字节)


数据(46——1500字节)


FCS(4字节)

9. 交换和路由的区别是什么?VLAN有什么特点?

答:交换是指转发和过滤帧,是交换机的工作,它在OSI参考模型的第二层,而路由是指网络线路当中非直连的链路,它是路由器的工作,在OSI参考模型的第三层。交换和路由的区别很多,首先,交换是不需要IP地址的,而路由需要,因为IP就是第三层的协议,第二层需要的是MAC地址,再有,第二层的技术和第三层的不一样,第二层可以做VLAN,端口捆绑等,第三层可以做NAT,ACL,QoS等。

VLAN是虚拟局域网的英文缩写,它是一个纯二层的技术,它的特点有三:控制广播,安全,灵活性和可扩张性。

10. RARP是什么?

答:逆地址解析协议,作用是完成硬件地址到IP地址的映射,主要用于无盘工作站,因为给无盘工作站配置的IP地址不能保存。工作流程:在网络中配置一台RARP服务器,里面保存着IP地址和MAC地址的映射关系,当无盘工作站启动后,就封装一个RARP数据包,里面有其MAC地址,然后广播到网络上去,当服务器收到请求包后,就查找对应的MAC地址的IP地址装入响应报文中发回给请求者。因为需要广播请求报文,因此RARP只能用于具有广播能力的网络.

11. ARP协议的用途 及算法、在哪一层上会使用arp ?

ARP协议的用途:解决同一个局域网内主机或路由器的IP地址和MAC地址的映射问题。

算法:在主机的ARP高速缓存中应存放一个从IP地址到MAC地址的映射表,并且这个映射表还经常动态更新(新增或超时删除)。

在网络层会使用ARP。

12. CRC冗余校验算法,反码和检验算法。

基本原理:

已知一个数据块含有K位的数据块,发送器产生一个包含有n位的序列,这个序列称为帧检验序列(FCS),把FCS加到数据块的后面组成一个包含有K+n的发送帧T,使得T能够用一个已知数P整除,接收器把接收到的帧除以P,没有余数,则认为没有出错。

基本算法:模2算法,多项式。

贴上更详细大牛blog:我是牛1   我是牛2

13. 如何实现透明传输。

透明传输的基本概念:

①数据透明传输就是用户不受协议中的任何限制,可随机的传输任意比特编码的信息

②用户可以完全不必知道协议中所规定的结束段的比特编码或者其他的控制字符,因而不受限制的进行传输。

数据透明传输技术:

①转义字符填充法

②零比特填充法

③采用特殊的信号与编码法:IEEE802.3(由于使用CSMA/CD协议,没有结束字符段;IEEE802.4(令牌总线,在起始定界符SD/结束定界符ED这两个字段被使用模拟编码,而不是0和1);IEEE802.5(令牌环,违例的曼切斯特码)

④确定长度法,固定数据段长度法:各控制字段的长度固定,数据段长度也是固定的,那么在帧格式中就不必设结束符,也不必设数据长度字段。

14. 路由表做什么用的。

答:目的地址(Destination):用来标识IP包的目的地址或目的网络。网络掩码(Mask)、输出接口(Interface,有些路由具有多个接口)、下一跳IP地址(Nexthop)。

15. 分组转发算法。

(1)首先从IP数据报首部提取出目的主机的IP地址D,得出其所在的网络N。

(2)若N就是与此路由器直接相连的某个网络,则进行直接交付,不需要经过其它的路由器

进行转发,直接把数据报交付给目的主机。否则就执行(3)

(3)若路由表中有目的地址为D的特定主机路由,则把数据报传给路由表中所指明的下一跳路由器。否则执行(4)

(4)若路由表中有到达网络N的路由,则把数据报传给路由表中所指明的下一跳路由器。否则执行(5)

(5)若路由表中有一个默认路由,则把数据报传给默认路由所指明的默认路由器。否则执行(6)

(6)报告转发分组出错。

以上参考自:《计算机网络 第五版》谢希仁 p128

16. IP报文的格式,格式的各个字段的含义要理解。

http://blog.csdn.net/xieyutian1990/article/details/24179181

(博主就帮你们到这了,其他自理~)

17. TCP与UDP的概念,相互的区别及优劣。

18. TCP 报文的格式,字段的意义。

19.TCP通过哪些措施,保证传输可靠?

20. 三次握手,四次断开过程。

21.阻塞方式和非阻塞方式,阻塞connect与非阻塞connect。(比较难,有兴趣可以了解)

22. HTTP基本格式。(java程序员必须掌握)

时间: 2024-11-05 01:01:38

【Garry逆袭校招】之 计算机网络 知识点学习--Android地基系列(二)的相关文章

单链表 知识点学习--Android地基系列(一)

嗯,看别人整理过,自己再做的笔记,题目都是常见的必考题目,嘻嘻嘻,单链 表的基础知识我就不写了,太多人写了. 看前注意!!!!!!!涉及C知识较多,C知识我以后再考虑是否写一篇附加文 可以辅助以后的Android必备地基系列博文 struct ListNode { int data; ListNode * Next; }; 1.求链表中结点个数 思路:若链表为空,返回0:循环判断链表下一个指针是否为空,no,长度++(初始化用unsigned int  length = 0),直到下一个为nul

C#程序员学习Android开发系列之ListView

上篇博客解决了Android客户端通过WebService与服务器端程序进行交互的问题,这篇博客重点关注两个问题,一个是Android应用程序如何与本机文件型数据库SQLite进行交互,另一问题则是如何在ListView中按照我们想要的界面效果进行展示.限于篇幅这篇重点讲ListView,下篇博客重点阐述SQLite. ListView是一个常用的数据显示控件,假设我们要做一个简单的界面,如图所示. 这张图是我直接从Android平板电脑(Android 4.2.2)上面截图下来的,就是一个普通

C#程序员学习Android开发系列之学习路线图

通过前面的3篇博客已经简单的介绍了Android开发的过程并写了一个简单的demo,了解了Android开发的环境以及一些背景知识. 接下来这篇博客不打算继续学习Android开发的细节,先停一下,明确一下接下来的学习目标以及学习路线. 一.对Android开发的基本认识 1.Android原生开发是基于Java语言的,由于我比较擅长C#,所以对Java语言本身不太熟练,需要加强Java语言基础的练习,这一块我会穿插到具体的知识点练习当中,并且在必要的地方给出与C#语言的对比(其实基本上在语法层

C#程序员学习Android开发系列之SQLite

上篇博客提到过SQLite,它是嵌入式数据库,由于其轻巧但功能强大,被广泛的用于嵌入式设备当中.后来在智能手机.平板流行之后,它作为文件型数据库,几乎成为了智能设备单机数据库的必选,可以随着安卓app打包到apk文件当中. SQLite的官方网站是http://www.sqlite.org/,可以任意下载,上面也有详尽的文档可以参考,这篇博客重点关注SQLite在Android开发中如何使用. 在Android开发中,推荐建立一个类继承自SQLiteOpenHelper来创建数据库操作类,比如:

C#程序员学习Android开发系列之Android项目的目录结构

今天开始正式学习Android开发的种种细节,首先从最基本的概念和操作学起. 首先看一下Android项目的目录结构. 这是我随便建立的一个test项目,我们重点关注一下几个方面的内容: 1.src目录:存放java源代码的目录,里面建立一个包,包里面有4个java源文件(分别都继承自Activity).由于java要求比较严格,因此要求类名与文件名一致. gen(Generated Java Files)目录:自动产生Java源文件的目录,是由工具自动生成的,一般不需要自己修改.里面主要有一个

C#程序员学习Android开发系列之搭建开发环境

接触Android好久了,记得09年刚在中国大陆有点苗头的时候,我就知道了google有个Android,它是智能机操作系统.后来在Android出1.5版本之后,我第一时间下载了eclipse开发工具.adt以及android sdk,体验了一把android开发,记得当时搭建开发环境相当麻烦.由于android开发是基于Java的,所以除了上述的工具之外,首先需要安装jdk,记得当时流行的是jdk1.5(后来是1.6,现在是1.7,未来是1.8),安装好之后需要设置环境变量. 时隔4年之后,

C#程序员学习Android开发系列之调用WebService

我在学习Android开发过程中遇到的第一个疑问就是Android客户端是怎么跟服务器数据库进行交互的呢?这个问题是我当初初次接触Android时所困扰我的一个很大的问题,直到几年前的一天,我突然想到WebService是否可以呢?让WebService充当服务器端的角色,完成与服务器数据库操作相关的事情,而Android客户端只要按照WebService方法参数的要求去调用就行了.在当时我对这个解决方案的实现还没模糊,我想这个问题也是初学Android的朋友肯定会想到的问题.那么现在就让我们动

原 Java学习之Xml系列二:xml按条件查询、xml递归遍历所有元素和属性

xml中加入了几条,为了方便查询时作为示例. 话不多说见代码注释: DTD文件:SwordTypeDefinition.dtd <?xml version="1.0" encoding="UTF-8"?> <!ELEMENT SwordLibrary (Sword*)> <!ELEMENT Sword (SwordName,Price,Attack)> <!ELEMENT SwordName (#PCDATA)> &l

C#程序员学习Android开发系列之按钮事件的4种写法

经过前两篇blog的铺垫,我们今天热身一下,做个简单的例子. 目录结构还是引用上篇blog的截图. 具体实现代码: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 方法1.