AdHoc网络中语音传输的分析及性能测试*

2012-09-29 11:27杜智敏谢维波杨大力
网络安全与数据管理 2012年10期
关键词:包率延时数据包

杜智敏 ,谢维波 ,杨大力

(1.华侨大学 计算机科学与技术学院,福建 厦门361021;2.华侨大学 厦门软件园嵌入式技术开放实验室,福建 厦门361008)

随着无线通信技术和嵌入式技术的飞速发展,AdHoc网络技术及其上的多媒体应用成为一个研究热点。由于实验条件等限制,目前针对AdHoc网络的研究大都基于NS(Network Simulator)、GloMoSim 等仿真工具,研究成果往往理论有余,而实践稍显不足。为了深入研究AdHoc网络中的语音通信技术,构建实际AdHoc网络,对该实际网络环境及其上语音通信性能的评估分析研究就显得十分必要。

1 语音传输模型

语音在AdHoc网络中传输的基本模型如图1所示。音频设备采集到的模拟语音信号必须经过采样量化等处理手段转换成数字信号,然后经过压缩并打包成某种网络数据包格式,之后在AdHoc网络中进行传输。到达目的端系统后首先经过网络协议栈解包,得到压缩过的数字语音数据,之后经过解压缩等处理过程,得到原始语音数据。

决定语音质量的主要因素是编解码器的选择,其次是网络传输性能的影响。网络延时和丢包对语音通信质量造成的影响在AdHoc网络中一直是个技术瓶颈。

2 AdHoc网络模型

IEEE 802.11作为无线通信的官方标准仅仅考虑到了单跳的网络,因此很有必要为多跳无线网络开发相应的路由协议。这些路由协议决定如何通过其他节点对目的节点不在传输域内的信息进行转发。

图1 基于AdHoc网络的语音通信基本模型

大量针对不同路由协议的模拟已经通过不同的模拟器进行了模拟。但是模拟器建立的是一种理想模型,并不能将实际情况中的所有因素考虑在内,所以其结果同样是一种理想结果,并不能作为商业应用的参考。

这里使用AODV(AdHoc on-Demand Distance Vector)[1-2]协议对AdHoc网络的实时通信性能进行测试。AODV借鉴了DSR协议的路由发现和维护概念,以及DSDV协议的序列号和发送周期性Hello包的机制。其主要路由机制如下:

(1)路由发现机制:当一个节点要与另外一个节点通信时,它首先查看自己的路由表,看到达该目的节点的路由是否存在,若不存在,则初始化一个路由发现过程(AODV创建并广播一个RREQ控制包,并设置一个定时器来等待回应数据包RREP)。所有收到RREQ控制包的节点都会比较该包的ID,看是否以前曾经收到过。若非第一次收到,则直接丢弃该控制包。

(2)路由维护机制:当一个路由建立好后,就需要源节点来对其进行维护。节点的移动只会影响到途经该节点的路由,并不对网络造成全局影响。源节点在通信过程中的移动会造成它与当前使用路由的下一跳之间的连接断开,此时,它将会重新广播一个RREQ包来发现路由。如果中间节点与其下一跳之间的连接断开,它会发送一个RERR包给其(当前路由)前驱节点,并将到达该目的节点的路由标记为无效(被标记为无效的路由将于一段固定时间之后被丢弃)。其前驱节点收到RERR包后,同样将该条路由标记为无效,并将该RERR发送给自己的前驱节点。

(3)Hello包机制:在规定时间内,如果没有数据包传输,节点就会广播发送Hello消息给其邻居节点来对本地连接进行更新。Hello消息的内容包括节点的IP地址及当前序列号等。由于该信息不需要被转发,它们的ttl值都为 1。

3 AODV协议对网络性能的影响

(1)端到端延时:由于AODV为被动路由协议,所以在第一次数据传输时,如果没有有效路由,则会启动发现路由机制,于是引入了发现路由延时。发现路由延时的大小主要取决于端到端需要经过的跳数,当然不同的AODV实现版本之间的发现路由延时也会有所差别。

(2)路由变化延时:该延时是指从当前工作路由失效到重新发现并启用新的有效路由之间的时间。该延时取决于 ALLOWED_HELLO_LOSS×HELLO_INTERVAL。 可以通过调整这两个参数来降低该延时。ALLOWED_HELLO_LOSS默认为2,如果调整为 1,由于无线信道的不稳定,时不时地信道状况不好会导致Hello包的丢失,由于ALLOWED_HELLO_LOSS调整为1,于是造成了路由协议认为链路已损坏,而实际链路并未断开的状况的出现。

分析图2所示的情况。假设ALLOWED_HELLO_LOSS的默认值为2,则AODV路由协议在2×HELLO_INTERVAL未收到Hello包时就会认为该链路已经断开。此时有两种极端情况:

图2 链路失效检测时间

①节点1在收到第2个Hello包之后,实际链路断开,而此时AODV路由协议由于收到了Hello包,认为链路依然有效。

②在节点1收到第2个Hello包之后一个HELLO_INTERVAL时,实际链路断开,而AODV协议并不认为链路断开,而是会发送第二个Hello包来确认链路状况。由于链路失效时间不可预知,可认为其是介于HELLO_INTERVAL和 2×HELLO_INTERVAL之间的一个随机数。由于相对路由变化时间来说路由发现时间可以忽略,可对其定义如下:

