|
知识路径: > 网络技术 > TCP/IP 协议 > TCP/IP 协议 > 网络层协议(IP、ICMP、ARP) > IP协议 >
|
被考次数:6次
被考频率:中频率
总体答错率:35%  
知识难度系数:
|
由 软考在线 用户真实做题大数据统计生成
|
考试要求:掌握
相关知识点:4个
|
|
|
|
|
|
如果使用了动态路由选择算法,或者允许在数据报旅行期间改变路由决定,则有可能造成回路。最坏的情况是数据报在网际中无休止地巡回,不能到达目的地并浪费大量的通信资源。
|
|
|
解决这个问题的简单办法是规定数据报有一定的生存期,生存期的长短以它经过的路由器的多少计数。每经过一个路由器,计数器加1,计数器超过一定的计数值,数据报就被丢弃。
|
|
|
当然也可以用一个全局的计时时钟记录数据报的生存期。在这种方案下,生成数据报的时间被记录在报头中,每个路由器查看这个记录,决定是继续转发还是丢弃它。
|
|
|
|
每个网络可能规定了不同的最大分组长度。当分组在互联网中传送时可能要进入一个最大分组长度较小的网络,这时需要对它进行分段,这又引出了新的问题:在哪里对它进行重装配?
|
|
|
一种办法是在目的地进行装配。但这样只会把数据报越分越小,即使后续子网允许较大的分组通过,但由于途中的短报文无法装配,从而使效率下降。
|
|
|
另一种办法是允许中间的路由器进行组装,这种方法也有缺点。首先是路由器必须提供重装配缓冲区,并且要设法避免重装配死锁;其次是由一个数据报分出的小段都必须经过同一个出口路由器,才能再行组装,这就排除了使用动态路由选择算法的可能性。
|
|
|
关于分段和重装配问题的讨论还在继续,已经提出了各种各样的方案。下面介绍在DOD和ISO IP协议中使用的方法,这个方法有效地解决了以上提出的部分问题。
|
|
|
IP协议使用了4个字段处理分段和重装配问题。一个是报文ID字段,它唯一地标识了某个站某个协议层发出的数据。在DOD(美国国防部)的IP协议中,ID字段由源站和目标站地址、产生数据的协议层的标识符以及该协议层提供的顺序号组成。第二个字段是数
据长度,即字节数。第三个字段是偏置值,即分段在原来数据报中的位置,以8字节(64位)的倍数计数。最后是M标志,表示是否为最后一个分段。
|
|
|
当一个站发出数据报时对长度字段的赋值等于整个数据字段的长度,偏置值为0,M标志置False(用0表示)。如果一个IP模块要对该报文分段,则按以下步骤进行。
|
|
|
(1)对数据块的分段必须在64位的边界上划分,因而除最后一段外,其他段长都是64位的整数倍。
|
|
|
(2)对得到的每一分段都加上原来数据报的IP头,组成短报文。
|
|
|
|
(4)第一个短报文的偏置值置为0,其他短报文的偏置值为它前边所有报文长度之和(字节数)除以8。
|
|
|
(5)最后一个报文的M标志置为0(False),其他报文的M标志置为1(True)。
|
|
|
|
|
|
重装配的IP模块必须有足够大的缓冲区。整个重装配序列以偏置值为0的分段开始,以M标志为0的分段结束,全部由同一ID的报文组成。
|
|
|
数据报服务中可能发生有一个或多个分段不能到达重装配点的情况。为此,采用两种对策应付这种意外。一种是在重装配点设置一个本地时钟,当第一个分段到达时把时钟置为重装配周期值,然后递减,如果在时钟值减到零时还没等齐所有的分段,则放弃重装配。另一种对策与前面提到的数据报生存期有关,目标站的重装配功能在等待的过程中继续计算已到达的分段的生存期,一旦超过生存期,就放弃重装配,丢弃已到达的分段。显然,这种计算生存期的办法必须有全局时钟的支持。
|
|
|
|
无连接的网络操作不保证数据报的成功递交,当路由器丢弃一个数据报时,要尽可能地向源点返回一些信息。源点的IP实体可以根据收到的出错信息改变发送策略或者把情况报告上层协议。丢弃数据报的原因可能是超过生存期、网络拥挤、FCS校验出错等。在最后一种情况下可能无法返回出错信息,因为源地址字段已不可辨认了。
|
|
|
路由器或接收站可以采用某种流控机制来限制发送速率。由于这里谈的是无连接的数据报服务,因此可采用的流控机制是很有限的。最好的办法也许是向其他站或路由器发送专门的流控分组,使其改变发送速率。
|
|
|