IP数据报的分片&应用到每个分片中的length, ID, fragflag,offset字段的相关例题

IP分片

在TCP/IP分层中,数据链路层用MTU(Maximum Transmission Unit,最大传输单元)来限制所能传输的数据包大小,MTU是指一次传送的数据最大长度,不包括数据链路层数据帧的帧头。当发送的IP数据报的大小超过了MTU时,IP层就需要对数据进行分片,否则数据将无法发送成功。

一个IP数据报的每个分片都具有自己的IP头部信息,它们都具有相同的标识值,但是具有不同的位偏移,且除了最后一个分片fragflag=0外,其他分片都将设置fragflag=1标志。此外,每个分片的IP头部的总长度字段将被设置为该分片的长度

例如,以太网帧的MTU是1500字节,因此它的数据部分最大为1480字节(IP头部占用20字节)。


例题

假设一个路由器收到了如下所示的三个IP分片。由于下一跳的最大传输大小小于1500字节,所以路由器希望将这些分片合并成一个较大的分片,然后在发送到下一跳时再将其重新分片为几个分片。假设下一跳的最大传输大小为1020字节,分片ID设置为20,请画出要发送到下一跳的所有分片,并标明每个分片对应的字段,包括length, ID, fragflag, and offset.

解题过程:

1)我们使用三个较小的数据报来计算一个总的数据报。
Fragflag=1表示它不是最后一个数据报,而Fragflag= 0表示它是最后一个数据报。head是20 bytes。因此,我们可以使用length、fragflag和offset来计算每个较小数据报数据段的大小:

通过计算,我们发现大数据报的总数据段为1480+1480+1020=3980 bytes。

2)我们需要根据下一跳最大传输大小为1020字节对总的数据报进行切片。计算步骤如下表所示:

head sectionlength except head sectionIDfragflagoffset
201000 bytes2010
201000 bytes2011000/8=125
201000 bytes2012000/8=250
20980 bytes2003000/8=375

所以我们可以画出所有将要被发送到下一跳的片段,结果如下所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值