计算机网络重点知识
一、电路交换、报文交换、分组交换的比较
1、电路交换
公共电话网(PSTN网)和移动网(包括GSM和CDMA网)采用的都是电路交换技术,它的基本特点是采用面向连接的方式,在双方进行通信之前,需要为通信双方分配一条具有固定宽带的通信电路,通信双方在通信过程中一直占用所分配的资源,直到通信结束,并且在电路的建立和释放过程中都需要利用相关的信令协议。这种方式的优点是在通信过程中可以保证为用户提供足够的带宽,并且实时性强,时延小,交换设备成本低,但同时带来的缺点是信道利用率低,一旦电路被建立不管通信双方是否处于通话状态分配的电路一直被占用。
2、报文交换
报文交换是以报文为数据交换的单位,报文携带有目标地址、源地址等信息,在交换结点采用存储转发的传输方式;由于报文长度差异很大,长报文可能导致很大的时延;为了满足各种长度报文的需要并且达到高效的目的,节点需要分配不同大小的缓冲区,否则就有可能造成数据传送的失败,这样对每个节点来说缓冲区的分配也比较困难。另外一个缺点是出错时,整个报文都将重传。
3、分组交换
分组交换仍采用存储转发传输方式,但将一个长报文先分割为若干个较短的分组,然后把这些分组(携带源、目的地址和编号信息)逐个地发送出去。采用分组交换技术,在通信之前不需要建立连接,每个节点首先将前一节点送来的分组收下并保存在缓冲区中,然后根据分组头部中的地址信息选择适当的链路将其发送至下一个节点,这样在通信过程中可以根据用户的要求和网络的能力来动态分配带宽。分组交换比电路交换的信道利用率高,但时延较大。分组转发的带来的问题:排队时延以及增加头部带来的开销。
总之,若要传送的数据量很大,且其传送时间远大于呼叫时间,则采用电路交换较为合适;当端到端的通路有很多段的链路组成时,采用分组交换传送数据较为合适。从提高整个网络的信道利用率上看,报文交换和分组交换优于电路交换,其中分组交换比报文交换的时延小,尤其适合于计算机之间的突发式的数据通信。
二、接口、协议和服务
接口:下层向上层提供的原语操作
协议:同一层之间,通信双方进行信息交换必须遵守的规则
服务:不同层之间交换信息必须遵守的规则
三、计算机网络系统结构
四、网络各层的作用
l 物理层:通过传输介质发送和接收二进制比特流。
属于物理层定义的典型规范如RJ-45等。
l 数据链路层:数据的封装成帧、数据的透明传输、数据的差错检测。
数据链路层协议的代表包括:PPP、帧中继等。
l 网络层:负责对子网间的数据包进行路由选择,为分组交换网上的不同主机提供通信服务。
网络层协议的代表包括:IP、ICMP、IGMP等。
l 运输层:负责向两个主机中进程之间的通信提供服务。运输层还要处理端到端的差错检测(与数据链路层不同)、拥塞控制、流量控制等问题。
运输层协议的代表包括:TCP、UDP等。
l 应用层:为操作系统或网络应用程序提供访问网络服务的接口。
应用层协议的代表包括:FTP、HTTP、SNMP等。
五、数据如何在网络各层之间传输
物理层,数据链路层,网络层属于OSI模型的低三层,负责创建网络通信连接的链路,传输层,会话层,表示层和应用层是OSI模型的高四层,具体负责端到端的数据通信。当然,并不是所有通信都是要经过OSI的全部七层,如物理接口之间的转接,只需要物理层中进行即可;而路由器与路由器之间的连接则只需网络层以下的三层。
六、在网络各层之间,数据是以什么单位进行传输的
在物理层数据的传输单位称为比特;在数据链路层数据的传输单元称为帧; 在网络层数据的传输单元称为数据包;在传输层数据的传输单元称为报文段。
七、奈氏准则和香农公式的主要区别是什么
奈氏准则:在任何信道中,码元传输的速率是有上限的,传输速率超过此上限,就会出现严重的码间串扰的问题,使接收端对码元的判决(即识别)成为不可能。
香农公式:求出了信息传输速率的极限。
八、同步通信与异步通信的区别是什么
同步通信:通信双方必须先建立同步,即双方的时钟要调整到同一个频率。收发双方不停地发送和接收连续的同步比特流。
异步通信:异步通信在发送字符时,所发送的字符之间的时间间隔可以是任意的。当然,接收端必须时刻做好接收的准备。发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。异步通信的好处是通信设备简单、便宜,但传输效率较低(因为开始位和停止位的开销所占比例较大)。
异步通信也可以是以帧作为发送的单位,接收端必须随时做好接收帧的准备。这时,帧的首部必须设有一些特殊的比特组合,使得接收端能够找出一帧的开始,这也称为帧定界。帧定界还包含确定帧的结束位置,这有两种方法:一种是在帧的尾部设有某种特殊的比特组合来标志帧的结束;或者在帧首部中设有帧长度的字段。需要注意的是,在异步发送帧时,并不是说发送端对帧中的每一个字符都必须加上开始位和停止位后再发送出去,而是说,发送端可以在任意时间发送一个帧,而帧与帧之间的时间间隔也可以是任意的。发送端不需要在发送一帧之前和接收端进行协调(不需要先进行比特同步)。
九、位同步与帧同步的区别
位同步:使接收端接收的每一位信息都与发送端保持同步。
帧同步:识别一个帧的起始和结束位置。
十、数据链路层协议的三个基本问题
1、封转成帧
就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。
2、透明传输
不管什么字符都可以放在帧中传输过去,这样的传输就是透明传输。解决透明传输的问题方法是:发送端的数据链路层在数据中出现控制字符"SOH"或"EOH"的前面插入一个转义字符"ESC",而在接收端的数据链路层在将数据送往网络层之前删除这个插入的转义字符。
3、差错检测
采用的是循环冗余检验(CRC:Cyclic Redundancy Check)的差错检查技术,如果仅仅使用CRC,则只能做到对帧的无差错接收,即接收的帧在传输的过程中没有产生差错,并没有要求数据链路层向网络层提供“可靠传输”的服务。
十一、适配器(网卡)的作用
1、适配器的一个重要功能就是要进行数据串行传输和并行传输的转换。
2、由于网络上的数据率和计算机总线上的数据率并不相同,因此在适配器中必须装有对数据进行缓存的存储芯片。
3、适配器还要实现以太网协议。
十二、CSMA/CD(载波监听多点接入/碰撞检测)协议的要点
l 多点接入:说明这是总线型网络
l 载波监听:就是“发送前先监听”,即每一个站点在发送数据之前先要检测一下总线上是否有其他的站点在发送数据,如果有,则暂时不要发送数据,要等待信道变为空闲时再发送。
l 碰撞检测:就是“边发送边监听”,即适配器边发送数据边检测信道上的信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。
十三、为什么以太网有一个最小帧长和最大帧长
设置最小帧长是为了区分开正常和因发生碰撞而异常中止的短帧。
设置最大帧长是为了保证个站都能公平竞争接入到以太网。因为如果某个站发送特长的数据帧,则其他的站就必须等待很长的时间才能发送数据。
十四、ARP的工作原理
1、首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。
2、当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有,就向“本网段”的所有主机发送ARP数据包,该数据包包括的内容有:源主机IP地址,源主机MAC地址,目的主机的IP地址。
3、当本网络的所有主机收到该ARP数据包时,首先检查数据包中的目的主机IP 地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。
4、源主机收到ARP响应包后,将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应数据包,表示ARP 查询失败。
广播发送ARP请求,单播发送ARP响应。
十五、假定在一个局域网中计算机A发送ARP请求分组,希望找出计算机B的硬件地址。这时局域网上的所有计算机都能收到这个广播发送的ARP请求分组。试问这时由哪一个计算机使用ARP响应分组将计算机B的硬件地址告诉计算机A
这要区分两种情况。
如果计算机B和计算机A都连接在同一个局域网上,那么就是计算机B发送ARP响应分组。
如果计算机B和计算机A不是连接在同一个局域网上,那么就必须由一个连接在本局域网上的路由器来转发ARP请求分组。这时,该路由器向计算机A发送ARP回答分组,给出自己的硬件地址。
十六、IP协议的定义,主要有什么作用?TCP与UDP呢?
IP协议(Internet Protocol):网际协议,主要提供网际互联的作用。
TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,在收发数据前,必须和对方建立连接。UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议,它是面向非连接的协议,不与对方建立连接,而是直接就把数据包发送过去。
十七、链路层广播和IP广播有何区别
链路层广播是用数据链路层协议(第二层)在一个以太网上实现的对该局域网上的所有主机的MAC帧进行广播。
IP广播则是用IP协议通过因特网实现的对一个网络(即目的网络)上的所有主机的IP数据报广播。
十八、ICMP(Internet Control Message Protocol)网际控制报文协议
ICMP 报文有两种:差错报告报文和询问报文。
十九、当运行PING 127.0.0.1时,这个IP数据报将发送给谁
127.0.0.1是环回地址。主机将测试用的IP数据报发送给本主机的ICMP(而不是发送到因特网上)以便进行环回测试。
二十、RIP协议的特点?RIP的优缺点?RIP用什么来传送?
1、特点
l 仅和相邻路由器交换信息
l 路由器交换的信息是当前本路由器所知道的全部信息,即自己的路由表
l 按固定的时间间隔交换路由信息
2、优缺点
优点:实现简单、开销较小
缺点:限制了网络的规模(因为它能使用的最大距离为15),坏消息传播得慢。
3、RIP用UDP来传送
二十一、OSPF协议的特点?OSPF用什么来传送?
1、特点
l 向本自治系统中所有路由器发送信息(而RIP是发送给邻居)
l 发送的信息就是与本路由器相邻的所有路由器的链路状态(RIP发送的是整个路由表)
l 只有当链路状态发生变化时,路由器才向所有路由器用洪泛法发送此信息(而RIP是30秒更新一次)
2、OSPF直接用IP数据报传送
二十二、交换机和路由器各自的实现原理是什么?有什么区别?
实现原理:
路由器通过路由决定数据的转发。转发策略称为路由选择。
而交换机则是一种基于MAC地址识别,能完成封转转发数据包功能的网络设备。交换机可以“学习”MAC地址,并把其存放在内部地址表中,通过在数据帧的起始者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址。
区别:
l 二者的工作层次不同
交换机工作在数据链路层,而路由器工作在网络层。
l 二者转发所依据的对象不同
交换机是利用MAC地址确定转发数据的目的地址,而路由器则是利用IP地址来确定数据转发的地址。
二十三、如果一个路由器要同时连接在一个以太网和一个ATM网络上,需要有什么样的硬件加到路由器上
一个以太网适配器(网卡)和一个ATM适配器(网卡)。
二十四、TCP最主要的特点
l TCP是面向连接的运输层协议
l 每一条TCP连接只能有两个端点(一对一)
l TCP提供可靠交付的服务
l TCP提供全双工通信
l 面向字节流
二十五、TCP可靠传输、流量控制和拥塞控制的实现
可靠传输:
l 对于收到的请求,给出确认响应
l 超时重传
流量控制:
所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。利用滑动窗口实现流量控制。
拥塞控制:
所谓拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。
l 慢开始
慢开始的“慢”并不是指增长速率的慢,而是指在TCP开始发送报文段时先设置拥塞窗口为1。
l 拥塞避免
使拥塞窗口按线性规律增长。
l 快重传
发送方只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段,而不必继续等待为其设置的重传计时器到期。
l 快恢复(与快重传配合使用)
当发送方连续收到三个重复确认时,就执行“乘法减小”算法,把慢开始门限减半。这是为了预防网络发生拥塞。请注意,接下来不执行慢开始算法。
由于发送方现在认为网络很可能没有发生拥塞(如果网路发生了严重的拥塞,就不会一连有好几个报文段连续达到接收方,就不会导致接收方连续发送重复确认),因此与慢开始不同之处是现在不执行慢开始算法(即拥塞窗口现在不设置为1),而是把它设置为慢开始门限减半后的数值,然后开始执行拥塞避免算法(“加法增大”),使拥塞窗口缓慢地线性增大。
二十六、TCP运输连接管理
1、TCP的连接建立(用三次握手建立TCP连接)
为什么A还要发送一次确认呢?
这主要是为了防止已失效的连接请求报文段突然又传送到了B,因而产生错误。假定出现一种异常情况,即A发出的第一个连接请求报文段并没有丢失,而是在某些网络结点长时间滞留了,以致延误到连接释放以后的某个时间才到达B。本来这是一个早已失效的报文段。但B收到此失效的连续请求报文段后,就误认为是A又发出新的连接请求。于是就向A发出确认报文段,同意建立连接。假定不采用三次握手,那么只要B发出确认,新的连接就建立了。
由于现在A并没有发出建立连接的请求,因此不会理睬B的确认,也不会向B发送数据。但B却认为新的运输连接已经建立了,并一直等待A发来数据。B的许多资源就这样白白浪费了。
采用三次握手的办法可以防止上述现象的发生。例如在刚才的情况下,A不会向B的确认发出确认。B由于收不到确认,就知道A并没有要求建立连接。
2、TCP的连接释放(四次挥手)
l A的应用进程先向其TCP发出连接释放报文段,并停止再发送数据,主动关闭TCP连接。A把连接释放报文段首部的FIN置1,其序号seq=u,它等于前面已传送过的数据的最后一个字节的序号加1。这时A进入FIN-WAIT-1(终止等待1)状态,等待B的确认。
l B收到连接释放报文段后即发出确认,确认号是ack=u+1,而这个报文段自己的序号是v,等于B前面已传送过的数据的最后一个字节的序号加1。然后B就进入了CLOSE-WAIT(关闭等待)状态。因而从A到B这个方向的连接释放了,这时的TCP连接处于半关闭状态,即A已经没有数据要发送了,但B若发送数据,A仍要接收。
l A收到来自B的确认后,就进入FIN-WAIT-2(终止等待2)状态,等待B发出的连接释放报文段。
l 若B已经没有要向A发送的数据,其应用程序就通知TCP释放连接。这时B发出的连接释放该报文段必须使FIN=1。现假定B的序号为w(在半关闭状态B可能又发送了一些数据)。B还必须重复上次已发送过的确认号ack=u+1。这时B就进入LAST_ACK(最后确认)状态,等待A的确认。
l A在收到B的连接释放该报文段后,必须对此发出确认。在确认报文段中把ACK置1,确认号ack=w+1,而自己的序号是seq=u+1。然后进入到TIME-WAIT(时间等待)状态。请注意,现在TCP连接还没有释放掉。必须经过时间等待计时器(TIME-WAIT timer)设置的时间2MSL后,A才进入到CLOSED状态。
为什么A在TIME-WAIT状态必须等待2MSL的时间呢?
l 为了保证A发送的最后一个ACK报文段能够到达B
l 防止已失效的连接请求报文段出现在本连接中。
二十七、DNS(Domain Name System)域名系统
1、DNS的工作原理
DNS提供的服务是用来将域名转换为IP地址的工作。它的基本工作原理如下图所示:
2、DNS的工作过程
l 在浏览器中输入域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。
l 如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。
l 如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。
l 如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。
l 如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到主机。
l 如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用的是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是迭代查询。
计算机网络的其他知识点
1、数据在网络中传输,传输层及以上层的信息是不变的,变动只是二层帧,在局域网上用以太网帧头封装,在广域网用PPP,ATM,FR等格式的帧头封装,
这些都是由网络传输线路上的交换机实现,对上层数据没有影响的。
2、集线器工作在物理层,不进行碰撞检测。使用集线器的以太网在逻辑上仍是一个总线网,用集线器组成更大的局域网都在一个碰撞域中。
3、在数据链路层扩展以太网要使用网桥,网桥工作在数据链路层。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的MAC地址,然
后再确定将该帧转发到哪一个接口,或者是把它丢弃。
4、网桥在转发帧时,不改变帧的源地址和目的地址,路由器会改变,但是在点对点之类的封转格式下是没有MAC地址的。
5、以太网交换机以全双工方式工作在数据链路层。
6、在因特网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发。专用地址是:
10.0.0.0到10.255.255.255
172.16.0.0到172.31.255.255
192.168.0.0到192.168.255.255
7、MAC层的FCS检验范围是整个MAC帧,IP数据报的检验和只检验IP数据报的首部,UDP(TCP)的检验和是把首部和数据部分一起都检验。
8、UDP发送的报文长度是应用程序给出的,TCP则需要根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节。
9、无论在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(其根据就是没有按时收到确认),就要把慢开始门限设置为出现拥塞时的发送方
窗口值的一半(但不能小于2)。然后把拥塞窗口重新设置为1,执行慢开始算法。