IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> tcp拥塞控制算法总结 -> 正文阅读

[网络协议]tcp拥塞控制算法总结

基于丢失的拥塞控制算法

经典拥塞控制:tahoe和reno

在这里插入图片描述

慢启动(cwnd 倍增):
当cwnd < ssthresh时,使用慢启动算法。
当cwnd > ssthresh时,改用拥塞避免算法。
当cwnd = ssthresh时,慢启动与拥塞避免算法任意。

拥塞避免(拥塞窗口的一半,线性增加)

发生拥塞(重传定时器(RTO)超时):
把ssthresh降低为cwnd值的一半
把cwnd重新设置为1
重新进入慢启动过程。

快速重传:接收端收到后面的包,就快速发送冗余ack

快速恢复(收到3个相同的ack):
把ssthresh设置为cwnd的一半
把cwnd再设置为ssthresh的值ssthresh+冗余ack个数
重新进入拥塞避免阶段。

在这里插入图片描述

拥塞控制改进new reno,sack(选择性确认),cubic

NewReno:
Reno在收到一个新的数据的ACK时就退出了快速恢复状态了,而NewReno需要收到该窗口内所有数据包的确认后才会退出快速恢复状态,从而更一步提高吞吐量。

sack:
可以选择确认ack,解决多个丢失问题,可替代new reno。

cubic:
拥塞控制窗口增长函数是一个三次函数,这样设计的目的是为了在当前的快速和长距离网络环境中有更好的扩展性。
在这里插入图片描述

网络辅助信息拥塞控制ecn

需要修改ip协议,开启ecn使能;还需要修改tcp协议,ecn设置状态

基于延迟的拥塞控制vages

精确测量rtt。延迟变化会引起窗口大小的变化。
存在的问题:与其他算法协同工作不公平,敏感且温和,只适合内网机房使用。

bbr(基于模型的拥塞控制)

基于丢失的拥塞控制算法问题:
吞吐振荡,延迟大,侵略性强

bbr主要思想:
模型,将通信分成应用受限,带宽受限阶段
经常测量RTprop和BtlBw,计算bdp,反映网络通信量和路由的变化
BtlBw控制发送速率,bdp控制inflight的数量

RTprop:往返传播时间
BtlBw:瓶颈带宽
BDP = BtlBw * RTProp
inflight:飞行中的数据
1.当缓冲区未拥塞时,RTprop基本不会变化;相反拥塞并且队列满时,BtlBw就能确定下来不变化。
2.缓冲区大小会影响RTprop,缓冲区越大,拥塞时RTprop越高。
3.通过ack确定RTT和传输速率,用于更新RTprop,BtlBw。
4.发送数据时会先对每个数据包与BtlBw进行匹配。
5.bbr定期间隔RTprop时间

快速启动:
2/ln2=2.885mss为启动窗口,延迟不变化倍增窗口

drain:
将快速启动的分组排空,使得inflight=bdp

ProbeBw:
高速发送,周期性测量新的天花板,或者退缩到新的低速平衡,适应瓶颈带宽变化。

ProbeRTprop:
高速发送期间,百分2的时间测量RTprop,应用受限数据流小直接使用该数据。适应路由变化。

quic(bbr可用于quic)

http1.0:短连接
http1.1:长连接,节约带宽,HOST域,缓存处理,缓存处理
http2.0:多路复用,头部数据压缩,服务器推送

http3(quic):选择UDP作为底层传输层协议,流复用和流控,拥塞控制机制,更好的错误处理能力,更快的握手

在这里插入图片描述

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-06 13:32:18  更:2022-03-06 13:33:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年10日历 -2024/10/5 13:30:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码