5-3 IPv4

5-3-1 IPv4报文格式

IPv4报文包括头部字段和数据字段两部分

  • IPv4头部:一般的,基本IP头部为20个字节,也可用扩展,最大为60字节。

  • IP数据(任意)字段:IPv4 报文中的有总长度字段为 16 位,最大值为 65,535 字节,数据字段可变长度,最大为65515字节(65515+20=65535)

image-20250224202544025

字段名称 位数 作用说明
版本(Version) 4 用于识别 IP 协议的版本,对于 IPv4,值为 4,接收设备据此确定如何处理数据包。
首部长度(IHL) 4 以 32 位为单位表示 IP 数据包首部的长度,最小值 5(20 字节),最大值 15(60 字节),单位为4字节。[4比特最多表示015,若单位为1个字节,则最多表示15字节,为方便使用,设计时将其单位定义为4个字节,取值范围为515,即表示的头部长度为20~60字节,且合规IP头长度一定是4的倍数个字节,不足时填充至4的倍数个字节]
服务类型(ToS)/区分服务 8 用于区分服务(Differentiated Services),对数据包进行优先级等标记,提供不同服务质量。
总长度(Total Length) 16 表示整个 IP 数据报的长度,包括首部和数据部分。表示 IP 数据报的总长度,也就是首部和数据载荷的长度总和,最大取值为十进制的65535(即216-1),以字节为单位。[可以计算出IP数据载荷最大长度为65535 - 20 = 65515字节]
标识(Identification) 16 唯一标识主机发送的每份数据报,用于分片重组。当一个IP数据报需要分片时,每个分片的标识符保持不变,而片偏移和标志位(如MF位)则用于指示分片的顺序和完整性
标志(Flags) 3 第 0 位保留设为 0;
第 1 位(DF):1 禁止分片,0 允许分片;
第 2 位(MF(More Fragment)):1 表示还有分片,0 表示最后一个分片。
片偏移(Fragment Offset) 13 表示分片在原始数据报中的位置,以 8 字节为单位。指出分片数据报的数据载荷部分偏移其在原数据报的位置有多远。片偏移以 8 个字节为单位,因此其值一定是8的倍数。
生存时间(TTL) 8 初始值由发送端确定,每经过一个路由器减 1,减为 0 时数据包被丢弃。用于设置一个数据包可经过的路由器数量的上限,每经过一台路由器减1。一般地,最小TTL值为0,最大TTL值为255,防止IP报文在网络中无限发送乃至循环,一般终端默认TTL值为255、128、64(一般地,一台终端访问互联网上任何一台设备,不会超过30跳)
协议(Protocol) 8 标识上层协议,如 TCP、UDP、ICMP 等。包含一个数字,标识数据报有效载荷部分的数据类型。常见值:1(ICMP)、6(TCP)、17 (UDP)。该字段占 8 个比特,用来指明 IP 数据报的数据部分是何种协议数据单元。常用的一些协议和相应的协议字段值如下表所示。
image-20230909230000759
首部校验和(Header Checksum) 16 仅计算IPv4头部,不检查数据有效载荷部分的正确性。当TTL减一时,头部校验和必须重新计算,用于检测 IP 数据报首部在传输过程中是否出现差错。
源地址(Source Address) 32 表示数据报的发送方 IP 地址,即32位的IPv4地址。
目的地址(Destination Address) 32 表示数据报的接收方 IP 地址,即32位的IPv4地址。
选项(Options) 可变,最多 40 字节 提供额外功能,如时间戳、宽松源路由选择、严格源路由选择等。该字段的长度从 1 个字节到 40 个字节不等,用来支持排错、测量以及安全措施。可选字段增加了 IP 数据报的功能,但这同时也使得IP数据报的首部长度成为可变的,这就增加了每一个路由器处理IP数据报的开销。实际上,可选字段很少被使用
填充(Padding) 可变 确保 IP 首部的长度是 32 位的整数倍。该字段在上图中没有显示出来,用来确保首部长度为 4 字节的整数倍,使用全 0 进行填充。首部长度字段是以 4 字节为单位的,换句话说, IP 数据报的首部长度一定是 4 字节的整数倍。由于首部中的可选字段的长度从 1 个字节到 40 个字节不等,那么当 20 字节的固定部分加上 1- 40 个字节长度不等的可变部分,会造成手部长度不是 4 字节的整数倍时,就用取值为全 0 的填充字段填充相应的字节,以确保 IP 数据报的首部长度是 4 字节的整数倍

例题

例题1

image-20250224205056557

解析:首部长度字段值不是首部长度值,首部长度占4位,单位为4字节(32bit),可表示最小值是5,最大值为15

  • IHL最小为5,即IP报头的最小长度为5×32bit=160bit=20字节。
  • IHL最大为15,即IP报头的最大长度为15×32bit=480bit=60字节。
例题2

image-20250224205112792

例题3

image-20250224205128745

解析:IPv4报文最大长度为65535字节,由报头中的总长度字段定义,该字段表示整个 IP 数据报的长度,包括首部和数据部分。表示 IP 数据报的总长度,也就是首部和数据载荷的长度总和,最大取值为十进制的65535(即216-1),以字节为单位。在以太网上传输时,由于以太网的MTU为1500字节,需要对其进行分片传输

例题4

image-20250224205146617

例题5

image-20250224205441311

解析:头部长度(IHL):该字段占 4 个比特,用来表示 IP 数据报首部的长度。最小值是5,最大值为15,单位为4字节。[4比特最多表示015,若单位为1个字节,则最多表示15字节,为方便使用,设计时将其单位定义为4个字节,实际使用时,头部长度字段取值范围为515,即表示的头部长度为20~60字节]

例题6

image-20250423221316662

解析:TTL为0,丢弃该报文,并向源地址报错,tracert命令即基于这个原理

站内搜索

没有找到内容!