4 性能评估测试

4.1 测试环境构建

本文使用4台安装Linux系统的笔记本作为实验设备。路由协议使用开源的aodv-uu-0.9.6.tar.gz[3],应用程序为自己编写的双工语音通信程序(使用udp进行语音通信,由语音录制、语音压缩、语音解压缩、语音播放4个线程构成)。测试环境构建流程为:

(1)配置无线网卡(以laptop1为例)

设置完网卡后,可以使用ifup wlan0来查看网卡是否设置成功。

(2)安装路由协议

(3)构建网络拓扑

将4台笔记本直线摆放在实验桌面上,IP地址分配依次为 192.168.2.5~192.168.2.8(4节点结构,3节点网络拓扑与此类似)。

由于笔记本自带无线网卡传输范围比较大,laptop1和laptop4可以直接通信,而不需经过laptop2和laptop3,而室内空间也有限,所以为实现laptop1→laptop2→laptop3→laptop4多跳效果,这里需要使用Linux系统的防火墙工具iptables[4]。其命令格式为:

其中laptop_mac为要屏蔽的laptop的mac地址。

为实现 laptop1经过 laptop2,再经过 laptop3,最后到达laptop4的多跳效果,需要让laptop1屏蔽掉其到laptop3和laptop4的直接通路。在其上执行命令(其中以#开头的表示在超级用户权限执行的命令):

表1 3个节点丢包率和延时

表2 4个节点丢包率和延时

以同样的方式让laptop2屏蔽掉其到laptop4的直接通路,让laptop3屏蔽掉其到laptop1的直接通路,让laptop4屏蔽掉其到laptop1和laptop2的直接通路。

4.2 性能测试方案设计及测试结果分析

(1)路由发现时间

按照上面步骤设置好无线网卡后,启动AODV路由协议:

使用 ping命令从 laptop1发送数据包到 laptop3(和laptop4),此时AODV会启动发现路由过程,并建立路由表。路由发现时间可由AODV路由协议的日志中得出(rreq_create启动到 aodv_socket_process_packet对 RREP包进行处理)。

测试可得,3个节点路由发现时间为 6 ms,4个节点路由发现时间为10 ms。相对数据包发送延时来说,基本可以忽略。

(2)AdHoc网络丢包率和延时

使用ping命令向目的节点发送1 000个默认大小(56 B)的数据包。命令为:ping-c 1000-i interval 192.168.2.8。其中interval为发送两次icmp数据包之间的时间间隔。

网络丢包率和延时测试结果如表1、表2所示。

从测试结果可知,当发包时隙为5 s时,丢包率暴增到一半以上。这是AODV路由协议作用的结果,正常情况下应该是发包频率越慢,丢包率越低。由于AODV路由协议维护有效路由有个定时器:ACTIVE_ROUTE_TIMEOUT(默认为 3 000 ms)和 DELETE_PERIOD。 DELETE_PERIOD计算公式[5]为:

而 ALLOWED_HELLO_LOSS 为 2,HELLO_INTERVAL为 1 000 ms,于是 DELETE_PERIOD默认为 3 000 ms。 即AODV协议每隔3 s会删除在这段时间内都未使用的路由,而发送数据包时隙为5 s,由于上次使用的路由已被删除,于是每次发送都需要重新发现路由,最终导致了严重的网络丢包率。

(3)语音通信丢包率测试

在 laptop1、laptop3(3 节点网络)和 laptop4(4 节点网络)运行语音通信程序,并在程序中增加数据包计数器来统计丢包率。

对比表3所示丢包率测试结果和icmp包的丢包率测试结果,可以看出3个节点的网络中音频数据传输类似时隙为0.1~0.2之间的icmp包的传输,但是4个节点时相当于时隙为0.6的icmp包的传输。该结果间接表示4节点之间的语音传输延时大大增加,这也是无线AdHoc网络的一大技术瓶颈。

表3 语音传输丢包率

本文深入阐述了AdHoc网络中的语音传输模型和AdHoc基本模型,详细分析了AODV路由协议对AdHoc网络性能的影响以及语音评价标准。最后实际搭建了AdHoc网络,并对其通信性能及其上的语音通信性能进行评估测试。本文旨在帮助广大研究人员对AdHoc网络性能有更深入的理解。

[1]AODV[DB/OL].http://moment.cs.ucsb.edu/AODV/.

[2]PERKINS C,ROYER E.AdHoc on-Demand distance vector routing-RFC3561[C].2003:1-38.

[3]AODV-UU[S/OL].http://sourceforge.net/projects/aodvuu/.

[4]Netfilter/Iptables[S/OL].http://www.netfilter.org.

[5]Lu Yi,Zhong Yuhui,BHARGAVA B.Packet loss in mobile AdHoc networks[R].2003.

猜你喜欢
包率延时数据包
支持向量机的船舶网络丢包率预测数学模型
二维隐蔽时间信道构建的研究*
一种基于喷泉码的异构网络发包算法*
电磁线叠包率控制工艺研究
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
基于级联步进延时的顺序等效采样方法及实现
日光灯断电关闭及自动延时开关设计
SmartSniff
TCN 协议分析装置丢包率研究
Two-dimensional Eulerian-Lagrangian Modeling of Shocks on an Electronic Package Embedded in a Projectile with Ultra-high Acceleration