基于NS2的无线自组网路由协议的研究与仿真毕业论文基于NS2的无线自组网路由协议的研究与仿真毕业论文
湖南城市学院本科毕业设计论文诚信声明
本人郑重声明所呈交的本科毕业设计论文是本人在指导老师的指导下独立进行研究工作所取得的成果成果不存在知识产权争议除文中已经注明引用的内容外本设计论文不含任何其他个人或集体已经发表或撰写过的作品成果对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明本人完全意识到本声明的法律结果由本人承担
本科毕业设计论文作者签名
二?一? 年 五 月 二十 日
目 录
摘 要 I
关键词 I
Abstract II
Key wor...
基于NS2的无线自组网路由
的研究与仿真毕业论文
湖南城市学院本科毕业
论文诚信声明
本人郑重声明所呈交的本科毕业设计论文是本人在指导老师的指导下独立进行研究工作所取得的成果成果不存在知识产权争议除文中已经注明引用的内容外本设计论文不含任何其他个人或集体已经发表或撰写过的作品成果对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明本人完全意识到本声明的法律结果由本人承担
本科毕业设计论文作者签名
二?一? 年 五 月 二十 日
目 录
摘 要 I
关键词 I
Abstract II
Key words II 1 绪论 1
11 课题研究的背景 1
12 国内外研究现状 1
13 本课题研的研究内容和方法 2 2 无线自组网 2
21 无线自组网的产生和发展 2 22 无线自组网的特征 3 23 无线自组网应用领域 3 24 无线自组网体系结构 4 3 网络模拟器NS2 5
31 NS2简介 5
32 NS2组成部分 7
33 NS2模拟基本流程 8
4 无线自组网路由协议 9 41 无线自组网与传统移动通信网络的区别 9
42 无线自组网路由协议分类 9 43 几种典型的无线自组网路由协议 10
431 目的序列距离矢量路由协议DSDV 10
432 按需平面距离矢量路由协议AODV 10
433 动态源路由协议DSR 11 434 临时排序路由算法TORA 11 44 路由协议性能评
12
5 无线自组网路由协议的仿真 12 51 移动节点 12
511 移动节点的结构 13
512 移动节点的创建 13
513 移动节点的运动 14
52 无线自组网路由模拟的实现 15 521 无线自组网路由协议场景的构建 15 522 TCP代理的创建和设置 15 523 仿真参数的设置 15
53 仿真结果分析 16
531 动画演示工具nam 16 532 无线Trace文件格式 17 533 数据分析工具gawk 18 534 绘图工具gnuplot 18 535 仿真结果分析 19
结论 23
参考文献 25
致谢 27
基于NS2的无线自组网路由协议的研究与仿真
李聪颖
湖南城市学院计算机科学系2010届信息管理与信息系统专业益阳413000
摘 要无线自组网是一个多跳临时可自由移动的无中心网络它不需要现有
信息基础网络设施的支持可以在任何时候任何地点快速构建其自身的特殊性决
定了路由协议的特殊性和重要性因此需要为无线自组网设计专门的路由协议和
各种算法
本文研究了无线自组网的体系结构和分层情况然后分析其路由协议通过比
较选取常用的表驱动路由协议DSDVDestination-Sequenced Distance-Vector和按需驱动路由协议AODV Ad hoc On-demand Distance Vector Routing DSR Dynamic Source Routing 作为研究对象利用网络模拟器NS2进行仿真并选取时
延丢包率吞吐量等参数对仿真结果进行分析和性能评价
仿真结果表明当节点和数据流量不大时DSR路由协议的综合性能最好而
DSDV路由协议适合重负荷的情况在拓扑变化频繁采用按需路由协议NS2性能分
析
Research and Simulation of the Ad Hoc Routing Protocol Based on NS2
LI Cong-ying
2010 Year Student of the Information Management and Information System Dept Hunan City University Yiyang Hunan 413000 China
Abstract Ad Hoc is a multi-hop temporary free mobile network with no centerIt doesnt need existed infrastructure to support and it is constructed rapidly at anytime and anyplaceThe particularity of Ad Hoc
determines the specificity and importance of Routing Protocol So we should design professional routing protocols and algorithms for Ad Hoc
This article researches the architecture and stratification of Ad Hoc and then analyzes the routing protocol By comparison select the commonly used table-driven routing protocol DSDV and on-demand driven routing protocol AODV and DSR for the study use the network simulator NS2 to simulate The delay loss rate and throughput are selected as parameters to analyze the routing protocols and we evaluate their performance
The results show that when nodes and data trafiics are not large the overall performance of DSR is the best and DSDV is suitable for the case with heavy load When the topology changes frequently we can reduce resources cost for route maintenance with on-demand routing protocol which cannot content the requirements of real-time businesses
Key words Ad Hoc routing protocol simulate NS2 performance analysis
1 绪论
11 课题研究的背景
随着信息技术的不断发展人们对移动通信的需求越来越强近年来移动通信
技术得到了飞速发展和普及蜂窝移动通信系统无线局域网 Wireless Local
AreaNetworkWLAN 蓝牙技术 Bluetooth 家庭无线网 Home RF 等移动通信新技
术也纷纷涌现这些技术的出现极大地方便了人们的生活同时也推动了无线通信
技术的发展
无线自组网Ad HocRIPOSPFJJGarcia-Luna_aceves教授领导的计算机通信研
究小组美国国家标准和技术研究所无线通信技术小组IETF也专门成立了MANET工作组负责无线自组网的路由协议标准化工作[1-2]
自20世纪90年代以来国内的一些大学和研究所也开始关注无线自组网技术并对它进行了一些研究如解放军理工大学清华大学等国家将无线自组网技术明确地列入在2006年制定的《国家中长期科学的技术发展规划纲要》中
13 本课题研的研究内容和方法
作为一种特殊无线移动网络路由协议是其重要的组成部分也是研究的热点问题
本课题主要是对无线自组网单播路由协议进行深入的研究与学习然后利用NS2构建模拟平台在此平台下实现以下几种典型的路由协议DSDVDSRAODV的仿真目前对各路由协议基于UDP连接的仿真比较成熟而基于TCP连接的仿真相对较少因此本课题的路由仿真的数据流为tcp流然后根据仿真的结果分析和比较各协议在随节点不断增加和节点移动速度不断增加两种情况下的性能
具体研究过程可分为以下几个部分
123TclOTcl编程语言
4DSDVDSRAODVTCP连接的仿真
521 无线自组网的产生和发展
Ad Hoc一词来源于拉丁语意思是专用的特定的无线自组网通常也可称为无固定设施网或自组织网由于组网快速灵活使用方便目前无线自组网已经得到了国际学术界和工业界的广泛关注其应用也越来越广泛已经成为移动通信技术向前发展的一个重要方向将在未来的通信技术中占据重要地位
无线自组网的前身是分组无线网 Packet Radio NetworkPRNET 对分组无线
网的研究源于军事通信的需要早在1972年美国的DARPA就启动了分组无线网项目PRNET研究战场环境下利用分组无线网进行数据通信在此之后DARPA于1983年启动了高残存性自适应网 Survivable Adaptive NetworkSURAN 项目研究如何将PRNET的研究成果加以扩展以支持更大规模的网络1994年DARPA又启动了全球移动信息系统 Global MobileInformation SystemsGloMo 项目旨在对能够满足军事应用需要的高抗毁性的移动信息系统进行全面深入的研究1991年成立的IEEE 80211标准委员会采用了Ad Hoc一词来描述这种特殊的自组织对等式多跳移动网络无线自组网就此诞生IETF专门成立了 Mobile Ad Hoc NetworkMANET
小组来研究无线自组网的相关问题[2]
22 无线自组网的特征
无线自组网由一组带有无线通信收发装置的移动终端节点组成网络中每个终端可以自由移动且地位相等是一个多跳临时无中心网络因此它具有以下主要特征
1234523 无线自组网应用领域
由于无线自组网的特殊性它适合用于无法或不便预先铺设网络设施的场合以及其他需要快速自动组网的场合等目前为止其主要的应用领域有
1军事应用军事应用是无线自组网技术的主要应用领域因其特有的无需架设网络设施可快速展开抗毁性强等特点无线自组网是数字化战场通信的首选技术
2无线传感器网络传感器网络是无线自组网技术应用的另一大领域采用传感器网络能够跟踪从天气到企业商品库存等各种动态事物极大的扩充互联网的功能对于很多应用场合来说传感器网络只能使用无线通信技术并且传感器的发
射功率很小分散的传感器通过无线自组网技术组成一个网络可以实现传感器之间和与控制中心之间的通信
3个人通信个人局域网 Personal Area NetworkPAN 是无线自组网技术的又一应用领域用于实现PDA手机掌上电脑等个人电子通信设备之间的通信并可以构建虚拟教室和讨论组等崭新的移动对等 Mobile Peer-To-Peer 应用
4移动会议在室外临时环境中工作团体的所有成员可以通过无线自组网方式组成一个临时网络来协同完成一项大的任务或协同完成某个计算任务在室内办公环境中办公人员携带的包含无线自组网收藏器的PDA可以通过无线方式自动从台式机上下载电子邮件更新工作日程表等
5其他应用可应用于紧急和突发场合如在发生了地震水灾火灾或遭受其它灾难后固定的通信网络设施无法正常工作的情况下组建无线自组网还可与蜂窝移动通信系统等现有移动通信系统相结合利用移动的多跳转发能力来扩展现有蜂窝移动通信系统的覆盖范围等
24 无线自组网体系结构
参照OSIRM无线自组网体系结构如图21所示[3]
图21 无线自组网体系结构
下面介绍各层的基本情况
1物理层物理层包括射频 RF 电路调制和信道编码系统IEEE80211bag蓝牙 Bluetooth 和超宽带 LJwBultr-awideband 等
都是具体的物理层协议
2数据链路层数据链路层负责在不可靠的无线链路上建立可靠和安全的逻辑链路其分为逻辑链路控制子层 LLC 和媒介访问子层 MAC 以IEEE80211为例其LLC子层负责无线链路差错控制流量控制将网络层的分组组帧以及重传等而
MAC子层负责节点对无线媒介访问的控制和帧的加解密操作等
3网络层网络层负责分组的路由建立网络服务类型以及在传输与链路层之间传输分组考虑到无线自网的动态性网络层需要负责分组的重新路由和移动管理等无线自组网在网络层的一个重要问题是路由协议
4传输层传输层负责提供端到端的可靠数据传输服务然而由于无线链路的不稳定传统的有线网传输层协议在无线环境下性能下降明显所以必须改进
5应用层无线自组网的应用层指定的是各种各样类型的业务在实际实施的时候可以采用各种各样的应用层协议和标准比如WAP 无线应用协议 协议等
3 网络模拟器NS2
31 NS2简介
NS2Network Simulator Version2UC BerkeleyTCPIP路由和多播等协议提供了强有力的支持NS2是一个开放源代码软件任何人可以获得使用和修改其源代码正因为如此世界各地的研究人员每天都在扩展和更新它的功能为其添加了新的协议和功能它也是目前网络研究领域应用最广泛的网络模拟软件之一
NS2来源于1989年的Real NetWork Simulator项目经过多年的发展于1995年得到Xerox公司的支持加入VINT项目NS2一直以来都在吸收全世界各地研究者的成果[4]
NS2是一款面向对象的离散事件驱动的网络模拟器可以完整地模拟整个网络环境NS2使用一整套C类库实现了绝大多数常见的网络协议以及链路层的模型利用这些类的实例就可以搭建起整个网络的模型
NS2使用了被称为分裂对象模型的开发
采用C和OTcl两种开发语言进行开发它们之间采用TclCL进行自动连接和映射考虑效果和操作便利等因素NS
将数据通道和控制通道的实现相分离为了减少分组和事件的处理时间事件调度器和数据通道上的基本网络组件对象都使用C编写这些对象通过TclCL映射对OTcl解释器可见NS2可以说是OTcl的脚本解释器它包含模拟事件高度器网络组件对象库等事件调度器控制模拟进程在适当时间激活事件队列中的当前事件并执行该事件网络组件模拟网络设备或节点的通信它们通过制定模拟场景和模拟进程交换特定的分组来模拟真实网络情况并将执行情况记录到日志文件中供用户分析解读获取模拟结果NS2采用这种分裂模型既提高了模拟效率加快了模拟速度又增强了模拟配置的灵活性和操作的简便性
NS2是在UNIX系统上开发的因此可以在UNIX和类UNIX系统上安装另外NS2也可以在Windows平台上运行表31和表32是不同平台对NS的支持情况
表32 不同平台对NS2的支持情况
Tcl-TK OTcl TclCL Ns Nam xgraph cweb sgb Gt-itm and sgb2ns
zlib PcWindows Y Y Y Y Y N Y N N N
PcLinux Y Y Y Y Y Y Y Y Y Y 注Y支持N不支持PcWindows 优点界面友好人性化设计网络及硬件支持良好应用程序丰富
缺点代码冗繁系统稳定性及自身修复能力差 未安装Cygwin时只可用from all the pieces方式安装较为复杂
安装Cygwin后可用allinone方式安装较为简单 支持NS2的必选软件模块但对可选模块的支持性差 容易引发较多问题相关帮助文档及可咨询信息较少解决问题难度较大 PcLinux 优点源代码开放界面友好网络功能丰富较稳定
缺点应用软件及硬件驱动程序缺乏 可选用from all the pieces或
allinone方式安装较为简单 对NS2的必选模块和可选模块支持性良好 由于Linux完全开放源代码的特性可根据需要任意修改源代码相关帮助文档及论坛较多可获得的帮助较多使问题解决较为容易 32 NS2组成部分
1离散事件调度器Scheduler调度器是仿真器的心脏它记录当前时间调度网络事件链表中的事件它有一个静态成员变量instance供所有的类访问同一个调度器提供函数产生新事件指定事件发生的时间
目前NS2支持四种事件调度器分别为链表式linked-list堆式heap时间队列式calendar和实时real-time调度器其中时间队列式为默认的事件调度器
2事件处理器 Handler Handle是所有处理事件类的基类它只是一个虚拟函数每个继承类实现自己的功能
3节点Node节点是对实际网络中分布在不同地理位置的主机交换机路由器等网络设备的统一抽象是构成网络拓扑结构的一个重要组成部分
4链路 Link 链路用来连接节点和路由器一个节点可以有一条或多条输出链路 如路由器 所有的链路都以队列的形式来管理分组到达离开或丢弃统计并保存字节数和分组数另外还有一个独立的对象来记录队列日志
5代理 Agent 代理是实际产生和消费分组的对象它们属于传输层实体运行在端主机节点的每一个代理自动被赋与一个唯一的端口号 模拟udptcp端口 代理知道与它相连的节点以便把分组转发给节点它也知道分组大小业务类型目的地址Agent类是各种UDPTCP实现类的基类代理被保存在一个称为demux的链表中
6NS对象 NsObject NsObject是所有网络实体的基类包括节点链路代理业务记录 Trace 和数据源等节点链路代理同时继承了NsObject和事件处理器类因
为这三种对象要处理多种事件其他对象则不需要
7匹配器类 Matcher 匹配器类用来标识有实例对象生成的类用户给出标识匹配器类的关键字匹配器类返回相应的新建对象匹配器类被定义成静态的只允许一个实例对象[5]
33 NS2模拟基本流程
图31 NS2进行网络模拟的基本流程
使用NS2进行网络模拟的基本操作流程如图31所示整个模拟过程主要有三个部分一为修改源码二为编写Tcl模拟脚本三为分析结果
1源码修改这一步只有在模拟需要修改源代码时才进行考虑
2TclOTcl模拟代码编写这是NS2模拟中最重要和必不可少的环节大部分NS2的模拟工作实际就是编写Tcl脚本代码来描述网络结构网络构件属性和控制调度网络模拟事件的启停过程
3模拟结果分析结果分析是真正体现模拟工作成效的重要一环模拟结果分析主要是对trace文件进行分析
4 无线自组网路由协议
在无线自组网中节点的移动导致网络拓扑结构的不断变化如何迅速准确地选择到达目的节点的路由是无线自组网的一个重要和核心的问题
41 无线自组网与传统移动通信网络的区别
在无线局域网中移动节点配有无线网卡通过无线接入点连接到固定网络因此无线局域网可以看成单跳网络而无线自组网则是一个多跳的网络终端主机一方面作为主机另一方面作为路由器运行路由协议参与分组转发和路由维护
因此无线自组网与传统移动通信网络在路由选择方面有很大的差异必须采
用合适的路由协议以解决路由选择问题
42 无线自组网路由协议分类
根据源端何时获得路由信息可以将路由分为两大类如图41所示一类是基于路由表驱动Table Driven的路由协议在这种协议中每个节点试图维护到所有已知目的节点的路由表节点之间周期性或在网络拓扑改变时交换路由信息由此减少了获得路由延时能够立即判断目的节点的可达性但是耗费了网络资源第二类是按需驱动On-Demand Driven的路由协议包括路由发现和路由维护两个过程这种路由协议平时并不实时地维护网络路由只有在节
点有数据要发送时才激活路由发现机制寻找到达目的节点的路由它不需要花费资源来维护无用的路由但路由发现过程比较昂贵而且不可预测[6]
图41 无线自组网路由协议分类
43 几种典型的无线自组网路由协议
431 目的序列距离矢量路由协议DSDV
DSDV Destination-Sequenced Distance-Vector 是基于经典Bellman-Ford路由选择过程的改进型路由表算法DSDV以路由信息协议为基础是无线自组网协议发展较早的一种
使用DSDV时网络中的每一个移动节点都需要维护一个路由表路由表表项包括目的节点跳数和一个由目的节点注明的序列号序列号能帮助节点区分有效和过期的路由信息并可防止路由环路的发生标有更大序列号的路由信息总是被接收如果两个更新分组有相同的序列号则选择跳数最小的使路由最优最短每个节点必须周期性地与邻节点交换路由信息当然也可以根据路由表的改变来触发路由更新路由表更新有两种方式一种是全部更新即拔掉更新消息中将包括整个路
由表主要应用于变化较快的情况另一种是增量更新更新消息中仅包含变化的路由部分通常适用于变化较慢的情况
432 按需平面距离矢量路由协议AODV
AODV Ad hoc On-demand Distance Vector Routing 由DSDV发展而来不同的是AODV为反应式路由协议源节点首先广播一个携带目的节点信息的路由分组RREQ其邻居节点依次向周围节点广播此路由分组广播RREQ前会建立此节点到源节点的路由直到路由分组到达目的节点或者一个中间节点这个节点包含目的节点的路由信息就不再广播RREQ此过程中会建立一个从源节点到目的节点的反向路由也就是从目的节点到源节点的路由然后该节点将沿着反向路由发回一个RREPRREPsequence IDSID作为唯一标识如果一个节点收到一个SID比它当前保留的SID小的数据包表明该数据包是过时的它将不予处理而是简单的丢弃发现多条路由时源节点会选择一条SID大跳数少的最优路由
源节点移动后会重新启动路由发现过程中间节点移动那么其邻居节点会发现链路失效并向上游节点发送链路失效消息RERR一直传到源节点然后源节点重新发起路由发现或者也可以由发现链路失效的节点自己发起路由发现此称为自修复只要路由是活动的路由表就要一直维护下去活动的意思是有数据包从源节点发往目的节点如果链路上不再有数据包传递一段时间之后链路就会过期最终路由信息将会从中间节点的路由表中删除[7]
433 动态源路由协议DSR
DSR Dynamic Source Routing 是一种基于源路由的按需路由协议它使用源路由算法而不是逐跳路由的方法DSR主要包括两个过程路由发现和路由维护当源节点S向目的节点D发送数据时它首先检查缓存是否存在未过期的到目的节点
的路由如果存在则直接使用可用的路由否则启动路由发现过程具体过程如下源节点S将使用洪泛法发送路由请求消息RREQRREQ包含源和目的节点地址以及唯一的标志号中间节点转发RREQ并附上自己的节点标识当RREQ消息到达目的节点D或任何一个到目的节点路由的中间节点时D或该中间节点将向S发送路由应答消息RREP该消息中将包含到S到D的路由信息并反转S到D的路由供RREP消息使用此外中间节点也可以使用路由缓存技术Routing Cache来对协议作进一步优化
434 临时排序路由算法TORA
TORA Temporally Ordered Routing Algorithm 协议称为临时排序路由算法是一种源初始化按需路由选择协议它采用链路反转的分布式算法具有高度自适应高效率和较好的扩充性比较适合高度动态移动多跳的无线网络其主要特点是控制报文定位在最靠近拓扑变化的一小部分节点处因此节点只保留邻近点的路由信息该算法中路由不一定是最优的常常使用次优路由以减少发现路由的开销TORA协议包括3个基本模块路由的创建路由的维护和路由的删除在路由的建立和路由维护过程中节点应用高度Metric来建立一个以目的节点为根的有向非循环图这样链路根据相邻两个节点的高度值来确定向上或向下的方向
44 路由协议性能评标准
主要包括以下几个方面的指标[8]
1丢包率网络中数据传输是以发送和接收数据包的形式进行的理想状态下发送了多少数据分组就能接收多少数据分组但是由于信号衰减网络质量等诸多因素影响下可能产生数据分组丢失在单位时间内未收到的数据分组与发送的数据分组的比率就是丢包率当然这个数字越小越好丢包率的计算公式见式41
丢包率 1 42
3路由开销单位数据包个数所引起的额外路由分组个数包括RREQRoute RequestRREPRoute ReplyRRERRout 43
4平均吞吐量该参数是在接收数据时由网络层的上层统计的是指节点单位时间内收到的数据分组数它是一个容量概念表示数据传输的总量
5 无线自组网路由协议的仿真
51 移动节点
无线模型的核心是移动节点它代表实际无线网络中的站点移动节点是由基本的节点再加上无线和移动节点所需要的一些功能构成它能够在给定的拓扑范围内移动可以通过无线信道接收和传送无线信号
511 移动节点的结构
移动节点是由一系列的网络构件构成这些构件包括链路层连接到LL上的ARP模块接口队列MAC层网络接口层移动节点通过网络接口连接到无线信道上移动节点的结构如图51所示
图51 移动节点的结构示意图
512 移动节点的创建
1移动节点的配置在NS2中要创建一个移动节点就必须在创建节点之前对节点进行配置所谓点的配置就是在节点创建之前设定节点的各项属性可以使用模拟器对ns的内部过程node-config 来配置节点的属性
移动结点基本配置参数如下
ns node-config –adhocRouting 配置adhoc网络的路由类型
-llType 数据链路层类型
-macType MAC层类型
-ifqType 队列类型
-ifqLen 队列长度
-antType 天线类型
-propType 无线信号传输模型
-phyType 物理层类型
-channelType 信道类型
-topoInstance 拓扑对象
-agentTrace 是否打开应用层Trace
-routerTrace 是否打开路由的Trace
-macTrace 是否打开应MAC层的Trace
-movementTrace 是否打开节点位置和移动信息的Trace 2移动节点的创建调用模拟器对象ns的内部过程node 创建移动节点 for set i 0 i opt nn incr i
set node i [ns node]
513 移动节点的运动
在实际的无线自组网络中站点的位置可能是不确定的也就是说站点是移动
的所以NS2中的移动节点也应该具有移动性
移动节点可以在一个三维拓扑中运动然而实际上第三维Z轴并没有被使用
这样的移动节点就在一个Z 0的二维平面中运动运动方法有
1方法一确定节点的起始和终止位置
node set X
node set Y
node set Z
ns at time node setdest 2方法二节点随机移动NS2提供了setdest工具用来随机生成无线网络所需
要的节点的运动场景文件
执行命令如下
命令1setdest –v -n -p -M -t -x -y
命令2setdest –v -n -s -m 52 无线自组网路由模拟的实现
521 无线自组网路由协议场景的构建
在无线模拟过程中首先要建立移动场景即移动节点的范围及其拓扑对象 1移动范围
set topo [new Topography] 创建拓扑对象在节点设置时使用它来进行配 置
topo load_flatgrid 1000 1000 设定一个1000x1000的屏幕 2创建God对象GodGeneral operations directorset god_ [create – god
val nn ] val nn 仿真节点号
522 TCP代理的创建和设置
1TCP代理创建步骤
步骤一创建一个AgentTCP对象作为分组的发送器
步骤二设置AgentTCP对象的部分内部变量
步骤三创建一个AgentTCPSink对象作为分组的接收器 步骤四在发送和接收代理之间创建connect连接 2TCP流的随机生成
cbrgen工具可以用来随机生成TCP流命令格式如下 ns cbrgentcl –type -nn -seed -mc -rate
523 仿真参数的设置
本课题从两方面来比较无线自组网路由协议的性能 当节点不断增加时各路由协议的性能变化和当移动速度不断增加时各路由
协议的性能变化的相关参数如表51所示
表51仿真参数
场景
范围 节点数 节点移动
最大速度
ms 静止
时间
s 数据
连接 业务
类型 分组
发送率
512bs 模拟
时间
s 节点
增加 1000x1000 102030
405060
708090
100 20 10 4812
162024
283236
40 TCP 20 150 移动
速度
增加 1000x1000 30 2468
101214
161820 10 10 TCP 20 150 53 仿真结果分析
531 动画演示工具nam
nam是基于TclTk的动画演示工具用于演示网络运行动画例如网络拓扑包传输和队列管理等
1namSteven McCanne开发用于在网络研究中利用动画演示包的传输过程后来这项工具渐渐流行开并且得到其他个人和组织的继续改进和完善
nam的功能是根据网络模拟软件或真实环境里的特定格式的trace输出文件来运行动画例如Trace文件常常来自NS模拟器或者Tcpdump软件的输出当然任何其它软件只要按照nam要求的数据格式输出同样可以利用nam来进行动画演示
2NS2中nam的使用方法
? 环境变量的配置在NS2安装目录下编辑bashrc文件在PATH环境变量中添加nam文件夹所在的目录
? 调用namnam调用一般是在NS仿真结束之后所以在stop 过程之后添加
代码
exec nam dsdvnam
exit 0
532 无线Trace文件格式
下面是无线Trace文件的一个例子
s 0029290548 _1_ RTR --- 0 message 32 [0 0 0 0] ------- [1255 -1255 32 0]
r 0030062615 _0_ RTR --- 0 message 32 [0 ffffffff 1 800] ------- [1255 -1255 32 0]
s 1000000000 _0_ AGT ---1 tcp 40 [0 0 0 0] ------- [00 10 32 0] [0 0] 0 0
r 1000000000 _0_ RTR ---1 tcp 40 [0 0 0 0] ------- [00 10 32 0] [0 0] 0 0
s 1000000000 _0_ RTR ---1 tcp 60 [0 0 0 0] ------- [00 10 32 0] [0 0] 0 0
r 1003800194 _1_ AGT ---1 tcp 60 [13a 1 0 800] ------- [00 10 32 0] [0 0] 1 0
s 1003800194 _1_ AGT ---1 ack 40 [0 0 0 0] ------- [00 10 32 0] [0 0] 0 0
无线Trace文件的记录每条共有21栏各栏表示的意义如下
1事件类型共有四种事件类型分别为
s分组的发送事件
r分组的接收事件
d分组的丢弃事件
f分组的转发事件
2事件产生的时间单位为秒
3处理该事件节点的节点ID
4Trace名称共有三种不同的类型分别为
RTR路由器TraceAGT代理 TraceMACMAC层Trace
5-6---为分隔符
7分组的ID
8分组类型
9分组大小单位为字节
10发送节点在无线信道上发送该分组所期望的时间值 11接收节点的MAC地址
12发送节点的MAC地址
13MAC层封装的分组类型
15-17---为分隔符
18发送分组的源IP地址格式为节点号端口号 19接收分组的目的IP地址格式为节点号端口号 20分组的TTL值
21源节点到目的节点的跳数
533 数据分析工具gawk
1gawk简介awk是一种程序语言对于资料的处理具有很强的功能可以是用很短的代码轻易的完成对文本档案作修改分析提高和比较等处理awk最初在1977年完成gawk是GUN所开发的awk最初在1986年完成之后不断地被改进更新gawk包含awk的所有功能
gawk的主要功能是针对Trace文件的每一条记录搜寻指定的模式Patterns当一条记录里有符合指定的模式时gawk就会执行此条记录指定的动作actions
2gawk执行方法
基本上有两种执行方法可以执行gawk程序
如果程序很短则程序代码可以直接写在命令行上如下
gawk program inputfile1 inutfile2
其中program包括一些pattern和action
如果程序较长一般将gawk程序存为一个文件即Patterns与actions写在一个文件名为program-file的文件里执行格式如下
gawk –f program-file inputfile1inputfile2
534 绘图工具gnuplot
1 gnuplot简介gnuplot是由Colin Kelly和Thomas Williams于1986年开始开发的科学绘图工具支持二维和三维图形gnuplot是一个命令驱动的交互式绘图软件它的功能是把数据资料和数学函数转换为容易观察的平面或立体的图形它有两种工作方式交互式方式和批处理方式它可以让使用者很容易地读入外部的数据结果在屏幕上显示图形并且可以选择和修改图形的画法明显地表现出数据的特性
2gnuplot执行方法
在终端下键入gnuplot后回车即可启动gnuplot相关参数设置
gnuplot set xrange [ ] gnuplot set yrange [ ] gnuplot
set title name of the graph 设置整个图的标题
gnuplot set xlabel name of the X axis 设置X轴的标题
gnuplot set ylabel name of the Y axis 设置Y轴的标题
gnuplot plot filename1 with linespoints filename2 with linespoints
535 仿真结果分析
5351 nam演示
节点变化运行场景和移动速度变化的运行场景分别如图52图53所示
图52 节点为70的运行场景
图53 节点移动最大速度为16ms的运行场景
5352 仿真结果分析
1路由协议定性比较
表53对3种路由做出了定性比较可以看出3种路由协议均属平面拓扑结构在路径选择上也都采用最短路径策略不同的是DSDV协议借助周期广播来维护路由信息主动发现路由它们的优点是当节点需要发送数据分组时只
表53 三种路由协议的定性比较
DSDV DSR AODV 拓扑结构 平面 平面 平面 算法类型 距离矢量 源路由 距离矢量 分组转发 逐跳 源路由 逐跳
选择路由原则 最短路径 最短路径 最短路径 多跳维护 NO
YES NO 周期广播 YES NO NO 要去往目的节点的路由存在所需的
时延就很小但需要花费较大的开销如果网络的拓扑结构经常改变则更是如此而AODVDSRTCL仿真脚本得到相应的trace文件然后用编写的gawk程序对trace文件进行分析计算得出相应的数据反复运行计算20次求出各项的平均值用gnuplot对所得的数据画图得AODVDSRDSDV? 节点不断增加情况下各路由协议的仿真性能如图54-57所示
图54 node delay 图55 node loss_rate
图56 node thrughput 图57 node routecost
由仿真结果可以看出当网络规模较小时DSR的综合性能表现最好这是因为DSR采用了源路由算法其路由缓存中有多条去往目的地的路由当主路由中断不通时可以从路由缓存里的信息迅速找到或建立另外到目的地的路由当网络规模不断增大时三种路由协议的性能均有不同程度的下降AODV和DSR由于都属按需路由协议当网络规模变大时需要频繁发起路由发现过程来发现到目的节点的路由因此将产生较大的路由建立时延路由侦听开销变大相比之下DSDV路由协议在路由开销时延吞吐量和丢包率上均优于其他二种路由
? 移动速度不断增加情况下各路由协议的仿真性能如图58-511所示仿真结果如表54所示
表54 仿真结果比较图
表驱动路由协议DSDV 按需驱动路由协议 丢包率 低 高 平均时延 低 高 吞吐量 低 高 路由开销 高 低
图58 mobility_rate delay 图59 mobility_rate loss_rate
图511 mobility_rate throughput 图510 mobility_rate
routecost
按需路由协议只有在需要一条路径时才开始建立如果节点在发送分组时没有到目的节点的路由时需要启动相应的路由发现机制搜寻路由这样将会产生一定的时延并且当节点移动速度增加网络的拓扑结构会占用大量的无线信道资源从而必然降低协议的效率增大协议的掉包率具有较大的网络时延而对于DSDV协议来讲当节点移动速度的增加网络拓扑变化变快要想实时维护拓扑结构需要大量的信息这些控制信息将会占用大量的无线信道资源从而影响用户数据报文的发送降低了系统吞吐量DSR路由协议的综合性能比较好而当数据流量变大时DSDV在拓扑变化频繁的网环境中采用按需路由协议在网络拓扑结构相对稳定的环境中如果业务对实时性要求较高时应尽量采用表驱动方式的路由协议DSR路由协议的综合性能比较好而当数据流量变大时DSDV在拓扑变化频繁的网环境中采用按需路由协议在网络拓扑结构相对稳定的环境中如果业务对实时性要求较高时应尽量采用表驱动方式的路由协议陈晋伦周正((20071-3
[5]向明尚陈素丽刘延军等NS2网络仿真平台的探讨与实现[J]大庆石油学院学报2005287-93
[6]方路平刘世华陈盼等NS-2网络模拟基础与应用[M]北京国防工业出版社200889-98
[7]洪锡军车克南张激 无线自组网路由协议研究[J] 计算机工程2005810-28
[8]段云飞周丽琼杨磊几种典型的Ad Hoc路由协议仿真分析[J]电力系统通信200966-17
[9]SRDasctalComparative Performance Evaluation of Routing Protocols
for Mobile Ad-Hoc NetworkCommunication and Networks1998152161(
[10]Perkins CEBhagwat PHighly dynamic destination-sequenced distance-vector
routing DSDV for mobile computersACM Press1994234-244
[11]杨盘隆郑少仁Ad hoc网络中的路由算法[J]军事通信技术200122 4
49-53
[12]BGuptaDesignimplementation and testing of routing protocols for mobile ad-hoc networks[M]University of Illinois at Urban a-Champaign200223-35
[13]赵建立宋雨(移动Ad Hoc网络路由技术综合分析
SDoshiSBhandareTXBrownAn on-demand minimum energy routing protocol for a wireless ad hoc network[J]Mobile Computing and Communications Review2002 35 53-60
[15]李承汪为农浅议移动Ad hoc网络路由协议中的安全性问题[J]计算机工
程与应用2002 22 28-33
[16]刘昌鑫彭嵩松吴兰英DBJohnsonDAMaltzDynamic source routing in ad hoc wireless networks[M] Mobile Computing2001263-270
[20]SIVAKUMAR RA core-extraction distributed Ad hoc routing algorithm [J]IEEE J on Selected Areas in Comm1999 8 1380-1394
[21]刘勃兰宋玲 基于NS2的移动自组网路由协议的仿真与实现评论推荐[J]
计算机工程与应用2007 6 162-164
[22]Liang QinPro-active Route Maintenance in DSRSchool of Computer
ScienceCarleton University200115-23(
[23]C PerkinsE RoyerS DasAd hoc On-Demand Distance Vector AODV
Routing[J]IEEE Personal Communication1997 17 36-45(
[24]V ParkS CorsonTemporally-Ordered Routing Algorithm TORA [J]IETF
MANET Working Group1999 33 32-41(
[25] 肖永康山秀明任勇无线Ad hoc网络及其研究难点电信科学2002611-15(
[26] 单思宇无线自组网中的路由协议电脑知识与技术2009522122-123(
致谢
首先我要感谢父母正是他们在我求学生涯中给予我最大的关心理解支持和鼓励并且始终竭尽全力地给予我最好的学习和生活条件使我能够克服前进道路上的困难
其次我要衷心感谢我的指导老师陈伟宏老师近半年来陈老师始终注重我各方面能力的培养在学习和思想上都给予我极大的关怀指导和帮助特别是严谨求实的治学态度和一丝不苟的工作作风对我的影响很大从毕业设计选题到毕业设计的完成陈老师都提出了很多中肯的意见使我受益匪浅另外还要感谢我的同组同学对我的关心和帮助我的每一个进步都是和他们的帮助是紧密相连的
最后我还特别感谢红联Linux论坛和论坛NS2板块的网友们他们在我使用以及NS2软件的学习过程和仿真代码的编写过程提了大量的帮助对他们的无私帮助我深表感谢set val chan ChannelWirelessChannel
set val prop PropagationTwoRayGround
set val netif PhyWirelessPhy
set val mac Mac802_11
set val ifq QueueDropTailPriQueue set val ll LL
set val ant AntennaOmniAntenna set val ifqlen 50
set val nn 100
set val rp DSDV
set val x 1000
set val y 1000
set val stop 150
set ns_ [new Simulator]
set tracefd [open dsdv100tr w] ns_ trace-all tracefd
set namtrace [open dsdv100nam w] ns_ namtrace-all-wireless namtrace val x val y
set topo [new Topography]
topo load_flatgrid val x val y set god_ [create-god val nn ] ns_ node-config -adhocRouting val rp \
-llType val ll \
-macType val mac \
-ifqType val ifq \
-ifqLen val ifqlen \
-antType val ant \
-propType val prop \
-phyType val netif \
-channelType val chan \
-topoInstance topo\
-agentTrace ON\
-routerTrace ON\
-macTrace OFF\
movementTrace ON
for set i 0 i val nn incr i
set node_ i [ns_ node]
node_ i random-motion 1
source scene-100n-10p-20M-150t-1000x-1000y source tcp-100nn-40mc-2r
for set i 0 i val nn incr i
ns_ initial_node_pos node_ i 50
for set i 0 i val nn incr i
ns_ at val stop "node_ i reset"
ns_ at val stop "ns_ nam-end-wireless val stop "
ns_ at val stop "stop" ns_ at 1501 "puts \" end simulation \" ns_ halt"
proc stop
global ns_ tracefd namtrace
ns_ flush-trace
close tracefd
close namtrace
exec nam dsdv100nam
exit 0
ns_ run
28
1
无线自组网路由协议
按需驱动路由协议
表驱动路由协议
DSDV
WRP
AODV
TORA
DSR
CGSR
Port
demux
SrcSink
Addr
demux
IP address entry
Default target
Rtagent
target
Arp table Up target LL
ARP
Down target IFq
Down target Up target mac
MAC
Down target
Up target
Radio Propagation
Model
NetIF
channel Up target
Channel 是
否
是
否
否
是
修改源码
问题定义
修改源码
结果满意
编写Tcl脚本 执行模拟
分析问题
分析结果
编译通过
重新编译NS
调试
结束
开始
本文档为【基于NS2的无线自组网路由协议的研究与仿真毕业论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。