TCP/IP网络编程(5)

时间:2022-06-15 00:58:38

IP数据报的分片与重组

最大传输单元:不同的网络由于链路层和介质的物理特性不同,因此在进行数据传输时,对数据帧的最大长度都有一个限制,这个限制值叫最大传输单元(Maximum Transmission Unit , MTU)。如果两台主机之间的通信要通过多个具有不同MTU值的网络,那么重要的不是两台主机所在网络的MTU值,而是两台通信主机路径上最小的MTU值,它被称作路径MTU。

网络名称 MTU(单位:Byte)
以太网 1500
IEEE 802.3/802.2 1492
FDDI 4352
ATM(信元) 48
X.25 576
点到点(低延时) 296
令牌环网(IBM 16MB/s) 17914
令牌环网(IEEE 802.5 IBM 16MB/s) 4464

 分片

当一个IP数据报要通过链路层进行传输时,如果IP数据报的长度比链路层MTU的值大,那么IP层就需要对将要发送的IP数据报进行分片,把一个IP数据报分成若干个长度小于或等于链路层的MTU的IP数据报,才能经过链路层进行传输。这种为了适合网络传输而把一个数据报分成多个数据报的过程,叫分片(fragmentation)。分片后的各个IP数据报,可能经过不同的路径到达目标主机。

IP数据报头

 

注:分片后的IP数据报,数据区所示的原IP数据报数据区的一个连续部分。头部是原IP数据报头区的复制,但与原来未分片的IP数据报头部有以下两点不同:

(1)标志。在IP数据报的头部,有一个叫标志的字段,用3位二进制数表示。

未用 不分片(DF) 片未完(MF)

不分片(Do Not Fragment , DF)标志如果被置1,则数据报在传输工程中不能被分片。

片未完(More Fragment , MF)标志被置1时,说明该数据报不是分片后的第一个数据报,最后一个数据报的该位被置0.

(2)片偏移

IP数据报被分成3片之后,各片数据区在原来IP数据区中的位置用13位片偏移表示。假设标志域返回1,则此域包括本片数据在原IP数据报数据区中的偏移量。

(3)重组

当分了片的IP数据报被传输到最终目标主机时,目标主机要对收到的各分片重新进行组装,以恢复成源主机发送时的IP数据报,这个过程叫做IP数据报的重组。

IP数据报选项

IP数据报选项主要由两大功能:一是可以用来实现对数据报传输过程的控制。二是进行网络测试。

IP选择域共分4大类:

选项类 用途 选项号 长度 功能
0类 数据报或网络控制 0 - IP数据报头中的任选项域结束
1 - 无操作
2 11Byte 安全和处理限制(用于军事领域)
3 可变 设置宽松源路由选择
7 可变 记录数据报经过的路由
9 可变 设置严格源路由选择
1类 -
2类 调试和测量   可变 记录Internet时戳
3类 未用  

IP数据报选择由3部分组成:选项码,选项长度和选项数据。选项码和选项长度各占一个字节,选项长度用于确定选项部分的长度。

选项码 选项长度 选项数据
复制 选项类 选项号    

(1)复制:占一位,用来控制一个带有选项的IP数据报被分片时,分片后对选项的处理方式。如果该位被置1,将选项复制到所有分片中;被置0,将选项仅复制到第一个分片中。

(2)选项类和选项号:选项类占两位,选项号占5位,用于确定该选项是哪类选项中的哪个选项,其实就是用于确定该项的功能。