VoIP信号在校园网中的延迟分析

2015-12-23 06:59阎丕涛闫红书王佳
中国教育网络 2015年11期
关键词:字节队列数据包

文/阎丕涛 闫红书 王佳

VoIP信号在校园网中的延迟分析

文/阎丕涛 闫红书 王佳

VoIP (Voice-over-IP),是一种在数据网络上,采用分组交换技术实现话音传输业务的语音通信技术。目前在长途语音通信业务中己占有相当的市场份额,随着网络的建设发展,园区网中的VoIP应用也开始流行起来,其所存在的问题成为了关注的要点。

VoIP信号传输过程中存在的主要问题

语音交互存在着实时、保真、噪音和衰减等诸多技术问题,数据网络平台使主要问题研究集中到了实时与保真两个方向。由于VoIP可承载的应用类型可能多种多样,考虑到基本的要求和相关标准,本文将保真底线统一为8kHz取样频率、8位取样精度,这样一来,就将文章讨论方向集中到了与实时性紧密相关的延迟问题。VoIP的延迟是指由说话者开始说话到接听者听到声音的这段时间。在承载语音传输的分组交换网上有三种不可避免的延迟:传播延迟,队列延迟和处理延迟。

传播延迟传播延迟是因为信号必须在光线或电缆网络上传输。光在真空中的传输速度是每秒30万公里,电信号在电缆或光纤上的传输速度大约每秒20万公里。限于校园面积,假设园区内网络传输介质最远跨度2公里(往复4公里),可计得其传播延迟约0.02ms,即约为人耳对声响最高分辩间隔的2500分之一,可见通过改善传输介质虽然可减少传播延迟,但对于校园网上VoIP信号的传输来说其成效微乎其微。

队列延迟

当一个传输包因为接口阻塞而停留在输出队列中所造成的延迟,被称为队列延迟。队列延迟通常是因某段时间内发送的传输包超出了其接口的处理能力而产生。这个参数既可通过网络设计和设备的选型,也可通过对端口各种排队方式的选择来优化网络,考虑到多数园区网络所延续的三层架构,高质量传输应保证设备的这个参数平均值不超过12.5ms,单向端到端最大延迟不超过150ms。经测试,在缺乏管理、流量拥挤的网络中,能够短时间忍受的最大队列延迟甚至可达2秒,但此指标的改进对语音交互的人员感受和VoIP信号传输影响明显。

处理延迟

这类延迟在网络中主要是由传输帧的设备所产生,例如:压缩解码、报文重组、交换转发等处理时间。在分组交换网络中,每个有实际意义的报文都需由多个传输分组共同构成,因此,这个延迟在分组网络传输中非常重要。目前,主流的VoIP终端设备所使用的标准都是每10ms获取一个语音样本,即:一个数据帧中一旦生成了一个语音样本,就意味着已经有了至少10ms的处理延迟,考虑到人耳分辩极限,一个数据帧中不应放置超过5个语音样本,也就是说,在一个数据帧中可以包含1~5个语音样本,一个数据帧中的几个语音样本共同构成了一个VoIP数据包,而且,必须在下一个数据帧中的VoIP数据包生成之前完成本次数据帧中语音样本的VoIP数据包打包处理。这在实际上就限定了VoIP的最低带宽。

理论占用带宽

一个网络建成,其每段网络的带宽传输上限就已确定,只能通过节点设备参数的配置和架构的改进在有限范围内进行调整,否则,就必须进行线路或设备的升级改造,因此,有必要先计算VoIP在理论上的带宽占用情况。众所周知,数据帧的大小和帧转发的速率,是在线路编码与收发装置确定后与带宽占用直接相关的两个重要参数,VoIP信息的传输也同样与其相关。

根据G.711编解码算法和基本保真需求,VoIP终端的数据产生速率为:8(kHz)*8(bit)=64kbit/s,如果设定打包周期为20ms,如见图1所示,则每个VoIP包所含信息数据的大小为:

图1 话机编码配置

64000(bit/s)×0.020(s)÷8(比特/字节)=160字节。

对应其整帧尺寸:IP头20字节、UDP头8字节、RTP头16字节、以太网数据帧头为14字节。因此,整帧大小=160+20+8+16+14=218字节。

