拥塞管理与拥塞避免

拥塞管理:
拥塞的产生:
速率不匹配:报文从高速链路进入设备,再由低速链路转发出去
汇聚问题:报文从多个接口同时进入设备,由一个没有足够带宽的接口转发出去

拥塞的影响:
        增加了报文传输的时延和抖动
        过高的延迟会引起报文重传
        使网络的有效吞吐率降低,造成网络资源的损害
        加剧耗费大量的网络资源(特别是存储资源),不合理的资源分配甚至可能导致系统陷入资源死锁而崩溃

拥塞管理实现的队列机制:
         第一步:将准备从一个接口发出的所有报文放入不同的缓存队列中
                          (根据报文携带标记对应的LP值与队列索引号的对应关系表,来实现将不同的报文送入不同队列)
                     LP(本地优先级/内部优先级):优先级映射实现从数据原始携带的QoS优先级到内部优先级或从内部优先级到QoS优先级的映射
         第二步:根据各队列间的调度机制实现不同报文的差分转发

队列调度算法:
         1.FIFO(First In First Out):先进先出
                     优点:实现机制简单且处理速度快,处理简单,开销小
                     缺点:不能有差别地对待优先级不同的报文(尽力而为的服务模型,时延敏感的实时应用的延迟/关键业务的带宽得不到保证)
         2.PQ(Priority Queuing):优先级队列调度算法
                     优点:对高优先级的报文提供了优先转发(4个队列:高优先队列/中优先队列/正常优先队列/低优先队列)
                     缺点:低优先级队列可能出现“饿死”现象
         3.WRR(Weighted Round Robin):加权循环调度(在RR基础上演变而来,RR调度相当于权值为1的WRR调度)
                     优点:避免了PQ调度的“饿死”现象
                     缺点:基于报文个数来调度,容易出现包长尺寸不同的报文出现不平等调度;低时延业务得不到及时调度
         4.WFQ(Weighted Fair Queuing):加权公平队列调度算法(报文按流特征分类)
                     优点:可完全按照权重分配带宽;自动分类,配置简单
                     缺点:低时延业务仍得不到及时调度;无法实现用户自定义分类规则
         5.PQ+WFQ
                     优点:可保证低时延业务得到及时调度;实现按权重分配带宽等
                     缺点:无法实现根据用户自定义灵活分类报文的需求
         6.CBQ(Class-based Queueing):WFQ的扩展
                     优点:提供了自定义类的支持;可为不同的业务定义不同的调度策略
                     缺点:由于涉及到复杂的流分类,故启用CBQ会耗费一定的系统资源
                                       提供三类队列:
                                           EF队列:满足低时延业务。
                                                  EF队列拥有绝对优先级,仅当EF队列中的报文调度完毕后,才会调度其他队列中的报文。
                                           AF队列:满足需要带宽保证的关键数据业务
                                                  每个AF队列分别对应一类报文,用户可以设定每类报文占用的带宽。当系统调度报文出队的时候,会按用户为各类报文设定的带宽将报文进行出队发送,可实现各个类的队列的公平调度
                                            BE队列:满足不需要严格QoS保证的尽力发送业务
                                                   当报文不匹配用户设定的所有类别时,报文会被送入系统定义的缺省BE(Best Effort,尽力传送)类。BE队列使用接口剩余带宽和WFQ调度方式进行发送

拥塞管理的配置实现(PQ+WFQ)

拥塞避免:

队列被装满后的传统处理方式:尾丢弃(Tail Drop)
每个队列长度有限,当某一队列已经被装满时,将后续向该队列发送的报文全部丢弃,直至拥塞解除

尾丢弃的缺点:
1.引发TCP全局同步现象
大量TCP报文被丢弃,造成TCP超时,引发TCP慢启动,使TCP减少报文的发送。当队列同时丢弃多个TCP连接的报文时,造成多个TCP连接同时进入拥塞避免和慢启动状态以调整并降低流量
解决:RED(早期随机检测)
在队列未装满时先随机丢弃一部分报文。通过预先降低一部分TCP连接的传输速率来尽可能延缓TCP全局同步的到来
RED为每个队列的长度设定阈值:
队列的长度小于低门限时,不丢弃报文。
队列的长度大于高门限时,丢弃所有收到的报文。
队列的长度在低门限和高门限之间时,开始随机丢弃到来的报文。为每个到来的报文赋予一个随机数,用该随机数与当前队列的丢弃概率比较,大于丢弃概率丢弃。(队列越长,报文被丢弃的概率越高)
2.引起TCP饿死现象
导致原因:尾丢弃无法对流量进行区分丢弃
3.无差别地丢弃
导致原因:尾丢弃无法对流量进行区分丢弃

尾丢弃的解决:WRED(基于RED):对不同优先级数据包/队列设置相应的丢弃策略,实现对不同流量的区分丢弃,弥补尾丢弃的三个缺点,大大提高了链路带宽利用率
实现原理:每一种优先级都能独立设置报文的丢包的高门限,低门限及丢包率
到达低门限时,开始丢包
到达高门限时丢弃所有的报文,随着门限的增高,丢包率不断增加,最高丢包率不超过设置的最大丢包率
是按照一定的丢弃概率主动丢弃队列中的报文

WRED配置需求

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值