IP数据报


根据 IP 数据报的格式我们就能了解 IP协议具有哪些功能。在TCP/IP标准中,各种数据格式常常以 32 位(4字节)为单位来描述。

在这里插入图片描述
我们可以看到,对一个IP头部,有20字节是固定的,然后后面是可选字段,它的大小是可变的。

首部固定部分各字段

  • 版本号:IPv4 或IPv6
  • 首部长度:因为固定部分是20字节,而这个字段单位是 32bit(4字节),因此最小值是 5 (0101),当首部长度不是 4字节 的整数倍时,必须利用最后的填充字段加以填充。
  • 区分服务:旧标准中叫服务类型,实际上一直没被使用过(666)。
  • 总长度: 头部 + 数据 长度,最大 216 - 1= 65535 字节,实际上现实中很少遇到这么大的啦。

在 IP层下面的每一种数据链路层协议都规定了一个数据帧中的数据字段的最大长度,称为最大传输单元 (Maximum Transfer Unit)。当一个IP数据报封装成帧时,一定不能超过下面数据链路层规定的 MTU的值。例如,最常用的以太网就规定其MTU的值是1500字节。若大于MTU,则要进行分片处理,这个后续再讲。
IP协议规定,互联网中所有主机和路由器,必须能接收长度不超过 576字节 的数据报。当超过576字节,询问对方主机能不能接收,不能则分片。
若有分片,“总长度”指分片后每一个分片首部长度与该分片数据长度总和。

  • 标识 :计数器,每产生一个数据报计数+1 。 目的是为了分片能根据相同的标识重新组装成原来的数据报。 不是为了记录顺序,IP是无连接服务,不存在按序接收问题。

  • 标志 : 3位,但是只有前面两位有意义
    MF位(最低位):为1则后面还有分片,为0则是分片中最后一个。
    DF位(中间位): 意思是不能分片,只有当 DF 为0时才允许分片。

  • 片偏移 :前面是不是还不知道分片组合的顺序? 片偏移就是用来记录该片在原分组中的相对位置。相对于用户数据的起点,该片从何处开始。片偏移以8个字节为偏移单位。也就是说,每个分片的长度一定是8个字节的整数倍。

例子
一个数据报总长度 3820 字节。数据部分长度为 3800字节(也就是说固定首部)。此时要求分片长度不能超过 1420字节的数据片。因为固定头部 20字节,所以数据报片的数据部分不能超过 1400 字节。因此 1400 * 3 = 4200 > 3800 ,需要三个数据报片,数据长度分别为 1400 、1400 、 1000 字节。分片的片偏移数值需要注意。
在这里插入图片描述
IP数据报首部中与分片有关的字段的数值。
在这里插入图片描述
那么问题来了,假如此时 数据报片2 在经过某个网络时还需要再进行分片,即划分为数据报片 2-1(携带数据800字节)和数据报片2-2(携带数据600字节)。那么此时这两个数据报片相关字段是什么呢?
应该分别为:
总长度 | 标识 | MF | DF | 片偏移
820 | 12345 | 1 | 0 | 175
620 | 12345 | 1 | 0 | 275

  • 生存时间 :TTL(Time To Live),表明这是数据报在网络上的寿命。由发出数据报的源点设置这个条件。 目的是防止无法交付的数据报无限制地在互联网中兜圈子(例如从R1-> R2->R3->R1),消耗网络资源。
    实现方法:“跳数限制”,每次转发数据报之前就将TTL的值 减1 ,若TTL的值减小到0,就丢弃这个数据报,不再转发。因此现在TTL的单位是跳数。
    若TTL为1,则表明该数据报只能在本局域网中传送。
    TTL最大为255,28-1 。

1、UNIX 及类 UNIX 操作系统 ICMP 回显应答的 TTL 字段值为 255
2、Compaq Tru64 5.0 ICMP 回显应答的 TTL 字段值为 64
3、微软 Windows NT/2K操作系统 ICMP 回显应答的 TTL 字段值为 128
4、微软 Windows 95 操作系统 ICMP 回显应答的 TTL 字段值为 32

  • 协议 : 指出此数据报携带的是何种协议,以便目的主机 的IP层知道应该将数据部分上交给哪个协议进行处理。
    一些常见的协议字段值如下:
    在这里插入图片描述
  • 校验和(16位):用来检验接收方收到的数据有没有被非法修改导致错误。只检验数据报的首部,不包括数据部分。
    1、发送方先将 IP 数据报首部划分16位字的序列,并将检验和字段置零。用反码运算将所有的16位字相加后, 将得到的反码写入检验和字段。
    2、 接收方收到数据后,将首部得到的所有16位字再使用反码相加一次。 将得到的和取反码, 若首部未发生变化,则此结果必为 0 。
    在这里插入图片描述
  • 源地址(32bit)
  • 目的地址(32bit)

IP数据报首部可变部分

由于书上说该部分字段增加了路由器处理数据报的开销,实际上很少用,且很多路由器都不考虑IP首部的选项字段。且新版本的IPv6将IP数据报的首部长度做成固定的了。接下来这里不说了(不会了)。

参考文章
《计算机网络》第七版 谢希仁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值