Appearance
题目
某公司网络如题 47 图所示。IP 地址空间 192.168.1.0/24 被均分给销售部和技术部两个子网,并已分别为部分主机和路由器接口分配了 IP 地址,销售部子网的 MTU = 1500 B,技术部子网的 MTU = 800 B。
请回答下列问题。
(1) 销售部子网的广播地址是什么?技术部子网的子网地址是什么?若每个主机仅分配一个 IP 地址,则技术部子网还可以连接多少台主机?
(2) 假设主机 192.168.1.1 向主机 192.168.1.208 发送一个总长度为 1500 B 的 IP 分组,IP 分组的头部长度为 20 B,路由器在通过接口 F1 转发该 IP 分组时进行了分片。若分片时尽可能分为最大片,则一个最大 IP 分片封装数据的字节数是多少?至少需要分为几个分片?每个分片的片偏移量是多少?
解析
(1) 子网划分 + 广播地址 + 可分配主机数
先把 /24 均分成两个 /25:
把 192.168.1.0/24 的最后 8 位中最高位作为子网号、剩余 7 位作为主机号:
| 部门 | 子网号位 | 网络地址 | 子网掩码 | 可分配主机范围 | 广播地址 |
|---|---|---|---|---|---|
| 销售部 | 0 | 192.168.1.0/25 | 255.255.255.128 | 192.168.1.1 ~ 192.168.1.126 | 192.168.1.127 |
| 技术部 | 1 | 192.168.1.128/25 | 255.255.255.128 | 192.168.1.129 ~ 192.168.1.254 | 192.168.1.255 |
怎么口算"主机号全 1"地址:/25 的主机号 7 位,全 1 =
01111111= 127。所以销售部(基址 .0)的广播 = .0 + 127 = .127;技术部(基址 .128)的广播 = .128 + 127 = .255。
技术部还能分配的主机数:
- 技术部 /25 总可分配主机数 = (去掉网络号 .128 和广播 .255)
- 已分配给主机的:192.168.1.129 ~ 192.168.1.208,共 个
- 已分配给 F1 路由器接口:1 个(192.168.1.254)
- 还能连接的主机数 = 台
路由器接口也占地址:题面"已分配地址 192.168.1.129~208"是给主机的,路由器 F1 接口 192.168.1.254 是单独占用的,必须减掉。
(2) IP 分片计算
关键约束:
- 分片在哪发生:IP 分组从 1500B MTU 的销售部进入,经路由器 F1 转发到 800B MTU 的技术部 → F1 出口处必须分片。
- 分片大小限制:每个分片自带 IP 头 20 B,所以一个分片在技术部链路上的总长度 ≤ MTU = 800 B → 分片载荷 ≤ 780 B。
- 片偏移以 8 B 为单位:除了最后一片,前面所有分片的载荷必须是 8 的整数倍(这是 IP 协议头里 13 位"片偏移"字段的硬性规定,单位就是 8 B)。
算最大单片载荷:
算需要几片:
原 IP 分组总长 1500 B,去掉 20 B IP 头后剩 1480 B 数据载荷需要分片承担。
算每片的片偏移:
| 分片 | 载荷长度 | 片偏移(字节) | 片偏移(× 8 B 单位写入头部) | MF(更多分片标志) |
|---|---|---|---|---|
| 第 1 片 | 776 B | 0 | 0 | 1 |
| 第 2 片 | 1480 − 776 = 704 B | 776 | 97(= 776 / 8) | 0 |
片偏移字段是 13 位:IP 头的"Fragment Offset"字段只占 13 位,最大表示 ,所以以 8 B 为单位(每单位实际表示 8 B 数据),可表示 0 ~ 65528 B 的偏移——刚好够覆盖 IP 总长字段(16 位 = 65535 B)的范围。这是为什么"片偏移以 8 B 为单位"的硬约定来源。
第 2 片不必满载:MF=0 标志最后一片,最后一片的载荷不要求 8 字节对齐——本题第 2 片 704 B 不是 8 的倍数也合法。
如果把 IP 头算上:第 1 片在链路上的总长 = 776 + 20 = 796 B(< 800 B ✓);第 2 片 = 704 + 20 = 724 B(< 800 B ✓)。所以分片合法。