2021年408真题计算机网络篇

选择题


33. 在 TCP/IP 参考模型中,由传输层相邻的下一层实现的主要功能是( )

选项:

A. 对话管理 B. 路由选择 C. 端到端报文段传输 D. 结点到结点流量控制


正确答案:B. 路由选择


解析:

  • TCP/IP 参考模型包括四层(自下而上):

    1. 网络接口层(也叫主机-网络层)
    2. 网际层(传输层的下一层
    3. 传输层
    4. 应用层
  • 传输层:负责端到端的数据传输,例如 TCP、UDP。

  • 网际层:提供主机到主机的数据传输,包括路由选择、寻址等功能(如 IP 协议)。

  • 所以传输层相邻的下一层是网际层,其核心功能之一就是路由选择(routing)。

其他选项错误说明: A. 对话管理属于应用层功能 C. 端到端传输是传输层本身的功能 D. 结点到结点流量控制是数据链路层(或网络接口层)的功能


34. 若下图为一段差分曼彻斯特编码信号波形,则其编码的二进制位串是( )

img

选项:

A. 10111001 B. 11010001 C. 00101110 D. 10110110


正确答案:A. 10111001


解析:

差分曼彻斯特编码规则如下:

  • 每位中间必须跳变(用于同步,不用于表示数据位);

  • 每一位起始是否跳变表示数据内容

    • 有跳变 → 表示 0
    • 无跳变 → 表示 1

分析过程:

  • 假设图中波形表示的是差分曼彻斯特编码(中间均有跳变);
  • 观察每个位起始处是否跳变,决定该位是 0 还是 1;
  • 首位无法判断前一状态(因为没有参考跳变方向),所以用 x 表示;
  • 根据图中跳变特征,解码为:x0111001

→ 若 x = 1,则整体是 10111001,对应选项 A

→ 若 x = 0,则整体是 00111001,不在选项中。


因此,选项 A 正确


35. IP 子网划分问题

问题: 现将一个 IP 网络划分为 3 个子网,若其中一个子网是 192.168.9.128/26,则下列网络中,不可能是另外两个子网之一的是( )。

选项: A. 192.168.9.0/25 B. 192.168.9.0/26 C. 192.168.9.192/26 D. 192.168.9.192/27

答案: B

解析: 我们先理解 192.168.9.128/26 的地址范围:

  • 网络地址:192.168.9.128
  • 子网掩码:255.255.255.192,对应后 6 位是主机号
  • IP 范围:192.168.9.128 ~ 192.168.9.191(共 64 个地址)

其二进制前两位为 10xxxxxx(表示第 7 和 8 位分别为 1 和 0),因此为了不重叠,其他子网不能与这个范围有交集。

我们依次分析:

  • A. 192.168.9.0/25 这个子网范围是 192.168.9.0 ~ 192.168.9.127,对应前缀 0xxxxxxx,和 10xxxxxx 无重叠,合法
  • B. 192.168.9.0/26 子网范围为 192.168.9.0 ~ 192.168.9.63,是 00xxxxxx,也与 10xxxxxx 没重叠,但: 若选了 192.168.9.0/26192.168.9.128/26,则剩余可用地址为 192.168.9.64 ~ 127 与 192.168.9.192 ~ 255,这两个地址块不连续且不能合成一个子网,无法划出一个合理的第三个子网,因此不可能是划分结果之一
  • C. 192.168.9.192/26 范围是 192.168.9.192 ~ 192.168.9.255,前缀为 11xxxxxx,与 10xxxxxx 不重叠,且与它可以合成更大的子网(如 /25),合法
  • D. 192.168.9.192/27 范围更小,192.168.9.192 ~ 223,但依旧不重叠,剩余部分也可以组合成第三个子网,合法

因此,答案是 B,因为它导致剩余地址无法合并成一个合法子网。


36. IP 分片问题

问题: 若路由器向 MTU = 800 B 的链路转发一个总长度为 1580 B 的 IP 数据报(首部长度为 20 B),进行了分片,且每个分片尽可能大,则第 2 个分片的“总长度字段”和“MF 标志位”的值分别是( )。

选项: A. 796,0 B. 796,1 C. 800,0 D. 800,1

答案: B

解析:

  • 原始数据报总长度:1580 B
  • IP 首部长度:20 B
  • 数据部分大小:1580 - 20 = 1560 B

分片时,除首片外,每个片都要加上 20 B 首部,因此最大可用数据部分为: 800(MTU) - 20(首部) = 780 B

但由于分片的偏移是 8 字节对齐,必须是 8 的倍数: 最大合法数据片段为 ⌊780 / 8⌋ × 8 = 776 B

🔹 第一个分片:

  • 数据:776 B
  • 首部:20 B
  • 总长度:796 B
  • 偏移:0
  • MF = 1(因为还有剩余)

🔹 第二个分片:

  • 偏移:776 / 8 = 97
  • 数据:776 B(还有 1560 - 776 = 784 B 剩余)
  • 首部:20 B
  • 总长度:776 + 20 = 796 B
  • MF = 1(因为还剩 8 B)

🔹 第三个分片:

  • 数据:8 B
  • 总长度:8 + 20 = 28 B
  • MF = 0(最后一片)

因此,第 2 个分片总长度是 796,MF=1


37. 距离向量路由更新

某网络中的所有路由器均采用距离向量路由算法计算路由。若路由器 E 与邻居路由器 A、B、C 和 D 之间的直接链路距离分别是 8、10、12 和 6,且 E 收到邻居路由器的距离向量如下表所示,则路由器 E 更新后的到达目的网络 Net1~Net4 的距离分别是( )。

目的网络 A的距离向量 B的距离向量 C的距离向量 D的距离向量
Net1 1 23 20 22
Net2 12 35 30 28
Net3 24 18 16 36
Net4 36 30 8 24

选项:

A. 9,10,12,6 B. 9,10,28,20 C. 9,20,12,20 D. 9,20,28,20


答案:D

【解析】:

E 与邻居的链路代价如下:

  • E → A:8
  • E → B:10
  • E → C:12
  • E → D:6

对于每个目的网络,E 通过邻居到达的总代价 = 邻居的代价 + 直接链路代价:

目的网络 经 A 经 B 经 C 经 D 最小值
Net1 1+8=9 23+10=33 20+12=32 22+6=28 ✅9
Net2 12+8=20 35+10=45 30+12=42 28+6=34 ✅20
Net3 24+8=32 18+10=28 16+12=28 36+6=42 ✅28
Net4 36+8=44 30+10=40 8+12=20 24+6=30 ✅20

所以,结果是:9, 20, 28, 20


38. TCP连接的状态转换

客户首先向服务器发送 FIN 段请求断开 TCP 连接,则当客户收到服务器发送的 FIN 段并向服务器发送了 ACK 段后,客户的 TCP 状态转换为( )。

选项:

A. CLOSE_WAIT B. TIME_WAIT C. FIN_WAIT_1 D. FIN_WAIT_2


答案:B

【解析】:

TCP 连接的四次挥手过程如下:

  1. 客户端发送 FIN → 状态变为 FIN_WAIT_1
  2. 服务器收到 FIN → 回 ACK,客户端变为 FIN_WAIT_2
  3. 服务器发送 FIN → 客户端收到后回复 ACK
  4. 客户端进入 TIME_WAIT 状态,等待一段时间(通常为 2MSL)以确保服务器收到了 ACK
  5. 等待结束后,才变为 CLOSED

因此,当客户端 收到服务器发来的 FIN 并回应 ACK 后,它的状态就是:✅ TIME_WAIT


39. 有效载荷最大与最小传输效率计算

若大小为 12 B 的应用层数据分别通过 1 个 UDP 数据报和 1 个 TCP 段传输,则该 UDP 数据报和 TCP 段实现的有效载荷(应用层数据)最大传输效率分别是( )。

选项:

A. 37.5%,16.7% B. 37.5%,37.5% C. 60.0%,16.7% D. 60.0%,37.5%


答案:D

【解析】:

  • UDP 报文头部固定为 8 字节
  • TCP 报文头部最小为 20 字节

1. UDP: 数据:12 B + UDP 头部:8 B → 总共:20 B 传输效率 = 应用层数据 / 总数据 = 12 / 20 = 60%

2. TCP(最小报头20 B): 数据:12 B + TCP 头部:20 B → 总共:32 B 传输效率 = 12 / 32 = 37.5%


40. TCP 发送窗口与序号范围

假设主机甲通过 TCP 向主机乙发送数据,部分过程如下图所示。甲在 t₀ 时刻发送了一个 seq=501、封装 200 B 数据的段,在 t₁ 时刻收到乙发送的 序号 seq=601、确认号 ack_seq=501、接收窗口 rcvwnd=500B 的段,则甲在未收到新的确认段之前可以继续向乙发送的数据序号范围是( )。

选项:

A. 501~1000

B. 601~1000

C. 701~1000

D. 801~1100

img

答案:C

【解析】:

  • ack_seq=501:表示乙已成功接收到从序号 0~500 的数据
  • rcvwnd=500:表示乙还可以继续接收 500 B 数据
  • 所以甲可以发送的下一个字节序号范围是:501~1000

但是:

  • 已经发送了 501~700(共 200 字节)
  • 所以还未发送的、但在窗口内的可用序号范围是:✅ 701~1000

网络拓补


题目:

某网络拓扑如题47图所示,以太网交换机 S 通过路由器 R 与 Internet 互联。路由器部分接口、本地域名服务器、H1、H2 的 IP 地址和 MAC 地址如图中所示。

t₀ 时刻 H1 的 ARP 表和 S 的交换表均为空,H1 在此刻利用浏览器通过域名 www.abc.com 请求访问 Web 服务器,在 t₁ 时刻 (t₁ > t₀) S 第一次收到了封装 HTTP 请求报文的以太网帧。

假设从 t₀t₁ 期间网络未发生任何与此次 Web 访问无关的网络通信。

请回答以下问题:

img

(1) 从 t₀t₁ 期间,H1 除了 HTTP 之外还运行了哪个应用层协议?从应用层到数据链路层,该应用层协议报文是通过哪些协议进行逐层封装的?

答案:

  • 除了 HTTP,还运行了 DNS 协议(域名解析用)。

  • 逐层封装顺序为:

    1
    DNS 报文 → UDP 数据报 → IP 数据包 → 以太网帧(使用 CSMA/CD 协议)

解释:

  • 用户输入的是域名 www.abc.com,必须先通过 DNS 协议查询其 IP 地址;
  • DNS 是基于 UDP 的应用层协议;
  • UDP 是基于 IP 的传输层协议;
  • 在以太网中,数据最终通过以太网帧(MAC帧)进行传输。

(2) t₁ 时刻 S 交换表的内容是什么?(假设交换表结构为 <MAC地址,端口>

img

答案:

MAC地址 端口
00-11-22-33-44-cc(H1) 4
00-11-22-33-44-bb(DNS) 1
00-11-22-33-44-aa(R) 2

解释:

t₀t₁,为完成 Web 请求,H1 必须:

  1. 向本地域名服务器发送 DNS 请求,但先需通过 ARP 广播获取 DNS 的 MAC 地址

    • H1 发广播帧,S 在端口4学习到 H1 的 MAC;
    • DNS 回应,S 在端口1学习到 DNS 的 MAC。
  2. 向 DNS 发出 DNS 请求,DNS 响应返回 IP 地址

  3. H1 发现目标 IP 不在同网段,需通过默认网关 R 转发,但又要先通过 ARP 获取 R 的 MAC 地址

    • H1 再次广播,S 在端口2学习到 R 的 MAC;
    • R 回应后,H1 才能封装 HTTP 请求发给 R。

(3) 从 t₀t₁ 期间,H2 至少会接收到几个与此次 Web 访问相关的帧?接收到的是什么帧?帧的目的 MAC 地址是什么?

img

答案:

  • 至少会接收到 2 个帧;
  • 这两个帧是:ARP 查询帧(广播);
  • 目的 MAC 地址均为:ff-ff-ff-ff-ff-ff(广播地址)。

解释:

  • H1 至少发了两个 ARP 广播帧:一个为了找 DNS 的 MAC,另一个为了找 R 的 MAC;
  • ARP 广播帧是以太网广播帧,网络内所有主机都会收到,包括 H2;
  • 但 H2 会发现目的 IP 与自身无关,所以丢弃,但仍然接收到了这两个广播帧