IP 数据包在数据帧中的封装:
一、在很多物理网络中,都对数据帧的长度有限制,而且这个限制大都比IP 数据包长度的限制小。
二、物理网络的这个限制(对帧数据区)通常都称为最大传输单元(MTU,Maximum Transfer Unit)。
三、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 字段的Bit 0):MF=1 表示还有更多分片
.FO(Fragment Offset):本片起始位置在原始分组数据区中的偏移量
–分组的分片传输:在分组的传输通路上,分片操作只能出现在两个MTU 不同的网络的交界处,也就是出现在路由器上;进入一个新网络时,若新网络的MTU 小于原有网络的MTU,则可能需要进行分片;若新MTU 值不小于原有MTU 就不必进行分片。
– 片重组(reassembly)是分片的逆过程。所有片重组操作都在目的主机上进行。其简单过程如下:
. 当目的主机收到MF=1 的分片时,首先将其进行缓存
. 当收到MF=0 的分片时,计算原始IP 分组的长度:
– 原始分组长= 本分片的偏移
+ 本分片的数据长度
. 利用原始分组长度检查是否收到全部分片;若是,则按照
各片的偏移值重新组装成IP 分组,提交给高层软件;否则将等待,直到收到该分组的全部分片
. 为了防止无限等待,在接收端设置重组定时器;当接收到
分组的第一片时启动该定时器,如果在指定的时间内未能
Ping解释:
在Liunx和Windows上,Ping 数据包大小代表IP数据部分(有效载荷)大小(IP数据包=IP包头+有效数据)。
在Cisco网络设备上,Ping 数据包大小代表整个IP数据包大小。