Skip to content

2018年 408 计算机网络 第 39 题

计算机网络2018年选择题2分

题目

UDP 协议实现分用(demultiplexing)时所依据的头部字段是( )。

错因

A

源端口号是发送方进程的端口——它告诉接收方"你回包应该往哪个端口发",但不用于分用。分用是接收方做的"把上来的报文段交给本机哪个进程"的决策——这一步要看目的端口号(本机要交给哪个进程),与源端口无关。

C

UDP 首部的"长度"字段表示 UDP 报文(首部 + 数据)的总字节数——用于校验和计算和帧界定,不参与分用。错的根源:把"分用"和"读取报文长度"混淆。

D

校验和字段用于差错检测——接收方算一遍校验和与首部里的对比,若不等则丢弃;与"交给哪个进程"无关。错的根源:把"分用"和"差错检测"两个不同功能混淆。

总解析

第一步:区分"复用"与"分用"

操作谁做依据字段含义
复用(multiplexing)发送方传输层在传输层封装时把进程的源端口写入多个进程共享一条传输层接口
分用(demultiplexing)接收方传输层目的端口号把上来的报文段交给本机正确进程

分用过程

接收方主机收到一个 IP 数据报,剥掉 IP 头后得到 UDP 段。UDP 段的首部里有:

  • 源端口(发送方进程端口)
  • 目的端口(本机要交给哪个进程) ← 分用的依据
  • 长度
  • 校验和

操作系统通过查"目的端口号"找到本机正在监听该端口的进程,把数据交给它。例如 UDP 53 → DNS 服务器进程,UDP 67 → DHCP 服务器进程。

第二步:核对

题问"分用所依据的头部字段" → 接收方查表的依据 → 目的端口号

最终答案是 B(目的端口号)

编者注(生僻术语):UDP 与 TCP 的分用机制不同——

  • UDP:仅按 (目的 IP, 目的端口) 分用,所有发到同一端口的报文都交给同一个进程
  • TCP:按四元组 (源 IP, 源端口, 目的 IP, 目的端口) 分用,可同时支持多个客户端连接同一服务端口(一服务端口接受 N 个独立连接)

这就是为什么一台服务器的 80 端口能同时服务千万个 HTTP 连接——TCP 分用看的是四元组,每个连接是独立的。题面问的是 UDP,所以答案是单字段(目的端口号)。

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数