新闻动态
News information
奥斯科培训中心
为政企客户提供专业IT高端技术培训解决方案
第二十四讲 拥塞管理与拥塞避免 下
219、队列调度算法:FIFO,PQ,WRR,WFQ,CBQ
FIFO :
FIFO队列不对报文进行分类,当报文进入接口的速度大于出接口能发送的速度时,FIFO按报文到达接口的先后顺序让报文进入队列,同时,FIFO在队列的出口让报文按进队的顺序出队,先进的报文将先出队,后进的报文将后出队。
PQ:
PQ队列是针对关键业务应用设计的,PQ调度机制:分为4个队列,分别为高优先队列、中优先队列、正常优先队列和低优先队列,它们的优先级依次降低。在报文出队的时候,PQ会首先让高优先队列中的报文出队并发送,直到高优先队列中的报文发送完,然后发送中优先队列中的报文,同样,直到发送完,然后是正常优先队列和低优先队列。如此的话,将关键业务的报文放入较高优先级的队列,将非关键业务(如E-Mail)的报文放入较低优先级的队列,可以保证关键业务的报文被优先传送,非关键业务的报文在处理关键业务数据的空闲间隙被传送。
如果高优先级队列中持续有报文等待被发送,那么后面较低优先级队列中的报文就迟迟不能得到发送,出现“饿死”现象。
WRR:
WRR(Weight Round Robin)加权循环调度在RR(Round Robin)调度的基础上演变而来,根据每个队列的权重来轮流调度各队列中的报文流。
优点:避免了PQ调度的“饿死”现象。
缺点:基于报文个数来调度,容易出现包长尺寸不同的报文出现不平等调度;低时延业务得不到及时调度。
WFQ 加权公平队列:
在出队的时候,WFQ按流的优先级来来分配每个流应占有的出口带宽。优先级的数值越小,所得的带宽越少。优先级的数值越大,所得的带宽越多。这样就保证了相同优先级业务之间的公平,体现了不同优先级业务之间的权值。
PQ+WFQ:
重要的协议报文以及有低时延需求的业务报文应放入PQ调度队列中,得到优先调度的机会,其他报文则可放入以WFQ方式调度的各队列中。
CBQ:
基于类的加权公平队列是对WFQ功能的扩展,为用户提供了自定义类的支持。CBQ首先根据IP优先级或者DSCP优先级、入接口、IP报文的五元组等规则来对报文进行分类,然后让不同类别的报文进入不同的队列。对于不匹配任何类别的报文,会送入系统定义的缺省类。
CBQ提供三类队列:
加速转发队列(EF):满足低时延业务。
EF队列拥有绝对优先级,仅当EF队列中的报文调度完毕后,才会调度其他队列中的报文。
确保转发队列(AF):满足需要带宽保证的关键数据业务。
尽力而为队列(BE):满足不需要严格QoS保证的尽力发送业务。
当报文不匹配用户设定的所有类别时,报文会被送入系统定义的缺省BE(Best Effort,尽力传送)类。BE队列使用接口剩余带宽和WFQ调度方式进行发送。
220、队列调度算法的比较:
221、队列被装满后传统处理方式:
由于每个队列长度有限,当某一队列已经被装满时,传统的处理方法会将后续向该队列发送的报文全部丢弃,直至拥塞解除,这种处理方式称为尾丢弃(Tail Drop)。
222、TCP全局同步:
如上图:当网络正常情况下,PC1,PC2,PC3与PC4建立TCP链接,TCP的窗口大小为最大。当R1连PC4的接口发生拥塞尾丢包时,TCP感应到链路的拥塞。就将窗口大小改为原来的1/2。当链路恢复正常,TCP感应到链路不拥塞了,马上又把窗口大小还原,可想而知链路就拥塞了,就这样周而复始。
223、解决办法:RED
为避免TCP全局同步,可在队列未装满时先随机丢弃一部分报文。通过预先降低一部分TCP连接的传输速率来尽可能延缓TCP全局同步的到来。这种预先随机丢弃报文的行为被称为早期随机检测(RED)。
RED为每个队列的长度都设定了阈值门限,并规定:
当队列的长度小于低门限时,不丢弃报文。
当队列的长度大于高门限时,丢弃所有收到的报文。
当队列的长度在低门限和高门限之间时,开始随机丢弃到来的报文。
224、解决办法:WRED技术
WRED技术可以通过对不同优先级数据包或队列设置相应的丢弃策略,以实现对不同流量进行区分丢弃。