CBQ(ClassBasedQueuingCBQ,中文名称:基于类的队列)CBQ是一种基于类的算法,根据流量特征处理数据包,并确保一定的传输速率。接收的数据包根据变量如差分服务代码点(DSCP:DifferentiatedServicesCodePoint)中的IP协议头、IP地址、应用程序或协议、URL或其它信息等进行分类。每类流量被分配到指定的FIFO(FirstInFirstOut)队列,其中每个队列的使用由部分路由器总带宽决定。如果队列为空闲,带宽便可以供其它队列使用。同时CBQ也是一种QoS方案,用于识别不同类型的流量并根据预置的参数对流量进行排队。
原理
CBQ(ClassBasedQueuing,基于类的队列)CBQ首先根据IP优先级或者DSCP、输入接口、IP报文的五元组等规则来对报文进行分类;对于MPLS网络的LSR,主要是根据EXP域值进行分类。然后让不同类别的报文进入不同的队列。对于不匹配任何类别的报文,报文被送入系统定义的缺省类。
CBQ包括一个低时延队列LLQ(LowLatencyQueuing,低时延队列),用来支撑EF(ExpeditedForwaring,快速转发)类业务,被绝对优先发送,保证时延。进入EF的报文在接口没有发生拥塞的时候(此时所有队列中都没有报文),所有属于EF的报文都可以被发送。在接口发生拥塞的时候(队列中有报文时),进入EF的报文被限速,超出规定流量的报文将被丢弃。
另外有64个BQ队列(BandwidthQueuing,带宽保证队列),用来支撑AF(AssuredForwarding,确保转发)类业务,可以保证每一个队列的带宽及可控的时延。系统调度报文出队列的时候,按用户为各类报文设定的带宽将报文出队发送。这种队列技术应用了先进的队列调度算法,可以实...
(全文)