IP数据报格式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的整数倍。

网络层-第三节1:IP数据报格式及分片

文章目录

一:IP数据报格式

  • 网络层最重要的便是IP协议,它定义了数据传送的基本单元——IP数据报

IP数据报格式:一个IP分组由首部数据两部分组成。首部前一部分的长度固定,共20B,是所有IP分组必须具有的。在首部固定部分的后面是一些可选字段,其长度可变,用来提供错误检测及安全等机制。IP 数据报的格式如下图所示

  • 版本:指IP的版本,目前广泛使用的版本号为4,即IPv4

  • 首部长度:占4位,以32位为单位,最大值为60B (15×4B)。 最常用的首部长度是20B,此时不使用任何选项(即可选字段)

  • 区分服务:用于指示期望获得哪种类型的服务

  • 总长度:占16位。指首部和数据之和的长度,单位为字节,因此数据报的最大长度为216-1= 65535B。以太网帧的最大传送单元(MTU)为1500B,因此当一个IP数据报封装成帧时,数据报的总长度(首部加数据) 一定不能超过下面数据链路层的MTU值

  • 标识:占16位。它是一个计数器,每产生一个数据报就加1,并赋值给标识字段。但它并不是“序号”(因为IP是无连接服务)。当一个数据报的长度超过网络的MTU时,必须分片,此时每个数据报片都复制一次标识号,以便能正确重装成原来的数据报

  • 标志:占3位。标志字段的最低位为MF,MF= 1表示后面还有分片、MF=0表示最后一个分片。标志字段中间的一位是DF,只有当DF=0时才允许分片

  • 片偏移:占13位。它指出较长的分组在分片后某片在原分组中的相对位置。片偏移以8个字节为偏移单位,即每个分片的长度一定是8B (64位)的整数倍

  • 首部校验和:占16位。IP数据报的首部校验和只校验分组的首部,而不校验数据部分

  • 生存时间(TTL):占8位。数据报在网络中可通过的路由器数的最大值,标识分组在网络中的寿命,以确保分组不会永远在网络中循环。路由器在转发分组前,先把TTL减1。若TTL被减为0,则该分组必须丢弃

  • 协议:占8位。指出此分组携带的数据使用何种协议,即分组的数据部分应交给哪个传输层协议,如TCP、UDP等(值为6表示TCP,值为17表示UDP)

  • 源地址字段:占4B,标识发送方的IP地址

  • 目的地址字段:占4B,标识接收方的IP地址

  • 可选字段:占0-40B,用于支持排错、测量及安全等措施

  • 填充:全0,用于把首部补成4B的整数倍

二:IP数据报分片

IP数据报分片:前面说过,最大传送单元(MTU)是指链路层数据报能承载的最大数据量。因此,由于IP数据报被封装在链路层数据报中,所以链路层的MTU严格限制着IP数据报的长度,而且在IP数据报的源与目的地路径上的各段链路可能使用不同的链路层协议,有不同搞得MTU。所以,当IP数据报的总长度大于链路MTU时,就需要将IP数据报中的数据分装在两个或多个较小的IP数据报中,这些较小的数据报称为

要完成IP数据报的分片与重组,需要借助IP数据报格式中的标识、标志和片偏移

  • 标识:同一数据报的分片使用同一标识
  • 标志中间为DF(DF=1表示禁止分片;DF=0表示允许分片)和最低位MF(MF=1表示后面还有分片;MF=0表示最后一片或者没有分片了)
  • 片偏移:指出较长分组分片后某片在原分组中的相对位置,以8B位单位

特别注意: 除了最后一个分片,每个分片长度一定是8B的整数倍

以上是关于IP数据报格式的主要内容,如果未能解决你的问题,请参考以下文章

IP数据报的格式

IP协议(一)——IP数据报格式及其含义,IP数据报的切分

计算机网络 王道考研2021 第四章:网络层 -- 网络层功能概述IP数据报格式(TCP/IP协议栈)IP数据报分片(MTU)

网络层-第三节1:IP数据报格式及分片

IP数据包的格式

ip数据报格式