首页 > 代码库 > IP首部详解

IP首部详解

4位版本

4位首部长度

8位服务类型(TOS

16位总长度

16位标识符

3位标志

13位片偏移

8位生存时间

8位协议

16位首部检验和

32位源IP地址

32位目的IP地址

32位选项(若有)

数据


首都长度IP首部的长度,一般为20B.版本IP地址的版本,目前我们使用的都是第4版,所以这种IP也经常称为IPV4.

服务类型:服务类型包括一个3bit的优先权字段(现已被忽略),4bitTOS字段和1位未用位但必须置为04位的TOS分别代表最小延迟、最大吞吐量、最高可靠性和最小费用。对于TOS值,不同应用有不同的最佳值。具体值可参考RFC1394文档:http://www.rfc-editor.org/pdfrfc/rfc1349.txt.pdf

总长度:数据包的总长度。该字段是IP首部的必要内容,因为链路层需要填充一些数据以达到最小长度。(PS:以太网的最小帧长为46B.

标识符:唯一标识主机发送的每一份数据报。

标志:分为3个字段,依次为保留位、不分片位和更多片位。

保留位:一般被置为0

不分片位:表示该数据报是否被分片,如果被置为1,则不能对数据报进行分片,如果要对其进行分片处理,就应将其置为0

更多片位:除了最后一个分片,其他每个组成数据报的片都要讲该位置为1.

片偏移:该分片相对于原始数据报开始处位置的偏移量。

生存时间:设置数据报可以经过的最多路由器数,它指定了数据报的生存时间。生存时间由源主机指定,在数据报传输过程中,每经过一个路由器,该值就减1当该字段的值为0时,数据报就会被丢弃,并发送ICMP报文通知源主机。

协议:向IP层传输数据的协议类型,常见协议类型的值:表示

1. ICMP协议表示

2. IGMP协议

6. 表示TCP协议

7. 表示UDP协议

首部许校验和:校验接收到的IP数据报是否有差错。

IP地址:源主机的IP地址。

目的IP地址:目的主机的IP地址。

选项:该字段是数据报中的可选字段。这也是前面所说的IP首部长度一般为20B的原因。目前这个选项有如下定义:

  1. 安全和处理限制(用于军事领域)

  2. 记录路径

  3. 时间戳

  4. 宽松的源站选路

  5. 严格的源站选路

PS:这些选项很少被使用,并非所有的主机和路由器都支持这些选项。


下面看一个使用WireShark抓取到的一条信息的IP首部:


从上面的数据包中我们可以看出IP首部中的每一个字段信息,通过了解这些字段的含义,我们就可以对数据包进行准确的分析,从而解决遇到的网络问题。


参考资料:TCP/IP详解(卷1)

IP首部详解