姜恩华
(淮北师范大学物理与电子信息学院,安徽淮北 235000)
“无线网络技术”课程是计算机应用、通信工程和网络工程等专业的一门重要的专业课程,无线自组织网络路由协议是该课程的重要内容。涉及的路由协议主要包括:目的节点序列号距离矢量路由协议(DSDV)、按需距离矢量路由协议(AODV)和源动态路由协议(DSR)等[1]。
为了让学生正确掌握无线自组织网络路由协议中的概念,我们把NS2和NSG2软件引入到无线自组织网络路由协议的教学中,在Windows XP环境下,搭建了辅助无线自组织网络路由协议教学的平台。本文详细论述了借助此平台如何进行辅助教学,以NAM动画演示了路由协议的动态运行过程,并分析了路由协议的效果。此举有利于学生掌握和理解无线自组织网络路由协议概念。
NS2网络仿真软件由美国DARPA支持的项目VINT开发,由事件调度器、网络组件和TCLCL机制等部分组成,在OTCL类中提供C++对象面向用户的配置接口,通过TCL程序建立网络运行场景和参数配置,通过NS2仿真实现对网络协议的分析。
目前由于多媒体教室中的计算机主要采用Windows XP操作系统,但是 NS2不能在Windows XP环境下直接安装,需要在Windows XP环境下安装Cygwin软件,模拟一个UNIX环境。然后安装NS2-Allinone-2.29 软件[2],该软件实现了 DSDV、DSR和AODV等无线自组织网络路由协议[3]。
NSG2软件支持无线网络节点,支持TCP、UDP和NULL代理,支持CBR和FTP应用,支持无线自组织网络路由协议DSDV、DSR和AODV,支持802.11参数设置,采用NSG2网络脚本生成器可以生成DSDV、DSR和AODV路由协议仿真的TCL脚本文件。但由于NSG2是在JDK环境下使用,所以需要在Windows XP平台下安装jdk-7-windows-i586.exe软件以建立JDK环境。
通过NS2对DSDV、DSR和AODV路由协议仿真,生成nam文件和trace文件,nam文件供nam.exe播放器调用,以NAM动画演示路由协议的动态运行过程,编写AWK程序对trace文件中的数据进行统计。文件主要统计发送和接收的封包个数,端到端的延时,第一个封包的接收时间等数据,借助该数据分析DSDV、DSR和AODV路由协议的效果。
首先采用NSG2软件生成DSDV、DSR和AODV路由协议仿真的TCL脚本文件,启动NSG2软件,点击 scenario建立 wireless scenario文件。在 Node mode下,设置拓扑结构中需要的节点数,对于移动节点需要设置移动开始时间、停止位置和移动速度;在Agent mode下,设置代理,可以选择代理类型和封包大小,要在UDP代理和NULL代理之间建立一条联机;在Application mode下,设置FTP和CBR,需要设置起始时间、停止时间、包大小和速率等;在Parameters模式下,设置模拟参数,需要设置仿真时间、Trace File和 Nam File文件名,进入 Wireless页面选择路由协议DSDV、DSR和AODV,进入Channel页面参数使用NSG2的默认值;最后点击TCL按钮,产生TCL脚本文件,并保存TCL脚本文件,供NS2仿真使用。
其次启动 Cygwin bash shell,并输入 startxwin.bat进入X窗口,运行NS2对DSDV、DSR和AODV路由协议仿真,产生trace文件和nam文件。
最后在X窗口下通过nam.exe对nam文件进行播放演示路由协议的动态运行过程,通过AWK程序统计trace文件中记录的发送和接收的封包个数、端到端的延时和第一个包的接收时间等数据,分析DSDV、DSR和AODV路由协议的效果[4]。
我们根据无线自组织网络路由协议的概念和运行机制,设计路由协议运行的网络场景,对路由协议DSDV、DSR和AODV进行仿真,其网络拓扑结构如图1所示。此结构由4个节点(n0、n1、n2、和n3)组成,节点的坐标会影响到电磁波的传输范围、信号强度和路由协议。各节点坐标如下:节点n0处于坐标(583,484),节点 n1 处于坐标(783,484),节点 n2处于坐标(468,417),节点 n3 处于坐标(868,559)。节点n2作为数据源发送端,在节点n2上绑定一个udp0代理,在udp0代理上绑定一个流量发生器cbr0。流量发生器cbr0速率设置为0.5MB,节点n3作为接收端,在节点n3上绑定一个null1代理,仿真时间为100秒。节点n0、n1和n3处于静止状态。节点n2可以处于静止状态,也可以处于移动状态。当节点n2处于移动状态时,采取从第1秒开始以每秒10米速度从坐标(468,417)向右平移,到50秒时开始以每秒10米速度向左平移返回坐标(468,417)。
图1 路由协议仿真的网络拓扑结构
对DSR路由协议仿真时,interface queue type采用CMUPriQueue。对AODV和DSDV路由协议仿真时,interface queue type可用Queue/DropTail/PriQueue。
1)AODV和DSR路由协议仿真
AODV是采用基于距离矢量算法的一种路由协议,DSR是基于源路由方式的按需路由协议,AODV和DSR由路由发现和路由维护两个协议过程组成。当源节点要发送一个数据包给目的节点时,如果不知道到达该节点的路由,路由发现过程广播一个路由请求消息给邻节点并等待路由应答消息,应答消息以单播形式发送给源节点。当源节点检测到邻节点路由失效时,路由维护过程启动路由发现过程重新找到一条路由继续传送数据[5]。
以AODV路由协议仿真为例,按照图1的网络拓扑结构搭建网络仿真场景,当源节点n2处于静止状态时,路由发现过程找到的从源节点n2到达目的节点n3的路由如图2所示;当源节点n2移动时,源节点n2开始向右平移时,路由发现过程找到的从源节点n2到达目的节点n3的路由。此路由与图2所示的路由相同。当节点n2平移一定距离后,原来路由失效,路由维护过程启动路由发现过程重新找到从源节点n2到达目的节点n3的路由如图3所示。
图2开始找到的从n2到n3
图3重新找到的从n2到达n3
2)DSDV路由协议仿真
DSDV路由协议是基于Bellman-ford算法的主动路由协议。每个节点维护一个或多个路由表,每个节点定期向网络广播拓扑信息,维护一致的最新的网络视图。对DSDV协议的仿真,按照图1的网络拓扑结构搭建网络仿真场景,当源节点n2处于静止状态时,网络中节点通过发出广播信息,更新路由表,在36秒时找到从源节点n2到达目的节点n3的路由,此路由与图2所示的路由相同;当节点n2向右平移时,在24秒时能找到节点n2到节点n3的路由,此路由与图3所示的路由相同。
对DSDV协议的仿真也可以采用有线网络和无线自组织网络组成的混合网络结构,有线网络通过基站节点与自组织网络形成一个混合网络实现对DSDV协议的仿真。
采用图1所示的网络拓扑结构,通过AWK程序对trace文件中数据进行统计。这里主要统计第一个数据包收到时间、端到端延时、发送包数、接收包数和包传输率等。当节点n2移动时统计到的数据如表1所示,当节点n2静止时统计到的数据如表2所示。
表1 节点n2移动时统计到的数据
表2 节点n2静止时统计到的数据
表1和表2可以看出,若节点n2移动时,AODV和DSR路由协议收到第一个数据包时间比DSDV路由协议短的多;若节点n2静止时,DSDV路由协议端到端延时最短。所以AODV和DSR路由协议适合用于节点快速移动的网络场景,DSDV路由协议适合用于节点静止的网络场景。
本文在NS2和NSG2软件的基础上,搭建了辅助无线自组织网络路由协议教学的软件平台,研究了DSDV、DSR和AODV路由协议。通过NSG2生成DSDV、DSR和AODV路由协议仿真的TCL脚本文件,通过NS2软件仿真生成nam文件和trace文件,通过NAM动画演示路由协议的动态运行过程,通过AWK程序对trace文件中数据进行统计。本文分析了DSDV、DSR和AODV路由协议的效果,达到利用NS2和NSG2辅助无线自组织网络路由协议教学的目的,收到了良好的教学效果。
[1]汪涛.无线网络技术导论[M].北京:清华大学出版社,2009
[2]ns-allinone-2.29[EB/OL].http://sourceforge.net/projects/nsnam/files/allinone/,2006
[3]The ns Manual[EB/OL].http://www.isi.edu/nsnam/ns/nsdocumentation.html,2010
[4]柯志享,程荣祥,邓德隽.ns2仿真试验--多媒体和无线网络通信EB/OL[M].北京:电子工业出版社,2009
[5]安辉耀,王新安,李挥等.移动自组网中的先进路由算法与路由协议[M].北京:科学出版社,2009