【计算机网络】第3章:传输层—TCP 拥塞控制

目录

一、PPT

二、总结

[TCP 拥塞控制详解](#TCP 拥塞控制详解)

[⭐ 核心机制与算法](#⭐ 核心机制与算法)

[1. 慢启动(Slow Start)](#1. 慢启动(Slow Start))

[2. 拥塞避免(Congestion Avoidance)](#2. 拥塞避免(Congestion Avoidance))

[3. 快速重传(Fast Retransmit)](#3. 快速重传(Fast Retransmit))

[4. 快速恢复(Fast Recovery)](#4. 快速恢复(Fast Recovery))

[🔧 关键参数与行为](#🔧 关键参数与行为)

[🌟 现代优化算法](#🌟 现代优化算法)

[CUBIC(Linux 默认算法)](#CUBIC(Linux 默认算法))

[BBR(Bottleneck Bandwidth and RTT)](#BBR(Bottleneck Bandwidth and RTT))

[📊 拥塞控制流程总结](#📊 拥塞控制流程总结)

[💡 核心设计原则](#💡 核心设计原则)


一、PPT

二、总结

TCP 拥塞控制详解

核心目标 :防止网络因过载而崩溃,公平分配带宽资源,最大化网络吞吐量。
核心思想 :通过动态调整发送速率(拥塞窗口 cwnd)探测网络容量上限。


⭐ 核心机制与算法

1. 慢启动(Slow Start)
  • 目的:初始阶段快速探测可用带宽。

  • 机制

    • cwnd 初始值 = 1 MSS(最大报文段大小)。

    • 每收到 1 个 ACKcwnd 指数增长cwnd *= 2)。

    • 增长上限 :达到 慢启动阈值(ssthresh) 后进入拥塞避免。

  • 触发场景

    • 新连接建立时

    • 超时重传(RTO)后

2. 拥塞避免(Congestion Avoidance)
  • 目的:接近网络容量时转为线性增长,避免拥塞。

  • 机制

    • 每收到 1 个 ACKcwnd 线性增长cwnd += 1/cwnd → 约每 RTT 增加 1 MSS)。
  • 退出条件

    • 发生丢包(超时或收到 3 个重复 ACK)
3. 快速重传(Fast Retransmit)
  • 触发条件 :收到 3 个重复 ACK(即发送方连续收到 4 个相同 ACK)。

  • 行为

    • 立即重传丢失报文,无需等待超时。

    • 进入 快速恢复 阶段(避免降为慢启动)。

4. 快速恢复(Fast Recovery)
  • 目的:在部分丢包时维持较高吞吐量。

  • 机制

    • ssthresh 设为 max(cwnd/2, 2 MSS)(减半窗口)。

    • cwnd = ssthresh + 3 MSS(补偿已确认的 3 个重复 ACK)。

    • 每收到一个重复 ACK,cwnd += 1 MSS(维持窗口大小)。

    • 收到新数据的 ACK 后,将 cwnd 设为 ssthresh,退出快速恢复。

经典算法组合 :以上 4 步统称为 Tahoe (含慢启动+拥塞避免)和 Reno(增加快重传+快恢复)。


🔧 关键参数与行为

参数 作用 调整时机
cwnd 发送方可发送的最大数据量(动态调整) 根据 ACK 或丢包事件更新
ssthresh 慢启动与拥塞避免的切换阈值 丢包时设为 max(cwnd/2, 2)
丢包判定 超时重传 → 网络严重拥塞 直接重置 cwnd=1,进入慢启动
3 个重复 ACK → 部分丢包 触发快重传+快速恢复

🌟 现代优化算法

CUBIC(Linux 默认算法)
  • 三次函数 替代线性增长,更公平且适应高带宽延迟积(BDP)网络。

  • 核心特点:

    • 窗口增长与 时间 而非 ACK 数量相关。

    • 在拥塞避免阶段更平滑地逼近最大容量。

BBR(Bottleneck Bandwidth and RTT)
  • 主动测量网络路径的 最大带宽(BtlBw)最小 RTT,动态调整发送速率。

  • 避免传统算法依赖丢包作为拥塞信号(在高丢包率网络中更高效)。


📊 拥塞控制流程总结

💡 核心设计原则

  1. 保守启动 :初始 cwnd 较小,避免冲击网络。

  2. 加性增,乘性减(AIMD)

    • 增长阶段:线性/指数增加带宽利用率(公平性)。

    • 减少阶段:乘性降窗快速响应拥塞(稳定性)。

  3. 快速响应:通过重复 ACK 尽早检测丢包,减少超时等待。


总结一句话 :TCP 拥塞控制通过 动态调整发送窗口(慢启动探测 → 拥塞避免维稳 → 快重传/快恢复止损),在公平性与效率之间取得平衡,确保网络高吞吐、低延迟、高可靠性。

相关推荐
珹洺7 分钟前
计算机网络:(七)网络层(上)网络层中重要的概念与网际协议 IP
网络·tcp/ip·计算机网络
兮动人1 小时前
获取终端外网IP地址
java·网络·网络协议·tcp/ip·获取终端外网ip地址
怦然星动_1 小时前
eNSP中实现vlan间路由通信(路由器)
网络·智能路由器
海外空间恒创科技2 小时前
一台香港原生ip站群服务器多少钱?
服务器·网络协议·tcp/ip
zyx没烦恼3 小时前
TCP相关实验
服务器·网络·tcp/ip
DemonAvenger3 小时前
TCP连接池设计与实现:提升Go应用网络性能
网络协议·架构·go
游戏开发爱好者89 小时前
iOS重构期调试实战:架构升级中的性能与数据保障策略
websocket·网络协议·tcp/ip·http·网络安全·https·udp
(:满天星:)12 小时前
第31篇:块设备与字符设备管理深度解析(基于OpenEuler 24.03)
linux·运维·服务器·网络·centos
野蛮人6号14 小时前
虚拟机网络编译器还原默认设置后VMnet8和VMnet1消失了
网络·vmware·虚拟机网络编译器·vmnet8消失
scuter_yu15 小时前
主流零信任安全产品深度介绍
运维·网络·安全