搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
出版时间 :
无库存
NS-2无线网络仿真技术研究
0.00     定价 ¥ 108.00
泸西县图书馆
此书还可采购1本,持证读者免费借回家
  • ISBN:
    9787030722577
  • 作      者:
    王庆文
  • 出 版 社 :
    科学出版社
  • 出版日期:
    2022-06-01
收藏
荐购
精彩书摘
第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
展开
目录
目录
前言
第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
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

温馨提示:请使用泸西县图书馆的读者帐号和密码进行登录

点击获取验证码
登录