基于NS-2的VoIP模拟与仿真
1 NS-2和AMR相关技术
1.1 NS-2网络模拟器
NS-2(Network Simulator,version 2)是由加州大学伯克利分校开发的面向对象的、离散事件驱动的网络模拟器,主要用于解决网络研究方面的问题,目前NS-2可以用于模拟各种不同的通信网络。它功能强大,模块丰富,已经实现的主要模块有:网络传输协议(如TCP和UDP),业务源流量产生器(如FTP、Telnet、Web、CBR和VBR),路由队列管理机制(如Droptail、FQ、RED和CBQ),路由算法(如Dijkstra),无线网络WLAN、移动IP、卫星通信网络模块、多播协议以及一些MAC子层协议等。
NS-2使用了被称为分裂对象模型的开发机制,采用C++和OTcl两种开发语言进行开发,它们之间采用TclCL进行自动连接和映射。NS-2的模拟可分为2个层次,其中第一个层次是基于OTcl的模拟,主要利用NS-2现有的网络元素来实现模拟,因此无需对NS-2本身做任何修改,只需要编写一个完整的OTcl脚本程序即可;另外一个层次是基于C++和OTcl的模拟,该层次中没有所需的网络元素,因此需要对NS-2进行扩展,添加所需要的网络元素。一般来说,NS-2的模拟需要与NamvNetwork animaterw配合使用。Nam是基于Tcl/Tk的动画演示工具,以把模拟的过程用可视化的方式呈现出来[2]。
1.2 AMR自适应技术的介绍
自适应多速率语音编码(AMR)有8种信源编码模式,2种信道模式(即全速率信道模式和半速率信道模式)以及不同信道模式下所对应的不同信道编码模式。其中,全速率信道模式下所对应的信道编码模式为8种,半速率信道模式下所对应的信道编码模式为6种,每种信道编码模式都有一种信源编码模式与之相对应。此外为了降低算法的复杂度,8种信源编码模式均采用ACELP(Algebraic Code Excited Linear Prediction)模型,不同的只是参量的量化码本和量化比特数。在移动通信中,当信道模式固定后,通过测量归一化的载(载波信号)干(干扰信号)比来估计当前信道的质量,度量级别为4个级别,分别为很差、差、好、很好。如果当前信道质量估计为较好或者好,则降低信道编码速率、提高信源编码速率,以此来提高重构后的语音质量;如果当前信道质量估计为差或者较差,则提高信道编码速率、降低信源编码速率,以此来保障通话质量。所以高模式下的信源编码(如MR122),虽然可以提供优良的语音可懂度和自然度,但是抗噪能力差;而低模式下的信源编码(如MR475),由于多数比特被用作信道编码,因此具有很强的纠错能力,但是重构后的语音质量不佳[3]。
2 AMR算法下的VoIP系统
VoIP传输的基本过程可分为4种:PC-PC模型、PC-Phone模型、Phone-PC模型和Phone-Phone模型[4]。本文中仿真的是Phone-Phone模型,具体过程如图1所示。在该模型中,语音的传输过程可以拆分为2个阶段。第一个阶段,语音数据通过UDP协议打包从源点pc0-T开始发送,通过网关gk0、gk1转发,将语音数据包转发到目的地点pc0-R,从而实现节点0~5之间的语音数据通信;第二个阶段,语音数据通过UDP协议打包从源点pc1-T开始发送,通过网关gk1和gk0转发,将语音数据包转发到目的地点pc1-R,从而实现节点6~1之间的语音数据通信。2个阶段连续的传输过程构成了VoIP中语音数据的基本传输过程。此外,为了更加真实地模拟网络资源的变化,设置了一个pc到pc的网络数据量的传输过程。该过程为:网络数据通过TCP协议打包从源点pc2-T开始发送,通过网关gk0和gk1转发,将网络数据包转发到目的地点pc2-R,从而实现节点2~7之间的网络数据的传输。通过设置不同的网络数据流量可以来模拟当前网络信道质量的好坏,从而为选择不同的AMR信源编码模式做准备。
评论