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 小时前
IPv4和IPv6 地址分配:从划分到工具全解析
网络·网络协议·tcp/ip·华为
小白电脑技术2 小时前
玩客云OneCloud插入内存卡之后,开机自动挂载教程
网络·电脑
南烟斋..2 小时前
嵌入式系统(51单片机)核心外设详解:UART通信与DS18B20温度采集
linux·运维·网络
e***98572 小时前
跨平台虚拟机网络故障排查指南
运维·网络
数据知道3 小时前
PostgreSQL实战:一文掌握 pg_hba.conf 配置,涵盖密码认证、IP限制与安全策略
数据库·tcp/ip·postgresql
早日退休!!!3 小时前
内存泄露(Memory Leak)核心原理与工程实践报告
大数据·网络
废墟乌托邦3 小时前
实验10 路由器的基本配置 实验报告
网络·智能路由器
初听于你3 小时前
IP地址与路由器地址
linux·运维·服务器·网络·tcp/ip·计算机网络·智能路由器
《七》跷3 小时前
VLAN实验
网络·智能路由器