IP协议报文内容解析

报文内容示意图

在这里插入图片描述

报文内容详解

1. version(版本号)

标识采用的 IP 协议的版本号,一般的值为 0100(IPv4),0110(IPv6)

2. IHL(Internet Header Length IP表头的长度)

这一部分占用 4bit ,标识整个IP表头的长度,4bit最大的范围为 0~15,单位是4个字节(32bit或者可以直观的看作是一层),所以IP报头最大长度为 15 * 4 = 60字节

因为IP报头的固定部分(必须项)占用了 20 字节的大小,所以可选项与填充项可以占用0~40个字节。 

3. Type of Service / Differentiated Services (区分服务)

占8位,用来获得更好的服务。这个字段在旧标准中叫做服务类型,用于标识报文的优先级,但实际上一直没有被使用过。
1998年IETF把这个字段改名为区分服务DS(Differentiated Services)。只有在使用区分服务时,这个字段才起作用。一般用于支持QoS中差分服务模型,实现网络流量优化。

4. Total Length(总长度)

标识这个 IP 封包的总容量,包括表头与内容 (Data) 部分。

占用16bit 的位置,范围是(0~65535),因为其单位是 8bit 。所以最大可达 65535 个字节。

5. Identification (标识)

数据包的一个ID编号,用于识别标识数据包。占用16bit 的位置。特别用于数据包分段技术。

网络中转发的IP报文的长度可以不同,但如果报文长度超过了数据链路所支持的最大长度,则报文就需要分割成若干个小的片段才能在链路上传输。

将报文分割成多个片段的过程叫做分片,主机将数据报分片后,在发送前,会给每一个分片数据报一个ID值,放在16位的标识符字段中。

6. Flag (分段标志)

分段标志字段在IP报头中占 3bit,

  • 第1位,称作保留位,置0;
  • 第2位,称作分段位,有两个不同的取值:该位置0,表示可以分片;该位置1,表示不能分片;
  • 第3位,更多分段位,同样有两个取值:该位置0,表示这是数据流中的最后一个分段,该位置1,表示数据流未完,后续还有其他分段;

当目的主机接收到一个IP数据报时,会首先查看该数据报的标识符,并且检查标志位的第3位是置0或置1,以确定是否还有更多的分段。如果还有后续报文,接收主机则将接收到的报文放在缓存直到接收完所有具有相同标识符的数据报,然后再进行重组。

7. Fragment Offset(分段偏移)

用于标识分片报文相对于原始报文起始位置的偏移量。占用13bit位置,单位是8bit.

因为各个IP分片数据报在发送到目的主机时可能是无序的,所以就需要“偏移量”字段来指明“该分片在原数据报中的位置顺序”。

接收端靠此来组装还原 IP 包。

8. Time To Live(生存周期)

该位置被占用8bit位置(0~255)。是初始数据包的时候会设置的一个值.

发送方在初始发送时设定某个值(建议为64,、128或255),每台路由器再转发时都将其减一,当字段达到0时,该数据报被丢弃,并使用一个ICMP消息通知发送方。

该字段可以说是设置一个“数据报可经过的路由器数量”的上限,也被称为“跳数”。

解决的问题:报文在网段间转发时,如果网络数设备上的路由规划不合理,就可能出现环路,导致报文在网络中无线循环,无法到达目的端。环路发生后,所有发往这个目的地的报文都会被循环转发,网络将发生拥塞。因此使用生存周期之后,转发一定次数之后数据报就会被丢弃,避免拥塞。      

9. Protocol(协议号)

该字段用于标识网络层之上使用了哪种封装协议。 占用 8bit , 常用的协议号有:TCP=6,UDP=17,ICMP=1

10. Header Checksum(报头校验和)

该字段用于检查报头的正确性,防止IP报头数据错乱。占用16bit位置。

checksum这种校验非常弱,规则都是透明的,所以不要相信这个校验和可以帮你防止恶意篡改,它仅仅用来应对网络传输中的干扰信号。

首先将该字段设置为0。然后对报头(整个报头是一个16位的“序列”)计算16位二进制反码和。该值被存储在首部校验和字段中。当接收方接收到数据报后,也对其首部进行校验计算,如果结果与“首部校验和”的值不同,就丢弃收到的数据报。

11. Source Address(源IP)

源IP地址,指的是公网地址 32bit   4字节

12. Destination Adress(目的IP)

目标IP地址,指的也是公网地址  32bit  4字节

13. Options (其他参数)

这个是额外的功能,提供包括安全处理机制、路由纪录、时间戳、严格与宽松之来源路由等。

14. Padding(补齐项目)

Options和Padding一共有32位,由于Options字段不是固定的,所以需要Padding 字段来加以补齐

posted @ 2021-08-18 09:48  两口猪头肉OVO  阅读(1608)  评论(0编辑  收藏  举报