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

本文详细介绍了IP协议首部的各个字段及其作用,包括版本、首部长度、区分服务、总长度、标识符、标志、片偏移、协议、首部校验和、生存时间和TCP通信的三次握手、四次挥手及socket通信原理。
摘要由CSDN通过智能技术生成

一、简介

本文主要讲解网络包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通信原理及相关函数详细总结

  • 20
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值