网络包IP首部(详细)解析附图快速掌握

发布时间:2024年01月19日

一、简介

本文主要讲解网络包IP首部各部分的作用。

二、具体介绍

IP报头默认为20 byte,后面可自定义增加,具体报头长度IHL部分控制。
在这里插入图片描述

版本:占4位,指IP协议的版本。
首部长度:表示IP包首部长度,最短20字节,最长60字节。
区分服务:8位,用于指明要求网络提供的服务,目前主要包括D、T、R等三种,分别代表延迟、吞吐量和可靠性要求。即使如此,依然没有真正使用。
总长度:16位,包括了首部长度和数据长度,最长为65535个字节。
标识:16位,数据报计数器,用于区分数据报的唯一标识符。在数据报传向目的地址时,如果将数据报被分为多个片段,那么每个片段都有相同的标识符。
标志:占3位,但目前只有两位有意义。最低位记为MF。MF=1即表示后面还有“分片”的数据包。MF=0表示这已是若干数据包片中的最后一个。中间位记为DF,意思是”不能分片“。只有当DF=0时才允许分片。
片偏移:12位,表示分片后,该片在原分组中的相对位置。片偏移以8个字节为偏移单位。
生存时间:8位,一般记为TTL,用来表示数据报在网络中可通过的路由器数的最大值。若超出最大值,则丢弃数据包,并返回“目标不可达”。
协议:8位,指出此数据报使用何种协议,以便目的主机的IP层将数据部分上交给哪个处理过程。
首部检验和:16位,只检验数据报首部,不检验数据部分。
源地址:32位,发送端主机IP地址。
目的地址:32位,接收端主机IP地址。
可选字段:一般都是在一个IP数据包头部的20个字节无法表达完整信息时候,才会使用它;
填充字段:一般也是为了筹够20个字节的IP数据包的首部才会使用;

三、各部分作用详解

1、版本(Version)
占4位
0b0100:IPv4
0b0110:IPv6
2、首部长度(Header Length)
占4位,二进制乘以4才是最终长度
0b0101:20(最小值)
0b1111:60(最大值)
3、区分服务(Differentiated Services Field)
占8位
可以用于提高网络的服务质量 (Qos,Quality of Service)

4、总长度
在这里插入图片描述5、标识(ldentification)
占16位
数据包的ID,当数据包过大进行分片时,同一个数据包的所有片的标识都是一样的有一个计数器专门管理数据包的ID,每发出一个数据包,ID就加1
6、标志(Flags)
占3位
第1位 (Reserved Bit) :保留
第2位(Don’t Fragment): 1代表不允许分片,0代表允许分片第3位(More Fragments) : 1代表不是最后一片,0代表是最后一片

7、片偏移(Fragment Offset)
占13位
片偏移乘以8:字节偏移
每一片的长度一定是8的整数倍,相当于64Byte为单位

在这里插入图片描述
8、协议 (Protocol)
占8位表明所封装的数据是使用的协议
在这里插入图片描述9、首部校验和(Header Checksum)
用于检查首部是否有错误

10、生存时间 (Time To Live,TTL)
占8位
每个路由器在转发之前会将TTL减1,一旦发现TTL减为0,路由器会返回错误报告观察使用ping命令后的TTL,能够推测出对方的操作系统、中间经过了多少个路由器
在这里插入图片描述

四、其他相关链接

1、TCP报文段的详细图总结

2、TCP三次握手和四次挥手详解

3、socket通信原理及相关函数详细总结

文章来源:https://blog.csdn.net/Luckiers/article/details/135668513
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。