深入解析 IP 数据报格式:从首部长度到服务类型字段

日期: 2024-07-30 01:07:59|浏览: 575|编号: 58941

友情提醒:信息内容由网友发布,本站并不对内容真实性负责,请自鉴内容真实性。

IP数据报的格式如图1所示。正常的IP报头长20个字节,除非它包含选项字段。

分析图中的,最高位在左边,记为0bit,最低位在右边,记为31bit。

1)当前协议版本号为4,因此IP有时也称为IPv4

2)报头长度是指报头占用的32位字数,包括任何选项。由于它是一个4位字段,因此报头的最大长度为60字节。

3)服务类型(TOS)字段包括3bit优先级子字段(现已忽略)、4bit TOS子字段和1bit未使用且必须设置为0的位。4bit TOS代表:最小延迟、最大吞吐量、最高可靠性、最小成本。4bit中只能设置1位,如果4bit全部为0,则表示一般服务。

下图列出了针对不同应用的推荐TOS值。

4)总长度字段是指整个IP数据报的长度,以字节为单位。利用首部长度字段和总长度字段可以知道数据内容在IP数据报中的起始位置和长度。由于此字段长16位,所以IP数据报的最大长度可以为65535字节,但一般不会那么长。

5) 标识字段唯一标识主机发送的每个数据报。通常,每发送一条消息,其值就会加 1。

6) 3 位标志和 13 位偏移字段用于分片过程。对于发送方发送的每个 IP 数据报,标识字段包含一个唯一值。当数据报被分片时,此值被复制到每个片段中(我们现在已经看到了此字段的用途)。标志字段使用其中一位来指示“更多片段”。对于组成数据报的每个片段(最后一个片段除外),此位都必须设置为 1。片段偏移字段指的是片段相对于原始数据报开头的偏移量。此外,当数据报被分片时,每个片段的总长度将更改为片段的长度。

标识字段代表将每个数据包划分为同一个数据报,等待重新组装。

偏移字段表示数据包的长度在总IP数据报中的偏移量(获取位置)

分段:物理网络层通常会限制发送的每个数据帧的最大长度。每当 IP 层收到要发送的 IP 数据报时,它都会确定将数据发送到哪个本地接口(路由选择),并查询该接口以获取其 MTU。IP 将 MTU 与数据报长度进行比较,并在必要时对其进行分段。分段可能发生在原始发送主机上,也可能发生在中间路由器上。

当 IP 数据报被分段时,每个分段都会变成一个数据包,具有自己的 IP 报头,并且独立于其他数据包进行路由。因此,当数据报的分段到达目的地时,它们可能乱序,但 IP 报头中有足够的信息供接收方正确地重新组装分段。

IP数据报是IP层端到端传输的单位(分片前和重组后)。

数据包是在 IP 层和链路层之间传输的数据单位。数据包可以是完整的 IP 数据报,也可以是 IP 数据报的一个片段。

7)TTL(生存时间)字段设置数据报可以经过的路由器的最大数目。它指定数据报的生存期。TTL 的初始值由源主机设置(通常为 32 或 64),一旦经过处理它的路由器,其值就减 1。当此字段的值为 0 时,数据报将被丢弃,并发送 ICMP 消息以通知源主机。

8) 协议字段表示 IP 如何使用它来对数据报进行解复用。根据它,可以识别出哪个协议将数据传输到 IP。

例如:

ICMP: 1

IGMP: 2

TCP:6

UDP:17

增强型内部网关路由协议 (EIGRP):88

OSPF:89

9)报头校验和字段是根据 IP 报头计算的校验和代码。它不计算报头之后的数据。ICMP、IGMP、UDP 和 TCP 都包含涵盖报头及其各自报头中的数据的校验和代码。

10)每个IP数据报都包含源IP地址和目标IP地址。

11)

最后一个字段是选项,它是数据报中的可变长度可选信息。目前,这些选项定义如下:

• 安全和处理限制(用于军事用途;详情见RFC 1108 [Kent 1991])

• 记录路径(让每个路由器记录其 IP 地址,请参阅第 7.3 节)

• 时间戳(让每个路由器记录其 IP 地址和时间,参见第 7.4 节)

• 松散源路由(指定数据报必须经过的 IP 地址范围,参见第 8.5 节)

• 严格源路由(与松散源路由类似,但要求只允许传递指定的地址,而不允许传递其他地址)。

这些选项很少使用,并且并非所有主机和路由器都支持它们。

选项字段始终以 32 位为界,并在必要时插入零填充,以确保 IP 报头始终是 32 位的整数倍(如报头长度字段所要求的)。

提醒:请联系我时一定说明是从101箱包皮具网上看到的!