拥塞控制算法(五)——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. 平均队列长度大于最大门限——丢弃新到达的分组。
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值