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数据报格式的主要内容,如果未能解决你的问题,请参考以下文章
计算机网络 王道考研2021 第四章:网络层 -- 网络层功能概述IP数据报格式(TCP/IP协议栈)IP数据报分片(MTU)