FIFO队列原理简述 拥塞避免原理
扫描二维码
随时随地手机看文章
拥塞管理是指网络在发生拥塞时,如何进行管理和控制。FIFO队列不对报文进行分类,按报文到达接口的先后顺序让报文进入队列,采用尽力而为的转发模式,PQ队列是针对关键业务应用设计的。
虽然流量分类几乎可以根据报文的任何字段进行,但是流量分类标记则一般只对802.1Q 以太网帧的CoS域、IP报文的ToS域、MPLS报文的EXP域进行标记。流量的标记主要的目的就是让其他处理此报文的应用系统或设备知道该报文的类别,并根据这种类别对报文进行一些事先约定了的处理。
例如,在网络的边界做如下分类和标记:
1)所有VoIP数据报文聚合为EF业务类,将报文的IP优先级标记为5,或者将DSCP值标记为EF;
2)所有VoIP控制报文聚合AF业务类,将报文的IP优先级标记为4,或者将DSCP值标记为AF31。
当报文在网络边界被标记分类之后,在网络的中间节点,就可以根据标记,对不同类别的流量给予差别服务了。例如:对上述例子中的EF类业务保证时延和减少抖动,同时进行流量监管;对AF业务类在网络拥塞时仍然保证一定的带宽,等等。
拥塞管理技术原理 1 拥塞管理基本概念在计算机数据通信中,通信信道是被多个计算机共享的,并且,广域网的带宽通常要比局域网的带宽小,这样,当一个局域网的计算机向另一个局域网的计算机发送数据时,由于广域网的带宽小于局域网的带宽,数据将不可能按局域网发送的速度在广域网上传输。此时,处在局域网和广域网之间的路由器将不能发送一些报文,即网络发生了拥塞。
如下图所示,当公司分支1向公司总部以100M的速度发送数据时,将会使Router2的串口S0/1发生拥塞。
图1 实际应用中的拥塞实例
拥塞管理是指网络在发生拥塞时,如何进行管理和控制。处理的方法是使用队列技术。将所有要从一个接口发出的报文进入多个队列,按照各个队列的优先级进行处理。不同的队列算法用来解决不同的问题,并产生不同的效果。常用的队列技术有FIFO、PQ、CQ、WFQ、CBWFQ等,下文逐一介绍这些常用队列技术的基本原理。
2 FIFO队列原理简述FIFO(First In First Out,先进先出)队列示意图如下所示:
图2 FIFO队列示意图
FIFO队列不对报文进行分类,当报文进入接口的速度大于接口能发送的速度时,FIFO按报文到达接口的先后顺序让报文进入队列,同时,FIFO在队列的出口让报文按进队的顺序出队,先进的报文将先出队,后进的报文将后出队。
FIFO队列具有处理简单,开销小的优点。但FIFO不区分报文类型,采用尽力而为的转发模式,使对时间敏感的实时应用(如VOIP)的延迟得不到保证,关键业务的带宽也不能得到保证。
3 PQ原理简述PQ(Priority Queuing,优先队列)示意图如下所示:
图3 PQ队列示意图
PQ队列是针对关键业务应用设计的。关键业务有一个重要特点,需要在拥塞发生时要求优先获得服务以减少响应的延迟。PQ可以根据网络协议(如IP、IPX)、数据流入接口、报文长短、IP报文的ToS、五元组(协议ID、源IP地址、目的IP地址、源端口号、目的端口号)等条件进行分类,对于MPLS网络,则根据MPLS报文EXP域值进行分类。最终将所有报文分成最多4类,分别属于PQ的4个队列中的一个,然后,按报文所属类别将报文送入相应的队列。
PQ的4个队列分别为高优先队列、中优先队列、正常优先队列和低优先队列,它们的优先级依次降低。在报文出队的时候,PQ首先让高优先队列中的报文出队并发送,直到高优先队列中的报文发送完,然后发送中优先队列中的报文,同样,直到发送完,然后是正常优先队列和低优先队列。这样,分类时属于较高优先级队列的报文将会得到优先发送,而较低优先级的报文将会在发生拥塞时被较高优先级的报文抢占。这样会使得实时业务(如VoIP)的报文能够得到优先处理,非实时业务(如E-Mail)的报文在网络处理完关键业务后的空闲间隙得到处理,既保证了实时业务的优先,又充分利用了网络资源。
PQ的缺点是,当较高优先级队列中总有报文存在时,则低优先级队列中的报文将一直得不到服务,出现队列“饿死”现象。