再谈关于IP数据报分片

来源:互联网 发布:倩女手游抢红包软件 编辑:程序博客网 时间:2024/04/29 14:52

之前特别强调过具体的编号分片,但是少了关于总长度以及编号的细节,这里添加。

http://blog.csdn.net/u011240016/article/details/52799673

首先,特别强调,分片后的IP数据报,首部长度字段,总长度字段都是是变化的,因为要根据这个切分数据部分与首部。
此外,如果知道片偏移的值,那么可以确定的是当前的数据报数据部分编号即为:×8,如果数据是从0开始编号的话。这个很好理解,但是不加以识别临时去想就要稍微麻烦一些。

比如1500B的MTU,分两个片,那么当数据报首部是20B时,数据部分最大可以是1480B,1480=185×8185,第一个分片的编号是0~1479,因此下一个数据报的分片是从1480开始编号。这就是很重要的细节。

当然如果是从1开始编号也行,只是相应的编号计算就是另一回事了。

举一个例子:
如果到达的分组的片偏移是100,分组的首部中的首部长度字段值是5,总长度字段值是100,请问:数据部分第一个字节的编号是多少?能够确定数据部分最后一个字节的编号吗?

分析:如果没有前期的思考,直接面对这样的问题,其实是蛮懵的。而知道还有这样的编号计算后,就可以很快知道,这个数据报分片的数据部分长度是80B,起始编号是800,则最后一个字节的编号是879。会非常顺畅。

2 0
原创粉丝点击