一种基于E-Model的去抖缓冲区管理方法
技术领域
本发明涉及面向电信级以太网的自适应去抖缓冲区管理方法,具体的说是一种基于E-Model的去抖缓冲区管理方法。是一种在电信级以太网系统上支持语音、音频和视频等实时业务基于E-Model完成对去抖缓冲区进行自适应管理的方法。所说的E-Model在ITU-T G107(参考文献20)中定义。
背景技术
在电信级以太网等分组网络支持实时信息(支持对服务质量要求很高的TDM(Time-Division Multiplexing,时分复用)业务,或直接传送对时间敏感的语音、音频和视频等业务时,需要把实时信息封装成以太网数据包发送,发送端发送数据包的行为呈现周期性,也就是说发送两个相邻的数据包之间的时间间隔恒定。由于分组网络基于统计复用、突发和无连接的特性,网络流量的随机特征导致传送数据包的时延变化量(时延抖动)也具有随机性。时延抖动使得数据包到达接收端在时间上不再均匀,也就是说,接收的两个连续的数据包之间的时间间隔不再是常量。这样,由于网络拥塞的存在,过大的时延使得数据包常常不能按时到达接收端,对于实时信息来说,不能按时到达会导致实时信息的端到端传送时延已超过限度,这导致传送实时信息的服务质量的下降,在这种情况下,承载的实时业务质量的劣化将使得用户满意度下降。
因此,为提高传送实时信息的服务质量,应妥善解决时延和时延抖动问题。在分组网上解决时延抖动的方法通常有如下三类[1]:
(1)基于源节点的方法:这些方法主要用于避免拥塞、避免端到端时延过大以及避免时延抖动过大。另外一些方法是基于网络反馈的信息选择适当的路径或服务器以避开拥塞的路由或繁忙的服务器,使得信息在网络上传送或在服务器上处理的时延尽可能的小[2]。
(2)基于网络节点的方法:这些方法可以归纳为资源保留和抖动恢复两大类。资源保留类方法通常是通过在网络节点上保留足够的资源以保证数据传送的时延抖动控制在一个可容忍的限度内,例如在中间节点对每个实时流保留足够多的缓冲区等等[3]。抖动恢复类方法则是在网络节点中对传送的实时流采用抖动恢复算法以消除过大的时延抖动带来的影响[4]。
(3)基于目的端的方法:通常是采用设置去抖缓冲区的方法来吸收时延抖动,每个到来的携带实时信息的数据包先进入去抖缓冲区,在缓冲区中缓存一段时间后,再恢复成相应的实时信息发送[5][6]。显然去抖缓冲区会引入一定的附加时延,这些附加时延称作缓冲时延。缓冲时延会增大实时信息传送的端到端时延,因而对服务质量带来一定负面影响。另一方面,去抖缓冲区可以减轻网络端到端传送时延抖动的影响,从而减少“迟来”或丢弃的包的个数,也就是说有助于降低实时信息传送的丢包率,从而有助于服务质量的改进。这两方面的影响的综合结果取决于去抖缓冲区的设计策略。
由上述可知,去抖缓冲区对实时信息的传送质量既有积极作用,也有负面影响。所以如何合理的设计去抖缓冲区的大小以适应电信级以太网网络的状况是需要解决的难题之一。自适应的缓冲区管理,概括起来就是让电信级以太网系统自身来完成去抖缓冲区的管理以及对网络状况的适应,换句话说,去抖缓冲区的规模是由系统自动确定,而不是由用户手工配置。
系统要完成对去抖缓冲区的自动管理,使得缓冲区更好的适应网络状况,首先系统要对网络现状尤其是时延和时延抖动要有比较准确的把握,这通常是建立在对携带实时信息的数据包在网络上传送的网络端到端传送时延d和时延抖动的直接或间接的估计或预测上,当然预测或估计是建立在对历史数据的分析的基础之上[6]-[10]。如下是对当前研究所采用的一般预测模型的表述,在描述预测方法之前,先给出一些变量的定义:
ti-第i个数据包在发送端发送的时间。
ai-第i个数据包到达接收端的时间。
ri-第i个数据包在接收端开始处理并恢复相应的实时信息的时间。
qsi-第i个数据包从发送端发送开始,到该数据包到达接收端结束,该数据包经历的排队时延。
bi-第i个数据包在接收端缓冲区等待的时间,bi=ri-ai。
di-第i个数据包从它在发送端产生开始,到它在接收端恢复实时信息之间的时间,di=ri-ti。
ni-整个网络对第i个数据包产生的时延,ni=ai-ti。
预测的一般方法是采用(1)式所示的指数加权移动平均(EWMA)方法实现。
在(1)式中,α是加权因子,取值在0和1之间。
在基于历史数据通过代入(1)式计算得到对未来的网络端到端时延的预测结果后,就可以根据预测结果调整去抖缓冲区的大小。
上述几种方法能对网络端到端传送时延d进行较合理的预测,但实现起来相对复杂一些。[11]提出了一种较简单的方法,该方法仅仅基于迟来数据包的数量和缓冲区填充比的变化情况来对决定对去抖缓冲区的调整操作。
除了决定去抖缓冲区的调整操作外,决定去抖缓冲区的调整时机也很重要。如果增加去抖缓冲区,也就意味着增大了调整以后传送实时信息的时延,那么在调整前后,实时信息的时延就有了明显的差别,信息之间的空隙就较大。如果这个时延差别很大,实时信息的用户就会有明显的感觉。如果减小去抖缓冲区,则意味着存放着实时信息的某些缓冲区可能被放弃,也就意味着实时信息丢失的可能。因此,两种方向的去抖缓冲区的调整操作都有一定的负作用。
对于自适应去抖缓冲区的调整时机,当前研究多集中在传送语音信息上,[12][13]认为在两个谈话段之间的静止时间调整很合理,而[14]则得出在谈话段内就实现去抖缓冲区的调整效果更好。
如何很合理的在时延-时延抖动和丢包率上折中,以及如何合理评价自适应去抖缓冲区的性能,[15]-[18]提出了基于E-Model[19][20]的自适应去抖缓冲区的管理,这些研究都集中在语音的传送上,依赖于语音编码带来的丢失信息隐藏功能。不管如何,E-Model可以将网络传送的服务质量与业务用户的心理因素关联起来,可以使系统的服务质量评价更合乎实际应用场景。
E-Model是基于设备损伤的测量方法,目前主要应用于分组网传送语音的场合。它关注数据全面的网络损伤因素,很好地适应在数据网络中语音质量的评估。E-Model测量方案包含了影响窄带电话通话质量多种传输参数的效果,E-Model的基本原理是:假定语音质量损伤因素可以转换成用户的心理因素,并且心理因素在心理范畴是叠加的,也就是说诸如噪音、回音、延时、编码器性能、抖动等网络损伤因素能够被量化和叠加,那么我们就能够得到基本的E-Model输出,该输出就是传输级别参数R。
传输级别参数R的计算如(4)式所示,在(4)式中,Ro表示基本信噪比,Is表示综合损伤因子,Id表示延迟损伤因子,Ie-eff表示数据包丢失引起的有效设备损伤因子,A表示优势因素,致力于考虑呼叫者的期望因素,在大部分情况下,优势因素A设置为0[19][20]。
R=Ro-Is-Id-Ie-eff+A (4)
基本信噪比Ro的计算方法可用(5)式表示。
Ro=15-1.5(SLR+No) (5)
在(5)式中SLR表示发送响度评测值,No表示不同的噪声源的功率(用dB表示,相对于OdB点)总和[19][20]。
综合损伤因子Is是声音传送过程中所有损伤的总和,综合损伤因子Is由Iolr、Ist和Iq三个特殊损伤因子组成。Iolr表示的是由太低的OlR(Overall Loud Rate,它的含义是SLR、RLR之和,RLR表示接收响度评测值)值所引起的质量下降,Ist表示的是由非适宜的电话噪音所引起的损伤,Iq表示量化失真所造成的损伤。影响综合损伤因子Is的参数有:响度评测值(SLR,RLR),背景噪音(Ps,Pr),电话D值(Ds,Dr),说话者回音响度额定值(TELR),单向延迟时间(T),侧音屏蔽额定值(STMR)和量化失真度(qdu)。综合损伤因子Is的计算方法可由(6)式表示[19][20]。
Is=Iolr+Ist+Iq (6)
延迟损伤因子Id是所有由于声音传送延迟所引起损伤的总和,它由Idte、Idle和Idd三个损伤因子组成。因素Idte给出了一个发送端回音所造成损失的评估,因素Idle表示由接收端回音所引起的损伤,Idd表示太长的绝对延迟所引起的损伤,当消除回音时,就会导致绝对延迟的产生。影响延迟损伤因子Id的参数有:单向延迟(T),绝对延迟(Ta),说话者回音响度额定值(TELR),侧音屏蔽额定值(STMR),响度评测值(SLR,RLR),背景噪音(Ps,Pr),电话D值(Ds,Dr)。延迟损伤因子Id的计算方法可由(7)式表示[19][20]:
Id=Idte+Idle+Idd (7)
其中,Idd可由(8)式算。在(8)式中,d表示数据包的端到端传送时延,单位是毫秒。
丢包引起的有效设备损伤因子Ie-eff可用(9)式计算。在(9)式中,Ppl是丢包率,BurstR是突发率,Bpl则描述丢包时的鲁棒性[19][20]。
E-Model用于计算传输级别参数R值用到的各参量的缺省值如图2中表格所列。
传输级别参数R和用户满意度的对应关系如下:
传输级别参数R的取值范围区间为[0,100],R值越小,传送质量越差。R=0表示传送质量极差,反过来R=100表示传送质量非常好。E-Model提供了对质量测量的统计估计,判断好或良好(GoB,Good or Better)以及差或较差(PoW,Poor or Worse)的比率可使用高斯偏差函数从R-因子中获得[19][20],(10)式用于从R计算GoB和PoW。
而平均评价分数值(MOS,Mean Opinion Score)可以由(11)式得到。
传输级别参数R、平均评价分数值MOS、GoB和PoW等与用户满意度的对应关系如图3中表格所列出。
综上所述,当前方法存在以下问题:
(1)虽然大多数方法的本质都是在时延和丢包率上平衡,但具体实现来说,选择多大的时延和容忍多大的丢包率仍然需要深入探讨,也就是说,基于什么标准评价折中后的效果缺乏有效手段。大多数研究通常是追求网络服务参数的量的改善,而未充分考虑网络用户的感受,更没有做到把用户感受和网络运行状况的参量(时延、时延抖动、丢包率、乱序率等等)有效结合起来。
(2)也有一些研究是基于E-Model的评价,来实施对去抖缓冲区的自适应管理,但这些研究仅仅针对于分组网传送语音信息的应用场景,不适合于电信级以太网传送其它实时信息的情况。而且,这些方法依赖于语音编码带来的丢失信息隐藏功能,不适合应用在未知语音编码模式的情况下。
(3)在选取最佳调整时期也有待深入研究,在分组网传送语音的去抖缓冲区的研究中,很多研究采用在两次谈话段(TalkSpurt)之间的静止期调整去抖缓冲区,也有的研究则在谈话段内实现去抖缓冲区的调整。由于电信级以太网传送的实时信息并不完全是语音,因此两次活跃期之间的“静止期”难以确定,选择去抖缓冲区的调整期更为困难。
(4)当前未检索到将E-Model应用到电信级以太网的去抖缓冲区管理的研究或产品。而E-Model的最大优点是将终端用户的心理感受度量化,从而建立终端用户的心理感受度与网络的服务质量参数的数学关系。因此将E-Model应用于电信级以太网的去抖缓冲区管理,可以达到有效提高网络服务质量的目标。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种基于E-Model的去抖缓冲区管理方法,去抖缓冲区的大小取决于E-Model的评价值,换句话说,去抖缓冲区的大小的设计目标是:使得在当前网络状况下,传输级别参数R取最大值,或处于最大等级范围。
为达到以上目的,本发明采取的技术方案是:
一种基于E-Model的去抖缓冲区管理方法,其特征在于包括以下步骤:
步骤1,在接收实体基于历史数据预测或估计网络传输时延dn:采用基于指数加权移动平均方法对网络传输时延dn进行预测,基于指数加权移动平均方法的计算公式为(1)式
在(1)式中
即为对网络传输时延d
n的第i次估计值,α是加权因子,取值在0和1之间,
为对网络传输时延抖动的第i次估计值,n
i为整个网络对第i个数据包产生的时延;
步骤2,在接收实体统计数据包的到达情况并计算丢包率:数据包的网络端到端传送时延d、网络传输时延dn以及丢包率Ppl用(2)式计算,
在(2)式中,tp为两个数据包的发送时间间隔,n为缓冲区的大小且计算单位为“个数据包”,dn是网络传输时延,网络传输时延在(i*tp,(i+1)*tp)之间的数据包个数记为Li,在一个统计周期T内收到的数据包总数为N,每次缓冲区的调整幅度为m,m的计算单位为“个数据包”,为避免缓冲区高速振荡,统计周期T应取大于64毫秒的值;
步骤3,基于步骤1和步骤2得到的信息和E-Model得到当前理想的去抖缓冲区大小:根据传送级别参数R的计算公式-(4)式,得到在当前网络状况下,设置多大的去抖缓冲区可使得最终的传送级别参数R取最大值,或者R处于最大等级范围,
R=Ro-Is-Id-Ie-eff+A (4);
步骤4,基于步骤3得到的理想的去抖缓冲区大小对当前的去抖缓冲区进行调整。
在上述技术方案的基础上,步骤3中在计算E-Model中的传送级别参数R时,采用的计算公式为(3)式:
R=α-β*Id-γ*Ie (3)
在(3)式中,α是不考虑Id和Ie两个因素,而其它所有损伤因子都取缺省值情况下的传送级别参数R的值,β和γ则是Id和Ie的权重,且在不同的应用场景取不同的值。
在上述技术方案的基础上,(3)式中β和γ的取值根据历史时延和丢包率数据以及终端用户的平均评价分数值MOS(Mean OpinionScore)结果确定。
在上述技术方案的基础上,根据(2)、(3)式以及E-Model建立传送级别参数R和去抖缓冲区大小之间的关系,利用该关系得到使传送级别参数R处于较理想状态下的去抖缓冲区规模,基于这个规模完成去抖缓冲区的管理和控制。
本发明所述的基于E-Model的去抖缓冲区管理方法,去抖缓冲区的大小取决于E-Model的评价值,换句话说,去抖缓冲区的大小的设计目标是:使得在当前网络状况下,传输级别参数R取最大值,或处于最大等级范围。
附图说明
本发明有如下附图:
图1为本发明的功能结构图,
图2表示E-Model的传输等级参数相关因子的缺省值,
图3表示E-Model的传输等级参数与用户满意度的对应关系,
图4为本发明的系统参数获取过程的流程图,
图5为本发明的QOS参数获取过程表示,
图6为本发明的得到适合的去抖缓冲区大小的过程表示,
图7为本发明的测试结果表示。
具体实施方式
以下结合附图对本发明作进一步详细说明。
由前述内容可知,在分组网传送语音业务时,可以将分组网的网络QOS参数与使用语音业务的用户的心理因素关联起来,甚至可以将用户的心理因素量化,得到用户满意度与网络QOS参数的数学关系,那么,采用这种方法表示网络的服务质量,将更加直观和贴近用户。
另一方面,电信级以太网系统传送的实时信息就包含语音信息。而且,电信级以太网要求提供对TDM的支持,而TDM网络上大多数情况下承载的也正是语音信息,因此,从传送的业务角度来说,在电信级以太网传送实时信息时应用E-Model是可行的。
电信级以太网支持实时信息传送时,最直接的传送损伤来自于数据包的网络端到端传送时延d和丢包率Ppl,在E-Model上,两者分别表现为影响Id和Ie这两个损伤因子的值。去抖缓冲区的设置对网络端到端传送时延d和丢包率Ppl有直接的影响,因此,可以借鉴E-Model的计算方法对去抖缓冲区的性能进行评价。
本方法的指导思想正是基于以上分析的结果,图1为本发明的功能结构图,本发明将应用于分组网传送语音业务的E-Model外推应用到在电信级以太网系统上传送语音、音频和视频等实时业务的场景,根据电信级以太网系统传送实时业务的特点,对E-Model进行一定程度的修改和简化,基于修改后的E-Model和相关算法对去抖缓冲区的综合性能进行评价,寻求一种在当前网络状况下,最优的去抖缓冲区配置。去抖缓冲区的大小取决于E-Model的评价值,换句话说,去抖缓冲区的大小的设计目标是:使得在当前网络状况下,传输级别参数R取最大值,或处于最大等级范围,这主要通过如下几个步骤实现:
步骤1,在接收实体(接收实体含义是网络节点设备,可以是路由器或交换机,可以为电信级以太网交换机)基于历史数据预测或估计网络传输时延dn:采用基于指数加权移动平均方法对网络传输时延dn进行预测,基于指数加权移动平均方法的计算公式为(1)式
在(1)式中
即为对网络传输时延d
n的第i次估计值,α是加权因子,取值在0和1之间,
为对网络传输时延抖动的第i次估计值,
为整个网络对第i个数据包产生的时延;
预测基于EWMA方法,这里选取(1)式表示的方法对网络传输时延dn进行预测或估计。
步骤2,在接收实体统计数据包的到达情况并计算丢包率。
根据历史数据对网络当前的丢包数、迟到的数据包数和总数据包数进行估计。去抖缓冲区可以改善网络传送丢包率,而且去抖缓冲区越大,改善的程度也越高。
该方法需要将缓冲区的变化对传送丢包率的影响进行量化,因此,计算迟到数据包率时,首先要得到迟到数据包个数。该方法按照数据包的传送时延分成多个等级,统计每一个级别的数据包数,那些传输时延值超过去抖缓冲区能吸收的最大时延的数据包就是迟到的数据包(在网络上丢失的数据包可看作传输时延延等于+∞的数据包)。当缓冲区大小增加一定幅度时,就可以根据统计的各级数据包数,估算哪些迟到的数据包可转换成正常收到的数据包。
为方便表述和分析,假设数据包是等长的,去抖缓冲区的大小为数据包的整数倍,每次缓冲区调整的幅度也为数据包的整数倍,那么缓冲区的大小和变化量的单位都可以用数据包个数表示。
记两个数据包的发送时间间隔为tp,缓冲区的大小为n(个数据包),每次缓冲区的调整幅度为m(个数据包),网络传输时延在(i*tp,(i+1)*tp)之间的数据包个数记为Li,在一个统计周期T(为避免缓冲区高速振荡,T应取较大的值,例如:T应取大于64毫秒的值)内收到的数据包总数为N,那么数据包的网络端到端传送时延d、网络传输时延dn以及丢包率Ppl可以用(2)式计算(在缓冲区处于半填充状态时开始恢复实时信息)。
在(2)式中,tp为两个数据包的发送时间间隔,n为缓冲区的大小且计算单位为“个数据包”,dn是网络传输时延,网络传输时延在(i*tp,(i+1)*tp)之间的数据包个数记为Li,在一个统计周期T内收到的数据包总数为N,每次缓冲区的调整幅度为m,m的计算单位为“个数据包”,为避免缓冲区高速振荡,统计周期T应取大于64毫秒的值;
步骤3,基于步骤1和步骤2得到的信息和E-Model得到当前理想的去抖缓冲区大小。也就是说,根据传输级别参数R的计算公式-(4)式,得到在当前网络状况下,设置多大的去抖缓冲区可使得最终的传送级别参数R取最大值,或者传送级别参数R处于最优等级(最大等级)范围。
R=Ro-Is-Id-Ie-eff+A (4)
在(4)式中,Ro表示基本信噪比,Is表示综合损伤因子,Id表示延迟损伤因子,Ie-eff表示数据包丢失引起的有效设备损伤因子,A表示优势因素,致力于考虑呼叫者的期望因素,在大部分情况下,优势因素A设置为0[19][20]。
步骤4,基于步骤3得到的理想的去抖缓冲区大小对当前的去抖缓冲区进行调整。
从前面介绍的E-Model内容可知,可以将传输级别参数R的值转换为用户评价参数MOS的值。而对于传输级别参数R来说,它与多种损伤因子相关,其中包括与端到端绝对时延相关的延迟损伤因子Id,以及与丢包率相关的有效设备损伤因子Ie-eff。
由[16][17]可知,如果重点考查端到端时延和网络丢包率的影响,在其它损伤因子都使用缺省值的情况下,(4)式可以简化为(12)式。(12)式中将Ie-eff简写为Ie。
R=94.15-Id-Ie (12)
前述内容已给出了Id和Ie(Ie-eff)的具体计算公式,但这些计算公式比较复杂。文献[16][17]则给出了当d小于400毫秒和600毫秒时Id的简化计算公式,该计算公式可在(13)式中体现。
而Ie的计算则与语音采用的编码有关,不同的编码对信息隐藏的帮助程度也不一样。同时Ie的计算与评价体系也相关。[17]则给出了几种评价标准下的计算公式,参见(14)式。而文献[16]给出了两种编码体系的计算公式,可由(15)式表示。
结合(14)式和(15)式,可以得到在当前网络状况下,设置多大的去抖缓冲区,可以使得传输级别参数R取最大值,那么,这个使R取最大值的缓冲区规模就可看作传送语音信息时的去抖缓冲区最优大小。
由上两节内容可知,在分组网络传送语音信息,应用E-Model是可行的。由此可外推,在分组网络上传送一般实时信息的情况也可以将用户评价的心理因素量化并与网络传送质量参数关联起来,换句话说,该模型或者说与该模型类似的方法,可以应用到在分组网络上传送一般实时信息的情况,比如语音编码未知的TDM业务,再比如视频信息等等。由于E-Model深入研究了语音信息的特点,而且模型的一般方法与语音的特点以及语音传送的诸多技术密切相关,直接将模型应用在一般实时信息的传送并不合适。
可以将E-Model的计算公式作一些变换,以适应不同于语音的一般应用场合。
在传送语音时,端到端的时延和网络传送丢包率是两个重要的损伤因素。同样在传送视频或传送TDM业务时,端到端的时延和网络传送丢包率仍然是两个重要的损伤因子。同样可以用传送级别参数R描述网络传送的服务质量等级,而且同样可以在假定其它损伤因子取缺省值的情况下重点研究端到端的时延和网络传送丢包率与R的关系,这就是本方法研究的出发点。
为了更适应或贴近实际情况,本方法将(12)式改造成(3)式,而(12)式是(3)式的一个特例。
R=94.15-Id-Ie (12)
R=α-β*Id-γ*Ie (3)
在(3)式中,α是不考虑Id和Ie两个因素,而其它所有损伤因子都取缺省值情况下的传送级别参数R的值,β和γ则是Id和Ie的权重,可以在不同的应用场景取不同的值。
通常情况下,在分组网上传送实时信息,端到端的时延不会太大。因为如果时延太大,那就会超过实时信息对时延要求的门限,则传送实时信息的服务质量无法保证,实际上在这样的网络上传送实时信息不可行。那么,端到端的时延小于400毫秒是成立的。因此,Id的计算可用(13)式中的第一种条件(d<400毫秒>)对应的简化公式来计算,这样,Id与d等价于分段线性关系,这种简化很大程度的降低了计算量。
由(14)式和(15)式可得到,通过Ppl得到Ie的计算方法可总结为一个计算通式,该通式可用(16)式表示。在(16)式中,a和b都是实数,在不同的应用场景取不同的值。
Ie=a+bln(1+c*Ppl) (16)
(17)式表示的是一个有关极限的定理,由(17)式可知,当Ppl值比较小时,(17)式可以用(18)式近似计算。在(18)式中,u=bc。而在电信级以太网传送实时信息时,丢包率也处于相对较低的水平,所以用(18)式计算Ie是可行的。
Ie≈a+bc*Ppl=a+u*Ppl (18)
那么传输级别参数R可以用(19)式来计算。
在实际应用中只需根据网络的状况确定α1、β和γ1三个参数的值,那么,就可以在线计算当前数据包的网络端到端传送时延d和丢包率Ppl对应的传输级别参数R,再结合(11)式,就可以得出设计什么样的去抖缓冲区的规模,可以使传输级别参数R取最大值,通过这些计算和判断可有效实施对去抖换充区的自适应管理。
由上述内容可知,(19)式中的d和Ppl可以通过对封装实时信息的数据包进行统计得到。而R的值可以由MOS的值变换得到[20],变换采用的公式见(20)式。而由图3可知,MOS的值可通过收集实时业务用户(在系统设计阶段,可由设计者充当)的意见得到。因此,只需针对三种不同的网络状态确定三组R、d和Ppl的值,得到三个关于α1、β和γ1三个变量的三元一次方程,对该方程组求解,就可以得到α1、β和γ1三个变量的值。
结合(11)式和(19)式,可以得到能使传送等级值R取最大值的去抖缓冲区的大小n,根据获得的n值就可实施对去抖缓冲区大小的调整。当然如果当前的缓冲区大小对应的R值和调整后的缓冲区大小对应的R值在一个服务质量等级(参见图3)内,则不需对缓冲区大小进行调整。另外,如果本次缓冲区的调整是向下操作(减少去抖缓冲区大小),那么可能面临着信息的丢失,应把本次调整导致的信息丢失参与到丢包数的统计和丢包率的计算中,再判断是否需要调整缓冲区,从而使缓冲区的调整更趋合理。
整个方法可以分为算法参数(α1、β和γ1)确定、QOS参数在线统计或预测(d和Ppl)、去抖缓冲区大小调整等三部分。详细的算法描述如图4-图6所示。
图4描述α1、β和γ1三个变量的确定过程,图5描述d和Ppl两个QOS参数的获取过程,图6对应缓冲区大小确定和调整的过程。在图6中,Mode表示有调整模式,有(Grade-按R对应的等级调整,SCORE-按R值调整)两种。
●实现和测试验证
本方法在武汉烽火网络公司自主开发的M8008电信级以太网设备(以下简称M8008设备)上实现。M8008设备最多可支持该设备4个千兆以太网接口,20个百兆以太网接口以及8个E1接口。
在M8008设备中,FPGA(Field Programmable Gate Array,现场可编程门阵列)负责完成对数据包的接收时戳和发送时戳的采样和记录,此外,去抖缓冲区也由FPGA直接控制。CPU子卡负责对接收的数据包按照时延分类、统计丢包数、计算丢包率、预测未到数据包的时延、计算传输级别参数R以及得到最优的缓冲区规模等等。FPGA和CPU子卡通过PCI总线进行数据交换,FPGA得到的时戳信息通过PCI总线送往CPU子卡,以便CPU基于这些信息完成必要的计算,而CPU计算生成的最优的缓冲区规模等信息也通过PCI总线写入FPGA,FPGA利用接收的信息调整缓冲区大小。
为测试本方法搭建了一个测试网络:四台M8008设备连接成一个环形网络拓扑,中间的两台设备可通过ACL(Access Control List,访问控制列表)、MMU(Memory Manage Unit)、QOS(Quality of Service)调度以及流量整形来控制数据流的时延和带宽。测试仪表中四个端口分别与四台设备上四个端口相连接,仪表负责可控制的向网络提供背景流量,以便制造一定的传送时延和丢包率。左右两端的M8008设备各有一个E1端口与协议转换器相连接,而两台协议转换器则各连接一台电话。一组“用户”可使用两侧的电话机通话然后对通话质量进行评价,以得到MOS的值。
设备传送的是E1业务,采用非结构化仿真方式,数据包封装则采用一包一帧(一个E1时隙)方式,两个相邻数据包的发送时间间隔为125微秒,统计周期T=60秒,去抖缓冲区的最大值为1024个数据包,初始缓冲区大小为64个数据包,在缓冲区处于半填充状态时开始从数据包恢复E1码流,因此初始缓冲时延为4毫秒。
应用(20)式,通过向网络中输入不同的背景流量后,记录系统的网络端到端传送时延d和丢包率Ppl,同时记录“用户群”的评价并转换成传输级别参数R,然后得出α1、β和γ1的值分别为93.69、7.81和59.26。
基于上面得到的α1、β和γ1的值,运行上述的自适应缓冲区管理算法,并不断的改变仪表发出的背景流量的大小和优先级。在每一次调整时记录:数据包的网络端到端传送时延d,调整前的丢包率Ppl(p)、缓冲区大小N(p)、传输级别参数R(p),以及调整后的丢包率Ppl(a)、调整前缓冲区大小N(a)、调整前传输级别参数R(a)等参量的值,则得到图7。从图7可知,本方法能有效的对去抖缓冲区的自适应管理。