酷文首页  
站内搜索:
网站地图 | RSS订阅 | 收藏本站
经济论文
证券金融
工商管理
会计审计
法学论文
医药论文
社会论文
教育论文
计算机论文
艺术论文
哲学论文
财政税收
财务管理
公共管理
理学论文
政治论文
文学论文
工学论文
文化论文
实用文档
应用文
自考成考
演讲稿
法律文书
子栏目导行↓
网站赞助商↓
本类热点↓
本类更新↓
热门标签↓
网摘收藏↓

NS2仿真模拟研究与分析

作者:李慧
来源:本站原创
点击:
载入中...
加入时间:2008-06-29
字体大小:[  ]

同时,NS2包含Tcl/Tk,OTcl,NS,Tclcl。其中Tcl是一个开放脚本语言,用来对NS2进行编程。Tk是Tcl的图形界面开发工具,可帮助用户在图形环境下开发图形界面;OTcl是基于Tcl/Tk的面向对象扩展,有自己的类层次结构;NS2为本软件包的核心,是面向对象的仿真器,用C++编写,以OTcl解释器作为前端;Tclcl则提供NS和OTcl的接口,使对象和变量出现在两种语言中。为了直观的观察和分析仿真结果,NS2 提供静态画图工具X graphy、以及动态仿真工具Nam。
NS2的工作平台可以是Windows,Linux,Unix,Machitosh中的任何一种,但要求系统装有C++编译器。
NS的工作流程:NS代码使用OTCL语言编写,通过OTCL语言解释器解释,使用NS仿真库进行编译和仿真,输出仿真结果。根据仿真结果记录,可进一步进行相关内容分析,生成网络拓扑图或者得到数据的可视化图表。使用辅助的NAM工具,在NS中可以清晰显示网络拓扑图,使用X Graph工具,可以将NS的仿真结果用图表形式表示。
2.5  网络模拟
2.5.1  结构
NS是Otcl的脚本解释器,它包含仿真事件调度器、网络组件对象库以及网络构建模型库等。事件调度器计算仿真时间,并且激活事件队列中的当前事件,执行一些相关的事件,网络组件通过传递分组来相互通信,但这并不耗费仿真时间。所有需要花费的仿真时间来处理分组的网络组件都必须要使用事件调度器。它先为这个分组发出一个事件,然后等待这个事件被调度回来之后,才做下一步的处理工作。事件调度器的另一个用处就是计时。NS是用Otcl和C++编写的,由于效率的原因,NS将数据通道和控制通道的实现相分离。为了减少分组和事件的处理时间,事件调度器和数据通道上的基本网络组件对象都使用 C++写出并编译,这些对象通过映射Otcl解释器可以见到。
当仿真完成以后,NS将会产生一个或多个基于文本的跟踪文件。只要在Tcl脚本中加入一些简单的语句,那么文件中就会包含详细的跟踪信息。这些数据可以用于下一步的分析处理,也可以使用NAM将整个仿真过程动态演示出来。NS2采用两级体系结构,为了提高代码的执行效率,事件调度器和大部分基本的网络组件对象后台使用C++实现和编译,称为编译层,主要功能是实现对数据包的处理;NS2的前端是一个OTcl 解释器,称为解释层,主要功能是对模拟环境的配置、建立。从用户角度看,NS2 是一个具有仿真事件驱动、网络构件对象库和网络配置模块库的OTcl脚本解释器。NS2中编译类对象通过OTcl连接建立了与之对应的解释类对象,这样用户能够方便地对C++对象的函数进行修改与配置,充分体现了仿真器的一致性和灵活性。
2.5.2  功能模块
NS2仿真器封装了许多功能模块,最基本的是节点、链路、代理、数据包格式等,它所包含的功能模块有以下几种:
(1)事件调度器:目前NS2提供了四种具有不同数据结构的调度器,分别是链表、堆、日历表和实时调度器。
(2)节点(node):是由TclObject对象组成的复合组件,在NS2中可以表示端节点和路由器。
(3)链路(link):由多个组件复合而成,用来连接网络节点。所有的链路都是以队列的形式来管理分组的到达、离开和丢弃。

