ip数据报里面的首部长度问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ip数据报里面的首部长度问题相关的知识,希望对你有一定的参考价值。

ip数据报首部中有一个首部长度字段,4
位长,可表示的最大十进制数字是15。因此首部长度的最大值是15个4字节长的字,即60字节。
典型的ip数据报不使用首部中的选项,因此典型的ip数据报首部长度是20字节。
参考技术A 首先确定是IPv4还是IPv6,他们的协议格式是不一样的。
例如:IPv4的数据包第4到第7bit代表首部长度。这个长度定义是以4字节为单位的。例如:首部长是十进制5,那么首部长就是5*4
=
20字节。没有首部长度是8字节的,最少是20字节。

IP数据报格式

参考技术A 首先介绍一下IP数据包的首部

版本字段表示使用的协议版本:IPv4/IPv6;

首部长度:单位是4B,最小为5。比如确定“首部长度”是8,那么首部的大小就是8*4B=32B。因为固定部分是20B,所以首部长度字段至少为5;

区分服务:指示期望获得哪种类型的服务。比如数据报需要优先发送,强调这个数据报的优先级,就在区分服务这儿规定。

总长度:首部+数据,单位是1B。有16位,最大可以表示 B。但是实际中永远不会用到这么大,有MTU的限制。

标识、标志、片偏移:用在IP数据报分片时候,见本文靠后面那块。

生存时间:TTL。每经过一个路由器就 -1 ,等到为0时候就丢弃。

协议字段:数据部分使用的协议,有以下几种

首部检验和:只检验首部,就是求和。因为TTL每次都变化。

源IP地址和目的IP地址:32位

可选字段:0~40B。用来支持排错、测量以及安全等措施。

填充字段:全0.用来补全首部使得是4B的整数倍。

最大传送单元:链路层数据帧可封装数据的上限,以太网的MTU是1500字节。

如果所传送的数据报长度超过某链路的MTU值,就需要分片。

标识:同一数据报的分片采用同一标识。

标志:只有2位有意义     x _  _

中间位DF ( Don't Fragment ) :

        DF=1,禁止分片

        DF=0,允许分片

最低位MF ( More Fragment )  :

        MF=1,后面“还有分片”

        MF=0,代表最后一片/没分片

片偏移:指出较长分组分片后,某片在原分组中的相对位置。 以8B为单位 。由此可以得知除了最后一个分片,每个分片长度一定是8B的整数倍。

以上是关于ip数据报里面的首部长度问题的主要内容,如果未能解决你的问题,请参考以下文章

IP数据报首部校验和算法

IP数据报的格式

IP数据报格式

IP数据报 首部长度的60字节是怎么来的,下面的看不懂

计算机网络-----IP数据报格式

IP数据包的格式