初学者如何选择网络仿真软件

鐵筆文

        目前,NS-2、NS-3、OMNeT++、OPNET和QualNet是网络仿真研究领域的重要软件。其中前三个是开源软件,使用者可以看到源代码;后两者是商业软件,源代码对使用者不完全可见。

        NS-2是网络仿真领域的翘楚。NS-2出自名门之手,参研单位群星璀璨。NS-2的开发得到了美国军方DARPA VINT项目、DARPA SAMAN项目和美国国家科学基金NSF CONSER项目的资助,由UC Berkeley,USC/ISI,Xerox PARC和LBNL合作开发。NS-2从诞生之日起一直经久不衰,受到国内外网络仿真领域研究者的广泛关注,使用者遍布全世界,人数众多。原因在于:一是NS-2理念先进。NS-2的Trace机制采用了大数据的思想,便于仿真结果获取和分析。二是NS-2架构清晰。NS-2采用分裂对象模型机制,将仿真脚本和协议实现分开,仿真脚本由Tcl编写,协议由C++实现。因而,NS-2兼具C++运行速度快和Tcl解释执行不需要编译的优点。三是NS-2博大精深。NS-2可以灵活提供不同的网络场景,对Ad Hoc网络、水声传感器网络、飞行自组织网络、车载自组织网络和卫星网络等典型的网络开展系统级的仿真。

       NS-3是网络仿真领域的新贵。NS-3不是NS-2的升级版本,而是一款新型的网络仿真软件,由美国华盛顿大学开发。作为网络仿真领域的新贵,NS-3正在呈现出快速上升势头,受到国内外网络仿真研究领域众多研究者的青睐。原因在于:一是NS-3架构清晰。NS-3是用C++开发,带有可选的Python绑定。NS-3的协议由C++实现,仿真脚本既可以由C++实现,又可以由Python实现。对于熟悉C++的初学者,只用C++就可以实现协议和仿真脚本。二是NS-3与时俱进。NS-3更新速度非常快,各个版本之间的差异性非常大。NS-3在物理层、5G、毫米波、车联网等领域资源丰富且更新快。三是NS-3功能强大。NS-3不仅能基本覆盖NS-2的功能,还有NS-2不具有的功能。

       尽管NS-3是一款全新的模拟器,但是她开发的初衷还是针对NS-2的不足。因而,NS-3的架构、协议开发、仿真脚本编写、仿真结果处理与NS-2大同小异。

      OMNeT++是网络仿真领域的俊彦。OMNeT++是通用的研究和开发复杂分布式系统的仿真框架。在OMNeT++基础上,不同领域的研究人员编写了无数的仿真模型和模型框架:排队、资源建模、互联网协议、无线网络、交换局域网、对等网络、媒体流、移动自组织网络、网状网络、无线传感器网络、车辆网络、光网络、高性能计算系统、云计算和存储区域网络等等。

      OMNeT++大多数模型框架都是开源的,作为独立的项目开发。INET框架是OMNeT++最有用和最大的模型框架之一。它提供了协议、代理和其他用于通信网络的模型。INET在设计和验证新协议或探索新的场景时用处很大。OMNeT++由C++和NED两种语言开发,前者用于协议实现,后者用于场景配置。尽管如此,OMNeT++的设计架构与NS-2和NS-3差异很大,因而其协议实现、结果分析等过程与NS-2和NS-3也有很大差异。相比而言,OMNeT++在可视化方面优势明显,用户可以直观感受到通信的过程。

       OPNET是网络仿真领域的高富帅OPNET公司是由MIT发起,成立于1986年。公司成立后的第二年,OPNET公司发布了其第一个商业化的网络仿真软件。OPNET公司最初只有OPNET Modeler一种产品,到目前已经拥有了Modeler、ODK和SPGuru等一系列产品。OPNET Modeler能够准确的分析复杂网络的性能和行为,在网络模型中的任意位置都可以插入标准的或用户指定的探头,采集数据和进行统计。通过探头得到的仿真输出可以以图形化显示、数字方式观察、或者输出到第三方的软件包去。OPNET Modeler产品结构有三个模块组成,能为用户提供一系列的仿真模型库,在电信、军事、航天航空系统集成、咨询服务、大学、行政机关等方面应用广泛。

      QualNet是网络仿真领域白富美。QualNet是美国Scalable Networks Technologies公司的产品,前身是GloMoSim,根源于美国国防部高级研究计划署(DARPA)的全球移动通信计划。QualNet对无线移动通信网络进行了优化处理,提升了仿真速度;同时对无线信道和射频技术的建模确保了仿真精度。QualNet与OPNET功能类似。

       OPNET和QualNet都是商业软件,价值在200万人民币以上。尽管商业软件在使用的便捷性上是开源软件难以企及的,但是昂贵的价格限制了软件的用户数量,因而缺少沟通交流的平台;商业软件的源代码对用户并不完全可见,导致用户知其然不知其所以然;商业软件模块更新慢,跟不上科研院所追求创新的步伐。

       对于初学者而言,真正驾驭一款网络仿真软件是具有挑战性的。原因在于:网络仿真涉及网络仿真思想、通信理论、计算机理论,需要精通网络仿真软件架构、协议原理、协议实现和结果分析等方面的知识点,而初学者往往有很多知识断点需要弥补。从2007年开始,我一直用NS-2开展网络仿真的研究工作,运用NS-2先后完成了国家自然科学基金青年基金(61601475)、中国博士后基金面上项目(2013M542527)、装备发展部重点实验室基金(614210401050317)、航空科学基金(201555U8010)和陕西省自然科学基金(2014JQ8310)等科研项目,在国内和国际知名期刊上发表了研究成果。在研究过程中,我用过NS-3、OMNeT++和OPNET,没有用过QualNet。

       初学者如何选择网络仿真软件呢?尽管对NS-2情有独钟,但我不应该被情感左右,必须站在更高的视角上去看问题。我认为对于初学者而言,选择网络仿真软件前还应该问自己两个问题:一是你要什么?二是你有什么?

       你要什么?主要是想好自己的目标,你要研究什么?哪些网络仿真软件能支持?如果你的研究领域是5G,NS-2并没有这个功能;如果你想研究水下通信,NS-2和NS-3已经有了功能模块;如果你想研究卫星通信,NS-2、OPNET和QualNet已经有了功能。如果你对可视化要求很高,OMNeT++、OPNET和QualNet是应该优先选择的。

      你有什么?主要是你的基础和你团队的基础,还有你能获得的资源。如果你在小团队,没有购买OPNET和QualNet,那你就应该选择NS-2、NS-3和OMNeT++。如果你的团队都非常擅长OPNET,且OPNET的功能能够满足你的需求,你就没有必要独辟蹊径学NS-3,不仅耗时费力,还事倍功半。如果你擅长C语言不擅长C++,那你用NS-2大概率比NS-3和OMNeT++要容易,因为后两者对C++要求更高。如果从使用手册考虑,OMNeT++和NS-3使用手册非常规范。如果从中英文书籍考虑,NS-2的中文和英文书籍是非常丰富的。如果你的导师或师兄是某一款网络仿真软件的专家,如果没有特别的交代,你尽量不要另起炉灶。

      无论是开源的网络仿真软件NS-2、NS-3和OMNeT++,还是商业的网络仿真软件OPNET和QualNet,功能都是非常强大的。结合自身的目标和条件,真正驾驭其中一种,就站在了巨人的肩膀上,向实现目标迈出了一大步。

      网络仿真软件的使用经验是需要传承的,网络仿真软件的使用灵感是需要沟通的。我建立了NS-2、NS-3和OMNeT++网络仿真联盟,旨在帮助更多的初学者快速入门。人多力量大,柴多火焰高。期待更多的研究者加入我们,我们一起攻坚克难,让NS-2、NS-3和OMNeT++网络仿真更简单、更丰富,让从事网络仿真领域研究的同行有更多幸福感和获得感。(QQ一群:653074409;二群:196551589;三群:260259980;四群:1019291020)

你可能感兴趣的:(c++,大数据,编程语言,python,网络)