408真题解析-2009-39-网络-TCP拥塞控制

一 真题2009-39

2009-39题. 一个TCP连接总是以1KB的最大段长发送TCP段,发送有足够多的数据要发送。当拥塞窗口为16KB时发生了超时,如果接下来的4个RTT(往返时间)时间内的TCP段的传输都是成功的,那么当第4个RTT时间内发送的所有TCP段都得到肯定应答时,拥塞窗口大小是()。

A. 7KB

B. 8KB

C. 9KB

D. 16KB

二 题目要素解析

场景: TCP 拥塞控制(Congestion Control)过程。

已知条件:

  • MSS(最大段长):1 KB。
  • 初始状态:拥塞窗口 cwnd=16 KB。
  • 事件 :发生超时(Timeout)。
  • 后续过程:接下来 4 个 RTT 传输均成功。
  • 求: 第 4 个 RTT 结束时,拥塞窗口 cwnd 的大小。

核心考点: TCP 拥塞控制中的 慢开始(Slow Start)拥塞避免(Congestion Avoidance) 算法的切换逻辑。

三 哔哔详解

这道题考察的是 TCP 对 "超时" 事件的反应以及状态机的转换。

  1. 超时事件的处理(回到原点):

    • 当发生超时时,TCP 认为网络拥塞严重。

    • 阈值调整(ssthresh):

      将慢开始阈值设置为当前拥塞窗口的一半。

      ssthresh=16 KB/2=8 KB

    • 拥塞窗口重置: 将拥塞窗口 cwnd 重置为 1 个 MSS(即 1 KB),并进入慢开始阶段。

  2. 第 1 个 RTT(慢开始阶段):

    • 初始 cwnd=1 KB。
    • 发送 1 KB 数据,收到确认。
    • 慢开始阶段 cwnd 指数增长(翻倍)。
    • 结束时:cwnd=1×2=2 KB。
  3. 第 2 个 RTT(慢开始阶段):

    • 当前 cwnd=2 KB。
    • 发送 2 KB 数据,收到确认。
    • cwnd 翻倍。
    • 结束时:cwnd=2×2=4 KB。
  4. 第 3 个 RTT(慢开始阶段):

    • 当前 cwnd=4 KB。
    • 发送 4 KB 数据,收到确认。
    • cwnd 翻倍。
    • 结束时:cwnd=4×2=8 KB。
    • 关键节点: 此时 cwnd 达到了阈值 ssthresh (8 KB)。慢开始阶段结束,进入拥塞避免阶段。
  5. 第 4 个 RTT(拥塞避免阶段):

    • 当前 cwnd=8 KB。
    • 发送 8 KB 数据,收到确认。
    • 拥塞避免阶段 cwnd 线性增长(每次 RTT 只增加 1 个 MSS)。
    • 结束时:cwnd=8 KB+1 KB=9 KB。

结论: 第 4 个 RTT 结束时,拥塞窗口大小为 9 KB。

四 参考答案

参考答案 C

五 考点精析

5.1 TCP 拥塞控制四大核心机制

📌 目标 :在不引起网络拥塞的前提下,尽可能高效利用带宽。
关键变量

  • cwnd:拥塞窗口(Congestion Window)
  • ssthresh:慢启动阈值(Slow Start Threshold)
  • MSS:最大段长(Maximum Segment Size)

1. 慢启动(Slow Start)

  • 触发条件 :连接建立 or 超时重传
  • 初始值cwnd = 1 MSS
  • 增长方式每收到一个 ACK,cwnd += 1 MSS
    每 RTT 翻倍(指数增长):1 → 2 → 4 → 8 ...
  • 结束条件cwnd ≥ ssthresh 或 发生丢包

2. 拥塞避免(Congestion Avoidance)

  • 触发条件cwnd ≥ ssthresh
  • 增长方式:每 RTT 增加 1 MSS(线性增长)
    • 实现:每 ACK 增加 MSS2cwndcwndMSS2 ,累计 ≈ +1 MSS/RTT
  • 目的:谨慎探测可用带宽,避免激进导致拥塞

