设备支持的拥塞避免和拥塞管理特性
为了解决网络拥塞,可以通过拥塞避免在网络出现拥塞时主动丢弃一些报文,解除网络过载;另外,为了使用户得到更好的服务质量,可以通过拥塞管理对时延敏感业务优先调度,使得这些业务得到更高的QoS服务。两者在配置上属于并列关系。
拥塞避免
设备支持以下拥塞避免功能:
尾部丢弃
传统的丢弃策略采用尾部丢弃的方法,同等对待所有报文,不对报文进行服务等级的区分。在拥塞发生时,队列尾部的数据报文将被丢弃,直到拥塞解除。
这种丢弃策略会引起TCP全局同步现象。所谓TCP全局同步现象,是指当多个队列同时丢弃多个TCP连接报文时,将造成一些TCP连接同时进入拥塞避免和慢启动状态,降低流量以解除拥塞;而后这些TCP连接又会在某个时刻同时出现流量高峰。如此反复,使网络流量忽大忽小,影响链路利用率。
SRED
只有S2700-52P-EI、S2700-52P-PWR-EI、S2710SI、S3700SI、S3700EI支持SRED。
为避免TCP全局同步现象,出现了RED(Random Early Detection)技术。RED通过随机地丢弃数据报文,让多个TCP连接不同时降低发送速度,从而避免了TCP的全局同步现象。使TCP速率及网络流量都趋于稳定。
基于RED技术,设备上实现了SRED(Simple Random Early Detection)。在接口出队列上,SRED根据报文的优先级将其区分为红色、黄色,并分别为红色和黄色的报文设定起始丢包点和丢包率。
根据SRED,设备按照一定的丢弃概率主动丢弃队列中的报文,从而调整从接口输出的流量速率。
拥塞管理
S2700SI不支持拥塞管理。
除S2700-52P-EI和S2700-52P-PWR-EI之外的其它S2700EI不支持WDRR和PQ+WDRR调度。
PQ调度
优先队列PQ(Priority Queuing)调度,就是严格按照队列优先级的高低顺序进行调度。只有高优先级队列中的报文全部调度完毕后,低优先级队列才有调度机会。
采用PQ调度方式,将时延敏感业务放入高优先级队列,将其它业务放入低优先级队列,从而确保时延敏感业务被优先调度。
PQ调度的缺点是:拥塞发生时,如果高优先级队列中长时间有报文存在,那么低优先级队列中的报文就会由于得不到服务而“饿死”。
WRR调度
WRR(Weighted Round Robin)调度即加权轮询调度。WRR在队列之间进行轮流调度,保证每个队列都得到一定的服务时间。
以接口有8个输出队列为例,WRR为每个队列配置一个加权值(依次为w7、w6、w5、w4、w3、w2、w1、w0),加权值表示获取资源的比重。举个更具体的例子,一个100M的接口,配置它的WRR算法的加权值为50、50、30、30、10、10、10、10(依次对应w7、w6、w5、w4、w3、w2、w1、w0),这样可以保证最低优先级队列至少获得5M带宽,避免了采用PQ调度时低优先级队列中的报文可能长时间得不到服务的缺点。
WRR还有一个优点:虽然多个队列的调度是轮流进行的,但对每个队列不是固定地分配服务时间片,也就是说如果某个队列为空,马上换到下一个队列进行调度,这样带宽资源可以得到充分的利用。
WRR调度有两个缺点:
WRR调度按照报文个数进行调度,而用户一般关心的是带宽。当每个队列的平均报文长度相等或已知时,通过配置WRR权重,用户能够获得想要的带宽;但是,当队列的平均报文长度变化时,用户就不能通过配置WRR权重获取想要的带宽。
时延敏感业务(如语音)得不到及时调度。
WDRR调度
加权赤字轮询调度WDRR(Weighted Deficit Round Robin)调度实现原理与WRR调度基本相同。
WDRR调度与WRR调度的区别是:WRR调度是按照报文个数进行调度,而WDRR是按照报文长度进行调度。如果报文长度超过了队列的调度能力,WDRR调度允许出现负权重,以保证长报文也能够得到调度。但下次轮询调度时该队列将不会被调度,直到权重为正,该队列才会参与WDRR调度。
WDRR调度避免了采用PQ调度时低优先级队列中的报文可能长时间得不到服务的缺点,也避免了各队列报文长度不等或变化较大时,WRR调度不能按配置比例分配带宽资源的缺点。
但是,WDRR调度也具有时延敏感业务(如语音)得不到及时调度的缺点。
当所有参与WDRR调度的队列的权重相同时,WDRR调度与DRR调度效果相同。
PQ+WRR/PQ+WDRR调度
PQ调度和WRR/WDRR调度各有优缺点。单纯采用PQ调度时,低优先级队列中的报文长期得不到带宽,而单纯采用WRR/WDRR调度时低延时需求业务得不到优先调度,PQ+WRR/PQ+WDRR调度方式则将前两种调度方式结合起来,不仅能发挥两种调度的优势,而且能克服两种调度各自的缺点。
用户可以借助PQ+WRR/PQ+WDRR调度方式,将重要的协议报文和时延敏感业务报文放入采用PQ调度的队列中,并为该队列分配指定带宽;而将其他报文按各自的优先级放入采用WRR/WDRR调度的各队列中,按照权值对各队列进行循环调度。