搭建P2P VoIP应用程序的仿真可控网络测试环境

1.概述skype和gtalk

SkypeGTalkVoIP应用的两个典型代表。SkypeGTalk使用的是UDP/TCP传输协议,使用相同的编解码器。SkypeGTalk继承了P2P网络的一些特性,如各节点间合作且共享网络资源。Skype采用全球搜索目录(GI)技术,GI是一种可扩展网络技术,它使用多层的网络结构,利用超节点来实现网络中的每个节点可以获取所有其他可利用节点的资源,并将这些节点资源动态组合,来参与流量分配、路径选择、处理需要较大带宽的任务等,并保证最小的时延。GTalk采用IETF制定的XMPP协议,可提供与其他VoIP应用的免费连接,GTalk网络可以与其他VoIP网络协同工作。

Skype传输定线的是超节点。超节点实际上是一台带有特殊配置的电脑,它必须直接连接到互联网,并且没有使用NAT防火墙。另外,该电脑必须有真正的公网路由IP地址。除了这些限制,任何满足最基本硬件和配置要求的Skype用户的计算机都能成为超节点。

 

2.实验环境示意图

如下图:主机S与主机R分别是发送端与接收端,负责语音信号的发送与接收。音频记录软件使用AudacityNAT-RNAT-S是两个NAT-Boxes,主机SR通过它们与外界网络进行连接。NetworkEmulator(网络仿真器)使用的是NIST net,完成各种网络情景的再现,CD播放器重复地产生一个长达1h的采样音频,这些音频数据通过网络仿真器传到R

 

NIST net网络结构示意图NIST net是一款Linux®下的网络模拟软件,它能让Linux服务器像路由器一样模拟各种网络条件,如拥塞丢失,包重排序,或者带宽非对称等情况。NIST net有一个基于X的用户接口,它也是Linux的核心模块扩展。作为一种工具,在NIST net上可以进行可控的,可重复的实验。这些实验,可以是网络特性敏感/自适应的应用,也可以通过简单的实验室环境设定控制协议。NIST net工作在IP层时能模拟被不同广域网环境影响后的端到端的临界性能特性。NIST net也支持用户对系统附加的自定义分组管理。

下图是NIST net的典型配置:

NIST net 配置

 

3.实验预期分析

语音质量的测评方法有几种:一种是MOS(平均主观值法),这是由ITU-T制定的一个较为主观的评价方法,由直接参与到语音通信中的人来评定语音的质量,语音质量最终被评为15分,分数越高语音质量越好。与MOS相比,E-model是一种较为客观的评估语音质量的方法,关注影响语音质量的全面的网络损伤因素(如时延、抖动、回音、编解码等)。由于不能获得有关SkypeGTalk编解码器的信息,所以就无法采用此方法来评测语音质量。实验中所采用的是PESQ(感知评估通话质量测评),此方法实际上是通过复杂信号处理,用PESQ算法对发送信号和接收信号进行校准,然后评估这两个信号间的差异,最终评测结果对应于MOS

 

4.搭建网络

         <1>NIST net安装在配置有双网卡的linux主机上。【采用虚拟机来代替】

         为虚拟机设置两个网卡,同时激活它们:

         主菜单à系统设置à网络à新建à以太网连接à设置IPà分别激活à最后如下图:

         网卡配置图

     <2>配置网络:

         对于eth0的配置如下:

         eh0配置

         对于eth1的配置如下:

         eth1配置

          

即,配置结果如下:

         各设备ip配置表格

 

鉴于要测试的产品未投放市场,不便公开,以下引用http://writeblog.csdn.net/PostEdit.aspx?entryId=3960437的测评结论。

5.开始测试:

5.1信道容量影响

在此实验中,设定时延25ms且没有明显的丢包和抖动。要研究的是当信道容量逐渐变化(50kbit/s40kbit/s30 kbit/s20 kbit/s15 kbit/s)时,SkypeGTalk相应的变化。通过观察传输率(见图2)和PESQ MOS(见图3),发现在信道容量为50 kbit/sGTalk利用了更多的带宽,传输速率比Skype更高。当信道容量变为40 kbit/s时,GTalk发生了很明显的变化,传输速率降低到了35 kbit/s。这个变化使得其PESQ MOS分数与Skype相比有所提高,而Skype的传输速率则接近信道容量。当信道容量变为30 kbit/s时,两者间差异不大。当信道容量为20 kbit/s时,Skype首次优于Gtalk,当信道容量为15 kbit/s时,SkypePESQ MOS分数比GTalk5.5%。通过观察知道,在容量为20 kbit/s时两者的传输率相同,但PESQ MOS分数却不一致,合理的解释就是GTalk出现了很严重的网络抖动情况(如图4所示)。

 

