尾部丢弃与RED

尾部丢弃与RED

一.尾部丢弃

在这里插入图片描述
队列满时路由器进行尾丢弃,即新到的所有数据包都全部丢弃,丢弃的结果造成高延迟、高抖动、丧失服务保证、TCP全局同步、TCP饿死等问题,从而导致应用超时、数据重传和实时业务不可用等一系列问题

TCP全局同步:没有差别的丢弃会造成所有TCP流的报文几乎在同一时刻丢弃,TCP又几乎在同一时刻重传。TCP窗口会在几乎同一时刻缩小,然后又几乎同一时刻增大,这将造成所有TCP连接的流量以相同的“频率”持续震荡。TCP全局同步的结果是TCP传输效率急剧下降,并且带宽的平均利用率大大降低。

增加队列长度可以减少丢弃,但无法从根本上解决问题,队列长度受限于资源,不能无限制增加,增加队列长度也增加了报文的平均延迟和抖动,在尾丢弃发生前,使不同TCP连接的报文在不同时刻被丢弃,则各个TCP连接的流量震荡就不会同步。

二.RED(随机早期检测)

在这里插入图片描述
RED(随机早期检测)可以有效防止TCP全局同步。其做法是在队列满之前就对已入队的报文进行随机丢弃,RED的特点在于“早期”和“随机”,这使得不同的流量在不同的时刻以“无规律”的方式丢弃,从而有效避免了所有的TCP连接发生同步震荡。

在这里插入图片描述

  • Low-Limit:最低丢弃门限,平均队列长度超过门限时,RED开始丢弃报文,值越低,队列越早开始丢弃报文

  • High-Limit:最高丢弃门限,平均队列长度超过此门限时,RED将丢弃所有到来的报文。

  • Pmax:最大丢弃概率,即RED丢弃报文条件下报文被丢弃的最大概率,这个值通常不为100%。

  • 当前平均队列长度小于Low-Limit时,不丢弃报文

  • 当前平均队列长度超过High-Limit时,丢弃所有到来的报文

  • 当前平均队列长度在Low-Limit和High-Limit之间时,开始随机丢弃到来的报文。

三.WRED(加权随机早期检测)

RED很好地解决了TCP全局同步和“饿死”等问题,但由于不能感知业务类型,对报文的丢弃不分轻重稳急,因此并没有解决重要和紧急报文被丢弃的问题。WRED(加权随机早期检测)它允许不同优先级的报文配置不同的RED参数,从而保证了不同重要程度的报文获得不同的服务,可以DSCP和IP Precedence参数。
在这里插入图片描述

  • WRED可以对每个优先级分别设定最低丢弃门限、最高丢弃门限和最大丢弃概率。
  • 最低丢弃门限越小意味着该队列的报文越早被丢弃,在其他条件相同时总体被丢弃的报文就越多。
    在这里插入图片描述
  • 对AF类型的报文,每一队报文有三个丢弃优先级,可以分别设定其对应不同的底限,从而体现出在丢包概率上的差异。
  • EF类型的报文应该保证其具有最小的丢包概率和区间

猜你喜欢

转载自blog.csdn.net/wll1228/article/details/106442871
RED