拥塞控制概念

网络拥塞

何为拥塞控制?拥塞控制是指在计算机网络中,通过监测网络的拥塞程度并采取相应的措施来维持网络的稳定运行的方法。它的主要目标是确保网络资源的合理利用,避免网络拥塞导致的性能下降和服务质量下降。

为什么需要拥塞控制?因为我们的网络也会拥塞

网络拥塞是指在网络中传输的数据量超过了网络设备(如路由器、交换机)的处理能力,导致网络性能下降或者完全不可用的现象。

成千上万台终端都先网络发送报文进行交流,导致网络中需要处理大量的报文,导致了网络运载的负担,这是我们不喜欢遇见的,为了有效的缓解拥塞情况,tcp协议在对网络拥塞有着对应的控制。

TCP引入慢启动机制,先发送少量的数据, 探探路, 摸清当前的网络拥堵状态, 再决定按照多大的速度传输数据;

那么我们的TCP协议如何知道网络拥的呢

  1. 丢包率:TCP通过检测传输过程中的丢包情况来判断网络拥塞。当发送方收到三个重复的ACK时,就会认为网络中出现了拥塞,会采取拥塞控制措施。当同时收到3个相同的ACK应答报文,我们TCP就判定网络出现拥塞情况,因为在拥塞时,路由器和交换机可能丢弃TCP报文,导致丢包。

  2. 延迟:TCP还通过测量数据包的往返时间(RTT)来判断网络拥塞。当RTT变大时,TCP会认为网络出现了拥塞,并减少发送速率。

  3. 队列长度:TCP还会监测网络中的队列长度来判断网络是否拥塞。当队列长度超过一定阈值时,TCP会认为网络出现了拥塞,并减少发送速率。为了维护网络的拥塞控制,TCP使用拥塞窗口来确定发送数据的速率。这个窗口的大小取决于网络的拥塞程度和接收方的可用缓冲区大小

  4. ECN标志位:TCP还支持使用显式拥塞通知(ECN)来判断网络拥塞。当路由器在转发数据包时发现网络拥塞时,可以将ECN标志位置为1,传递给接收方和发送方,以便它们采取相应的措施。

拥塞算法概念

那么我们的拥塞算法如何控制发送速率呢?前期将以2倍报文数量试探性发送TCP报文,在一个阈值后,将指数增长在改变为线性增长。

拥塞窗口是干什么用的,是控制滑动窗口大小用的。滑动窗口大小不仅仅是依赖报文中16位的报文大小控制,也需拥塞窗口控制,每次收到报文后,我们的拥塞窗口win_end=start+min(16位窗口大小,拥塞窗口大小)。

拥塞窗口在每次拥塞控制时开始为一条报文大小,后续每收到一条应答,拥塞窗口加一个报文大小单位。

那么,一直都是指数增长发送数量吗,不是的。在发送数量抵达某个阈值我们就开始线性增长。

  • 当TCP开始启动的时候, 慢启动阈值等于窗口最大值;
  • 在每次超时重发的时候, 慢启动阈值会变成原来的一半, 同时拥塞窗口置回1;

少量的丢包, 我们仅仅是触发超时重传; 大量的丢包, 我们就认为网络拥塞 。当TCP通信开始后, 网络吞吐量会逐渐上升; 随着网络发生拥堵, 吞吐量会立刻下降; 拥塞控制, 归根结底是TCP协议想尽可能快的把数据传输给对方, 但是又要避免给网络造成太大压力的折中方案。

相关推荐
2601_966799048 小时前
酷嗨米J300:一台相机同步推三平台
运维·服务器·负载均衡
AI行业说8 小时前
2026年清洁耗材智能模板机品牌排名:扫地机拖布、美妆粉扑工厂自动化选型指南
运维·自动化
派大鑫wink9 小时前
Dify 工作流搭建操作手册:以信息化运维周报自动生成为例
运维
志栋智能9 小时前
超自动化运维:支持微服务架构的运维模式
运维·架构·自动化
Bamtone20259 小时前
Bamtone班通:TDR阻抗测试仪如何高效助力AI服务器高速信号完整性验证?
服务器·人工智能·阻抗测试·阻抗分析
资深电气设计9 小时前
技术分析:空调机房水泵性能优势与系统适配性研究——水力能效、结构集成与智能运维维度
大数据·运维
Brilliantwxx9 小时前
【Linux】 进程(7)深度剖析 进程内核O(1)调度队列 + 饥饿问题
linux·运维·服务器
疯狂打码的少年10 小时前
【数据库技术】关系完整性约束(实体/参照/用户定义)
运维·服务器·数据库·笔记
小谈不敲代码10 小时前
【12-kubenetes的持久化存储】
运维·kubernetes
梦想的旅途210 小时前
企业微信API如何实现自动化办公
运维·自动化·企业微信