计算机网络面经-拥塞控制的乘法减小和加法增大

先说结论:

  • "乘法减小":无论是在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞,就把慢开始门限ssthresh设置为出现拥塞时的发送窗口大小的一半,并执行慢开始算法

  • "加法增大"是指执行拥塞避免算法后,使拥塞窗口缓慢增大,以防止过早出现拥塞

具体分析:

乘法减小(Multiplicative Decrease)

"乘法减小"原则是在网络出现拥塞时,发送方将慢开始门限(ssthresh)设置为当前拥塞时发送窗口大小的一半,并执行慢开始算法。这样做的目的是迅速减少发送方注入到网络中的数据量,以缓解网络拥塞。

慢开始算法是TCP拥塞控制中用于在连接建立初期或拥塞发生后控制发送速率的机制。在慢开始阶段,发送方每次只发送一个报文段(即窗口大小为1),然后等待确认。每收到一个确认,就使发送窗口加倍,直到达到慢开始门限(ssthresh)的值。此后,发送方进入拥塞避免阶段,使用拥塞避免算法来逐步增加窗口大小。

当网络出现拥塞时,乘法减小原则通过降低ssthresh的值来迅速减少发送窗口的大小,从而降低发送速率。这有助于快速缓解网络拥塞,防止拥塞进一步恶化。

加法增大(Additive Increase)

"加法增大"原则是在执行拥塞避免算法后,拥塞窗口(cwnd)以线性方式缓慢增大,以防止过早出现拥塞。这是TCP拥塞控制中用于在网络状况良好时逐步增加发送速率的机制。

在拥塞避免阶段,发送方会根据一定的规则(如AI算法)逐渐增加拥塞窗口的大小。每次收到一个确认报文段,拥塞窗口就增加一个固定的值(通常是1个MSS,即最大报文段大小)。这样,发送方可以逐步增加发送速率,同时保持对网络状况的敏感。

加法增大原则确保了发送方在网络状况良好时能够逐步提高发送速率,从而充分利用网络带宽。同时,由于增长是线性的,因此发送速率的提升相对平缓,有助于避免过早出现拥塞。

相关推荐
小丑西瓜6663 小时前
CMake基础用法,cmake_minimum_required,project,add_executable
linux·服务器·c++·camke
晚风吹长发3 小时前
初步了解Linux中的命名管道及简单应用和简单日志
linux·运维·服务器·开发语言·数据结构·c++·算法
全栈测试笔记4 小时前
异步函数与异步生成器
linux·服务器·前端·数据库·python
橙河网络4 小时前
橙河网络:海外问卷安全类问卷调查怎么做?
网络·经验分享·笔记·课程设计
扶苏-su4 小时前
Java网络编程:InetAddress 详解
java·开发语言·网络
爱丶狸5 小时前
Linux三剑客之sed
linux·运维·服务器
Tandy12356_5 小时前
手写TCP/IP协议栈——HTTP协议实现(完结篇)
c语言·网络·网络协议·tcp/ip·计算机网络·http
yangSnowy5 小时前
webSocket 通信详解
网络·websocket·网络协议
大榕树信息科技5 小时前
当实现动环监控系统的集中管理时,如何提升机房运维的响应速度?
网络·物联网·机房运维·机房管理系统·动环监控系统
终端行者6 小时前
Nginx limit_conn_zone 模块详解 Nginx如何限流 防止CC攻击
网络·nginx