IP分片

所谓IP分片就是把数据量过大的数据拆分成较小的数据报进行传输,这里涉及一个概念:MTU(最大传输单元),这个字段的意思就是拆分后的数据报的长度不能超过这个值,对于以太网来说,这个字段的值是1500字节。 IP分片要修改IP数据报中的标志、分片偏移和总长度的值,其他的不变。注意:分片的只是数据报中的数据,首部并不会被分片 下面我们来看看分片的时候,上述三个字段(总长度需要根据分片的数据长度确定,再加上首部长度)发生了什么变化:

标识

此字段虽然没有改变,每个分片要复制这个字段的值。这个字段与源主机的IP唯一确定一个数据报。当目的主机收到所有分片后,可以根据这个标识重装数据报,因为目的主机认为标识号相同的是属于同一个数据报的。

标志

这是一个3位的字段,第1位保留不用,第2位称为不分片位,就是说当其值是1的时候,不会对数据报进行分片。第3位是还有分片位,就是说如果其值是1就说明这个分片后面还有分片,如果是0,则说明是最后一个分片或者第一个分片(因为当只有一个分片的时候,第一个也是最后一个)

分片偏移

这个字段表示的是分片在正个数据报中的相对位置,以8字节为单位。通过这个字段,目的主机可以根据分片偏移的值从第一个分片开始组装到最后一个分片,直至形成一个完整的IP数据报。那么目的主机是如何重装分片的呢?

  1. 分片偏移为0的分片是第一个分片
  2. 把第一个分片的长度除以8得到第二个分片的偏移值,于是目的主机从接收到的分片中寻找该分片偏移值的分片,组装第二个分片
  3. 把第一个分片和第二个分片的长度除以8得到第三个分片的偏移值,于是目的主机从接收到的分片中找到该分片,这样就把前三个分片组装好了
  4. 继续以上过程,直到最后的一个分片的还有分片的值为0

选项

选项字段主要用于网络测试与排错,前面提到IP数据报首部的长度是20字节~60字节。其中20字节是固定部分,剩余的字节数是选项部分多出来的。

选项部分的格式可分为:一个字节的类型字段、一个字节的长度字段以及可变长度的值的字段。

其中选项的类型可以分为六种:无操作、选项结束、记录路由、严格的源路由、不严格的源路由、时间戳。前两种是单字节的,后四种是多字节的

校验和

绝大多数TCP/IP协议采用差错控制的方法称为校验和。校验和能够防止分组在传输期间出现损坏。下面说一下IP分组中的校验和:

首先把校验和字段置为0,然后把整个首部划分为16位的段,再将各段相加,把结果取反码插入到校验和字段中。要注意的是,IP分组中校验和只覆盖首部,不包括数据。这个字段了解即可


版权声明:本文为damys原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。