Skip to content

2011年 408 计算机网络 第 39 题

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

题目

主机甲向主机乙发送一个(SYN=1, seq=11220)的 TCP 段,期望与主机乙建立 TCP 连接,若主机乙接受该连接请求,则主机乙向主机甲发送的正确的 TCP 段可能是( )。

错因

A

SYN 和 ACK 都置 0——这意味着既不是 SYN 段也不是 ACK 段。但三次握手第二步必须是 SYN+ACK 段(SYN=1 表示乙也要建立连接、ACK=1 表示确认甲的 SYN)。错的根源:忘了第二步是 SYN 和 ACK 都要置 1。

B

SYN=1, ACK=1 的标志位对,但 ack=11220 错——应该是 11220+1 = 11221(SYN 占 1 序号,ACK 是"我下一个期待的序号")。错的根源:忘了 SYN 占 1 序号、应该 +1。

D

同 A 一样 SYN 和 ACK 都置 0,错。错的根源:误以为乙只发普通 ACK 段(不带 SYN),但三次握手第二步乙必须主动发 SYN(同时回 ACK)。

总解析

第一步:理清 TCP 三次握手

步骤方向标志位seq / ack
① SYN甲 → 乙SYN=1, ACK=0seq = 甲的 ISN(11220)
② SYN+ACK乙 → 甲SYN=1, ACK=1seq = 乙的 ISN(任选), ack = 11220+1 = 11221
③ ACK甲 → 乙SYN=0, ACK=1seq = 11220+1, ack = 乙的 ISN+1

第二步:分析第二步的字段

  • SYN=1:乙也要建立连接(双向都要)
  • ACK=1:乙确认收到甲的 SYN
  • seq = 乙的 ISN:乙自己选的初始序号,可任意。题面给 11221 是命题方设计的"巧合"(数值与 ack 相同,便于辨识)
  • ack = 甲的 SYN seq + 1 = 11220 + 1 = 11221:表示"我下一个期待你发的字节序号是 11221"

第三步:核对

选项SYNACKseqack是否正确
A001122111221❌ 标志位错
B111122011220❌ ack 应是 11221
C111122111221
D001122011220❌ 标志位错

最终答案是 C(SYN=1, ACK=1, seq=11221, ack=11221)

编者注(生僻术语):选项 C 中 seq 和 ack 都是 11221 是命题方刻意制造的巧合——

  • 乙的 seq(11221):乙这端选的初始序号,可以是任意值,与甲的 ISN 无关;命题方挑了 11221 让数值好认
  • 乙的 ack(11221):必须是 甲的 ISN + 1 = 11220 + 1 = 11221

两者数值相同纯属巧合。考题里如果换其他数字(如乙 ISN = 5000),seq 和 ack 就会不同(5000 vs 11221)。考研里看到 seq 和 ack 凑巧相等不要慌,按规则各自计算。

最后更新:

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

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