协议分片
各层协议首部长度
| 协议层 | 首部长度 | 说明 |
|---|
| 以太网(链路层) | 14 字节(MAC 头) + 4 字节(FCS) | - 源/目的 MAC 各 6 字节,类型 2 字节(如 0x0800=IPv4)。 - FCS(帧校验序列)可选。 |
| IPv4 | 20 字节(固定) + 可选选项 | - 最小 20 字节,选项字段≤40 字节(总长≤60 字节)。 |
| IPv6 | 40 字节(固定) | - 无选项字段,扩展头部单独计算。 |
| UDP | 8 字节(固定) | - 含源/目的端口、长度、校验和字段。 |
| TCP | 20 字节(固定) + 可选选项 | - 选项字段≤40 字节(总长≤60 字节)。 |
示例
2 UDP 数据长度 9192B
2.1 假设条件
- 链路层协议:以太网(Ethernet II)。
- MTU:1500 字节(标准以太网值)。
- IP 层:IPv4(无选项字段,首部 20 字节)。
- UDP 首部:8 字节。
2.2 计算总长度
- UDP 数据报总长度 = UDP 首部 + 数据 = 8 + 9192 = 9200 字节。
- IP 层总长度 = IP 首部 + UDP 数据报 = 20 + 9200 = 9220 字节(超过 MTU,需分片)。
2.3 分片规则(IPv4)
- 每片最大载荷 = MTU - IP 首部 = 1500 - 20 = 1480 字节。
- 分片数量 = ⌈9220 / 1480⌉ = 7 片(前 6 片各 1480 字节,第 7 片剩余)。
2.4 分片细节
| 分片序号 | IP 分片偏移 | 分片长度 | 实际载荷 | MF 标志 |
|---|
| 1 | 0 | 1480 | IP 头 (20) + UDP 头 (8) + 1452 数据 | 1(更多) |
| 2 | 185 (1480/8) | 1480 | 1480 数据 | 1 |
| … | … | … | … | 1 |
| 6 | 925 (7400/8) | 1480 | 1480 数据 | 1 |
| 7 | 1110 (8880/8) | 340 | 340 数据 | 0(最后) |
2.5 链路层帧数量
- 每 IP 分片对应一个以太网帧:
- 帧总长度 = MAC 头 (14) + IP 分片 (≤1500) + FCS(4) = ≤1518 字节。
- 总帧数 = IP 分片数 = 7 帧。