当前位置:无忧公文网 >范文大全 > 征文 > 基于免费软件NS2的网络仿真研究

基于免费软件NS2的网络仿真研究

时间:2022-03-24 09:12:30 浏览次数:

[摘要]本文介绍网络仿真的免费软件NS2的概况,对利用NS2进行网络拓扑的输入、结构的定义、运行仿真、动态观察仿真过程、仿真数据处理进行了分析,同时用一个例子对仿真过程进行了说明。

[关键词]网络仿真 数据分析

随着仿真技术快速发展,应用领域越来越广,作为仿真领域一个分支的网络仿真技术也获得了快速发展。国外网络仿真技术已经相当成熟,已经有小型网络仿真器向大型混合网络仿真器发展;但国内相对比较落后,主要是对一些小型网络进行仿真;NS2就是一种基于小型网络开发的网络仿真工具,可以在一台计算机上动态仿真一个网络的运行。

一、NS2由两种语言OTcl、C++编写而成

Tcl是一种脚本解释性语言,在运行时由解释器一行一行地解释;其优点在于:方便修改、无需重新编译。缺点:运行效率低;C++是一种编译语言,编译时由编译器一次性生成可执行代码。其优点在于:运行速度快。缺点:改动一次需要重新编译,费时。OTCL语言是TCL语言的面向对象的扩展,不同的是OTCL脚本控制的是C++的类,而TCL脚本控制的是C的函数。

二、NS2支持各种业务模型和多种通信协议

NS2内置了各种常用的业务模型,包括:ftp业务模型、CBR业务模型、on/off业务模型。支持UDP、TCP两种传输协议;支持多种路由协议:分级路由、广播路由、多播路由、静态路由、动态路由等;另外支持通过C++二次开发用户自己需要的协议。

三、NS2支持

1.模拟的网络类型:广域网、局域网、移动通信网、卫星通信网。

2.数据方面的支持:随机数产生、随机变量、积分。

3.跟踪监测:包类型、队列监测、流监测。

4.路由:点到点传播路由、组播路由、网络动态路由、层次路由。

四、很强的结果处理能力:跟踪和监控

1.跟踪:能够将每个数据包在任何时态记录到指定文件中,例如包在对队列或链路中丢弃、到达、离开的行为都可以记录下来。

2.监视:可有选择记录自己需要的数据,例如统计发送包、接收包、丢弃包的总数量。监视也可用来对所有包或者指定单一数据流的监测。

NS2还提供了动态显示仿真过程的nam观察器和xgraph图形显示软件。用户从nam观察器中直观了解数据包的传递过程,而xgraph软件可以很方便的将仿真结果转换成图表形式。

五、NS2分为两个层次

编译层:包括C++类库,解释层:包含对应的Otcl类库,用户通过对Otcl的操作来使用NS2,所以仿真分两个层次:一是用户层次,基于Otcl编程的配置、构造层次,利用NS已有的网络仿真元素实现仿真,无需对NS本身进行任何修改,只要编写Otcl仿真脚本。二是系统层次,基于C++和Otcl编程的编译、配置层次,利用Otcl和NS的接口类实现Ns的更新。

六、进行网络仿真

仿真一般要经过建立模型、模拟实现和结果分析三个过程。

(1)创建仿真器并配置或构造仿真网络拓扑(包括链路和节点)。仿真之前首先要构造一个基本的网络拓扑平台。此时,可以确定链路的基本特性,如延迟、带宽和丢失策略。

(2)建立协议代理,包括端设备的协议绑定和通信量模型的建立。

(3)给节点进行特性化配置。根据仿真具体要求对节点进行代理、路由协议等的初始化。

(4)编写必要的otcl过程或构造可能需要的otcl类,如记录过程等。

(5)进行仿真结果的追踪。通过记录跟踪变量和建立追踪文件来保存仿真期间网络性能的参数变化。仿真完成后,调用相应观察器(如Xgraph,Nam)对结果文件进行分析、研究。

(6)在建立了上述代码后,设定通信量应用和时间相关过程的发送/结束时间,然后运行仿真。

七、一个仿真实例

用NS2进行网络仿真是通过调用现有的节点、链路和代理原始功能模块来实现的。NS2通过调用node类来创建节点并且为每一个节点分配唯一的地址。对于网络拓扑结构节点间的连接关系,可以运用duplex-link的方法来建立双向的连接。

NS2系统编译成功后,就可以运用TCL语言编程作仿真实验研究了。例如设计一个简单的网络系统由节点n0,n1,n2,n3分别建立sink连接,n2是中间路由。n0,n1分别向n3发送IP Packet。

八、图形显示

输出文件记录仿真过程,文件名:*.out或*.tr,分别采用以下两种图形方式显示:

1. Nam方式。Nam即Network Animator,它与Ns协同工作,将Ns仿真过程动态表现出来:nam filename.out显示仿真的整个过程:数据包的传输,链路断开,节电的移动,丢包等等。

2. Xgraph方式。Xgraph是X-Windows应用程序,完成交互式测量和绘制、动画效果、显示网络运行的数值特征: xgraph filename.tr记录仿真过程中的内部状态:传输数率,各种峰值等等。

九、数据分析

仿真过程中采集的数据存放在out tr中以供分析使用,并可通过图形演示器nam经采集到的数据形象地进行动态演示。out tr中的数据示例为

+ 0.003 0 2 tcp 40 —2 4.0 1.2 0 0

数据格式及各字段含义如下:

id(+,-,r,d):跟踪类型:+:进入队列,-:离开队列,d:丢弃数据包,r:接收数据包;

Tcp流的id为2,源节点/端口id为4.0,目的节点/端口id为1.2,唯一的分组id为0。

分析我们仿真试验得到的数据,可以得到在此拓扑结构中某个服务在整个仿真时间内1个时间片所占用的带宽。

推荐访问: 仿真 免费软件 研究 网络 NS2