卫星拥塞环境VoIP迟滞问题分析及处理方法*
2019-12-04袁健,徐凌,刘潇
袁 健,徐 凌,刘 潇
(1.中国电子科技集团公司第三十研究所,四川 成都 610041;2.解放军驻西安邮电大学选陪办,陕西 西安 710061)
0 引 言
语音通信是人们生活中不可缺少的实时交流沟通方式。随着Internet的发展,VoIP越来越多地取代了传统电话。同时,随着对无处不在的通信的需求增长,卫星通信以其无缝覆盖的优势开始在全球通信系统中发挥重要作用。但是,由于卫星通信固有的低带宽和高资费等问题,供应商多提供的是共享带宽方式(区别于专享带宽方式),并采用语音压缩技术以减少流量消耗、降低花费和带宽占用。即便如此,一些突发的通信激增仍时常会导致卫星信道拥塞[1],沿海发达地区更为突出。实际工程应用中,当在卫星共享带宽环境下进行VoIP通话时,一旦突发业务激增导致信道严重拥塞,用户语音将出现中断。待拥塞消除后,通话虽能够持续、无声音失真或者断续[2]的情况,但时延显著,最大可达10 s,且迟滞现象不会消失,给使用者带来极其不好的使用体验,严重影响了VoIP通信的实时性。
1 测试及分析
1.1 通信模型
工程实施中,为了满足多路通信和语音压缩的处理,选用AudioCodes公司的AC50系列的SoC媒体芯片。它可以实现30路PCM语音的G.729压缩、VoIP封装以及回声抵消,并支持RTP/RTCP协议处理,能够有效降低VoIP通信中的时延、抖动等,提升语音质量[3]。该芯片的高度集成处理能力,使得只需搭配一片CPU进行配置和网络交互处理,即可实现一个小型媒体网关的功能,设计如图1所示。
图1 VoIP处理模块
通话时,用户电话机终端的模拟语音信号[4]通过用户接口处理转换成PCM信号,在FPGA内部进行时隙、端口的交换后送至媒体芯片。该芯片根据配置对PCM数据流进行G.729压缩处理和RTP包封装,最后由CPU完成IP封装发送至卫星网络,完成IP交互。
1.2 数据分析
在正常网络环境下,媒体芯片对网络时延、抖动等的处理可以通过调整相关寄存器设置来进行优化,提升其网络适应性和通话质量。为此,需要首先对卫星环境下的网络数据包状态进行分析。
1.2.1 卫星网络正常情况下的数据分析
受卫星终端无线传输机制的影响,即使在卫星网络接入波束点区域内正常情况下,数据包之间也存在较大抖动。使用wireshark工具分别获取两个卫星终端收、发的数据包,并对数据包间的时延进行统计对比分析。以50个数据包为例,相关统计结果如图2、图3、图4以及图5所示。
例中,采用的VoIP封装为20 Byte,因对其进行G.729压缩处理会产生20 ms的固定时延,所以如图3所示,发送端包间时延基本稳定在20 ms左右,平均值为19.43 ms。但从图5中收端的统计数据显示,数据包间时延差异非常大,从0.1 ms到80 ms不等。进一步对接收数据包间的时延差值全部累加求平均值,得到的平均值为21.05 ms,依然在20 ms附近,与数据发送端的时延间隔相差1.62 ms,不会对用户的语音通信产生明显的影响。
1.2.2 卫星网络拥塞下数据分析
采用同样的方法,对卫星信道拥塞时接收端的的VoIP包进行抓取和包时延统计分析,如图6和图7所示。
由图6、图7可知,卫星信道拥塞时的数据包的时延差异更大,最大时延可达832 ms,且有数据包乱序的情况出现。根据计算所得,拥塞态下的数据包间时延平均值为56.31 ms,与发送端的20 ms有显著差异。
1.3 原因分析
在拥塞环境下,因时延较大和乱序情况的出现,媒体芯片需要对VoIP数据包进行排序、去抖等处理。媒体芯片在进行处理时,语音数据包首先被缓存于去抖缓存中[5],芯片会根据RTP包的协议对数据包的时延抖动和包序采用算法进行自适应处理。其中一种处理机制是在抖动时延较大而后续数据包无法满足弥补空缺的时候插入静音数据。
图2 发端VoIP数据包
图3 发端VoIP数据包时延统计
图4 收端VoIP数据包(卫星信道空闲态)
图5 收端VoIP数据包时延统计(卫星信道空闲态)
图6 收端VoIP数据包(卫星信道拥塞状态)
图7 收端VoIP数据包时延统计(卫星信道拥塞状态)
小量的静音插入在话音中时,人耳难以感知,不会产生明显影响。但是,在卫星信道长时间拥塞后,因话音数据传输中断,VoIP芯片会填充大量的静音。同时,由于话音数据的速率是固定不变的,且整个处理过程中也不会丢弃静音数据包,即插入的静音所占用的时间没有扣除,被延迟的话音数据包依然在大量填充的静音数据包之后排队,导致拥塞消除后语音迟滞不会减轻和消除。
待通话结束后,媒体芯片将关闭当前的通道,并同步清除通道对应的缓存,因而再次进行通话时,一开始不会出现语音迟滞的现象。
2 处理方法
根据上述分析,要消除语音迟滞现象,关键是要及时检出卫星信道的拥塞状态,并清理缓存中的累积,快速恢复语音数据的实时处理,且不影响当前通话的保持。
2.1 基本思路
首先,准确检出当前通道是否拥塞;其次,在维持当前通道工作状态的前提下,清除缓存中的数据。
2.2 实施方法
对当前通道拥塞状态进行及时、准确的判断,是消除语音迟滞的基础。常用的拥塞检测机制往往需要在收端发端之间来回传递探测信息,同样会受到网络拥塞的影响,其及时性不满足要求。
本方法利用FPGA硬件的并行和高效处理特性,通过增加对卫星网络下行接收方向的RTP数据包执行监控的逻辑功能,实现对多个通道拥塞状态的同时检测,且不会对数据流本身产生影响。同时,利用媒体芯片对发生拥塞的通道进行快速关闭、开启控制,既清空了缓存,又维持了通话。处理流程如图8所示。
图8 RTP检测流程
(1)根据RTP包的协议格式进行解析,提取IP语音数据包;
(2)按照CPU软件配置的在用端口信息,对RTP包中的端口进行进一步区分,划分成不同的通道数据流;
(3)采用两种方式检测通道数据流:一种是单位时间内数据包的数量,另一种是包之间的时延分布;
(4)单位时间包计数统计,需要适配G729编码20 ms封包的模式,故而计数单位时间设置为1 s,结合正常线路的抖动、时延等情况,包计数上门限为60,下门限为40;
(5)数据包时延统计,结合前面的数据统计分析可以看出,正常的VoIP数据包抖动最大为80 ms;拥塞时,时延普遍在100 ms左右,而该情况下语音不会产生明显的迟滞现象。只有在大量的大时延(150 ms以上)或个别超大时延(如图7中的800 ms以上)出现后,才会因静音数据包累积导致明显的语音迟滞。因此,本方法中设置时延门限为150 ms,且在其计数达到5次后才判为拥塞;
(6)综合两种检测的结果进行判断,当均出现超门限的信号时,说明当前通道发生了拥塞;
(7)对发生拥塞的通道进行快速关闭和开启处理。
2.3 实施效果
经过模拟和实际环境测试后,卫星拥塞环境下VoIP迟滞问题得以消除。虽然在清除缓存中的数据时会导致部分语音数据丢失,但拥塞时有效的语音包数量较少,故而当拥塞状态消除时,通话将及时恢复正常,对实际通信时的语音质量影响较小。
3 结 语
本文通过分析当前卫星通信系统中数据收发时的时延抖动分布和媒体芯片对QoS处理的措施,提出了基于数据和时延分布的拥塞检测方法,以及针对该媒体芯片数据大量缓存的处理方法。其中,信道检测方法采用探针式分析,不影响正常通信,且仅需在收端进行处理,不会增加设备间的协议过程。该方法具有简便、实时性高的特点,可用于同类型信道状态探测的应用需求,为有类似设计需求提供了一种新思路。