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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 拥塞控制算法(五)——SACK、ECN、RED -> 正文阅读

[网络协议]拥塞控制算法(五)——SACK、ECN、RED

以下三种算法,严格来说并不能算是拥塞控制算法。因为我们认为的拥塞控制算法通常是传输层进行的拥塞控制。

互联网TCP拥塞控制算法的基本设计理念是必须端端执行。这个网络被认为是一个“黑匣子”。TCP源无法从网络中接收到任何显式的拥塞反馈。当一个拥塞控制算法不需要任何来自下层的支持,我们会认为他严格遵循层分离和模块化原则。

因此,为了确定它可以传输的速率,源必须通过逐步增加输入负载(通过缓慢的启动和拥塞避免阶段)来探测路径,直到隐式反馈,如超时或重复确认,即已达到网络容量的信号。或者有些算法通过ACK数量、RTT估计、带宽估计等来进行探测。

八、SACK

SACK针对NewReno算法的一些问题进行了改进。
New Reno算法每个RTT只能恢复一个丢失段,虽然相比于Reno他能够恢复,但是恢复的效率慢。
在这里插入图片描述
在这里插入图片描述
为了实现告诉发送方乱序到底的段,SACK在选项中加入了多个TCP options。每个TCP option表示一个乱序到达的区间,长度为10。共标注了乱序到达的左边界和右边界加一。

发送方收到后,会维持一个计分板(scoreBoard),标注这些乱序到达的段,并重发没有到达的段。
在这里插入图片描述除此之外,发送方会维护一个pipe,来动态维护管道中的outstanding的数量平衡,即与拥塞窗口的大小相等。

在这里插入图片描述发送方考虑以下五种情况:

  1. 收到冗余ACK且无SACK选项
  2. 收到冗余ACK且有SACK选项
  3. 收到PACK且无SACK选项:处于拥塞避免阶段,新段被确认,说明该段和该段被重传的段,都从管道中走出,所以pipe-2
  4. 收到PACK且有SACK选项
  5. 收到RACK

在这里插入图片描述
以下是SACK基本原理:
在这里插入图片描述
缺点:部署SACK的代价。

九、ECN

参考链接:ECN算法视频教程

ECN是有网络辅助信息的拥塞控制。

以往我们都是根据一些网络事件(比如三个冗余ACK或者超时)来判断拥塞,进而进行调节。而网络提供信息给端系统则更快。

在这里插入图片描述
改变了IP协议的数据报,
CE:代表网络中发生了拥塞
ECT:表示ECN使能。
Not ECT:表示不支持ECN

TCP数据段,
CWR置为1:表示拥塞窗口减半,
ECE置为1:表示目标主机发现拥塞
在这里插入图片描述

在这里插入图片描述
接收方发送时,ECE置为1,指示发送方降速并cwd置为1。

在这里插入图片描述
发送方接收到后,将cwd置为1,并且回复一个cwd=1的数据段,表示我已经将cwd置为一了。
接收方收到后,不再将ECN置为一。

在这里插入图片描述
缺点:

  1. 安全性:在某路由器时强制更改数据包
  2. 如何进行增速等问题。

十、RED

参考链接:RED算法

在网络层进行全局拥塞控制(所以我们确切地不认为他是链路层的拥塞控制算法):为避免发生网路中的全局同步现象,路由器采用随机早期检测(RED算法)

使路由器的队列维持两个参数,即队列长队最小门限min和最大门限max,每当一个分组到达的时候,RED就计算平均队列长度。然后分情况对待到来的分组:

  1. 平均队列长度小于最小门限——把新到达的分组放入队列排队。
  2. 平均队列长度在最小门限与最大门限之间——则按照某一概率将分组丢弃。
  3. 平均队列长度大于最大门限——丢弃新到达的分组。
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 21:30:49  更:2022-03-21 21:33:29 
 
开发: 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年11日历 -2024/11/26 5:37:56-

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