Skip to content

2019年 408 计算机网络 第 39 题

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

题目

若主机甲主动发起一个与主机乙的 TCP 连接,甲、乙选择的初始序列号分别为 2018 和 2046,则第三次握手 TCP 段的确认序列号是( )。

错因

A

把"甲的 SYN 序号"误填成"第三次握手的确认号"——根本搞错了 ACK 的确认对象。第三次握手是甲发的 ACK,甲是在确认乙刚发来的 SYN+ACK,所以 ACK 字段的值应基于乙的序号,不是甲自己的。

B

知道要看甲的序号 + 1 = 2019,但搞错了哪一方的序号。第三次握手的 ACK 是确认乙的 SYN,应该用乙的初始序号 + 1 = 2047,而不是甲的 + 1。

C

知道要用乙的序号(2046),但忘记了 SYN 占一个序号——直接用乙的初始序号 2046 作为 ACK 值。SYN 和 FIN 都是控制段(不携带数据),但它们各自占一个序号空间,对方的 ACK 必须比 SYN 大 1。

总解析

第一步:明确三次握手的序号 / 确认号关系

步骤方向seqack说明
① SYN甲 → 乙2018甲的初始序号 = 2018,SYN 占 1 个序号(消耗序号空间)
② SYN + ACK乙 → 甲20462019乙的初始序号 = 2046;ack = 甲的 SYN 序号 + 1
③ ACK甲 → 乙2019seq = 2018 + 1 = 2019(甲的 SYN 已占 2018);ack = 乙的 SYN 序号 + 1

第二步:算第三次握手的 ack

第三次握手是甲发出的 ACK,对乙的 SYN 的确认

第三步:核对

选项含义
A2018甲的初始序号本身(不带 +1)
B2019甲的 SYN 后的下一个序号(这是第三次握手的 seq,不是 ack)
C2046乙的初始序号本身(漏 +1)
D2047乙的 SYN + 1(正确)

记忆要点

  • "你给我什么序号,我就 ACK 你的序号 + 1"——SYN 和 FIN 各占 1 个序号
  • 第三次握手 seq = 2019、ack = 2047 是正确组合

最终答案是 D(2047)

编者注(生僻术语):TCP 序号空间是 32 位无符号整数(0 ~ ≈ 4.3G),从初始 ISN 开始按字节计数。SYN 和 FIN 各消耗 1 个序号——尽管它们不带应用数据,但都是"虚拟的 1 字节",方便对端用统一的 ACK 机制确认。普通数据段则按字节数累加序号。这条规则是 TCP 序号 / 确认号题的核心,记牢即可解大半此类题。

最后更新:

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

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