IP数据报之首部长度解析

时间:2022-02-06 21:11:50

首部长度:占4位。即从0000~~~~1111,可表示的最大十进制数字是15。

这个字段所表示的数字的单位是(32位,即4字节),即当“首部长度”表示为0001时,并不是说真正的首部的长度是1而是说,首部的长度是1(4字节),即1个4字节,就像1kg一样,那么,通过“首部长度”这个字段可以看出,真正的首部的长度应该是0~15(4字节),即0~60字节。

但是:     在TCP/IP的标准中,各种数据格式常以32位(4字节)为单位进行描述       

                 1、在首部,某些格式是必须的,所以,规定首部的固定部分是20个字节

特别的:“首部长度”为“0101”是最常用的,此时只有固定部分,没有任何选项(可变部分),“填充”是配合“可选字段”使用的

2、当我们发送IP数据报时,可能首部的长度并不是4字节的整数倍(即首部的可变部分,长度从1~40个字节不等,很多选项拼接在一起,不需要分隔符,用全0补充成4字节整数倍),那么,就需要用到“填充”,所以发送出去的报文首部的长度都是满足4字节整数倍,即数据部分永远在4字节的整数倍时开始。

3、数据报中有4位bit空位来交给“首位长度”是吧,那填满就是1111,折合十进制的15;如果不填满,写的是0001,折合十进制就是1.

填满的1111,代表了首部长度是15X4=60字节;写0001,代表了首部长度是1X4=4字节.....就是我所说的1bit的标示数代表了首部是4个字节长
填满时的1111对应首部最大长度60字节。