×
NS-2无线网络仿真技术研究

NS-2无线网络仿真技术研究

1星价 ¥82.1 (7.6折)
2星价¥82.1 定价¥108.0
暂无评论
图文详情
  • ISBN:9787030722577
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:B5
  • 页数:192
  • 出版时间:2022-06-01
  • 条形码:9787030722577 ; 978-7-03-072257-7

内容简介

本书针对NS-2无线网络仿真入门难的问题,论述NS-2仿真基础,系统阐述NS-2仿真方法;针对NS-2无线网络仿真创新难的问题,系统阐述NS-2仿真自组织网络、三维飞行自组织网络和三维水声传感器网络路由协议的方法。
本书可作为通信与信息系统、计算机科学与技术等相关专业的本科生和研究生的教材,也可供从事无线网络的科研人员参考学习。

目录

目录
前言
第1章 NS-2仿真基础 1
1.1 初识NS-21
1.1.1 NS-2的起源 1
1.1.2 NS-2的原理 1
1.1.3 NS-2的功能 3
1.1.4 NS-2的特点 4
1.1.5 NS-2的学习方法 5
1.2 安装NS-2 6
1.2.1 Fedora安装NS-2 7
1.2.2 Ubuntu安装NS-2 11
1.2.3 Windows+Cygwin安装NS-2 13
1.3 NS-2相关语言 16
1.3.1 Linux系统命令 16
1.3.2 Tcl 19
1.3.3 AWK语言 25
第2章 NS-2仿真方法 30
2.1 NS-2仿真步骤 30
2.2 NS-2仿真MFLOOD实例 31
2.2.1 添加MFLOOD 32
2.2.2 仿真参数 34
2.2.3 仿真步骤 35
2.3 NS-2仿真AODV协议实例 54
2.3.1 AODV协议原理 54
2.3.2 仿真参数 55
2.3.3 仿真步骤 55
2.4 NS-2调试方法 74
2.4.1 GDB调试NS-2 75
2.4.2 Eclipse调试NS-2 79
2.4.3 输出语句调试NS-2 85
第3章 NS-2仿真自组织网络路由协议 87
3.1 引言 87
3.2 相关研究 88
3.3 节点度估计和静态博弈转发策略的AdHoc网络路由协议 90
3.3.1 NGRP原理 90
3.3.2 仿真参数 99
3.3.3 仿真结果 100
3.3.4 总结 109
第4章 NS-2仿真三维飞行自组织网络路由协议 111
4.1 引言 111
4.2 相关研究 112
4.3 三维FANETs路由协议仿真 115
4.3.1 AODV协议和AOMDV协议原理 115
4.3.2 仿真参数 115
4.3.3 仿真结果 116
4.3.4 总结 139
第5章 NS-2仿真三维水声传感器网络路由协议 141
5.1 引言 141
5.2 相关研究 142
5.3 三维UWANs自适应地理位置路由协议 145
5.3.1 自适应地理位置路由协议原理 145
5.3.2 仿真参数 149
5.3.3 仿真结果 150
5.3.4 总结 180
参考文献 181
展开全部

节选

