移动无线Adhoc网络具有无基础设施、分布式、自组织、自配置、自管理的特性,可在应急条件下快捷部署的计算机网络,在军事、抢险救灾、突发事件应对等方面具有广泛的潜在应用。移动Adhoc网络技术抽象复杂、难于理解,在教学过程中构建具有相当规模的实验网络不切实际。因此,设计基于NS-2网络仿真软件的实验,让学生在个人电脑上完成,深刻理解Adhoc网络技术的原理、学会评价其性能,针对目前已提出的Adhoc路由技术的不足,探索一些创新性实验设计方案,改进或者提出更优的路由技术。
1 无线移动Adhoe网络路由
路由的任务是把数据分组从源节点经过中间网络节点送达到目的节点,是移动Adhoc网络组网的关键技术,影响着网络延时、吞吐量等性能的优劣。由于无线移动Adhoc网络拓扑动态变化、资源限制等特点,给路由技术的设计带来了巨大的困难,在数据包的传输过程中,中间节点主要涉及2个基本行为,即确定最佳路径和数据包的转发,数据包的转发较为简单,路由选择较为复杂,目前典型的路由技术有DSDV、DSR、AODV等。
1.1 目的节点序列距离矢量协议(DSDV)
DSDV是基于Belhnan-Ford算法表驱动的平面路由协议,每个节点都存储维护一张路由表,记录网络的全局视图。路由表记录着目的节点、跳数、下一条节点和目的节点序列号标识,序列号标隐含了路由的时间信息来区分新旧(过时的)路由,同时避免环路的产生。路由信息的建立维护过程是每个节点周期性地与邻节点交换路由表信息,以维持所有节点都拥有完整的路径信息,同时,节点路由信息发生改变时也触发路由信息的重新建立。作为先应式路由的DSDV路由协议,再发送数据之前已建立好整个网络的路由信息,数据可以立即传输,因此适用于实时性应用环境中,但是网络拓扑变化频繁时,维护路由信息的代价很高,因此不适合移动性强和大规模的网络环境中。
1.2 动态源路由协议(DSR)
和先应式表驱动路由不同,DSR是一种按需(On_demand)平面路由协议,当一个节点需要发送数据报文时,首先检查路由缓冲,是否存在从源节点到目的节点的一条路由,如果存在,就启动该路由通往的节点转发信息,其他非参与节点睡眠以节省能量等资源。如果不存在通往目的节点的路由,该节点则启动路由搜索,路由搜索过程:源节点通过泛洪方式广播路由请求分组给邻居节点,邻居节点收到路由请求分组后,检查自己的地址是否在路由请求分组中,如存在,就不转发路由请求分组,如不存在,就把自己的地址添加到路由请求分组,并转发补充了自己地址的的路由请求分组,这个过程持续到有一个路由请求分组到达目的节点,当路由请求分组到达目的节点时,节点要返回一个路由应答分组通知节点己收到该路由请求。到达目的节点的的路由请求分组包含从源节点到目的节点的路由,目的节点就可以选择利用反向路由来发送路由应答,从源节点到目的节点可能在多条路由,一个源节点可能从目的节点那收到很多个路由应答,DSR协议把这些路由缓存在路由缓存中以备将来所用。DSR协议主机不需要周期性的发送路由发现报文,支持主机睡眠。但是数据收发的每个报文都需要携带完整的路由信息,降低了网络带宽的利用率,在大规模的网络中也不适用。
1.3 按需平面路由协议(AODV)
AODV路由协议结合DSR的优点,改进DSDV,在需要时才建立路由信息,允许节点获得多条路径到达目的节点且不要求节点维护这些路由信息,因此其收敛速度快、计算量小、存储资源消耗小、对网络带宽占用小。节点需要数据发送时也同DSR路由协议一样,启动路由搜索过程,也采用节点序列号避免环路的产生。
2 无线网络路由实验设计
UC Berkeley开发的NS-2是开源的网络仿真软件,用户可根据问题定义,是否需要修改源码,编写TCL模拟脚本和结果分析3个过程完成研究任务。笔者在计算机网络专业课程教学中,设计了NS-2仿真环境下的无线网络路由实验,让学生在自己的个人电脑上完成该试验。
2.1 实验目的
组建物理无线网络实验环境不切实际,因此在NS-2网络仿真器环境下,设计3种典型的无线网络路由协议验证性实验,使学生理解表驱动路由协议和按需路由工作原理的基础上,引导学生提出性能评价体系对比已提出的无线网络路由协议优缺点和适用场合,从而改进或者提出新的路由协议并进行创新性实验设计,培养学生的创新能力和科研素质。
2.2 实验设计
实验采用确定无线网络结构、编写TCL仿真代码和设定trace文件记录网络事件,利用Gawk和gnuplot工具对网络事件数据统计分析,得出网络性能评价的过程进行。
2.2.1 拓扑结构
为了直观观测路由收敛和工作原理,实验采用如图1所示的拓扑结构,共有8个Adhoc节点,节点间的距离设置为200 m,每个节点的通信范围设置为250 m。节点7向节点6发送恒定速率(CBR)的数据流,同时节点7在仿真10 s后开始向节点5的正上方移动。
2.2.2 仿真实现
1)编码
2)运行演示
编写好仿真脚本后,启动xwin窗口,使用ns*.tlc命令,*为仿真文件名。运行过程用nam动画演示,节点发送的广播以圆圈逐步扩散,数据分组以小黑点按路由传输,不能及时传送的分组进入队列缓存,如满则丢弃。
2.2.3 实验结果分析
1)trace文件解读 仿真运行完成后,截取其中建立9条链路的开始一段trace文件,如下所示:
Trace文件的记录共有21栏,其中(1)表示事件类型,共有4类事件:s分组的发送事件,r分组接收事件,d分组丢弃,f分组转发;(2)时间发生时间;(3)处理事件的节点;(4)Trace名称;(5-6)分隔符;(7)分组ID;(8)分组类型;(9)分组大小;(10-13)MAC层的信息;(14-17)分隔符;(18-21)IP层的信息。
2)路由协议性能评价 设计“优良”的adhoc无线网络路由协议是目前无线组网的关键技术之一,“优良”需要完整的评价体系,一般采用定性分析和定量相结合的方式进行。定性分析可以从适应动态拓扑、控制开销、分布式操作、基于需求的操作、先应操作、“睡眠”周期操作、路由方式和路由更新方式等方面进行,可以得出路由协议的适应性。定量指标包括数据包成功接收率、端到端平均时延、路由开销、分组数据的丢包率、第一个封包的接收时间等指标,可以统计Trace文件得到。
2.2.4 实验结果分析
通过本实验,学生可直观的观测无线网络数据分组的传送过程,分析trace文件,可以全面理解网络行为同时从网络延迟、丢包率、吞吐量等各个方面理解评价网络性能,全面理解无线网络路由的工作原理,但是上面的实验由于拓扑结构简单,而无线adhoc网络一般范围大,节点移动性强,为了仿真真实的应用场景,可以用NS-2下的cbr工具生成多条业务流,用setdest工具生成更加真实的应用场景进行仿真。下面是仿真时间为100 s,暂停时间设为0 s,也就是节点在仿真时间内一直移动,设置CBR流,最大的连接数为10条,每秒发出10个封包。在500 m*500 m的范围内节点数分别设为100、150、200、250、300、400对3种典型路由协议进行仿真统计出的平均延时。
在节点数量较小时,平均传输延迟相当,随着节点数量的增加,DSDV比DSR和AODV大,说明DSDV路由表建立后,随着节点移动和节点数的增加,需要更新路由表次数更频繁,影响包传送的时间。
3 结束语
无线网络技术是目前计算机网络教学的重点和研究的热点问题,原理抽象,不易理解,难以掌握,同时面向实际应用还有一些需要解决的问题,在教学过程中,结合教学内容的特点,设计一些研究性实验,使学生面对问题、分析问题进而提出解决问题和采用方便的手段就行验证,从而提高教学质量。