专注SIP通讯产品与方案

处理分组时延

1、小分组
       处理分组化时延问题的唯一有效办法是采用小分组来表示语音的采样值。VoIP分组对尺寸没有标准要求。采用IP分组的默认尺寸是一个不错的方法,因为它已经足够小。
2、优先级
       为VoIP分配较高的优先级可以减轻串行时延的影响以及由它引起的语音颤抖问题。目前还没有分配优先级的标准,多数路由器生产商支持他们自己定义的优先级原则。也产生并尝试了一些建议,但是还没有一种最优的方法。IP分组的头部本身就有一种服务域(TOS),可用于提供VoIP分组优先级服务。但是并不是所有的路由器都利用TOS域实现优先级,许多路由器生产商忽略TOS而使用自己的特定方法。如果网络中不是所有的路由器都以同样的方式访问TOS域,那也就失去了使用它的意义。优先级可以保证VoIP分组排在输出缓冲区的前面。但当队列头部已经有长度不变的数据分组正在发送时,语音分组仍将不得不等待该分组从串口发送完后才能开始发送。当VoIP分组在一系列路由器上遇到或长或短的分组时,语音颤抖的问题仍将存在。我们需要采取另一种方式来解决语音额抖问题,例如使用时延抖动缓冲区。
分组时延
3、时延抖动缓冲区
       在接收端使用时延抖动缓冲区可以克服语音颤抖的问题。时延抖动缓冲区是一内存区,存储着以不同时延到达的语音分组,经过缓存,从时延抖动缓冲区出来的语音抽样值是稳定输出的。只要缓冲区接受到足够量的语音分组,输出就是稳定不变的,系统的时延也就是固定的了。
       举例来说,有两个含有语音抽样值的VoIP分组以不同的时延在路由器网络中传输。第一个分组也许在100ms到达,第二个则在90ms就到达了。采用时延抖动缓冲区后,时延抖动缓冲区将缓存两个分组,以使它们在网络中的时延都为120ms(仅仅是举例来说)。时延抖动缓冲区的原理如图4-7所示。
处理分组时延(图2)
图4-7  时延抖动缓冲区
       为缓冲区选择多大的时延很关键。时延太大或太小整个方案都行不通。如果缓冲区的时延设置得太小,分组本身的时延就大于缓冲区设置的时延,(在上述例子中分组到达的时间要大于120ms),那么这些分组将被抛弃,这会引起谈话中的明显断续。如果缓冲区的时延设置得太大,那么时延抖动缓冲区很可能过载,同样会引起大量分组丢失,造成断续的谈话,同时也会给语音带来不必要的时延。
        另一个关键是时延抖动缓冲区如何确切知道语音分组花费了多少时间通过网络。在实践中有几种机制,包括了从最简单的时间标签,到更精确一点的确定时延的方法。
        使用时延抖动缓冲区是解决分组语音引起的时延抖动问题的最实际的方法,也是比较容易实现的一种方法。时延抖动缓冲区不仅用在VoIP中,也用于通过帧中继网传输语音的系统中,甚至应用于ATM中。