在帧中继接口上,可以使用通用的QoS服务为用户提供接口上的流量监管、流量整形、拥塞管理、拥塞避免等服务。除此之外,帧中继网络还拥有自己的QoS服务机制,包括帧中继流量整形、帧中继流量监管、帧中继拥塞管理、帧中继DE(Discard Eligibility)规则列表、帧中继队列管理等。
与通用的QoS相比,帧中继QoS能够在接口的每条虚电路上提供QoS服务,而通用QoS只能在整个接口上提供QoS服务,因此帧中继QoS能够为用户提供更灵活的服务。
图1 帧中继QoS应用示意图
下面列出了对帧中继(FR,Frame Relay)进行控制的一些重要参数:
l 允许的承诺信息速率(CIR ALLOW,Committed Information Rate ALLOW):FR正常情况下可以提供的传送速率。网络不拥塞时,可以保证用户以此速率传送数据。
l 承诺信息速率(CIR,Committed Information Rate):虚电路可以提供的最小传送速率。即使网络拥塞,也可以保证用户以此速率传送数据。
l 承诺突发尺寸(CBS,Committed Burst Size):帧中继网络承诺的在Tc时间内传送的包流量。在网络拥塞时,帧中继网络保证这部分可以成功地传送。
l 超出突发尺寸(EBS,Excess Burst Size):在Tc时间内,帧中继网络可以超过承诺突发尺寸的最大值。在网络拥塞时,这部分流量将被首先丢弃。因此,帧中继网络不保证这部分流量能被成功地传送。
l 帧中继流量整形的作用
帧中继流量整形(FRTS,Frame Relay Traffic Shaping)能够限制从某一虚电路发出的报文流量和突发报文流量,使这类报文能够以比较均匀的速度向外发送。
在帧中继网络中,如果不同网段的带宽不匹配,往往会在网段的交界处产生瓶颈。如图2所示,如果Router B以128Kbps的速率向Router A发送报文,而Router A的接口速率最大只能达到64Kbps,这时就会在帧中继网络与Router A的连接处产生瓶颈,从而发生拥塞,导致数据无法正常传送。但是,如果在Router B的出接口Serial2/0应用帧中继流量整形,可以使它以相对比较均匀的速率64Kbps发送报文,从而避免网络拥塞的发生。即使网络发生拥塞,Router B仍能够以32Kbps的速率发送报文。
帧中继流量整形应用在设备的输出接口,它可以向用户提供CIR ALLOW、CIR、CBS、EBS等参数。帧中继虚电路能够以CIR ALLOW的速率发送报文。帧中继流量整形还允许虚电路在突发情况下以超过CIR ALLOW的速率发送报文。
l 帧中继流量整形的工作原理
帧中继流量整形是用令牌桶算法实现的,根据实际的算法原理对协议中相关参数的含义进行了相应的修改。令牌桶原理如图3所示。
令牌桶原理是:需要进行流量控制的报文在发送前进入令牌桶中进行处理。如果令牌桶中有足够的令牌可以用来发送报文,则允许报文通过,即报文被正常发送。如果令牌桶中的令牌数不满足报文发送条件,则报文会放入帧中继类队列(在帧中继流量整形中,帧中继类队列即为FRTS队列),等令牌桶中有足够的令牌再从帧中继类队列中取报文发送。这样,就可以对某类报文的流量进行控制。令牌的单位为bit。
协议规定的相关参数和实际帧中继流量整形原理参数的对应关系如下:
l CBS与EBS的和为令牌桶的大小;
l CIR ALLOW为每秒向令牌桶中添加的令牌数。
帧中继流量整形方案中为了提高效率,提出了动态Tc的概念。Tc参数的大小在10毫秒到100毫秒之间,可根据每次发送的报文大小进行动态调节,Tc=size of packet/CIR。即无论待发送报文大小为多少(小于1500字节),设备都会在当前计算出的Tc时间内,将所需要的全部令牌分发给当前报文。
图4 Tc与CIR关系示意图
例如,发送一个800字节的报文,需要800×8=6400bit的令牌。设CIR为64000bps,则向令牌桶中添加发送该报文令牌需要的时间为6400/64000=0.1s,即对于该报文来说Tc为100ms。100ms之内令牌桶中添加了6400bit的令牌,该报文即被送出。特殊情况下,此时如果CIR为8000bps,则该报文的令牌时间为6400/8000 = 800ms>100ms,但是由于Tc参数大小被定义在10ms到100ms之间滑动,此时Tc取其上限值为100ms,而不是计算得到的800ms。同样的,如果此时CIR为1024000bps,则该报文的令牌时间为6400/1024000=6.25ms<10ms,但是由于Tc参数大小被定义在10ms到100ms之间滑动,所以该报文的Tc取其下限值10ms。
由于CBS与EBS的和是令牌桶的大小,同时设备是一次性分配令牌给待发送报文,为了使令牌桶中的令牌能够满足任何大小报文的发送,特别是大报文的发送,比如1500byte的报文,该报文发送需要1500×8=12Kbit的令牌。故CBS不得小于15Kbit,同时建议用户配置CBS的大小等同CIR的大小。
按照标准协议中规定,若Tc=20ms,CIR为64000bps,则每个Tc时间内只能添加0.02×64000=1280bit的令牌。如发送长度为800字节的报文需要5个Tc,即添加5次令牌才能将该报文发送出去。与标准协议的实现方式相比,此方案在一个动态Tc中只需添加一次令牌就可将该报文发送出,大大提高了工作效率。
当网络发生拥塞时,如果帧中继交换设备的出接口配置了拥塞管理功能,它会通知设备网络发生了拥塞。设备接收到了网络拥塞的通知后,会使发送速率逐渐下降到CIR,以缓解网络的拥塞状况,此时用户仍然能够以CIR的速率发送数据。此后如果设备在一定时间内没有再收到网络拥塞的通知,发送速率又会逐渐由CIR上升回CIR ALLOW。
如图5所示,设置帧中继流量整形参数分别为:CIR ALLOW=64Kbps,CIR=32Kbps,CBS=64000bit,EBS=64000bit,令牌桶的大小为128000,在4s之前令牌桶添加令牌的速率为64Kbps,虚电路以64Kbps的速率发送报文。当在4s时,设备收到了带有BECN标志位的帧中继报文,表明网络发生拥塞,令牌桶添加令牌的速率下降为CIR 32Kbps,虚电路以32Kbps的速率发送报文。
帧中继流量监管可以对每个虚电路上进入网络的流量进行监督,限制流量在一个允许的范围之内。若某条虚电路的报文流量超过了用户设置的范围,设备会采取丢弃报文等措施,以保护网络资源。
如图6所示,用户端设备Router A以192Kbps的速率向交换端设备Router B发送报文,但设备Router B希望只为设备Router A提供64Kbps的带宽。这时就需要在设备Router B的DCE端配置帧中继流量监管。
帧中继流量监管只能应用于设备的DCE接口上,它可以对从DTE端发送来的报文流量进行监视。当报文流量小于CBS时,报文可以正常发送,设备对报文不做处理;当报文流量大于CBS并小于EBS与CBS之和时,报文可以正常发送,但设备将把流量大于CBS的报文的帧中继报文头中的DE标志位置为1;当报文流量大于CBS+EBS时,设备将以CBS+EBS的流量进行发送,对超过CBS+EBS的流量进行丢弃,对于超过CBS的流量,设备将把帧中继报文头中的DE标志位置为1。
如图7所示,设置帧中继流量监管参数分别为:CIR ALLOW=64kbps,CBS=8000bit,EBS=8000bit,时间间隔Tc=CBS/CIR ALLOW=125ms。在0~250ms时,DTE以速率64Kbps向DCE发送报文,DCE对这部分报文正常转发,转发的速率为64Kbps。在250~500ms时,DTE以速率100Kbps向DCE发送报文,DCE的转发速率为100Kbps,但是超过CBS流量报文的DE标志位被置为1。在500ms以后,DTE以速率150Kbps向DCE发送报文,DCE的转发速率为128Kbps,超过CBS但小于CBS+EBS流量报文的DE标志位被置为1,超过CBS+EBS流量的报文被直接丢弃。
除了帧中继虚电路队列之外,帧中继接口也拥有接口队列。帧中继流量整形没有使能的情况下,只有帧中继接口队列起作用,即预先配置的帧中继PVC队列只有在帧中继流量整形使能的情况下才能生效。
虚电路队列和接口队列的关系如图8所示。
在帧中继接口上能够使用的队列有:
l FIFO:First In First Out Queuing,先进先出队列
l PQ:Priority Queuing,优先队列
l CQ:Custom Queuing,定制队列
l WFQ:Weighted Fair Queuing,加权公平队列
l CBQ:Class Based Queuing,基于类的队列
l RTPQ:Real-time Transport Protocol Priority Queuing,实时传输协议优先队列
l PVC PQ:PVC Priority Queuing,虚电路优先级队列
其中,FIFO、PQ、CQ、WFQ、CBQ和RTPQ队列属于通用的队列。
PVC PQ队列被应用于帧中继接口之上,它拥有四种队列类型:top、middle、normal、bottom,队列优先级依次降低。同一虚电路发送的报文只能入PVC PQ中的一种队列,不同虚电路上的报文根据虚电路所处的优先级入接口下的PVC PQ队列。PVC PQ的队列发送策略是:按照队列优先级,在发送完高优先级队列中的报文之后,再发送低优先级队列中的报文。
帧中继虚电路的队列包括:FIFO、PQ、CQ、WFQ、CBQ和RTPQ。RTPQ可以与其它队列共存,而其它队列相互之间不能共存。
当接口实行帧中继流量整形时,接口队列类型只能是:FIFO、RTPQ或PVC PQ。
帧中继拥塞管理可以在网络发生拥塞时对帧中继报文进行处理:丢弃DE标志位为1的报文;同时发送拥塞通知至网络上的其他设备,告知其发生了拥塞。
帧中继拥塞管理应用于帧中继交换设备的出接口上。当拥塞没有发生时,对于转发的帧中继报文,设备将正常转发,不作特殊处理。当拥塞发生时,DE标志位为1的报文将会被丢弃;对于转发的正向报文,设备把帧中继报文头的FECN标志位置为1;对于同一虚电路上反方向发送的报文,设备把帧中继报文头的BECN标志位置为1。若在一段时间内没有反方向的报文发送,设备将自动发送BECN标志位为1的Q.922A Test Reponse报文给主叫DTE。
在帧中继网络中,DE标志位为1的报文会在拥塞发生时被优先丢弃。DE规则列表应用于设备的帧中继虚电路上,每个规则列表内包含多条DE规则。虚电路中发送的报文如果符合DE规则列表中的规则,则它的DE标志位将会被置1,这类报文在网络发生拥塞时将会被优先丢弃。
目前FR QoS中只有WFQ和CBWFQ(Class Based Weighted Fair Queuing,基于类的加权公平队列)中的AF、BE队列支持WRED,CBWFQ的EF队列暂不支持WRED。