IP分片与重组 口链路层帧能承载的最大数 据字节数称为MTU(Max Transmission Unit) 分片: o不同类型的链路可能具有 in:一个大数据报 不同的MTU 文>0+:3个较小的数据报 口传输过程中较大的IP数据 报可以被(多次)分片: 重组 o将数据报载荷划分为若干 较小的数据块,每个数据 块封装成一个独立的数据 报传输 o仅在目的主机上进行重组 Network Layer 4-37
Network Layer 4-37 IP分片与重组 链路层帧能承载的最大数 据字节数称为MTU (Max. Transmission Unit) 不同类型的链路可能具有 不同的MTU 传输过程中较大的IP数据 报可以被(多次)分片: 将数据报载荷划分为若干 较小的数据块,每个数据 块封装成一个独立的数据 报传输 仅在目的主机上进行重组 分片: in: 一个大数据报 out: 3个较小的数据报 重组
与分片有关的字段 口分片的报头取自原始数据报,有些字段需要修改。 T与分片有关的字段 ○标识:每个分片必须携带与原始数据报相同的标识。 o标志位: MF( more fragments):最后一个分片的MF=0,其余分 片的MF=1 ·DF( dont fragment):DF=1表示不允许对数据报分片 o偏移量:指示分片中的数据在原始数据报载荷中的位
与分片有关的字段 分片的报头取自原始数据报,有些字段需要修改。 与分片有关的字段: 标识:每个分片必须携带与原始数据报相同的标识。 标志位: • MF(more fragments):最后一个分片的MF=0,其余分 片的MF=1 • DF(don’t fragment):DF=1表示不允许对数据报分片 偏移量:指示分片中的数据在原始数据报载荷中的位 置
分片的长度 口由于分片偏移量只有13比特,除最后一个分片外,其余分 片的数据长度应为8字节的整倍数。 口假设原始报头的长度为H,则分片的数据长度N应为满足 以下条件的最大整数 ○N三MTU-H ON为8的倍数
分片的长度 由于分片偏移量只有13比特,除最后一个分片外,其余分 片的数据长度应为8字节的整倍数。 假设原始报头的长度为H,则分片的数据长度 N 应为满足 以下条件的最大整数: N ≦ MTU - H N为8的倍数
分片的处理过程 口根据报头长度H和输出线路的MTU,确定分片长度N 口将数据报的载荷划分成长度为N的若干片段(最后一 个分片可能不足N字节)。 口将原始报头加到每一个分片的前面,修改报头中的以 下字段 o总长度=H+分片长度 o最后一个报头的MF位置0,其余报头的MF位置1 o偏移量=分片在原始数据报载荷中的字节序号/8 o计算头部检查和
分片的处理过程 根据报头长度H和输出线路的MTU,确定分片长度N 将数据报的载荷划分成长度为N的若干片段(最后一 个分片可能不足N字节)。 将原始报头加到每一个分片的前面,修改报头中的以 下字段: 总长度 = H + 分片长度 最后一个报头的MF位置0,其余报头的MF位置1 偏移量 = 分片在原始数据报载荷中的字节序号/8 计算头部检查和
分片的例子 口例:要将一个长度为400字节的IP包发送到MTU为1500 字节的链路上,IP报头长度为20字节。 T分片长度N=1480字节 口原始数据报的载荷(3980字节)被分成三个分片,长度 分别为1480字节、1480字节和1020字节 分片序号 总长度 ME 偏移量 500(=1480+20)1 0 21500(-14892)1185(14808 3 1040(=1020+20)0370(=185+185)
分片的例子 例:要将一个长度为4000字节的IP包发送到MTU为1500 字节的链路上,IP报头长度为20字节。 分片长度 N = 1480字节。 原始数据报的载荷(3980字节)被分成三个分片,长度 分别为1480字节、1480字节和1020字节。 分片序号 总长度 MF 偏移量 1 1500(=1480+20) 1 0 2 1500(=1480+20) 1 185(=1480/8) 3 1040(=1020+20) 0 370(=185+185)