第1章 NS-2仿真基础 1.1 初识NS-2 1.1.1 NS-2的起源 NS的英文全称是 Network Simulator,翻译为网络仿真器,也称网络模拟器[1-3]。NS-2是网络仿真器的第2个版本。通常认为, NS源于 UC Berkeley 1989年开发的 REAL网络仿真器(REAL network simulator)。REAL是在哥伦比亚大学开发的 NEST网络测试平台(network simulation testbed )的基础上实现的,是针对基于 UNIX系统的网络仿真和设计进行的,主要用于模拟各种网际协议(Internet Protocol,IP)网络。其主要发行版本有 REAL4.0、REAL4.5和 REAL5.0。1995年,NS-2的开发得到美国军方和美国国家科学基金项目的资助,由 UC Berkeley、USC/ISI、Xerox PARC和 LBNL合作开发。1995年7月31日,NS推出 v1.0al版本,此后一直不断有改进和更新。1996年11月6日,NS-2的**个版本NS-2.0al版本推出。此外,2003年2月26日发布NS-2.1b10版本后,NS-2改变了版本标注方法,将NS-2.1b10作为NS-2.26。目前,NS-2的*新版本是NS-2.35。 1.1.2 NS-2的原理 1.NS-2的分裂对象模型 NS-2是一款面向对象的网络仿真器,本质上是一个离散事件仿真器。NS-2使用分裂对象模型的开发机制,运用 C++和 OTcl开发。两种语言采用 TclCL进行自动连接和映射[4]。NS-2的分裂对象模型如图1.1所示。NS-2考虑效率和操作便利等因素,将数据通道和控制通道分离。数据通道上的网络组件和事件调度器对象使用 C++编写,并通过 TclCL映射机制映射到OTcl,可以减少事件和分组的处置时间。NS-2可以看作 OTcl的脚本解释器,包含离散事件调度器、网络组件对象库。离散事件调度器用来控制网络仿真的进程,并在合适的时间激活离散事件队列中的当前事件,执行该离散事件。网络组件用来模拟网络设备或节点的通信,通过制定网络仿真场景和网络仿真进程,交换特定的分组来模拟真实网络情况,并把执行情况记录到 Trace文件中,通过分析解读 Trace文件获取网络仿真结果。用户使用简单易用的 Tcl(tool command language)/OTcl脚本就可以对网络拓扑特性、节点属性、链路属性等各种部件和参数进行快捷便利的配置。NS-2采用这种分裂对象模型,一方面可以提高网络仿真的效率,加快网络仿真速度;另一方面可以增强网络仿真配置的灵活性和操作的便捷性。 图1.1 NS-2的分裂对象模型 2.NS-2的事件驱动机制 时间相关的仿真,依据对事件的处理方式可以分为时间驱动机制和事件驱动机制。时间驱动机制(图1.2(a))在每一个固定的时间间隔.内寻找事件,在.时间段结束时执行事件。时间驱动机制的性能受时间间隔.的影响,如果.太大,则会导致误差;如果.太小,则会耗费计算机资源。事件驱动机制(图1.2(b))不需要在固定的时间间隔结束时执行事件,可以在事件发生时刻执行事件,从而避免时间驱动机制存在的问题。事件驱动机制不按照固定的时间间隔进行,可以在任意时间触发和执行事件。 事件驱动有以下四个特点。 ①每个事件都标明了发生时间,并存储在事件列表中。 ②在仿真过程中,从事件列表中检索和删除具有*小时间戳的事件,执行它,并将仿真时钟推进到与检索到的事件相关联的时间戳。 ③在执行时,一个事件可以触发一个或多个事件。触发的事件被标明发生时间,并存储在事件列表中。为确保仿真不会在时间上倒退,触发事件的时间戳不能小于仿真时钟。 ④事件驱动的仿真从事件列表中的一组初始事件开始运行,直到列表为空或满足其他停止条件。 图1.2 事件驱动机制和事件驱动机制 NS-2采用事件驱动机制,网络中发生的事件,如发送分组、接收分组和丢弃分组,都会被记录到 Trace文件中,因此 Trace文件中的每一条记录都是一个事件。 1.1.3 NS-2的功能 开发NS-2的*初目的是研究大规模网络,以及当前和未来网络协议的交互行为,为仿真研究有线网络和无线网络上的传输控制协议(Transmission Control Protocol, TCP)、路由协议和多播协议等提供强有力的支持。NS-2功能非常强大,模块丰富,包括网络传输协议,如用户数据报协议(User Datagram Protocol,UDP)和 TCP;业务源流量产生器,如 Telnet、文件传输协议(File Transfer Protocol,FTP)、恒定比特流(constant bit rate,CBR)、 Web和变比特流(variable bit rate,VBR);路由队列管理机制,如随机早期检测(random early detection,RED)、Droptail和基于分类的队列(class based queueing,CBQ);路由算法;无线局域网(wireless local area network,WLAN);移动 IP;卫星通信网络等。 在无线网络仿真领域,NS-2可以开展 Ad Hoc网络、飞行自组织网络(flying Ad Hoc networks, FANETs)[5]、车载自组织网络(vehicular Ad Hoc networks, VANETs)、无人机(unmanned aerial vehicle, UAV)辅助 VANETs[6]、卫星网络和水声传感器网络(underwater acoustic sensor networks, UASNs)的仿真工作[7,8]。总之,NS-2博大精深,能够仿真空天地海无线网络,验证协议性能,为协议的设计实现提供重要参考。 1.1.4 NS-2的特点 1.NS-2能在 Linux和 Windows系统上稳定运行 NS-2能够在 Linux(Fedora、Ubuntu)环境下稳定运行,也能够在 Windows(Windows XP、Windows 7、Windows 10)加 Cygwin的环境下平稳运行。在 Linux和 Windows两个系统上安装的NS-2功能完全一致,没有任何不同。相比较而言, Linux环境下的NS-2运行速度快, Windows环境下的NS-2协议设计实现较为方便。在 Windows环境下,更有利于不熟悉 Linux环境的初学者快速入门。 2.NS-2采用 C++和 OTcl两种开发语言进行开发 NS-2可以看成一个信息系统, C++相当于后台, OTcl相当于前台。这样的设计使NS-2架构清晰,同时兼具 C++运行速度快和 OTcl解释执行不需要编译的优点。如果要仿真NS-2现有的协议,用户不需要关注后台 C++,只要设计 OTcl脚本即可。因此,NS-2的架构非常清晰,便于使用者快速入门。此外,NS-2的设计思想可以为设计实现网络仿真软件、卫星仿真软件和作战仿真软件提供参考借鉴。 3.NS-2拥有完善规范的 Trace机制 NS-2采用事件驱动机制,将仿真过程中发生的事件记录到 Trace文件中,通过分析 Trace文件得出网络协议性能指标。NS-2为网络协议设计了完善规范的 Trace格式,用户可以根据需要设计自己的 Trace格式,也可以直接运用NS-2设计的 Trace格式。Trace记录的信息较多,仿真过程生成的 Trace文件会占据一定的存储空间,同时也会消耗一定的时间。随着计算机硬件性能的提高,这些问题都迎刃而解了。 4.NS-2开放源代码 NS-2是一款面向对象的、基于离散事件调度机制的开源网络仿真器。开放源代码使用户可以通过阅读源代码,深刻理解NS-2的设计思想,为设计自主可控的网络仿真器提供参考。开放源代码使用户能够阅读通信协议的源代码,为设计实现自己的协议提供参考。通过使用和修改NS-2的源代码,用户可以更新和拓展它的功能,为NS-2添加新的协议和功能。 5.NS-2在世界范围内拥有广泛的使用者 近年来,在网络仿真领域, NS-3[9-11]、OMNeT++[12-17]、Qualnet、 OPNET[18-22]和 GloMoSim[23,24]等软件不乏使用者,但NS-2仍然是网络仿真领域的主流仿真软件之一。据 Reina等[25]统计,在传统 Ad Hoc网络的概率广播方案研究领域,使用NS-2作为仿真工具的文献占56%,使用 Qualnet的文献占8%,使用 OPNET的文献占3%,使用 GloMoSim的文献占13%。据 Muhammad等[26]统计,在无线传感器网络群智能路由协议的仿真领域,使用NS-2作为仿真工具的文献占29%,使用 OPNET的文献占4%,使用 OMNeT++的文献占4%,使用 MATLAB的文献占4%,使用自研发仿真器的文献占29%,没有说明仿真器的文献占19%。 1.1.5 NS-2的学习方法 1.夯实理论基础,补齐知识断点 NS-2对于初学者而言,有一个陡峭的学习过程,原因在于初学者存在知识断点。这些知识断点主要包括通信理论、仿真理论、NS-2架构、网络协议设计理论、 Linux环境编程和 C++编程等。补齐知识断点,不是要求初学者系统学习方方面面的知识,而是按照自己的需要学习知识点。 2.勤于动手操作,积累实践经验 NS-2是一款开源网络仿真器。学好NS-2的关键就是要多动手、多实践,不能停留在思考阶段,这是由开源软件的特点决定的。开源软件并非商业软件,几乎没有完善的指导手册。在学习NS-2的过程中,如果我们一开始就积累相关知识,而不去实践,即使花费很长时间也很难入门。只有多摸索,多总结经验,才能真正掌握NS-2。 3.去粗取精,有所为有所不为 NS-2相关资料和书籍非常丰富,要取其精华、去其糟粕,对掌握的资料进行甄别。NS-2自身的源代码和研究者开发的源代码也非常丰富,同样要甄别利用。在学习研究NS-2代码的过程中,要有所为,有所不为,尽量把和研究方向不相关的代码看成黑盒,只关注输入和输出,而不必关注其中的内容,尽量把时间和精力放在相关的研究上。 4.探索仿真捷径,领悟仿真之道 爬山的方式有多种,如坐索道、按照固有路径、自己选择路径等。以上方式各有各的优点和缺点,坐索道的方式毫无疑问是能*快到达山顶的,但是不能尽情欣赏沿途的风景;按照固有路径可以充分借鉴前人的经验,按部就班地欣赏风景;自己选择路径可以欣赏独*的风景,但是也存在到达不了山顶的风险。如果把NS-2网络仿真比作爬山,相应地也存在三种方式。坐索道的方式就是找一篇货真价实的顶级期刊文章,努力复现它,这样就可以快速掌握NS-2。按照固有路径的方式,就是向相关书籍学习,向熟悉精通NS-2网络仿真的研究者请教,这样就能沿着别人的学习路径,少走一些弯路。遗憾的是,目前还缺少高质量的关于NS-2网络仿真的书籍,缺少NS-2网络仿真交流平台。按自己选择路径的方式,就是结合自己研究领域的实际需要和知识积累,采用自学的方式学习NS-2。这种方式的好处是能领略别人没有见过的NS-2风景,坏处是如果相关知识积累不够,可能事倍功半,半途而废。本书的后续部分尽可能将学习应用NS-2的过程展现出来,帮助初学者探索NS-2网络仿真捷径,领悟NS-2网络仿真之道。 1.2 安装NS-2 NS-2在 Linux操作系统和 Windows操作系统环境下都能良好地运行。其安装有多种方式。 **种方式: Fedora/Ubuntu+NS-2

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航