2.5.3  网络仿真的方法和一般过程
进行网络仿真前,首先分析仿真涉及哪个层次,NS仿真分两个层次:一个是基于OTcl编程的层次。利用NS已有的网络元素实现仿真,无需修改NS本身,只需编写OTcl脚本,另一个是基于C++和OTcl编程的层次。如果NS中没有所需的网络元素,则需要对NS进行扩展,添加所需网络元素,即添加新的C++和OTcl类,编写新的OTcl脚本。
假设用户已经完成了对NS的扩展,或者NS所包含的构件已经满足了要求,那么进行一次仿真的步骤大致如下:
(1)开始编写OTcl脚本。首先配置模拟网络拓扑结构,此时可以确定链路的基本特性,如延迟、带宽和丢失策略等;
(2)建立协议代理,包括端设备的协议邦定和通信业务量模型的建立;
(3)配置业务量模型的参数,从而确定网络上的业务量分布;
(4)设置Trace对象。NS通过Trace文件来保存整个模拟过程。仿真完后,用户可以对Trace文件进行分析研究;
(5)编写其他的辅助过程,设定模拟结束时间,至此OTcl脚本编写完成;
(6)用NS解释执行刚才编写的OTcl脚本;
(7) 对Trace文件进行分析,得出有用的数据;
(8)调整配置拓扑结构和业务量模型,重新进行上述模拟过程。
2.5.4  仿真元素
网络拓扑仿真、协议仿真和通信量仿真等方面说明NS的相应元素:
(1)网络拓扑主要包括节点、链路。NS的节点由一系列的分类器(Classifier,如地址分类器等)组成,而链路由一系列的连接器(Connector)组成。
(2)在节点上,配置不同的代理可以实现相应的协议或其它模型仿真。如NS的TCP代理,发送代理有:TCP,TCP/Reno,TCP/Vegas,TCP/Sack1,TCP/FACK,TCP/FULLTCP等,接收代理有:TCPSINK,TCPSINK/DELACK,TCPSINK/SACK1,TCPSINK/SACK1/DELACK等。此外,还提供有UDP代理及接收代理Null(负责通信量接收)、Loss Monitor(通信量接收并维护一些接收数据的统计)。
(3)网络的路由配置通过对节点附加路由协议而实现。NS中有三种单播路由策略:静态、会话、动态。
(4)在链路上,可以配置带宽、时延和丢弃模型。NS支持:Drop-tail(FIFO)队列、RED缓冲管、CBO(包括优先权和Round-robin 调度),各种公平队列包括:FQ,SFQ,DRR等。
(5)通信量仿真方面,NS提供了许多通信应用,如FTP,它产生较大的峰值数据传输;Telnet则根据相应文件随机选取传输数据的大小。此外,NS提供了四种类型的通信量产生器:①EXPOO,根据指数分布(On/Off)产生通信量,在On阶段分组以固定速率发送,Off阶段不发送分组,On/Off的分布符合指数分布,分组尺寸固定;②POO,根据Pareto分布(On/Off)产生通信量,它能用来产生长范围相关的急剧通信量;③CBR,以确定的速率产生通信量,分组尺寸固定,可在分组间隔之间产生随机抖动;④Traffic Trace,根据追踪文件产生通信量。

2.6  网络仿真研究
2.6.1  仿真语言
NS2仿真的一个显著特点是采用两种语言即C++和otcl,以满足仿真的特殊需要。C++ 是一种相对运行速度较快但是改变比较慢的语言,程序的运行时间很短,但转换时间很长,比较适合具体协议描述。Otcl运行速度较慢,但可以快速转变的脚本语言,正好和C++互补,用来进行仿真参数的配置是最适合不过的。另外Tclcl模块能够将两种语言中的变量和对象连接起来。转贴于 酷文网-论文下载中心 http://www.coolwen.net


共9页: 上一页 [1] [2] [3] 4 [5] [6] [7] [8] [9] 下一页

网摘收藏:
 -> 在百度中搜索:NS2仿真模拟研究与分析
 -> 在Google中搜索:NS2仿真模拟研究与分析
免责声明 | 关于我们 | 广告联系 | 友情链接 | 网站地图 | 共同合作
免费论文 毕业论文 毕业论文范文 酷文网(www.coolwen.net) 版权所有 coolwen.net 2007,All Rights Reserved
E-mail:hui_love#tom.com(为防止垃圾邮件请把#换成@) 点击这里给我发消息 点击这里给我发消息
湘ICP备07003917号