注:以下习题参考 计算机网络(第八版)谢希仁 编著
计算机网络第4章 网络层(下) 习题与解答
4-51 已知一个 CIDR 地址块为 200.56.168.0/21。
(1) 试用二进制形式表示这个地址块。
(2) 这个 CIDR 地址块包括多少个 C 类地址块?
答案:
(1) 二进制形式表示
-
200.56.168.0/21 表示前 21 位为网络前缀
-
200 = 11001000
-
56 = 00111000
-
168 = 10101000
-
0 = 00000000
前 21 位为:11001000 00111000 10101(168 的二进制前 5 位是 10101,后 3 位为主机位)
完整二进制形式:
11001000 00111000 10101000 00000000
(其中前 21 位是网络前缀,后 11 位是主机位)
(2) 包含的 C 类地址块数量
-
C 类地址的掩码是 /24
-
/21 包含的 /24 块数量 = 2^(24-21) = 2^3 = 8 个
答案:8 个 C 类地址块
4-52 建议的 IPv6 协议没有首部检验和。这样做的优缺点是什么?
答案:
优点:
-
提高转发效率:路由器不需要每跳重新计算检验和,减少处理时间
-
简化路由器设计:硬件实现更简单,功耗更低
-
适应高速网络:在吉比特/太比特速率下,检验和计算成为瓶颈
-
上层已有校验:TCP/UDP 已有端到端检验和,链路层也有 CRC,IP 层检验和冗余
缺点:
-
首部错误无法及时发现:若首部在传输中出错,可能被错误转发或交付到错误主机
-
依赖下层可靠性:在不可靠链路上,错误可能传递到上层
结论:IPv6 设计假设下层(链路层)已经提供足够的差错检测(如以太网 CRC),因此移除首部检验和以换取更高效率。
4-53 在 IPv4 首部中有一个“协议”字段,但在 IPv6 的固定首部中却没有。这是为什么?
答案:
原因:IPv6 使用扩展首部机制来替代固定首部中的可选字段。
-
IPv4 的“协议”字段用于指示上层协议(TCP、UDP、ICMP 等)
-
IPv6 固定首部中没有此字段,而是通过下一个首部(Next Header) 字段实现
-
“下一个首部”字段可以指向:
-
上层协议(如 TCP、UDP)
-
扩展首部(如路由首部、分片首部、认证首部等)
-
优点:
-
灵活性:可以链式连接多个扩展首部
-
减少固定首部长度:只有基本 40 字节,可选功能都放到扩展首部
-
便于扩展:将来新增功能只需定义新扩展首部类型
对比:
| IPv4 | IPv6 | |
|---|---|---|
| 字段名 | 协议 | 下一个首部 |
| 位置 | 固定首部 | 固定首部或扩展首部 |
| 功能 | 指示上层协议 | 指示下一个首部(扩展首部或上层协议) |
4-54 当使用 IPv6 时,协议 ARP 是否需要改变?如果需要改变,那么应当进行概念性的改变还是技术性的改变?
答案:
需要改变。
ARP 的功能在 IPv6 中由 ICMPv6 的邻居发现协议(NDP) 替代,这是一种概念性的改变:
-
不是简单的协议升级,而是用新协议替代
-
ARP 使用广播(二层),IPv6 使用多播和单播(ICMPv6)
-
NDP 不仅完成地址解析,还集成路由器发现、前缀发现、重定向等功能
4-55 IPv6 只允许在源点进行分片。这样做有什么好处?
答案:
-
减轻路由器负担:中间路由器不再需要处理分片和重组
-
提高转发效率:路由器处理更简单,吞吐量更大
-
避免“分片-重组-再分片”问题:减少多次分片导致的性能损失
-
简化协议设计:不再需要首部中的分片相关字段(除源点外)
-
支持路径 MTU 发现:源主机提前发现最小 MTU,避免发送过大分组
4-56 设每帧 1 微秒就分配出 100 万个 IPv6 地址。试计算大约要用多少年才能将 IPv6 地址空间全部用光。可以和宇宙的年龄(大约有 100 亿年)进行比较。
答案:
-
IPv6 地址总数:2^128 ≈ 3.4 × 10^38
-
分配速率:10^6 个/微秒 = 10^6 × 10^6 = 10^12 个/秒
每年分配地址数:
10^12 × 365 × 24 × 3600 = 3.1536 × 10^19 个/年
需要年数:
3.4 × 10^38 / 3.1536 × 10^19 ≈ 1.08 × 10^19 年
宇宙年龄:约 10^10 年 = 100 亿年
结论:IPv6 全部用完需要约 10^19 年,远大于宇宙年龄(100 亿年),因此实际上不可能被用完。
4-57 试把以下的 IPv6 地址用零压缩方法写成简洁形式:
答案:
| 原地址 | 零压缩后 |
|---|---|
| 0000:0000:0F53:6382:AB00:67DD:B8B2:7732 | ::F53:6382:AB00:67DD:B8B2:7732 |
| 0000:0000:0000:0000:0000:0000:004D:ABCD | ::4D:ABCD |
| 0000:0000:0000:AF36:7328:0000:87AA:0398 | ::AF36:7328:0:87AA:398 |
| 2819:00AF:0000:0000:0000:0035:0CB2:B271 | 2819:AF::35:CB2:B271 |
注:零压缩规则:
-
每组中的前导零可省略
-
连续全零的组可用双冒号
::代替(只能使用一次) -
全零地址
0:0:0:0:0:0:0:0可压缩为::
4-58 试把以下零压缩的 IPv6 地址写成原来的形式:
答案:
| 零压缩形式 | 原始形式(每组4位十六进制) |
|---|---|
0::0 | 0000:0000:0000:0000:0000:0000:0000:0000 |
0:AA::0 | 0000:00AA:0000:0000:0000:0000:0000:0000 |
1234::3 | 1234:0000:0000:0000:0000:0000:0000:0003 |
123::1:2 | 0123:0000:0000:0000:0000:0000:0001:0002 |
4-59 从 IPv4 过渡到 IPv6 的方法有哪些?
答案:
IPv4 → IPv6 过渡方法:
-
双协议栈:设备同时运行 IPv4 和 IPv6
-
隧道技术:将 IPv6 数据报封装在 IPv4 中传输
-
协议转换(NAT64):在 IPv4 和 IPv6 网络边界进行翻译
4-60 多协议标签交换 MPLS 的工作原理是怎样的?它有哪些主要的功能?
答案:
MPLS 工作原理:
-
在网络边缘给 IP 数据报加上固定长度的标签
-
核心路由器只看标签进行快速转发,不再查看 IP 首部
-
使用标签交换路径(LSP) 指导转发
MPLS 主要功能:
-
提高转发速度(标签交换比 IP 查表快)
-
支持流量工程(控制流量走特定路径)
-
支持 VPN(L2/L3 VPN)
-
支持 QoS(区分服务等级)
4-61 SDN 的广义转发与传统的基于流量的转发有何区别?
答案:
| 对比项 | 传统转发 | SDN 广义转发 |
|---|---|---|
| 转发依据 | 目的地址查路由表 | 多字段匹配(MAC、IP、端口等) |
| 控制方式 | 分布式路由协议 | 集中式控制器下发流表 |
| 动作类型 | 仅转发 | 转发、丢弃、修改、封装等 |
| 灵活性 | 低 | 高,可编程 |
| 例子 | IP 路由器 | OpenFlow 交换机 |
4-62 试举出 IP 数据报首部中能够在 OpenFlow 1.0 中匹配的三个字段。试举出在 OpenFlow 中不能匹配的三个 IP 数据报首部。
答案:
可匹配字段(3个):
-
源 IP 地址
-
目的 IP 地址
-
协议类型(TCP/UDP/ICMP)
不能匹配字段(3个):
-
标识(16位 ID)
-
标志(DF/MF)
-
片偏移
(OpenFlow 1.0 不支持分片相关字段的匹配)
4-63 网络如图 4-81 所示。
(1) 假定路由器 R₁ 把所有发往网络前缀 123.1.2.16/29 的分组都从接口 4 转发出去。
(2) 假定路由器 R₁ 要把 H₁ 发往 123.1.2.16/29 的分组从接口 4 转发出去,而把 H₂ 发往 123.1.2.16/29 的分组从接口 R₃ 转发出去。
试问,在上述两种情况下,你都能给出路由器 R₁ 的转发表吗?