对VoIP包的最低处理速率:包速率=打包周期的倒数=1/0.020=50pps

每路VoIP呼叫带宽(kbit/s)=F×R/1000 =218×8×50/1000=87.2kbit/s

图2 统计信息(G.711)

图3 数据包时间间隔

实际占用带宽

利用sniffer抓取一路单向RTP流,然后统计平均占用带宽,如图2所示。

从图2中可以看到所占带宽为0.077MBit/sec=77kbps,可以看到统计值中,平均每秒数据包为45个,比理论值中50pps要少。通过对对应VoIP包的包转发间隔的列表分析,如图3所示,部分数据包时间间隔远大于20ms,说明中间发生了VoIP包的丢失,从而造成了sniffer统计VoIP包时数量的减少。

以上数据是在一个较理想的环境中得到的,其线路介质和节点设备的支持带宽都远超一路VoIP信号所需,只是在普通的数据网络传输参数的配置下完成的,其VoIP信号的传输情况与理论值相比有近10%的平均丢包率,而实际操作中,更会有很多因素影响到VoIP信号的传输。例如:隧道的启用、对信息的加密、QoS策略等都会影响到带宽的占用及话音的质量。

结论及解决方法

通过实际的测试,语音通信延时严重影响到通话质量,通过LLQ排队设计,可以对以上的延迟做出一定的缓解。VoIP等实时性应用要求具有很小的端到端时延预算和几乎为零的抖动。LLQ包含了一个优先级队列,该队列的优先级要高于其他所有队列,非常适合于时延和抖动敏感型应用。PQ中优先级高的队列可能会使优先级低的队列得不到处理机会,而LLQ中的严格优先级队列是受到监管的队列。也就是说,LLQ的严格优先级队列是一个有最小保证带宽的优先级队列,在出现拥塞时,该队列发送的数据量不能超过其所允许的带宽,如果到达的流量超出了严格优先级队列所能发送的流量(原因是存在严格的带宽限制),则会被丢弃。因此,在出现拥塞时,其他队列也一样有被处理的机会,能够共享接口带宽,并发送队列中的流量。

图4 LLQ 操作过程

从图4可以看出,LLQ相当于在CBWFQ的基础上增加了一个或多个严格优先级队列,因而更为有效。需要注意的是,LLQ可能会有多个严格优先级队列,这样做的目的是便于对分配到两个严格优先级队列的流量进行分别监管。不过,在实施了监管之后,来自这两个类别的流量并没有被分开,均基于到达顺序(FIFO)被送往硬件队列。只要分配到严格优先级队列的流量没有超过队列的带宽门限,也没有被监管和丢弃,就能以最小的时延通过LLQ。

目前基本上所有的设备均支持G.711/ G.723/G.729几种编码,在VoIP系统中,我们一般建议:局域网内使用G.711编码,Internet环境使用压缩编码G.723或G.729。经过试验测试了各种的编码算法,采用G.711编解码算法,然后在VoIP网络内部署QoS,在网络边缘对IP数据包的进行分类,可以根据SIP、RTP协议进行分类,并设定优先级为5(IP中为语音设定的优先级),由于使用代理服务器的语音呼叫,可以使用访问列表对去往或来自服务器的语音数据设定预留带宽,据此与非本地的语音数据进行区分。

G.711的语音质量最优但占带宽比较大,局域网带宽本身就很大。G.723或G.729所占带宽最小。经过试验测试了各种的编码算法,采用G.711编解码算法,然后在VoIP网络内部署QoS,在网络边缘对IP数据包的进行分类,可以根据SIP、RTP协议进行分类,并设定优先级为5(IP中为语音设定的优先级),由于使用代理服务器的语音呼叫,可以使用访问列表对去往或来自服务器的语音数据设定预留带宽,据此与非本地的语音数据进行区分。

(作者单位为大连工业大学网络信息中心)

辽宁省教育厅科研基金项目(JG10DB304)

猜你喜欢
字节队列数据包
二维隐蔽时间信道构建的研究*
No.8 字节跳动将推出独立出口电商APP
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
队列里的小秘密
基于多队列切换的SDN拥塞控制*
No.10 “字节跳动手机”要来了?
在队列里
C#串口高效可靠的接收方案设计
轻量级分组密码Midori64的积分攻击
丰田加速驶入自动驾驶队列