NS2及常用辅助工具的简介

NS-2(Network Simulator 2)最初由美国的LawrenceBerkeley国家实验室和VINT(VirtualInternet Tested)项目组开发研究,是一种基于事件驱动的着眼于实验与测验当前和未来因特网协议的网络仿真器,在开始时只对有线网络进行支持,后来由卡内基-梅隆大学的MONARCH项目组添加了对无线局域网和MANET的支持。

NS-2主要包括事件调度器与网络组件对象库,是一种面向对象的网络模拟器,采用C++与OTcl两种开发语言,使用分裂对象模型的开发机制(图1)。为了模拟器的底层执行效率,事件调试器与基本的网络组件对象都是C++编写的。OTcl解释器通过TclCL机制在脚本中调用这些对象。这样,用户只需要编写Tcl/OTcl脚本即可以写出模拟代码,对网络拓扑,节点性质等网络参数进行快速配置。事件调度器自带一个定时器,控制着模拟的过程,在满足一定的条件后触发事件,并执行相应的处理过程。网络组件对象库可以模拟网络设备的工作原理及属性,通过制定这些属性与通信流量模型,传输特定的数据流来模拟真实的网络情况,并将模拟结果记录在日志文件中(称为Trace文件),以便用户进行后续的分析与解读。这样,利用NS-2及附属工具可以高效地分析网络中各协议的性能。


图1 NS-2的分裂对象模型

NS-2仿真分为两个层次:一个是脚本层次的编程,使用Tcl语言对网络的通信过程进行仿真,利用到的都是NS-2中已存在的元素,无需修改NS-2本身;另一个层次是通过C++进行网络组件的编程,通过修改NS-2的源代码实现对原有的元素特性的修改或添加新的元素,实现新的功能。因此,用户在进行模拟实验之前要检查一下现有的NS-2对象库能否满足用户的需求,若不满足,则需要对NS进行扩展,模拟实验的仿真过程如图2所示。

图2 使用NS-2进行仿真实验的过程

为了更有效地进行仿真实验并对实现数据做出更直观的分析,采用了一些常用的语言和工具,这些工具主要有gawk、gnuplot、cbrgen、setdest、threshold及nam。
1.gawk
awk是一种脚本语言,它具有了一般语言常有的功能,可以采用命令行与批处理两种交互方式。Gawk是GNU所开发的awk,它包含了awk的所有功能,具有很强的文档处理能力,可以使用很短的脚本完成大文件的处理,是分析及提取数据特征的利器。
2. gnuplot
Gnuplot是一种科学绘图工具,支持多种平台,如Linux、Windows与及IBM OS/2等,其设计的初衷就是为了方便科学工作者和学生绘制函数曲线和其他数据曲线。它支持交互命令行和批处理两种模式,可以很容易地读出文件数据,并显示出来或保存成指定格式的文件,使用简单灵活但功能强大。
3. cbrgen
NS-2自带的流量产生器,可以参数的设置自动生成多条TCP流或CBR流的脚本。
4. setdest
NS-2自带的节点移动产生器,用来随机产生无线网络中节点运动场景,只需要确定拓扑的面积、节点的个数、运动速度的范围等参数就可以自动生成节点运动的代码。
5. threshold
无线网络中信号的强度会随着距离的增加而衰减。为了仿真信号在无线环境中的衰减,NS-2提供了三种传播模型:FreeSpace、TwoRayGrond和Shadowing模型。一个无线报文可以被接收方所接收,接收功率一定要大于某个阀值,threshold就是用来通过计算接收功率的阀值来控制无线信号传播的范围的。
6. nam
Nam全称是NetworkAnimator,具有良好的界面,可以与NS-2配合使用,通过动画来演示NS-2模拟过程中的网络事件及状态,如发包、丢包、链路状态等。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值