3. 快重传(Fast Retransmit)

  • 触发条件 :收到 3 个重复 ACK(Duplicate ACKs)
  • 行为:
    • 立即重传丢失段(无需等待 RTO 超时)
    • 进入 快恢复

4. 快恢复(Fast Recovery)

  • 触发条件:快重传之后
  • 操作:
    • ssthresh = cwnd / 2
    • cwnd = ssthresh + 3 × MSS(补偿已离开网络的 3 个段)
    • 每收到一个重复 ACK,cwnd += 1 MSS
    • 收到新 ACK(对重传段的确认)后,退出快恢复,进入拥塞避免

口诀

"超时回 1,快重传减半;慢启翻倍,拥避加一。"

5.2 两种丢包响应对比

事件 触发条件 ssthresh 设置 cwnd 重置 后续阶段
超时(Timeout) RTO 到期未收到 ACK cwnd / 2 1 MSS 慢启动
快重传(3 Dup ACKs) 收到 3 个重复 ACK cwnd / 2 ssthresh + 3 MSS 快恢复 → 拥塞避免

⚠️ 关键区别

  • 超时 → 回到最保守状态(cwnd=1)
  • 快重传 → 不重启慢启动,直接进入拥塞避免(更高效)

5.3 易错点总结

错误认知 正确认知
"超时后 cwnd = ssthresh" ❌ 应为 cwnd = 1 MSS
"快重传后回到慢启动" ❌ 进入 快恢复,不重启慢启
"拥塞避免每 ACK +1" ❌ 是 每 RTT +1(通过微增量实现)
"cwnd 可无限增长" ❌ 受 接收窗口 rwnd 限制

六 考点跟踪

年份 题号 考查内容 CSDN 参考链接 VX参考链接
2009 第39题 超时后 cwnd 变化
2010 第39题 TCP拥塞控制
2011 第39题 TCP三次握手
2011 第40题 TCP序号计算
2013 第39题 TCP序号计算
2014 第38题 TCP发送窗口计算
2015 第39题 TCP发送窗口计算
2016 第41题 TCP序号计算
2017 第39题 TCP连接建立和发送数据成功时间计算
2019 第38题 TCP快重传
2020 第38题 TCP拥塞控制
2021 第40题 TCP序号计算
2022 第38题 TCP拥塞控制
2023 第47题 TCP序号计算
2024 第38题 TCP 释放连接最少时间
2025 第38题 反向计算可发送的段数

说明 :本文内容基于公开资料整理,参考了包括但不限于《数据结构》(严蔚敏)、《计算机操作系统》(汤小丹)、《计算机网络》(谢希仁)、《计算机组成原理》(唐朔飞)等国内高校经典教材,以及其他国际权威著作。同时,借鉴了王道、天勤、启航等机构出版的计算机专业考研辅导系列丛书 中的知识体系框架与典型题型分析思路。文中所有观点、例题解析及文字表述均为作者结合自身理解进行的归纳与重述,未直接复制任何出版物原文。内容仅用于学习交流,若有引用不当或疏漏之处,敬请指正。

相关推荐
盟接之桥2 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
会员源码网2 小时前
理财源码开发:单语言深耕还是多语言融合?看完这篇不踩坑
网络·个人开发
米羊1213 小时前
已有安全措施确认(上)
大数据·网络
ManThink Technology4 小时前
如何使用EBHelper 简化EdgeBus的代码编写?
java·前端·网络
珠海西格电力科技5 小时前
微电网能量平衡理论的实现条件在不同场景下有哪些差异?
运维·服务器·网络·人工智能·云计算·智慧城市
QT.qtqtqtqtqt5 小时前
未授权访问漏洞
网络·安全·web安全
半壶清水5 小时前
[软考网规考点笔记]-软件开发、项目管理与知识产权核心知识与真题解析
网络·笔记·压力测试
JMchen1236 小时前
Android后台服务与网络保活:WorkManager的实战应用
android·java·网络·kotlin·php·android-studio
yuanmenghao6 小时前
Linux 性能实战 | 第 7 篇 CPU 核心负载与调度器概念
linux·网络·性能优化·unix
那就回到过去6 小时前
MPLS多协议标签交换
网络·网络协议·hcip·mpls·ensp