参考如下两幅图,简要回答与TCP/IP协议相关的下列问题 Flags主要包括MF(More Fragment)比特和DF(Don’t Fragment)比特 IP报头 路由器收到一个长度1500字节的IP数据报,需要转发到下一跳网络的MTU为1024

admin2017-11-09  44

问题 参考如下两幅图,简要回答与TCP/IP协议相关的下列问题

Flags主要包括MF(More Fragment)比特和DF(Don’t Fragment)比特
IP报头

路由器收到一个长度1500字节的IP数据报,需要转发到下一跳网络的MTU为1024字节。
(1)如果该数据报DF=1,路由器怎么处理这个数据报?
(2)若DF=0,该数据报被分为两个IP报文分片,写出这两个IP报文分片的长度、MF标志位以及Offset字段的值(要求第1个分片尽量大)。
(3)这两个IP报文分片在何处被重新组装回拆分之前的IP数据报的状态?
(4)IP报头中的Identification字段有什么用处?

选项

答案(1)丢弃该数据包;向数据源发送ICMP报文报错 (2)报文分片一(长=1 020,MF=1,Offlset=0) 报文分片二(长=500,MF=0,Offset=125) (3)目的地主机 (4)在分片重组时,只有相同ID的报文片才组装在一起

解析 IP数据报在互联网上传输的时候,它可能要跨越多个不同种类的异构网络。在IP层下面有各种各样的异构网络,即各种各样的数据链路层,每一种数据链路层都有其自己的特定帧格式,每一种帧格式所能容纳的数据量是不一样的。
每种网络都规定了一个帧最多能够容纳的数据量,这一限制称为最大传输单元(Maximum Transmission Unit,MTU)。一个IP数据报的长度只有小于或等于二个网络的MTU,才能在这个网络中进行传输。作为一种高层网络数据,IP数据报最终也需要封装成帧进行传输。当一个IP数据报封装成链路层的帧时,此数据报的总长度(即报头区加上数据部分)一定不能超过下层的数据链路层的MTU值,否则无法传输。
IP协议在传输数据包时,将数据报文分为若干分片进行传输,并在目标系统中进行重组,这一过程称为分片(Fragmentation)。IP分片发生在要传输的IP报文大小超过最大传输单位MTU的情况。比如说,在以太网(Ethernet)环境中可传输最大IP报文大小(MTU)为1500字节。如果要传输的报文大小超过1500字节,则需要分片之后进行传输。由此可以看出,IP分片在网络环境中是经常发生的事件。
IP具有一种重要功能,就是当分组过大而不适合在所选硬件接口上发送时,能够对分组进行分片。过大的分组被分成两个或多个大小适合在所选定网络上发送的IP分片。而在去目的主机的路途中,分片还可能被中间的路由器继续分片。在目的主机上,一个IP数据报可能放在一个IP分组内或者多个IP分组内。因为各个分片可能以不同的路径到达目的主机,所以只有目的主机才有机会看到所有分片。因此,也只有目的主机才能把所有分片重装成一个完整的数据报,提交给合适的运输层协议。
IP报头内有三个字段实现分片和重装:标示符、标志和分片偏移量。
Identification:发送端发送的IP数据包标识字段都是一个唯一值,该值在分片时被复制到每个片中。
R:保留未用。
DF:Don’t Fragment,“不分片”位,如果将这一比特置1,IP层将不对数据报进行分片。
MF:More Fragrnent,“更多的片”,除了最后一片外,其他每个组成数据报的片都要把该比特置1。
Fragment Offset:该片偏移原始数据包开始处的位置。偏移的字节数是该值乘以8。
另外,当数据报被分片后,每个片的总长度值要改为该片的长度值
如果收到DF为1的数据报,表示该分组禁止分片,但由于下一跳路由的MTU是1 024字节,小于1.500宇节,所以路由器将丢弃该分组,并通过ICMP向后报错。
若DF为0,可以分片,将分为两个分片,要求第一分片尽可能大,可以取第一片长度为1020字节,其中报头20字节,DF为0,MF为1,表示有后续分片;Offset为0,表示是第一个分片。第二片的长度为500字节,DF为0,MF为0,表示没有后续分片,Offset为125,因为一个偏移量单位是8字节,第一分片共1000字节,所以第二分片相对第一分片的偏移量是125。
转载请注明原文地址:https://kaotiyun.com/show/5sIS777K
0

最新回复(0)