图2图3

 

 

2吞吐量随信道容量变化状况          3PESQMOS随信道容量变化状况

 

图4        4平均抖动随信道容量变化状况

5.2时延影响

网络参数设置为信道容量50kbit/s且没有丢包和抖动发生。确定几个等级范围,其中时延为1ms10ms100 ms时通话是可以接受的,时延为500 ms1 000 ms时语音质量就变得不可接受。对于Skype,时延对其服务质量的影响更为明显,如图5所示,传输率从37.5 kbit/s降为19.36 kbit/s。然而,对于GTalk其传输率则没有明显变化。由图6可知,在时延为1 ms10 ms100 msSkypePESQ MOS高于GTalk,在时延为500 ms1 000 msGTalk则略优于Skype

图5图6

5不同时延下吞吐量的变化状况                        6PESQMOS随时延的变化状况

5.3丢包影响

设置信道容量为50kbit/s,时延为25ms,没有抖动,丢包率分别定为01%5%10%30%40%。如图7所示,GTalk对于丢包发生,没有适应性机制。可以设想Skype对数据流增加了冗余信息来减少丢包对语音质量的影响,这就解释了在丢包率为1%5%10%时传输率的增长。然而,Skype的这些适应机制并没有使得PESQMOS分数比GTalk高,如图8所示。在丢包率为5%时,Skype添加了过多的冗余,消耗了过多的网络带宽,而PESQ MOS并没有期待中的提高。

图7图8

7不同丢包率下的吞吐量的变化状况                         8不同丢包率下的PESQMOS变化状况

5.4抖动影响

设置信道容量为50kbit/s,没有丢包,时延为100ms,抖动为0ms20 ms40 ms60 ms80 ms。但是测量数据没有显示出任何适应性的迹象。在本实验中抖动只是改变了接收端的缓冲区大小,对数据流传送没有任何影响,并且实验结果也显示PESQ MOS或者说语音质量与抖动没直接关系,具体的实验图示不再赘述。

 

6.结果统计分析:

实验比较了VoIP的两个应用GTalkSkype,不是要分出它们的优劣,而是要找出普遍存在问题,给VoIP的应用开发者提出建议。

采用不同的编解码方式,其对应的业务质量可能不同。即使是使用相同的编解码方式,也可能会表现出不同的语音质量。对于VoIP的应用来说,具有高效的适应机制来适应复杂可变的网络环境相当重要,适应性好的应用会更有优势,例如,当带宽有限时,GTalk始终保持一个较高的传输率,从而产生了严重的抖动和PESQMOS分数的下降。另一方面,Skype在丢包率较高时,传输率有明显的下降,导致业务质量更糟。

数据流中添加冗余信息可能会产生好的效果,当丢包率小于10%时,Skype可以使PESQMOS的分数保持在3分之上,GTalk没有采用适应性机制,从而其语音质量随着丢包率而线性下降。但是,也需要对添加冗余信息的量度有一个把握,否则会产生不好的效果,因此还需要进一步地提出更有效的冗余设计方案来适应可变网络。

 

7.结束语:

实验比较了P2PVoIP的两个应用SkypeGtalk,讨论了它们在网络状况变化时的动态适应策略,并且通过PESQMOS方法评估了它们语音质量的优劣。通过实验可知:在理想的网络状况下,Skype表现得更好一些(两者PESQMOS的分数差别为0.1),总体而言它们的语音质量还是较为接近。在网络有较长的时延时,Skype有不必要的适应性。当丢包情况发生时,GTalk没有实施任何机制来提高其性能,与此同时,Skype使用数据冗余机制来对抗丢包以提高其语音质量。在抖动情况发生时,两者都没有很好的机制来提高其适应性。当有较长的时延时,PESQ MOS并不是最佳的评估语音质量的方法。所以,尽管实验中包含有时延对语音质量的影响结果,但这可能不是十分准确,有待于进一步研究。另外,以上的实验是SkypeGTalk分别进行,之间没有相互影响,若是VoIP的具体应用需要竞争相同的网络资源时,它们的表现情况如何研究者需要进一步的研究。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值