概述
1、IPV4头部如下图:
![](https://file2.kaopuke.com:8081/files_image/2023061521/cf7373df86c7b86e34600b7456312e22.png)
2、头部大小范围:
IP头部大小在20--60字节(20为固定长度,40个字节可选长度可有可无)
TCP头部是20字节/UDP头部是8字节
3、头部各信息及作用:
- Version--版本号:
代表IPV4报头
- Header Length--报头长度:
总的大小长度(不固定)只包括IPV4头部大小
- TOS(Type of Service)--服务类型:
8bit,用于标记报文的优先级,让网络设备对不同优先级的报文进行有差别的转发。与QOS-质量服务有关、
- Total Length--总长度:
是IPV4头部到用户数据的总的长度。总长度-报头长度=传输层跟应用层数据的大小
- Identification--标识符:
用来唯一的标识IP报文的编号,在对报文进行分片的时候,同一头部分出来的包的标识符都是一样。方便对收到报文进行重组的时候不出错。
- Flage--标识位:
3bit长度,分别有R、DF、MF三个bit;
R-进行保留,暂时没有定义用途
DF-Dot fragment(不分片位):1代表不允许对此数据包做分片,0代表可以分片
MF-More fragment:1代表我是分片,但我不是最后一个分片;0代表我是分片,并且是最后的分片
- Fragment Offset--偏移量:
用于确定分片的报文是第几个报文
第一个分片的传输层(TCP/UDP)+应用层(PDU)的数据大小/8(除8这个8是固定的)得到的数据就是第二个报文的偏移量,以此类推。第三个就是/8*2或者就是第二个分片的(传输层+应用层)/8,注意:数据大小一定是8 的整数倍,一定可以整除,因为一个字节就是8个字节(bit)
分片的报文只有第一个分片有头部,携带传输层的字段信息,其余的不携带传输层信息字段
MF=1 offset=0 第一个分片
MF=1 offset=!0 是分片报文,但不是最后一个分片
MF=0 offset=0 不是IP分片报文
MF=0 offset=!0 一定是最后一个分片
抓包分析图如下:
![](https://file2.kaopuke.com:8081/files_image/2023061521/3f29a745a13aa20d10bae54e34bd1c23.png)
- TTL值:
为了防止环路、取值范围是0--255(8bit)每一台路由器在转发一次都会对TTL进行-1(在接收的时候进行-1)的操作,直到=0时就跟这个报文进行丢弃来进行预防网路的环路
防止环路:OSPF、ISIS、BGP、RIP协议都可以防止环路,但是这些协议失效的出现故障的时候,他自生也有TTL值来进行防环
- Protocol--协议号:
取值0--255、指出数据包携带的是哪一种协议
- Header Checksum--校验和:
只负责校验IP头部,如果校验失败的话,IP报文就会被丢弃。校验成功才会进一步操作
Source IP address--源IP地址
Destination IP address--目的IP地址
Options:可变,选项字段
Padding:可变,填充字段,全填0
4、IP分片:
是在转发层的硬件设备上面进行分片,对硬件设备的性能有所影响
IP分片是网络上传输IP报文的一种技术手段。IP协议在传输数据包时,将数据报文分为若干分片进行传输,并在目标系统中进行重组。这一过程称为分片(fragmentation)
为什么要进行分片:
以太网技术支持帧大小最大为1518字节。通常以太网接口默认的链路MTU通常被设置1500字节。帧就是-以太网头部/尾部、IP头部、TCP头部、用户数据的总和就是一个帧。
每一种物理网络都会规定链路层数据帧的最大长度,称为链路层MTU(Maximum Transmission Unit)--一个帧最大的大小。IP协议在传输数据包时,若IP数据报加上数据帧头部后长度大于链路MTU,则就会将数据报文分为若干个分片进行传输,并在目标系统中进行重组。也就是说传输的IP报文大小(MTU)大于最大的1500字节,就需要分片之后进行传输。
所有网络层的数据都必须封装在链路层以帧为单位进行转发
最后
以上就是时尚冰棍为你收集整理的网络层IPV4报文格式详解1、IPV4头部如下图:2、头部大小范围:3、头部各信息及作用:4、IP分片:的全部内容,希望文章能够帮你解决网络层IPV4报文格式详解1、IPV4头部如下图:2、头部大小范围:3、头部各信息及作用:4、IP分片:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复