Skip to content

2009年 408 计算机网络 第 38 题

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

题目

主机甲与主机乙之间已建立一个 TCP 连接,主机甲向主机乙发送了两个连续的 TCP 段,分别包含 300 字节和 500 字节的有效载荷,第一个段的序列号为 200,主机乙正确接收到两个段后,发送给主机甲的确认序列号是( )。

错因

A

把"段 1 的下一个字节序号"算成 ack——只确认到段 1 末尾 漏算段 2。但题面明确说"乙正确接收到两个段后",应累计确认到段 2 末尾。错的根源:忽略段 2 已被收到,只算段 1。

B

可能算成 或类似拼凑,完全没用累计 = 起始序号 + 总长度 的公式。错的根源:算式凑不出有意义的值。

C

可能算成 (两段载荷之和)——但这是总字节数,不是确认序号。确认序号 = 第一个段的序号 + 总字节数 = 200 + 800 = 1000。错的根源:把"字节数"误当成"确认号"。

总解析

第一步:列出每段的序号范围

序号载荷字节数序号范围
1200300[200, 499]
2500500[500, 999]

段 2 的序号 = 段 1 起始序号 + 段 1 长度 = 200 + 300 = 500。段 2 覆盖 [500, 999]。

第二步:算确认序号

TCP 确认序号 = "已连续收到的最大字节序号 + 1" = "下一个期待的字节"。

乙正确收到两段,连续覆盖 [200, 999]:

或等价:

第三步:核对

选项含义错处
A500只确认段 1(漏段 2)
B700凑数
C800总字节数(不是确认号)
D1000正确(200 + 300 + 500)

最终答案是 D(1000)

编者注(生僻术语):TCP 确认号语义"下一个期待的字节序号"——这是 TCP 累计确认机制的核心:

注意"连续"——如果中间有缺失,累计确认只能停在缺失处之前(参考 cn-2011-40 题)。本题"两段都正确收到、连续无间断",所以累计确认能直接走到段 2 末尾。

最后更新:

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

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