答案:
(1) 可以。转发表只需一条:
-
目的前缀:123.1.2.16/29 → 接口 4
(2) 不能。原因:
-
传统 IP 路由只能根据目的地址转发,不能根据源地址区分
-
要实现该需求,需要策略路由(基于源地址、端口等)
-
单纯的目的前缀转发表无法区分来自 H₁ 和 H₂ 的分组
4-64 已知一个具有4个接口的路由器 R,的转发表如表 4-11 所示,转发表的每一行给出了目的地址的范围,以及对应的转发接口。


(1)试把以上转发表改换为另一形式,其中的目的地址范围改为前缀匹配,而转发表由4行增加为5行。
(2)若路由器收到一个分组,其目的地址是:
(a)11010000 10000001 01010001 01010101
(b)11010000 00000000 11010111 01111100
(c)11010001 10010000 00010001 01110111
试给出每一种情况下分组应当通过的转发接口。
答案:
(1)
| 前缀匹配 | 转发接口 |
|---|---|
| 208.0.0.0/16 | 1 |
| 208.0.0.0/15 | 0 |
| 208.0.0.0/7 | 2 |
| 208.0.0.0/5 | 3 |
| (默认) | 3 |
(2) 目的地址匹配
| 目的地址二进制 | 目的地址十进制 | 匹配前缀 | 转发接口 |
|---|---|---|---|
| 11010000 10000001 01010001 01010101 | 208.129.81.85 | 最长匹配 208.0.0.0/7 | 2 |
| 11010000 00000000 11010111 01111110 | 208.0.215.126 | 208.0.0.0/16 | 1 |
| 11010001 10010000 00100001 01110111 | 209.144.33.119 | 默认路由 | 3 |
4-65 一个路由器连接到三个子网,这三个子网共同的前缀是205.2.17/24。假定子网N₁ 要有 62 台主机,子网 N₂要有 105 台主机,而子网 N₃要有 12 台主机。试分配这三个子网的前缀。
答案:
(1)先分配最大的子网N₂。105台主机需要的主机号的位数是7位,因此N₂的前缀是:
205.2.17.0/25,其地址范围是 205.2.17.0~205.2.17.127。
(2)其次是子网N₁。62台主机需要的主机号的位数是6位,因此的前缀是205.2.17.128/26,其地址范围是 205.2.17.128~205.2.17.191。
(3)最后是最小子网是N₃。12台主机需要的主机号的位数是4位,因此的前缀是:
205.2.17.192/28,其地址范围是205.2.17.192~205.2.17.207。
4-66 图 4-82是一个 SDN OpenFlow 网络。当分组到达交换机 S,时,假定:

(1)任何来自 H₅或 H₆、进入端口1且发往H₁或 H₂的分组,均应通过端口2转发出去。
(2)任何来自 H₁或 H₂、进入端口2且发往 H₅或 H₆的分组,均应通过端口1转发出去。
(3)任何从端口1或2进入且发往 H₃或H₄的分组,均应交付指明的主机;
(4)H₃或H₄ 彼此可以互相发送分组。
试给出交换机 S₂的流表项(即每一行的“匹配 +动作”)。
答案:
| 匹配 | 动作 |
| 入端口=1; IP源地址=10.3.*.*; IP目的地址 =10.1.*.* | 转发(2) |
| 入端口=2; IP源地址=10.1.*.*; IP目的地址 =10.3.*.* | 转发(1) |
| 入端口=*; IP源地址=10.*.*.*; IP目的地址 =10.2.0.3 | 转发(3) |
| 入端口=*; IP源地址=10.*.*.*; IP目的地址 =10.2.0.4 | 转发(4) |
| 入端口=3; IP源地址=10.2.0.3; IP目的地址 =10.2.0.4 | 转发(4) |
| 入端口=4; IP源地址=10.2.0.4; IP目的地址 =10.2.0.3 | 转发(3) |
| …… | …… |
4-67 SDN OpenFlow 网络同上题。从主机 H₃或 H₄发出并到达 S₂交换机的分组,应遵循以下规则:
(1)任何来自 H₃且发往 H₁,H₂,H₅或 H₆的分组,应顺时针转发出去。
(2)任何来自 H₄ 且发往 H₁,H₂,H₅或H₆的分组,应逆时针转发出去
试给出交换机S₂的流表项(即每一行的“匹配+动作”)。
答案:
| 匹配 | 动作 |
| IP源地址=10.2.0.3; IP目的地址 =10.1.*.* | 转发(2) |
| IP源地址=10.2.0.3; IP目的地址 =10.3.*.* | 转发(2) |
| IP源地址=10.2.0.4; IP目的地址 =10.1.*.* | 转发(1) |
| IP源地址=10.2.0.4; IP目的地址 =10.3.*.* | 转发(1) |
| …… | …… |
4-68 SDN OpenFlow网络同上题。在交换机S₁和S₃中有这样的规定:从源地址H₃或H₄到来的分组,将按照分组首部中的目的地址进行转发。试给出交换机S₁和S₃的流表项
答案:
S₁的流表项:
| 匹配 | 动作 |
| IP源地址=10.2.*.*; IP目的地址 =10.1.0.1 | 转发(2) |
| IP源地址=10.2.*.*; IP目的地址 =10.1.0.2 | 转发(3) |
| IP源地址=10.2.*.*; IP目的地址 =10.3.*.* | 转发(1) |
| …… | …… |
S₃的流表项:
| 匹配 | 动作 |
| IP源地址=10.2.*.*; IP目的地址 =10.1.*.* | 转发(3) |
| IP源地址=10.2.*.*; IP目的地址 =10.3.0.5 | 转发(2) |
| IP源地址=10.2.*.*; IP目的地址 =10.3.0.6 | 转发(1) |
| …… | …… |
4-69 SDN OpenFlow 网络同上题。假定我们把交换机 S₂,作为防火墙。防火墙的行为有以下两种:
(1)对于目的地址为 H₃和H₄的分组,仅可转发从 H₂和 H₆发出的分组,也就是说,从H₁和 H₅发出的分组应当被阻挡。
(2)仅对于目的地址为H₃的分组才交付,也就是说,所有发往H₄的分组均被阻挡。试分别对上述的每一种情况给出交换机S₂的流表项。对于发往其他路由器的分组可不用管。
答案:
(1)
| 匹配 | 动作 |
| IP源地址=10.1.0.1;IP目的地址 =10.2.*.* | 丢弃 |
| IP源地址=10.3.0.5; IP目的地址 =10.2.*.* | 丢弃 |
| IP源地址=10.1.0.2; IP目的地址 =10.2.0.3 | 转发(3) |
| IP源地址=10.1.0.2; IP目的地址 =10.2.0.4 | 转发(4) |
| IP源地址=10.3.0.6; IP目的地址 =10.2.0.3 | 转发(3) |
| IP源地址=10.3.0.6; IP目的地址 =10.2.0.4 | 转发(4) |
| …… | …… |
(2)
| 匹配 | 动作 |
| IP源地址=*.*.*.*; IP目的地址 =10.2.0.3 | 转发(3) |
| IP源地址=*.*.*.*; IP目的地址 =10.2.0.4 | 丢弃 |
| …… | …… |
注:以上习题的解答如果有任何错误,希望各位读者和大佬指出改正,非常感谢!!!
10万+

被折叠的 条评论
为什么被折叠?



