无线Mesh网路由协议仿真及性能分析
2010-09-13莫金旺蒋文芳
莫金旺, 蒋文芳, 赵 利
(①桂林电子科技大学 信息科技学院,广西 桂林 541004;②桂林电子科技大学 信息与通信学院,广西 桂林 541004)
0 引言
无线网状网(WMN)本质上属于移动自组织网络(Ad hoc网络),它与后者的最大区别在于前者的用户终端相对来说移动性较低,WMN一般不是作为一个独立的网络形态存在,而是因特网核心网的无线延伸。通常,会有一个或多个网关节点与因特网高速相连,家庭或办公室等用户通过自身的无线接入点与网关节点相连。对于网关节点信号覆盖之外的区域,用户节点负责来往业务的中继或转发,从而实现大范围的廉价和快速信号覆盖。显然,这种方式的组网省去了网络建设初期昂贵的基础设施建设投资,比传统的点到多点方式的无线接入有很多无可比拟的优点[1]。
自组网路由协议是目前无线网络研究的热点之一,互联网工程任务组(IETF)特别成立了移动自组织网络工作组(MANET工作组)来研究无线自组网中的路由协议。路由协议是自组网体系结构中不可或缺的重要组成部分,其主要作用是发现和维护路由。近年来人们对自组网技术持续增长的兴趣导致了许多路由协议方案的提出[2]。现对目前几种典型的路由协议的性能进行了仿真比较,并通过对按需平面距离矢量路由协议(AODV)吞吐量的分析,得出网络最佳容纳的节点数,具有重要的应用价值。
1 AODV路由协议工作原理
AODV实质上就是动态源路由协议(DSR)和目的序列距离矢量路由协议(DSDV)的综合,它借用了DSR中路由发现和路由维护的基础程序,及DSDV的逐跳(Hop-by-Hop)路由、顺序编号和路由维护阶段的周期更新机制,以DSDV为基础,结合 DSR中的按需路由思想并加以改进。AODV有别于其他协议的最显著的特点是路由表中每个项都使用了目的序列号,使用目的序列号可以避免环路的发送,并且很容易用编程实现。
AODV当有源节点需要和目的节点通信时,如果路由表中已经存在了对应的路由时,AODV就不会进行任何操作。当源节点需要和新的目的通信时,它就会发起路由发现过程,通过广播路由请求(RREQ)信息来查找相应路由[3]。AODV路由建立过程如图1所示。当源节点S1需要到目的节点S5的路由时,如果没有到目的节点的有效路由,便在节点间建立路由。源节点S1将广播一条RREQ消息,节点S2、S6收到RREQ分组后,首先建立一条到源节点 S1的反向路由,若节点S2、S6有到目的节点的有效路由,则向源节点S1回发路由回复路由确认(RREP)分组,否则继续广播RREQ分组,直到RREQ分组传送到目的节点S5。目的节点S5收到RREQ分组后,将沿着之前建立的反向路由的路径向源节点S1回发路由回复RREP分组,RREP沿最先到达的路径传回源节点,即沿S5-S7-S6-S1的路径传回源节点S1。当源节点S1收到该RREP分组后,从S1到S5的路由便建立了,正向路由路径为S1-S6-S7- S5。
图1 AODV路由建立过程
2 NS2模拟的基本流程
使用网络仿真器(NS2)进行网络模拟的基本操作流程如图2所示,用户首先要进行问题定义,考虑自己要模拟什么内容,大概的拓扑结构应该怎样,是否需要对源代码进行修改或添加等。如果需要添加或修改代码,如图中右边方框中所示,有一个对NS2源码进行修改、重新编译和调试的过程;如果不需要修改代码,即采用NS2已有构件即可完成模拟工作,那么用户的主要任务就是编写工具命令语言/具有面向对象特性的工具命令语言(Tcl/OTcl)模拟代码,生成.tcl脚本文件,并在NS2环境下执行该脚本进行模拟,模拟程序结束后会生成相应的跟踪文件(Trace文件),即模拟结果文件,用户使用不同的工具对该脚本中的内容进行分析得到想要的结果图表[4]。如果结果是所预期的,那么整个模拟过程即可顺利结束,否则,应该分析问题所在,并重新考虑问题定义、源码及工具命令语言(Tcl)脚本的修改。
图2 NS2进行网络模拟的基本流程
整个模拟过程主要有三个部分的工作量:①修改源代码;②编写Tcl模拟脚本;③分析结果。下面对这三个步骤中需要注意的问题做进一步的描述。
源码修改:这一步只有在模拟需要修改源代码时才进行考虑,修改源代码是一项比较具有挑战性的工作,这需要一定的编程和调试水平。特别需要注意的是,由于NS2是采用C++和具有面向对象特性的工具命令语言(OTcl)两种语言编写的,因此在修改源代码时,需要记着修改相应的 OTcl代码。
Tcl/OTcl模拟代码编写:这是NS2模拟中最重要和必不可少的一环,大部分NS2的模拟工作实际就是编写Tcl代码来描述网络结构、网络构件属性和控制调度网络模拟事件的启停过程。因此,这需要对NS2中的网路构件非常熟悉。
模拟结果分析:结果分析是真正体现模拟工作成效的重要一环,模拟结果分析要求熟悉NS2的Trace文件的结构,并且能够使用一些小工具对该结果文件进行分析以及根据分析结果数据绘制一些汇总图表等。
3 路由协议仿真及性能比较
由于AODV、DSR和DSDV是NS2组件库里的自带协议,故仿真过程直接从编写脚本文件开始。这里使用NS2.31版本对路由协议AODV、DSR和DSDV进行了仿真比较。50个节点随机分布在500 m×500 m的矩形区域,仿真时间为100 s,传送固定码率(CBR)业务, 最大移动速度为20 m/s,令节点停留时间分别为0 s,20 s,40 s,60 s,80 s,100 s进行测试。利用NS工具cbrgen.tcl生成业务场景文件, 利用NS工具setdest生成移动场景文件[5]。在NS目录下执行命令:ns wireless.tcl,执行完后在脚本文件同一目录下会出现wireless.tr和wireless.nam 2个文件。仿真数据结果保存在wireless.tr中,用自编的gawk程序对trace文件进行统计分析,得出相应的数据,并用matlab绘出AODV、DSR和DSDV的端到端的平均时延比较图如图3所示,分组投递率比较图如图4所示。
图3 端到端的平均时延比较
图4 分组投递率比较
节点移动速度大小反应了网络拓扑变化快慢。从图3可看出,对于端到端的延时,AODV和DSR的端到端平均延时高于DSDV的端到端平均延时,DSDV随着节点停留时间的变化波动较大。从图4可看出,AODV和DSR的分组投递率明显优于DSDV的分组投递率,AODV的分组投递率整体上高于DSR的分组投递率。
可以看到,AODV路由协议具有扩展性好,增加节点,扩大场景来说相对简单,而且分组投递率高等综合性能较好的优点。通过综合比较,结合课题的具体应用环境,决定采用AODV路由协议。
4 AODV协议吞吐量分析
网络的吞吐量是网络性能的一个重要参数,是指在不丢包的情况下单位时间内通过的数据包数量,单位是字节每秒或比特每秒。在仿真的过程中,使用不同的参数来进行测试。网络的拓扑范围设为1000 m *400 m,传输带宽为54 Mb,仿真时间为300 s ,传送传输控制协议(TCP)业务。在同一仿真场景中,令节点的个数分别为2,3,4,5,6,测得网络吞吐量如图5所示。把网络的节点数量设为5个,节点号从0开始,测得节点号1,2,3,4的吞吐量如图6所示。
图5 各节点个数对应的网络吞吐量
图6 各节点对应的网络吞吐量
从图5可看出,随着节点个数的增加,网络吞吐量依次在减小,当节点个数为6时,网络吞吐量急剧减小,即网络最佳容纳的节点个数为5个。从图6可看出,节点号1,2,3,4的吞吐量在依次减小,节点号4的吞吐量已接近0。
5 结语
采用面向对象的网络仿真工具NS2,对无线Mesh网络中AODV、DSR和DSDV三种协议的性能进行了比较分析。当网络拓扑变化不频繁,网络负载轻时,三个协议均表现出较好性能;当网络拓扑变化加剧时,DSDV性能明显变差,AODV与DSR性能仍保持良好,相较而言,AODV性能要更好些。最后,通过对AODV路由协议吞吐量性能的分析,得出AODV协议正确性测试时所需要的最佳节点个数,研究成果对无线Mesh网络的设计和开发具有重要的应用价值。
[1] AKYILDIZ I F, WANG X D.A Survey on Wireless Mesh Network[J].IEEE Communications Magazine,2005,43(09):23-30.
[2] 秦裕斌,陈建华,黄晓.无线Mesh网络技术及其应用[J].通信技术,2009,42(12):152-154.
[3] 谢世欢,郭伟.实现Ad-hoc按需路由协议的关键技术[J].计算机应用,2006,26(03):11-13.
[4] 黎方正.基于NS2的航空自组网节点移动模型仿真研究[J].通信技术,2009,42(01):186-188.
[5] 刘勃兰,宋玲.基于NS2的移动自组网路由协议的仿真与实现[J].计算机工程与应用,2007,43(06):162-164.