本节书摘来异步社区《实施Cisco统一通信管理器(CIPT2)》一书中的第1章,第1.3节,作者: 【美】Chris Olsen 译者: 刘丹宁, CCIE#19920 , 卢铭 , 陈国辉 , 田果 责编: 傅道坤,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.3 语音质量方面面临的挑战
实施Cisco统一通信管理器(CIPT2)
IP网络的设计初衷本来就不是用来承载实时流量的;相反,IP网络的设计宗旨是在快速复原和容错机制的方面发挥优势。在IP网络中,每个数据包都会得到独立地处理,有时,这会导致同一个通信流中的不同数据包选择不同的路径到达目的地。而由于路径的不同,它们的带宽、距离、拥塞也就各不相同,于是这些路径之间也就会存在不同的丢包率和延迟值(抖动)。于是,目的设备就必须作好按照乱序接收数据包的准备。这一问题可以通过采用RTP(实时传输协议)序列号和流量重排序(Traffic Resequencing)的方式得到解决。不过,只要条件允许,希望管理员不要完全依赖RTP机制解决这个问题。正确的网络设计方法是使用Cisco路由器的(Cisco快速转发[CEF])交换缓存技术来解决这个问题,因为该技术在默认情况下会执行基于目的地址的负载分担。基于目的地址的负载分担并不是完美的负载分担方式,但是这种方法至少可以确保每个IP流量(语音呼叫)都通过相同的路径到达目的地。
带宽是由多个用户和多个应用所共享的,而每个IP流量所需的总带宽会在短期内存在巨大波动。大多数数据应用都存在带宽突发的情况,而采用RTP协议的Cisco实时视频通信只会占用相同的带宽,并持续发送数据流。各个应用的带宽(包括承载的CUCM和语音流量)是无法预计的。在高峰期,由于网络中存在拥塞的情况,因此数据包就必须进行缓冲,并放在队列中等候处理。每个做过航班的人对于排队恐怕都不陌生。当你到达机场,必须首先选择一个队列,因为检票窗口的数量(即带宽)比不上客流(入站IP流量)的速度。如果排队的人过多,队(数据包缓存)就会排满,于是旅客就会感到不满(数据包就会被丢弃)。负载较高的低速链路更有可能存在比较严重的队列延迟问题和丢包问题,比如在多站点环境中,站点间的WAN链路就有这个隐患。质量问题往往就出现在这类链路上,因此管理员就有必要通过QoS来解决这些问题。如果不使用QoS技术,那么语音数据包就有可能经历延迟、抖动和丢包等一系列问题,进而影响语音的质量。因此在网络中,为了获得较好的音频和视频性能,正确配置端到端的Cisco QoS机制是相当重要的。
在高峰期,由于接口存在拥塞,因此数据包无法立即得到发送。于是,这些数据包就会被临时存放在队列中等候处理。数据包等待的总时长久称为队列延迟,这个时长会因网络条件和流量到达的速率而产生巨大变化。如果队列已满,那么新接收到的数据包就会因为无法进行缓存而被丢弃(我们称之为尾部丢弃)。图1-1所示即为尾部丢弃。在所有路由器接口的硬件队列中,数据包都会遵循先进先出(FIFO)的原则等待处理。语音通话是连续的,也是可以预测的(默认每20毫秒进行一次采样),但数据应用往往占据过大的带宽而且具有明显的突发性。因此,语音通话的质量更有可能因延迟、抖动和丢包而受到影响。