张贤军 李 鹤
(1.北京海淀区复兴路20号网管中心 北京 100840)(2.91917部队20分队 北京 100841)
目前,随着Internet的迅猛发展,需要通过网络传送的信息越来越多,以及网络带宽与网络规模的不断扩充,以数学计算为基础的传统网络设计理论己经无法满足数据网络的实际需要,所有这些,都对网络研究人员提出了许多新的挑战,因此,越来越需要一种新的网络规划和设计手段来提高网络设计的客观性和设计结果的可靠性,降低网络建设的投资风险。网络仿真技术正是在这种需求的推动下而产生的。
网络仿真是一种利用数学建模和统计分析的方法模拟网络行为,通过建立网络设备和网络链路的统计模型,模拟网络流量的传输,从而获取网络设计及优化所需要的网络性能数据的技术。网络仿真作为一种新的网络规划和设计技术,以其独有的方法为网络规划设计提供客观、可靠的定量依据,缩短网络建设周期、提高网络建设中决策的科学性、降低网络建设的投资风险。网络仿真技术已经成为网络规划、设计和开发中的主流技术。
网络仿真技术具有以下特点:
1)仿真基于统计模型,统计复用的随机性精确再现;
2)全新的模拟实验机理使其可以在高度复杂的网络环境下得到高可信度的结果;
3)其预测功能是其他任何方法都无法比拟的,能够验证实际方案或比较多个不同的设计方案;
4)使用范围广、既可以用于现有网络的优化和扩容、也可以用于新网络的设计,特别适用于大中型网络的设计和优化,为网络的规划设计提供可靠的定量依据;
5)初期应用成本不高,建好的网络模型可以延续使用、后期投资还会不断下降。
网络仿真的应用包括:
·容量规划和预测服务;
·故障分析;
·端到端的性能分析
·分析新增业务和用户对网络的影响;
·使网络设计达最优的性价比;
·预测业务量的增长;
·指导新网络建设。
在现代通信网络研究中,网络模拟技术得到了日趋广泛的应用,而网络模拟的有效性和准确性很大程度上依赖于所采用的网络模拟工具的性能。在研究开发网络模拟工具的方法和实现方面,国内所做的研究相对较少,但国外已经有许多研究成果,包括商业软件工具和研究用软件工具,如 OPNET,QualNet,NS- 2,NS - 3,GloMoSim,NCTUNS,GTNetS(包括 RT IKit library),OMNET++,SSFNet,JiST和Yans等。在此介绍几种常用的网络仿真工具。其中在教育、科研、商业等领域使用最广泛的是NS2与OPNET。
OPNET[20](Optimal Network Engineering Tools)仿真软件是MIL3公司的产品,是由MIT的几位教师在1986年创建的,OPNET网络仿真技术以其独特的方法能够为网络的规划设计提供客观,可靠的定量依据,能帮助开发人员定位关键事务,分析出极限情况下的end-to-end性能,可以确定增加应用和用户后对网络的影响,并使用定量的方法,对网络做出准确的规划和伸缩性分析,使网络设计得到最优的性价比。目前用户范围广泛,包括企业、网络运营商、仪器配备厂商,以及军事、教育、银行、保险等领域。
OPNEST的产品核心包括:
1)Service Provider Guru:面向网络服务提供商的智能化网络管理软件;
2)OPNET Modeler:为技术人员提供一个网络技术和产品开发的平台;
3)IT Guru:帮助网络专业人士预测和分析网络和网络应用性能,诊断问题。查找影响系统性能的瓶颈;
4)WDM Guru:用于波分复用光纤网络的分析,评测。OPNET主要特点包括:
1)有限状态机;2)对协议编程的全面支持;3)层次化的网络模型;4)高效的仿真引擎;5)集成的分析工具;6)系统的完全开放性;7)集成调试器;8)动画。
QualNet[3]是一种应用于无线、有线以及混合动态网络的快速而且精确的开发、仿真系统。Scalable Network Technologies Inc.公司将美国加州大学洛杉矶分校(UCLA)开发的开放源代码的GloMoSim成功地转化为了商业版本——QualNet。目前已经在世界范围内50多个国家和地区得到了推广应用。主要对无线移动通信网络进行了优化处理,从仿真速度上得到了很大的提升,同时通过对无线信道和射频技术的建模也保证了较高的仿真精度。允许用户在真正的并行仿真环境当中优化并行仿真性能。对小规模同种复杂度的网络模型仿真,QualNet仿真速度是其它仿真器的几倍,对于大规模网络,QualNet仿真速度是其它仿真器的几十倍,如果QualNet采用并行仿真机制,能达到比其它仿真器快千倍的速度。QualNet的协议模块更加独立,更加模块化,可以方便屏蔽、增加、删除某些协议模块。支持TCP/IP协议栈的标准层间接口,用户无需自己开发这种类型。
QualNet模型库组件包括:
1)Developer Library:用于建模多种网络,包括 WAN,LAN,IPv6,卫星库与STK/Connect接口;
2)Wireless Library:包含802.lla/b/g和移动 AdHoc网络;
3)Multimedia and Enterprise Library:用于 WAN建模,VOIP,排队,调度,MPLS和其它QoS功能;
4)Advanced Wireless Library:用于802.16和802.16e,即所谓的 WIMAX;
5)Cellular Library:用于GSM蜂窝网建模;
6)Standard Interfaces Library:用于把军用仿真器通过HLA或DIS接口集成到QualNet中;
7)Network Emulation Interface Library:用于 hardware,software,和human-in-the-loop的仿真模拟;
8)Military Radios Library:用于 Link11,Link-16,EPLRS和SINCGARS网络建模;
9)Propagation Library:TIREM,用于基于 Terrain的地形及传播效果建模;
10)Propagation Library:Urban,用于城市路径缺失和地形建模;
NS[4]起源于1986年的Real Network Simulator项目,1995年在施乐公司(Xerox)的支持下加入美国DARPA支持的项目VINT(the Virtual InterNet Tested),是 VINT项目的基础和核心部分。在不断吸收世界各地研究者的成果过程中,NS从原始版本进化到较成熟版本NS-2。NS-2是面向对象的、离散事件驱动的网络模拟器,由C++和Otcl语言编写而成。它是一个完全免费的软件,具有开放的体系结构,并带有大量协议库支持,尤其适合于对基于TCP/IP的网络进行模拟,是进行网络模拟最流行的软件之一,享有很高的学术声誉。NS-2有多种平台下的版本,包括UNIX,LINUX和Windows等。
NS-2仿真软件是一个软件包,包括Tcl/Tk、Otel、NS、Tclcl等组件,NS-2的特点包括:1)支持各种业务模型和多种通信协议;2)采用面向对象技术;3)有很强的结果处理能力。
NS-3全称是Network Simulator Version 3,它是一个极具特色的新型网络模拟器,与其他网络模拟器相比,NS-3在完备性、开源性、易用性和可扩展性等方面的特色使得它优于现有的大多数主流网络模拟器。NS-3的功能极其强大,可以对各种网络、各种协议、各个层次进行模拟和研究,由于提供了灵活的扩展支持,研究者可以根据自己的需要进行任意的扩展[5~7]。NS-3目前只提供了一些基本的功能模块。
NS-3是一种面向对象的网络模拟器,它本质是一个离散事件模拟器,其本身有一个虚拟时钟,所有的模拟都有离散事件驱动。NS-3不是NS-2的扩展,不支持NS-2的APIs。它使用C++模组化元件并直接用C++描述拓扑。目前的NS-3与NS-2相比,模块还少很多,但是将NS-2模块移植过来的工作一直在稳步进行。另外,NS-3自身也有很多模块正在开发中,主要有:仿真与实时调度模块,同步Posix-like API,网络模拟之源NSC的整合,可视化模块,IPv6,实用应用程序整合,并行模拟,统计分析模块,Wimax模块,水下声学模块等等[10]。
OMNET++(Objective Modular Network Testbed in C++的缩写)是一个专门为大型网络提供开源的、基于组件的、模块化的开放网络仿真平台。OMNET++作为离散事件仿真器,具备强大完善的图形界面接口和可嵌入式仿真内核,可运行于多个操作系统平台,简便定义网络拓扑结构,具备方便快捷的编程、调试和跟踪支持等功能。
OMNEST是OMNET++的一个商业版本。目前业内唯一一款开放性最好的、运算速度最快的基于离散事件仿真的商业软件,能够完全满足客户定制化需求,进行任意的封装、扩展、集成和模块化,内核源码和开发的代码全部基于C++,面向对象的思想使用户轻松上手。
OMNEST可以广泛的应用于各种离散事件仿真:通信网络通信协议、排队网络、电信网络、卫星通信网络、海军空军数据链、传感器网络、陆军的战术通信网、电子对抗系统、硬件系统、……、任何其它适合应用离散事件处理的仿真系统的建模和仿真。
GTNetS[9]全称是 The Georgia Tech Network Simulator,是美国乔治亚工学院的Dr.George Riley领导的MANIACS研究小组开发的一款网络模拟器,主要用于大中型网络研究,包括对分布式模拟的支持(需要RTI Kit library)。
GTNetS是一个全特性的网络模拟环境,其设计理念是创造一个完全近似于实际网路的模拟环境,使得模拟能够准确地反映真实网络状况并且方便代码在模拟环境和实际环境间移植。在GTNetS中,协议栈各层之间有明确的界限。数据包Packets中包含一系列的协议数据单元PDUs,这些PDUs会随着Packets在协议栈中的上下流动而被剥离或者添加。节点对象Node可以绑定多个网络接口,每个接口又可以绑定一个IP地址和物理链路,这与现实环境中电脑+网卡的结构十分相似。传输层协议对象采用一种与真实网络协议(TCP)类似的方式与端口绑定,在传输层协议对象间通过源IP、源端口、目的IP、目的端口进行连接。应用层和传输层协议间的接口使用大家所熟悉的类UNIX sockets API进行连接,应用层可以承载多种协议对象,包括模拟的和真实的数据。
网络仿真是分析、研究、设计和改善网络性能必不可少的工具,它能帮助人们更确切、更详细地分析网络模型的功能。文章主要介绍了网络仿真技术及仿真工具的基本情况,对了解、选择网络仿真系统具有实际参考价值。
[1]王波,周志伟.网络模拟软件NS2与OPNET的剖析比较[J].计算机系统应用,2010,19(6).
[2]石怀伟,李明生,王少华.网络仿真技术与OPNET应用实践[J].计算机系统应用,2006.3.
[3]QualNet 4.5User’s Guide[EB/OL].http://www.qualnet.com/publications/documentation/.
[4]Varadhan K,Fall K.The ns Manual[EB/OL].http://www.isi.edu/nsnam/ns/.
[5]Henderson T R,Lacage M,Riley G F.Network Simulations with the ns-3Simulator[C]//Proceedings of the ACM SIG COMM 08.Seattle,Washington:[s.n.],2008.
[6]Ns-3developers.ns-3Tutorial[EB/OL].2008-10-07.http://www.nsnam.org/docs/tutorial/index.html.
[7]Ns-3developers.ns-3Reference Manual[EB/OL].2008-10-07.http://www.nsnam.org/docs/manual.html.
[8]石为人,黄河,鲜晓东,等.OMNET++与NS2在无线传感器网络仿真中的比较研究[J].计算机科学,2008,35(10).
[9]Riley G F.The Georgia Tech Network Simulator[C]//Proceedings of the ACM SIGCOMM 2003Workshops.NewYork,NY,USA:[s.n.],2003.
[10]Henderson T.ns-3tutorial slides[C]//Proceedings of the International Conference on Simulation Tools and Techniques 2008(Simutools 2008).Mercure Marseille,France:[s.n.],2008.