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协议拥塞控制

1.概念:

首先,说到拥塞控制,很多人就会和流量控制的概念混淆,所以我简单讲下两个机制的概念;

流量控制:流量控制是为了控制发送方发送速率,保证接收方来得及接收。(接收方发送的确认报文中的窗口字段可以用来控制发送方窗口大小,从而影响发送方的发送速率。)

拥塞控制:拥塞控制是作用于网络的,防止过多的数据注入到网络中,避免网络负载过大(拥塞控制是一个全局性的过程,涉及到所有的主机,所有的路由器,以及与降低网络传输性能有关的所有因素。)。

2.TCP拥塞控制:

2.1 TCP拥塞控制原理:

TCP为运行在不同主机上的两个进程之间提供了可靠数据传输服务。

TCP的另一个关键部分就是其拥塞控制机制。

TCP必须使用端到端拥塞控制而不是网络辅助的拥塞控制,因为IP层不向端系统提供显式的网络拥塞反馈。

TCP所采用的方法是让每一个发送方根据所感知到的网络拥塞程度来限制其能向连接发送流量的速率。?如果一个TCP发送方感知从它到目的地之间的路径上没什么拥塞,则TCP发送方增加其发送速率;如果发送方感知沿着该路径有拥塞,则发送方就会降低其发送速率。

2.1 TCP拥塞控制算法:

提到拥塞控制的解决方案,就离不开四个算法:(慢开始、拥塞避免、快重传、快恢复),先浅偷一张图描述一下拥塞避免的解决过程:

?

1.慢开始

当一条TCP连接开始时, cwnd 的值通常初始置为一个 MSS 的较小值,这就使得初始发送速率大约为 MSS/RTT。

由于对TCP发送方而言,可用带宽可能比 MSS/RTT 大得多,TCP发送方希望迅速找到可用带宽的数量。

因此,在慢启动(slow-start)状态,cwnd的值以 1 个 MSS 开始并且每当传输的报文段首次被确认就增加 1 个 MSS。

TCP向网络发送第一个报文段并等待一个确认。当该确认到达时,TCP发送方将拥塞窗口增加一个 MSS,并发送出两个最大长度的报文段。这两个报文段被确认,则发送方对每个确认报文段将拥塞窗口增加一个 MSS,使得拥塞窗口变为 4 个MSS,并这样下去。这一过程每过一个 RR,发送速率就翻番。因此,TCP发送速率起始慢,但在慢启动阶段以指数增长。

2.拥塞避免

设置一个慢开始门限?ssthresh,当 cwnd >= ssthresh 时,进入拥塞避免,每个轮次只将 cwnd加 1,降低拥塞窗口的增长速度。如果出现了超时,则令 ssthresh = cwnd / 2,然后开始执行快恢复。

3.快重传

当发送方只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段。

4.快恢复

当发送端收到连续三个重复的确认时,就会把慢开始门限 ssthresh 减半。

由于发送方现在认为网络很可能没有发生拥塞,因此现在不执行慢开始算法,即拥塞窗口 cwnd 现在不设置为 1 。而是将cwnd当前值减半作为新的慢开始门限 ssthresh 值,并让cwnd的值等于这个新的慢开始门限ssthresh值。随后开始执行加法增大,使拥塞窗口缓慢地线性增大。?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 13:08:02  更:2022-10-17 13:08:11 
 
开发: 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年5日历 -2024/5/19 9:41:55-

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