软考
APP下载

IP报文格式详解

IP(Internet Protocol,互联网协议)是互联网的核心协议之一。IP协议的主要功能是在互联网中传递分组。在IP协议中,每个数据包都称为IP数据报(IP Datagram)。本文将从多个角度解析IP数据报的格式。

1. IP数据报格式

IP数据报包含两个部分:头部和数据。IP数据报头部的长度是20字节,数据部分可以根据需要,变化长度。IP数据报的格式如下:

![IP数据报的格式](https://cdn.pixabay.com/photo/2016/08/24/14/22/box-1617341_1280.png)

由上图可以看出,IP数据报头部包括以下字段:

- Version(4 bits):表示IP协议的版本,IPv4为4,IPv6为6。

- IHL(4 bits):表示IP头部的长度,以4字节为单位。如果IP头部中没有选项和填充,则IHL的值为5。

- Type of Service(8 bits):表示该数据包的优先级。

- Total Length(16 bits):表示IP数据报的总长度,以字节为单位。

- Identification(16 bits):用于唯一标识IP数据报的片段。在分片时,每个片段的Identification号码都相同。

- Flags(3 bits):包含3个标志:DF(Don't Fragment)、MF(More Fragments)和Reserved(保留位)。DF标志表示该数据包不能被分片,MF标志表示该数据包是分片数据包的一部分,而Reserved保留位是为将来预留的。

- Fragment Offset(13 bits):仅在分片操作发生时使用。它用于指定数据包片段在原始数据包的偏移量,以8字节为单位。

- Time to Live(8 bits):TTL表示IP数据报在互联网上的存活时间,单位为路由器跳数。每经过一个路由器,TTL减少1。当TTL变为0时,数据报就会被丢弃。

- Protocol(8 bits):表示数据包的上层协议类型,例如TCP、UDP、ICMP等。

- Header Checksum(16 bits):是校验和,用于检验IP头部的正确性。

- Source IP Address(32 bits):表示源IP地址。

- Destination IP Address(32 bits):表示目的IP地址。

2. IP数据报的分片

当IP数据报的长度超出了网络传送的最大数据量时,便需要进行分片。IP数据包的最大传输单元(Maximum Transmission Unit,MTU),根据介质不同而不同。以太网的MTU最大为1500字节。IP数据报的分片由发送端负责,接收端根据数据报中的标志重新组装数据。数据报的分片格式如下:

![IP数据报的分片](https://cdn.pixabay.com/photo/2020/07/07/06/34/fragmentation-5388216_1280.png)

由上图可以看出,分片除了头部格式中多了一个Fragment Offset字段之外,其他字段都和IP数据报头部相同。

3. IP数据报的重组

当接收端收到一个分片后,会根据Identification和Fragment Offset字段将多个分片重组成完整的数据报。由于IP数据报可能被分片,因此接收方必须将IP数据报的每个分片都装配到一个完整的数据报中。并且由于IP数据报的分片可能会在传输过程中出现丢失、重复到达等情况,因此接收方还需要对IP分片进行重组。IP重组的过程如下:

![IP数据报的重组](https://cdn.pixabay.com/photo/2019/08/05/15/32/sniffer-4389733_1280.jpg)

通过上图可以看出,接收方需要对分片头部中的Identification和Fragment Offset进行匹配和重组,以获得完整的数据报。

4. IP地址

IP地址是32位二进制数,IPv4用点十进制数表示,IPv6用冒号十六进制数表示。IP地址由网络号和主机号两部分组成,其中网络号由网络管理员分配,主机号由网络管理员或者自动配置产生。IP地址分为公有地址(Public Address)和私有地址(Private Address),私有地址用于局域网和组织内部网络,公有地址用于互联网上的通信。私有地址范围如下:

- A类地址:10.0.0.0 ~ 10.255.255.255

- B类地址:172.16.0.0 ~ 172.31.255.255

- C类地址:192.168.0.0 ~ 192.168.255.255

5. IP数据报的转发

在互联网中,当一个数据包从源主机发送到目的主机时,数据包可能要经过多个路由器。路由器接收到数据包后,会查看目的主机的IP地址,并使用路由选择算法将数据包发送到适当的下一个路由器,直到到达目的主机。路由器在转发数据包时,需要仔细检查IP数据包头部的相关字段,并根据它们做出决策,例如是否需要进行分片,是否禁止分片等等。路由器转发数据包的过程可大致分为下图所示的几个步骤:

![路由器转发数据包](https://cdn.pixabay.com/photo/2019/02/16/15/51/network-4003127_1280.jpg)

6.

备考资料 免费领取:网络规划设计师报考指南+考情分析+思维导图等 立即下载
真题演练 精准解析历年真题,助你高效备考! 立即做题
相关阅读
网络规划设计师题库