背景技术
在目前的网络通信中,IP网络应用由单一数据业务扩展到包括话音、视频在内的实时通信业务。随着IPTV,视频监控等应用的需求不断增加,这种变化越来越明显。这些视频实时通信业务的增长对于网络设备也提出了更高的要求。在视频通信中,VBR(可变比特率)视频有利于保持一定的视频质量,易于对用户提供高质量的视频,但VBR在网络上传输时流量变化大、突发性强。VBR通信量的输出速率是一个随机的波动过程,网络结点通常要根据VBR通信量的峰值速率分配带宽,预留远大于实际传输所需要的带宽(有效带宽)来达到这些VBR通信量的QoS(服务质量)要求。对VBR通信量的这种带宽分配方式导致网络资源被极大浪费,而且VBR通信量仍然存在着很大的速率波动,这是造成网络拥塞的一个主要原因。因此,在进行网络接入时,通常都要对通信量进行整形,改变它的输出特性,降低峰值速率和减小输出速率的波动,提高网络资源的利用率。
通信量整形通常用于降低输出流的突发度,平滑输出速率。通信量整形器通常应用在边缘网络的网络接入点,或者是源通信量产生后的下一结点。通信量整形器不仅可以对源通信量进行整形,还可以为接纳控制算法提供相应的通信量输出参数,例如平均带宽、最大突发度等。在文献[2]中描述了如何提供和利用通信量整形器的参数进行有效的接纳控制和通信量调度。
通信量整形器包括一个速率控制算法和一个数据缓冲。速率控制算法控制缓冲区的输出速率,缓冲区的输入由源通信量或者一个成型器(regulator)给出。文献[3,4,5]提出和讨论了用于通信量整形的几种速率控制算法,其中最通用的是多漏桶MLB(multiple leaky buckets)整形算法,它既可以在网络结点也可以在端到端系统中实现。
最常用的基于缓冲的确定性通信量控制算法是多漏桶算法(Multiple Leaky Bucket MLB),MLB中使用最多的是DLB(Dualleaky buckets)模型。采用DLB进行通信量整形的流程如下:
如图1所示,图1中包含一个成型器(regulator)和一个整形器(shaper),其中C(t)是源的输入速率,R(t)是成型器的输出速率,S(t)是速率整形器输出速率。Br和Bs分别是成型器和整形器的令牌(token)缓冲区,令牌缓冲区的充满程度可以用来反映输出通信量的突发度,Pr和Ps分别是成型器和整形器设置的最大允许的输出速率,即峰值速率,DLB的含义是指输出速率同时受令牌缓冲区和峰值速率的双重限制。Bd是整形器用于存储转发时所用的数据缓冲,整形器的最大可允许时延Ds与Bd的大小有关。
成型器用于描述和限制输入流,只有符合成型器模型(r′(t),Br,Pr)的流才会被允许通过,它主要用于通信量成型和网络的接纳控制。整形器是对输入的流进行通信量控制,根据设定的服务参数控制输出流的速率,主要的目的是平滑输入流的速率,同时保证数据无丢失和最大引入时等限制条件。成型器和整形器都采用DLB模型,区别在于成型器中没有数据缓冲,因此成型器会造成输入数据丢失。而由于整形器引入了数据缓冲,所以在输出流中引入了时延。在数据缓冲中的数据包的时延是由数据缓冲的充满程度和令牌输出速率之间的关系决定的。通常的DLB模型并没有考虑数据缓冲的充满程度和令牌输出速率之间的关系,所以引入的时延变化会比较大,最大时延的情况为数据缓冲中充满了数据,而令牌输出速率为r的情况;Ds=Bd/r;最小时延的情况为数据缓冲中没有数据,而令牌输出速率为Ps最大的情况;这时时延为0;这种时延变化就是时延抖动。
传统的通信量整形方法主要使用DLB模型,DLB模型在面对VBR这种突发性较大的视频流时,不能满足要求。通常分为两类:一类是应用于数据无丢失和给定最大时延前提下的确定性算法;另一类是应用于对时延敏感,但可以容忍少量数据丢失的基于统计的非确定性算法。其缺陷主要表现在以下几点:
(1)传统的DLB整形算法根据预先设定的平均输入速率、峰值速率和最大突发度等参数设计整形器的数据缓冲的大小和令牌的输出速率。在实际应用中,源数据流的通信模型参数很难被精确测量,而且许多源数据流的平均输出速率在传输过程中是一个长期的波动过程。例如VBR视频流,输出的速率和原始视频的复杂程度有关,随着视频场景的变化,瞬时速率和平均速率都会产生变化。对于这样的视频流,传统的DLB整形算法不能自适应的调整这些参数,对于现在的大量视频应用的环境显得不能很好的适应。而本文提出的JCS算法可以自适应的动态调整令牌的输入速率。
(2)对于像VBR视频这样的数据流可能造成很大的突发性。传统的DLB算法采取的是预先设定令牌输入速率,最大突发度等参数的方法。如果在某一时刻数据流的突发度超过了所设置参数的大小,那么就会造成数据丢失。这对于某些应用来说可能是灾难性的。
(3)在DLB整形算法中需要使用数据缓冲对突发数据进行缓冲,以达到平滑数据流的作用。因此,对于具有突发性的源通信量在整形过程中每个数据分组(或者每段分组)的时延是不相等的。一般情况下,突发较大的部分在整形后的时延也较大,而突发较小的部分则时延会很小。由于每个分组在整形过程中经历的时延不相等,这样就导致在整形过程中引入了时延抖动。在这种情况下,传统的DLB整形算法对于像VBR视频等这些对时延抖动特别敏感的实时应用将是无法使用的。
具体实施方式
本方法的主要研究对象是针对VBR流的,VBR流具有明显的突发性,并且在长期的过程中,平均速率会产生波动,对于这样的源通信量无法使用单一的DLB模型进行控制,而且DLB模型的整形算法会引入较大的时延抖动;由于视频流对于时延抖动的敏感性,所以传统的DLB整形模型不能满足VBR视频流的应用情况。因此本文提出了一种基于抖动约束的整形方法(Jitter-constrained Shaping,简称JCS方法(算法)),JCS方法的目标是研究在有限资源下进行速率整形时应该如何设计速率调整策略才能满足时延抖动的约束条件,同时又能达到平滑数据流的效果和数据无丢失等限定条件。
JCS方法的主要思想是利用数据缓冲区的充满程度和令牌输出速率的关系,进而估计出当前缓冲区中数据的缓冲时延,然后通过指数加权平均来得出分组在经过缓冲后的平均时延,根据当前分组的时延和平均时延的差值计算出分组的时延抖动值。然后根据数据缓冲长度的变化和抖动值的变化对令牌速率进行调整,使分组在数据缓冲中引入的时延尽量的平均,抖动值尽量的小。令牌速率的调整方向一般是适应输入速率的变化趋向,这样既可以在平滑VBR流的情况下,又可以降低分组的时延抖动。调整后的令牌输入速率反映了该时段的平均速率,可以用来计算有效带宽。为了防止数据缓冲区溢出,造成数据丢失,还要注意控制数据缓冲的充满程度。在这一节中,首先给出JCS方法的理论基础,然后给出其具体实现。
对于一个DLB整形器,假定t时刻的输入通信量的速率是R(t),输出通信量的速率是S(t),令牌缓冲区长度为Bs,数据缓冲区长度为Bd,令牌填充速度为r(t),最大输出速率为Ps(Ps>r(t))。DLB整形器的工作方式是:初始时,令牌缓冲区为空,数据缓冲区为空。随后令牌以r(t)速率进入令牌缓冲区,令牌缓冲区满时,后续的令牌丢失。通信量以R(t)进入数据缓冲区,数据缓冲区和令牌缓冲区都是非空时进行分组输出,每输出一段分组,必须对等地从令牌缓冲区中移走具有相同比特的令牌,从缓冲区中移走数据的速率是Ps。
DLB整形器的实际输出速率S(t)被数据缓冲区和令牌缓冲区的充满程度以及移走数据的速率所共同决定。当数据缓冲和令牌缓冲都为空时,要求两个缓冲区都到达一个分组后,才能输出下一个分组,所以S(t)由数据的输入速率和令牌输入速率的最小值决定,即S(t)=min{R(t),r(t)};当数据缓冲和令牌缓冲都为非空时,分组输出不需要等待缓冲区的输入,S(t)由移走分组的最大速率决定,即S(t)=Ps;数据缓冲不为空,而令牌缓冲为空时,分组需要等待令牌缓冲区中输入足够令牌才可以以速率Ps进行输出,根据Ps>r(t)的约定,可知S(t)=r(t);令牌缓冲不为空,而数据缓冲为空时,只要输入一个分组,就可以按照Ps速率进行输出,则S(t)=min{R(t),Ps}。所以对于带有数据缓冲区的DLB模型,速率整形器的输出速率S(t)有以下公式:
S(t)=min{R(t),r(t)};Lt=0,Bt=0;
=min{R(t),Ps}; Lt=0,Bt>0;
=r(t); Lt>0,Bt=0;
=Ps; Lt>0,Bt>0; (5)
这里Lt表示数据缓冲的长度,Bt表示令牌缓冲的长度;
由于引入了缓冲,经过DLB整形器输出的分组比未整形输出的分组增加了端到端的传输时延,增加的时延delay由分组进入缓冲区时,缓冲区内数据的长度Lt和分组被输出之前缓冲区的输出速率S(t)所决定。显然:delay=Lt/S(t);
在数据缓冲区不为空时,由公式(5)知min{S(t)}=r(t),则由Bd是数据缓冲区长度知,最大时延Ds=Bd/r(t)。由于VBR流的突发特性,在引入时延的同时也引入了时延抖动。时延抖动是通过当前的时延和平均时延的差值来计算的,在JCS方法中平均时延采用指数加权平均的方法:
delay_ave=delay_ave*(1-Wd)+delay*Wd;
其中Wd为可调整的权值。则源通信量分组在数据缓冲整形过程中引入的抖动值通过下式可得:
jitter=delay-delay_ave;
由公式(5)可知,在正常工作状态下如果保持数据缓冲区大于0和令牌缓冲区充满程度等于0的状态,可以产生恒定速率为r(t)的流,因此整形器的最佳工作状态应该是数据缓冲区非空和令牌缓冲区为空的情况。在这种情况下,如果输入流的速率大于令牌输出的速率,那么势必造成数据缓冲中数据的增加,而导致缓冲中的分组时延加大;反之,如果输入流的速率小于令牌输出的速率,造成时延减小。这种时延的变化正是抖动产生的原因。而由于VBR流的突发性,这种变化是其固有的特性。为了控制分组的时延抖动,就要控制缓冲区长度和令牌输出速率,使两者相匹配。
定义整形器的结构是(r(t),Bs,Ps,Bd),r(t)是令牌进入令牌缓冲的速率,Bs是令牌缓冲的最大长度,规定了整形器输出的最大突发度,Ps是缓冲区输出的最大允许速率,Bd是数据缓冲区的最大长度,我们使用(rt,Bt,Pt,Lt)来表示整形器在t时刻的工作状态,Bt表示令牌缓冲的充满程度,Lt表示数据缓冲的充满程度。rt表示令牌的输入速率,Pt表示输出流的峰值速率,一般大于最大输入速率。rt在工作过程中可以进行动态的调节。JCS方法的具体实现程序如图7所示。
在JCS方法中每隔一个时间片Δt,进行一次计算。每次计算出的时延通过指数加权平均来计算平均时延,然后通过时延和平均时延的差值计算出数据分组的抖动。在实现过程中,采用Ln来表示第n次检查时刻数据缓冲Lt的状态;用rn来表示第n次检查时刻令牌的输入速率rt;用Bn来表示第n次检查时刻令牌缓冲的状态Bt。具体执行过程如下:
每次首先检查数据缓冲的充满程度Ln和令牌缓冲中的状态Bn;如果数据缓冲的充满程度Ln=Ln-1;表明数据缓冲的长度没有变,说明现在流的速率比较平滑,数据缓冲中数据分组的时延相同,没有抖动产生,所以令牌的速率不需要调整;这时,如果Bn>0,则时延通过delay=Ln/ps来计算,如果Bn=0;则时延通过delay=Ln/rn来计算。如果Ln>Ln-1;表明数据缓冲的充满程度比上一个时间片增加。为了防止由于短期突发引起判断失误,这时再对令牌缓冲Bn检查,如果Bn不为0,则表明在上一个时间段输入数据小于以rn为平均输出速率的输出,因此数据缓冲区中的过多分组是由于短期突发引起,不应该进行调整;这时通过delay=Ln/ps计算时延和平均时延。如果Bn=0,说明是令牌输入速率过小,导致数据缓冲中的分组过多,时延增大。这时计算时延和抖动:delay=Ln/rn;jitter=delay-delay_ave;如果jitter满足要求则暂不做调整;如果jitter不满足要求,说明时延超过门限值;要对速率进行调整,调整的准则是:使抖动尽量为0,即时延保持不变。
为了能尽快的将流进行平滑,我们这里采取Ln-1/rn-1来代替delay_ave即:
所以应增加的速率Δr为:
如果Ln<Ln-1;表明数据缓冲的充满程度比上一个时间片减小,检查令牌缓冲Bn,如果Bn不为0,则表明令牌输出速率过大,导致数据缓冲中的分组时延减小;这时计算时延delay=Ln/ps;jitter=delay-delay_ave;这个时候肯定调整:调整的值为: 如果Bn=0,这时计算时延和抖动;delay=Ln/rn;jitter=delay-delay_ave;如果jitter满足要求则暂不做调整;如果jitter不满足要求,说明时延过小,超过门限值;要对速率进行调整,调整的值为:
下面来分析JCS方法在满足抖动约束的情况下,是否保持了数据的无丢失特性。当Ln>Ln-1;数据缓冲的充满程度比上一个时间片增加,Bn不为0时,根据前面的分析,在随后的一段时间里Ln不会增加,因而不会出现数据上溢。如果Bn为0,则令牌输入速率调整幅度随着Ln的增大而增大,当Ln接近BL时,rn逼近ps,因为数据输入的瞬时速率小于ps,所以缓冲区的有效数据长度不会再增长,缓冲区不会产生上溢,即满足数据无丢失的要求。
为了验证JCS方法对VBR流的平滑效果和经过整形后的抖动情况,在试验中采用3种过滤器对源数据流进行通信量整形,然后对比产生的通信速率图表和统计信息,比较最后的平滑效果。3种过滤器分别是:第1种,不进行任何整形,缓冲区大小为1个包的最大长度,缓冲区内数据以最大速率10Mbps的速率输出;第2种,基于DLB模型的速率整形器,采用确定的峰值速率和令牌速率进行控制;第3种,采用JCS方法的整形器,采用在线估计的峰值速率和自适应的令牌速率对缓冲区的输出进行控制。
(1)速率波动的比较
测试环境:源数据流是一段MPEG2的VBR视频流,平均速率约为6.7Mbps,连续突发数据可达500Kbps,对其进行3种整形器的过滤,各持续10分钟,每秒量度一次输出速率。初始时刻从接收到第1个数据包开始,初始的整形器参数定义来源于编码器的输出信息。图2、图3、图4是每种整形器在测试中持续10分钟的瞬时输出速率变化图,横坐标是时间,基本单位:秒,纵坐标是输出速率,基本单位:Mbps。
第1种情况是未整形的输出流,速率变化如图2所示;从图2可以看出,原始数据流的速率最大值可以达到10M左右,最小值在5M左右,而且速率变化较快,速率抖动明显;第2种情况是经过DLB整形后的输出流,整形器参数为(6.7Mbps,500KB,10Mbps),速率变化图如图3所示。从图中可以看出,速率最大值在8M左右,最小值接近6M,相比于原始数据流,整形后的流平滑了很多。第3种情况是JCS方法的输出流,初始参数为(6.7Mbps,500KB,10Mbps),速率变化图如图4所示;从图4可知,最大速率为7M多,最小值为6M左右,而且速率变化多发生在整形刚开始的时候,在经过一段时间之后,输出流已经变得相当平滑。
表1:三种情况下输出流的比较
类型 |
平均速率/Mbps |
最大速率 |
最小速率 |
未整形流 |
6.584 |
10.06 |
5.0 |
DLB算法 |
6.81 |
7.8 |
5.85 |
JCS方法 |
6.68 |
7.15 |
5.92 |
表1中记录了三种情况的下的平均速率,最大速率,最小速率的统计值。比较3种输出的通信量图和统计信息可知:3个输出流的平均速率基本相同,相差不到0.02%;速率波动可以采用速率标准差和最大、最小值量度,由表1可知,未加整形的原始流输出的速率波动最大,采用DLB整形后的流输出速率波动较小,而采用我们的方法的速率波动最小,而且经过JCS方法整形后的输出速率最接近源数据流的平均速率。
(2)时延抖动比较
在测试中分别记录了DLB整形算法和JCS方法的平均时延和最大时延,最小时延以及平均时延;统计信息见表2所示。时延方差反映了整个过程中时延的变化波动情况,即反映了抖动的大小。从表中可以得知,DLB算法和JCS方法之间的平均时延虽然相差不是很大,DLB整形算法为4.21ms,而JCS方法为3.18ms。但是他们之间的时延方差相差却很大,DLB算法的时延方差达到了271.4,而JCS方法的时延方差只有3.62,这充分说明了JCS方法的输出流的时延比较恒定,也就是说抖动值较小。为了能直观的比较两种方法的时延抖动,这里给出了试验过程中的抖动值变化,这里的抖动值是利用在算法过程中jitter=delay-delay_ave的公式计算的。从图5的抖动变化曲线可以看出,DLB算法的抖动变化比较大,大约在-3ms到3ms之间,而JCS方法的抖动值大约在-0.8到0.8之间。
表2:DLB算法和JCS方法的时延数据比较
类型 |
平均时延/ms |
最大时延/ms |
最小时延/ms |
时延方差 |
DLB算法 |
4.21 |
7.2 |
0.85 |
271.4 |
JCS方法 |
3.18 |
3.6 |
2.72 |
3.62 |
本发明的JCS方法主要是在烽火网络公司开发的S4600系列以太网交换机上的LC-48FE百兆线卡的交换芯片上实现的,交换芯片主要有以下几部分组成:
1)数据包解析器(Packet Parser):主要功能是对进来的数据包进行解析。
2)数据包的修改器(Packet Modifier):主要是用来对L3转发的数据包进行修改下一跳MAC等功能。
3)CPU管理接口控制器(CMIC:CPU Management InterfaceController):主要是负责和CPU部分的接口;其中包括PCI接口(PCIInterface)和管理计数器(Management counters)。
4)数据包过滤处理器(Packet Filter Processor):主要完成数据包的过滤功能。
5)内存管理单元(Memory Management Unit):主要负责交换芯片中的缓存管理以及流量管理;分为两个部分缓存管理单元(BufferManagement)和流量管理单元(Traffic Management)两个部分。缓存管理单元(Buffer Management):主要完成交换芯片中的缓存队列的管理和接入控制等功能;流量管理单元(Traffic Management):主要完成流量的限速,整形,队列的管理和调度等功能,我们的JCS方法就在这一部分完成。
6)二层转发逻辑(L2 Switching):主要是完成数据包的二层转发的。
7)三层转发逻辑(L3 Switching):主要是完成数据包的三层(IP层)的转发。
软件平台是一个嵌入式的操作系统以及在上层的TCP/IP的协议栈;嵌入式操作系统采用VxWorks5.5内核;协议栈部分主要采用烽火网络公司开发的USP统一软件平台;软件开发平台采用Tornado2.2for PPC的版本。整个软件的系统结构如图6所示。
图6中涉及的英文缩写的说明如下:
ARP(Address Resolution Protocol):地址解析协议;
BGP(Border Gateway Protocol):边界网管路由协议;
CLI(Command Line Interface):命令行;
Console:控制台串口;
DCP(Distributed Communication Protocol):分布式通信协议;
DHCP(Dynamic Host Configuration Protocol):动态主机配置协议;
FTP(File Transmission Protocol):文件传输协议;
GARP(General Attribute Register Protocol):一般属性注册协议
GMRP(GARP Multicast Register Protocol):GARP组播注册协议;
GVRP(GARP Vlan Register Protocol):GARP Vlan注册协议;
HA(High Availability):高可用性;
IDB(Information Database):信息数据库;
ICMP(Internet Control Message Protocol):互连网控制消息协议;
IGMP(Internet Group Management Protocol):互连网组管理协议;
IP(Internet Protocol):网际协议;
MSTP(Multiple Spanning Tree Protocol):多生成树协议
OSPF(Open Shortest Path First):最短路径优先协议;
PIM/SM(Protocol Independent Multicast/Sparse Mode):稀疏模式独立组播协议;
RIP(Routing Information Protocol):路由信息协议;
RSTP(Rapid Spanning Tree Protocol):快速生成树协议;
SNMP(Simple Network Management Protocol):简单网络管理协议;
STP(Spanning Tree Protocol):生成树协议;
TCP(Transmission Control Protocol):传输控制协议;
Telnet:远程终端协议;
TFTP(Trivial File Transmission Protocol):简单文件传输协议;
UDP(User Datagraph Protocol):用户数据报协议。
[1]G.Eichler,F.Riccito,AQUILA Network Services,in Proceedings of COMCON8,Crete,GREECE,June,2001.
[2]Fernando,Moreiral,Jose Ruela.A method for traffic scheduling based on token bucket QoSparameters.The 3rd Conf on Telecommunication,Porto,Portugal,2001.
[3]A.Elwalid,D.Mitra,Traffic shaping at a network node:theory,optimum design,admissioncontrol.Proceedings of IEEE INFOCOM,pp.445-455,1997.
[4]M.Graf,VBR video over ATM:Reducing network resource requirements through end systemtraffic shaping,Proceedings of IEEE INFOCOM,pp.48-57,1997.
[5]T.Shan,O.Yang,Proposals on lossless and statistical traffic shaping.CCNG Report,University of Ottawa,Feb.1998.
[6]D.C.Verma,H.Zhang,Delay Jitter Control for Real-Time Communication in a PacketSwitching Network.In proceedings of TriComm’91.
[7]D.C.Lee,Effects of leaky bucket parameters on the average queuing delay:Worst caseanalysis.Proceedings of IEEE INFOCOM.pp.482-489,1994.
[8]P.Pancha,M.E.Zarki,Leaky bucket access control for VBR MPEG video.Proceedings ofIEEE INFOCOM.pp.796-803,1995.
[9]L.Georgiadis,R.Guerin,Efficient support of delay and rate guarantees in an Internet.Proceedings of SIGCOMM Symposium,pp.106-116,1996.
[10]D.Ferrari,Client Requirements for Real-Time Communication,IEEE CommunicationsMagazine,vol 28,no 11,pp.65-72,November 1990.
[11]L.Georgiadis,R.Guerin,V Peris et al.Efficient network QoS Provisioning based on pernode traffic shaping.IEEE/ACM Trans on Networking,vol.4,no.4,pp.482-501,Aug.1996.