TCP 接收方已经按序收到序号至 1499 的所有字节,下一期望字节为 1500。此时序号 2000、长度 500B 的报文段先到达,而 1500~1999 尚未收到。按累计确认机制,接收方发送的 ACK 号通常仍为()。
TCP ACK 号表示下一个期望按序收到的字节。虽然 2000~2499 已经乱序到达,但 1500~1999 仍是缺口,因此累计 ACK 不能越过缺口,仍为 1500。若启用 SACK,可另行报告已收到的乱序数据块。
选项分析
错误。2000 是乱序报文段起始序号,不代表 1500~1999 已收到。
正确。1500 是当前连续字节流中的第一个缺失序号。
错误。ACK 表示下一期望字节,不写成最后一个已收字节。
错误。2500 只有在 1500~2499 已连续收齐后才可作为累计 ACK。
本题为什么容易错
抓到一个更大的序号不等于字节流已经连续。TCP 累计确认只承认没有缺口的前缀,这是快速重传能依赖重复 ACK 发现丢包的基础。
简短答案
中间一段数据没到,后面的报文到了,TCP ACK 号为什么不前进,正确答案是 B(1500)。TCP ACK 号表示下一个期望按序收到的字节。虽然 2000~2499 已经乱序到达,但 1500~1999 仍是缺口,因此累计 ACK 不能越过缺口,仍为 1500。若启用 SACK,可另行报告已收到的乱序数据块。
易混淆概念对比表
| 概念 | 本题判断 | 区别要点 | 记忆提示 |
|---|---|---|---|
| 2000 | 本题干扰项 | 错误。2000 是乱序报文段起始序号,不代表 1500~1999 已收到。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| 1500 | 本题正确答案 | 正确。1500 是当前连续字节流中的第一个缺失序号。 | 看到题干核心场景时优先联想到它 |
| 2499 | 本题干扰项 | 错误。ACK 表示下一期望字节,不写成最后一个已收字节。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| 2500 | 本题干扰项 | 错误。2500 只有在 1500~2499 已连续收齐后才可作为累计 ACK。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
本题易混淆选项怎么区分
- 2000:错误。2000 是乱序报文段起始序号,不代表 1500~1999 已收到。
- 2499:错误。ACK 表示下一期望字节,不写成最后一个已收字节。
- 2500:错误。2500 只有在 1500~2499 已连续收齐后才可作为累计 ACK。
知识点详解
TCP 字节序号按载荷字节计数,ACK 通常确认此前所有连续字节。接收方可缓存乱序段并重复发送当前 ACK;SACK 选项则报告额外收到的非连续区间。缺口补齐后,累计 ACK 可以一次向前跳过已缓存区间。SYN 和 FIN 也各占用一个序号,遇到握手与挥手题时要单独计入。
备考速记
ACK 盯第一个缺口,不追最后到达的报文。
TCP 在SACK场景中的作用
TCP在本题中的核心价值,是解决“TCP 接收方已经按序收到序号至 1499 的所有字节,下一期望字节为 1500。此时序号 2000、长度 500B 的报文段先到达,而 1500~1999 尚未收到。按累计确认机制,接收方发送的 ACK 号通常仍为()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。
同类题怎么考
- 给出多个乱序报文段,计算接收方累计 ACK。
- 根据三个重复 ACK 判断发送方何时触发快速重传。
TCP 在网络工程师软考中的考法
软考选择题通常不会只考概念定义,还会把TCP放到SACK场景中,要求判断它的作用、适用范围或与相近概念的区别。遇到这类题时,先抓住题干中的业务场景,再看哪个选项最能解决该场景下的核心问题。
解题思路
在接收窗口上画一条线最清楚:1499 以前全齐,1500 到 1999 空着,2000 到 2499 虽然到了,但它跨不过前面的坑。累计 ACK 只能站在第一个缺口 1500。SACK 像附加便条,可以告诉发送方“后面的 2000~2499 我已经收了”,减少恢复时的重复发送,但主 ACK 仍不变。
考点定位
ACK 号不是“最后看见的序号”,而是“连续数据之后的下一个期望序号”。先找连续前缀,再决定 ACK。
易错提醒
- 把 ACK 写成最后已收字节而不是下一期望字节。
- 忽略报文长度,只看起始序号。
- 认为启用 SACK 后累计 ACK 就可以跳过缺口。
备考提示
- 草稿上标出每段的半开区间,例如[2000,2500),边界不易算错。
- 把累计 ACK、重复 ACK、SACK 和快速重传放在同一时间线复习。
你可能还想了解
- TCP ACK 号为什么是下一个期望字节?
- SACK 会改变累计 ACK 规则吗?
- 三个重复 ACK 为什么触发快速重传?
本文小结
接收方连续数据只到1499,1500~1999仍缺失,所以即使2000~2499先到,累计ACK仍是1500。SACK可补充报告后面的已收区间,但不能让主ACK越过缺口。