IP数据包在数据帧中的封装:
1. 在很多物理网络中,数据帧的长度是有限制的,而且这个限制大多小于IP数据包的长度限制。
2、物理网络的这种限制(对于帧数据区)通常称为最大传输单元(MTU数据包mtu,Maximum Transfer Unit)。
3、IP协议采用分片重组的策略。该策略的原理是:
1、如果一个IP数据包不能封装在一个数据帧中,将数据包分成几个长度小于
MTU的切片,切片被封装在帧中进行传输。
2. 这些分解片被传送到目的地后,这些片被重新组装成原始的IP数据包。
3、IP数据包从MTU大的网络发送到MTU小的网络时,IP数据包往往在路由器中
分区上。
4. IP数据包的分片可能发生在IP数据包的源主机和网络路由器上,但??重组只能发生在
在目标主机上。
5、当IP数据包被分片时,每个分片都会独立成为一个IP数据包。
6、分片数据包有自己的IP头和数据区。
最大传输单元(MTU -maximum transfer unit)
– 各种物理网络技术限制了一个物理帧的大小,这个限制称为最大传输单元;不同的物理网络技术具有不同的 MTU。
– 对于一个网络,它的MTU值是由它使用的物理技术决定的,通常保持不变
.IP包分片问题:
– 在具有较小 MTU 的网络上传输较大的数据包称为 IP 数据包分段
– IP头中有3个单元与分片有关:
.ID(Identification):分片重组组的唯一标识
.MF(More Fragment, Flags field的Bit 0): MF=1表示有更多分片
.FO(Fragment Offset):本片起始位置在原包数据区的偏移量
– 报文的分片传输:在报文的传输路径上,分片操作只能发生在MTU不同的两个网络的交界处,即路由器上;进入新网络时数据包mtu,如果新网络的MTU小于原网络的MTU,可能需要分片;如果新的 MTU 值不小于原来的 MTU,则不需要分片。
– 重组与碎片化相反。所有分片重组操作都在目的主机上进行。简单流程如下:
.当目的主机收到MF=1的分片时,优先缓存
.当收到一个MF=0的分片时,计算原始IP包的长度:
– 原始数据包长度 = 此片段的偏移量
+该片段的数据长度
.使用原始数据包长度检查是否已接收到所有分片;如果是这样,请按照
将每个分片的偏移值重新组装成一个IP包,提交给上位软件;否则,它将等待直到接收到数据包的所有片段
.为了防止无限等待,在接收端设置一个重装定时器;接收时
当接收到数据包的第一个切片时启动计时器,如果指定的时间失败
平解释说:
在 Linux 和 Windows 上,Ping 数据包大小表示 IP 数据部分(有效负载)的大小(IP 数据包 = IP 标头 + 有效负载)。
在 Cisco 网络设备上,Ping 数据包大小代表整个 IP 数据包大小。