VoIP的基本工作原理
在介绍VoIP协议之前,我们有必要预先了解VoIP的基本原理。VoIP的处理过程主要包括语音采样、压缩编码、打包分组、分配路由、存储交换、解包解压和语音还原等多个过程,它的工作方式与传统的模拟电话网完全不同。后者是以电路交换的方式传输语音,不存在声音延迟的问题,但对VoIP应用来说,是否拥有高效的传输环节将直接影响到通话质量。
第一步:完成语音-数据转换
我们知道,从麦克风或IP电话机输入的语音都属于模拟信号,若要通过IP网络进行传输,就必须将它们首先转换为数据信号,相当于声卡中的模数转换工作。当然,VoIP对语音的品质并不苛求,一般6位或8位比特、8KHz频率的采样即可满足正常通话的需要;经过采样之后,输入的语音就成为相应的二进制数据序列,并被送入专用的缓冲区中,而缓冲区容量可根据编码的要求进行调整。一般说来,VoIP系统大都采用以“时间帧”为单位对音频数据进行编码,典型的帧长度为10-30毫秒,而一个传输数据包(即VoIP设备向互联网传送语音数据的基本单位)则由多个帧组成—数据包通常有60毫秒、120毫秒和240毫秒三种规格,假设数据包为120毫秒规格,如果采用15毫秒的帧长,那便是说该数据包由8个帧构成,而每个帧拥有15ms×8KHz=120个采样获得的语音数据。这里要注意区分的一个概念是,普通的IP数据包容量以Byte表示,而VoIP数据包则是以ms表示,前者说明的是数据包的大小,后者则是表示数据包可以提供多长时间的语音内容。
整个VoIP系统必须采用相同的语音编码算法,这样接收方才能够将接收到的语音数据包进行还原处理,而目前VoIP中主要采用的编码标准为ITU-T G.711,对其细节我们就不作进一步的阐述了。
第二步:数据包的IP转换及传送
编码、打包工作完成之后,语音数据包会被送入一个专门的网络处理器中—如果对于硬件性质的IP电话,该处理器一般都被电话本机直接集成,这也是IP电话终端价格颇为昂贵的主要原因;另一种方式是由专门的IP电话服务器承担,它一般在电信运营商提供IP电话服务时使用。而如果是运行于PC上的VoIP通话软件,处理任务自然由CPU承担,但具体的算法则由软件本身提供。网络处理器的主要工作是为数据包添加包头、时标、接收方的具体位置,以便数据包能够准确到达目标。对于传统电话网络,通话双方简单地建立了一条端到端的物理连接,通话内容都是以模拟电信号的方式直接送给对方;但IP网络不同于这类电路交换网络,通话双方不可能形成直接的电路而连接,语音数据只能够根据附带的寻址和控制信息,借助IP网络一站站地转发到目的地。
对采用VoIP进行通话的终端用户来说,整个传输网络完全是透明的:其输入端接收来自VoIP设备的语音包,然后将它送到对应的网络输出端。而在网络内部,这些语音数据包是通过节点的转发才能够达到目的地—节点在收到数据包的同时,会检查每个数据包附带的寻址信息,并根据这个信息将该数据包转发到下一站路径,而与网络链路的物理形态无关—传输网络可以采用任何拓扑,也可以采用任何一种访问技术,例如以太网、光纤网络、微波专线、Wi-Fi网络等等。由于IP网络在设计时并没有考虑到语音通信的需求,数据包传输节点众多,信号延迟就不可避免,而该VoIP系统性能如何主要就取决于传输延迟的长短。
在编码技术方面,各种VoIP技术都没有什么本质性的区别,关键就在于它们采用不同的传输协议,对此我们在后面将作进一步的解释。
第三步:IP数据包还原、数模转换
当IP数据包抵达目标设备后,该设备立即对数据包进行还原处理。首先,VoIP系统会提供一个长度可调节的缓冲器,用来调节各数据包的延迟;如果缓冲器较小,自身产生的延迟也就较小,但它无法调节延迟时间较长的语音数据包。接下来,解码器会将该语音包进行解压缩处理,还原为原始的语音包—要注意的是,IP转换中引入的各种地址信息和控制信息都在传输过程中被逐步丢弃,整个过程与传送普通的IP数据包没有任何差别。根据前述规则,语音包接着被一定的帧长度进行还原,去除最末端的寻址和控制信息,只留下原始的音频数据,之后再被数模转换器还原成模拟音频,并通过扬声器或耳机传出,整个VoIP通话过程由此开始。 |