基于ns2的网络仿真

基于ns2的网络仿真

ID:33590685

大小:293.54 KB

页数:6页

时间:2019-02-27

基于ns2的网络仿真_第1页
基于ns2的网络仿真_第2页
基于ns2的网络仿真_第3页
基于ns2的网络仿真_第4页
基于ns2的网络仿真_第5页
资源描述:

《基于ns2的网络仿真》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、http://www.paper.edu.cn基于NS2的网络仿真郭树民,裴庆祺,曾兴雯西安电子科技大学通信工程学院,西安(710071)E-mail:gsm1011@163.com摘要:近几年来,网络结构的的复杂化和应用的多样化,为网络系统的分析和设计提出了新的挑战,NS2作为一种通用的网络仿真工具,很好地满足了这种需求。本文主要介绍了NS2以及其在网络仿真方面的应用,包括NS2的特点、应用领域、用NS2进行仿真的步骤,最后给出了一个用NS2进行仿真的实例。介绍了如何结合GNU的make工具有效地利用NS2进行网络仿真。关键词:网络仿真;NS2;Makefile1.网络仿真简介近几

2、年来,随着网络结构和规模的复杂化以及网络的应用的多样化,单纯依靠经验进行网络的规划规划和设计、网络设备的研发以及网络协议的开发已经不能适应网络的发展;网络仿真很好地满足了这种需求。所谓网络仿真就是将物理世界中的网络通过计算机来模拟实现。这种模拟是通过数学方法或者动态蒙特卡罗方法来模拟现实中的网络行为,从而可以有效地提高网络规划和设计的可靠性和准确性,降低网络投资的风险,减少不必要的投资。网络仿真工具是为了进行仿真而开发的专用计算机软件。从仿真的范围来看我们可以将其分为专用仿真工具(SpecializedNetworkSimulator)和通用仿真工具(Generalizednetwo

3、rksimulator)。专用网络仿真工具是为了仿真某个特定的网络环境和网络协议而设计的,例如[13][14]SensorSim,SENSE等都是为了仿真传感器网络而设计的专用网络仿真工具。通用网络仿真工具是在一个整体设计架构的基础上集成了很多网络模块(module),并且用户可以根据需要来添加新的模块或者修改现有的模块,从而可以实现各种网络协议的仿真。目前,比较[3][4][12]流行的通用仿真工具主要有NS2和OPNET、J-Sim等。[16]NS2是一种开源的网络仿真工具,它是由美国的VINT工程开发的通用网络仿真平台;其可扩展特性和开源特性赋予了其强大的生命力;世界各地的科研

4、人员都可以向NS2[3]贡献源代码,使得其可以支持现有的除蜂窝网络出外的几乎所有的网络场景和网络协议。[6]NS2在科研特别是无线网络的仿真领域得到了非常广泛的应用,通过NS2得到的仿真结果也得到学术界的普遍认可;此外,NS还可以作为一种辅助教学的工具,已经被广泛应用于网络技术的教学方面。[5][10]OPNET是在MIT的网络仿真工具的基础上由MIL3公司开发的商业化的网络仿真软件。它是一个非常强大的网络分析和设计平台,支持对网络各个层次的设备、链路和协议的精确建模,并提供丰富的外界开发接口。从应用的广泛性而言,OPNET是一种仅次于NS2[6]的网络仿真工具。本文的以下部分安排如

5、下:第二部分将简要介绍NS2的特性;第三部分将介绍用NS2进行仿真的步骤;第四部分将给出用NS2进行网络仿真的一个实例,并介绍怎样利用Makefile来提高网络仿真的效率和实现仿真的自动化。最后,对本文进行了总结并对今后的工作进行了展望。-1-http://www.paper.edu.cn2.NS2特性2.1.离散事件模拟[1]NS2是一个基于离散事件的网络仿真工具。在NS2中,事件(Event)是模拟器处理的基本单位,它由事件调度器(Scheduler)来进行组织和管理。一个事件可以是一个路由请求、一次数据包的传送请求,还可以是数据包丢失或链路失效等。当事件发生时,调度器负责事件的

6、组织和调度。它首先将事件放置到队列中,然后根据一定的规则对发生的事件进行处理。在网络的仿真过程中,一般的情况是一个事件发生会引起一系列的连锁反应,很多相关的事件接连发生,这种过程一直持续直到完成一次网络模拟。2.2.分裂对象模型NS2的设计采用了分裂的对象模型。所谓分裂对象模型就是将NS2中的对象用两种不同的编程语言来实现,NS2采用了C++和Otcl两种语言。采用分裂对象模型主要是综合考虑了仿真软件的性能(速度)和可配置性。C++语言是一种编译执行的语言,在执行之前程序已经经过编译器编译成可执行的二进制代码,因此具有非常高的时间效率和空间效率。与C++相比,Otcl是一种解释执行的

7、语言,它是对Tcl语言的面向对象的扩展。这种程序设计语言的特点是逐句解释执行,它在执行之前不需要进行编译处理;这种特性使得起非常适合用来进行网络参数的配置。NS2正是很好地利用了这两种语言的优点,网络仿真模块中对效率要求比较高的网络协议部分都是用C++语言来实现的,而对参数和场景的配置是用Otcl[3]语言来实现的。文献对NS2的分裂对象模型做了深入和富有启发性的介绍。2.3.基于数据包层次的仿真NS2是一种数据包层次的网络仿真工具,它采用一种具有一定格式

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。