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

NS2仿真模拟研究与分析

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

2.6.2  业务模型和通信协议
NS2内置了各种常用的业务模型,包括ftp业务模型、CBR业务模型、on/off业务模型等。同时它还支持TCP和UDP两种传输协议以及多种路由协议,包括分级路由、广播路由、多播路由、静态路由、动态路由等,这极大方便了用户的使用。另外支持通过C++二次开发用户自己需要的协议。 所以它有着如下特点:
(1)采用面向对象技术
NS2采用面性对象技术,这就保证了软件的可扩充性和可重用性,提高了程序开发的效率。对象的属性能够很容易地配置,每个对象属于相应的行为和功能的类。类也可以继承其它类,也可以通过C++来定义新的类来满足用户自己特定的需求。
(2)很强的结果处理能力
为了分析仿真结果,仿真结果的数据必须能够完整收集。NS2提供了两种基本数据追踪能力:跟踪和监控。跟踪能够将每个数据包在任何时刻的状态记录到指定文件中,例如包在队列或链路中丢弃、到达、离开的行为都可以记录下来。而监视则可有选择记录自己需要的数据,例如统计发送包、接收包、丢弃包的总数量。同时监视也可用来对所有包或者指定单一数据流的监测。同时NS2还提供了动态显示仿真过程的Nam观察器和X graph图形显示工具。用户从Nam观察器中可以直观了解数据包的传递过程,而X graph工具可以很方便地将仿真结果转换成图表形式。
2.7  层次结构
NS2是一个面向对象的仿真器,包括编译和解释两个层次。编译层包括C++类库,解释层则包含对应的Otcl类库,用户通过对Otcl的操作来使用NS2。Tcl类封装了Otcl解释器的实例,提供了外部访问解释器的方法,主要实现以下几个功能:
(1)获得访问Tcl实例人口;
(2)通过解释器调用Otcl过程;
(3)解释器交换结果;
(4)报告出错状况,并以统一方式退出;
(5)存储、查找TclObject类对象;
(6)取解释器句柄。
另外,TclObject类是大多数解释性和编译性类的基类,封装了绑定、跟踪和对相关命令的调用机制。该类中所有对象都是用户通过解释程序创建的。TclClass类是一种纯虚类,派生出的子类有两个作用:一是构造解释类层次来镜像编译类层次;二是提供了创建新的TclObject派生类的方法。TclCommand类为NS提供了用来生成简单命令的机制,这些命令能被解释程序执行;EmbeddedTcl类实现脚本的装载和赋值;InstVar类实现绑定在编译层对象中的C++成员变量和在解释层中指定是实例变量的人口方法和机制。

 
3  NS2的工作仿真机制
NS是美国DARPA支持的VINT项目的核心部分,主要由LBI ,CMU,UCB,USC/ISI,Xe-rox PARC等大学和实验室合作开发,现由USC/ISI维护,最新版本是NS2。其目的是构造虚拟的网络平台,提供一套模拟和测评现有网络协议的仿真工具,并能实现新协议的开发和研究。
3.1  体系结构和工作原理
NS软件包主要由Tcl/Tk,OTcl,NS 和TclCL组成。其中Tcl是一种开放式的脚本语言,用于对NS编程,实现网络模拟。这种脚本语言最明显的特点就是其解释器能够很容易地嵌入到应用程序中。Tk是Tcl的图形开发工具包,OTcl则是Tcl语言面向对象的扩展。NS由模拟引擎和大量的仿真组件构成,是面向对象的模拟器,也是软件包的核心,其本身由c++写成,并带有一个前端的OTcl解释器,能够同时满足C++和OTcl的编程需要。在TclCL中定义了许多类,用于提供OTcl和c++的编程接口,使网络对象和变量能够同时出现在两种语言中,与其它的仿真软件类似,NS采用了如(图3.1)所示的体系结构。


图3.1  NS的体系结构
 
模拟引擎是NS模拟器的核心,包括线程调度、处理器分配、事件队列、时钟同步设置等,它采用事件驱动的方式,根据设定的事件队列控制整个模拟过程的运行。其线程调度和处理器的分配形式目前采用的是单线程的方式。
并发事件按先调度先分配(FSFD)的方式处理,不支持抢占式的处理器分配。事件队列的调度方式,按数据结构和算法的不同分为三种:表调度、堆调度和日历队列调度,事件调度的时间单位是秒(虚拟时钟)。
3.2  仿真模型
网络建模是实现网络仿真的基础,NS采取对真实网络元素进行抽象,保留其基本特征,并运用等效描述的方法来建立网络仿真模型。NS的仿真模型包括拓扑模型、协议模型和流量模型三个部分,它们由大量的仿真组件(由C++和OTcl编写)所构成,用于实现对真实网络的抽象和模拟。
   (1)拓扑模型 由节点和链路构成。从本质上讲,节点是分类器(classifier) 的集合,链路则是连接器(connector)的集合,其结构如(图3.2)所示.节点主要由地址分类器、端口分类器、多播分类器和复制器等仿真组件构成。分类器的作用是对接收到的数据包的地址字段进行检查,并将其映射到相应的输出接口;复制器是一种特殊的分类器,是分类器的派生,但覆盖了分类器的分类功能,增加了把数据包复制到各个订阅了某一多播组的输出链路的功能。最基本的节点仅包含一个地址分类器和一个端口分类器,无线网节点可看作是基本节点的扩展,它们除了具有上述的分类器之外,还包含LL(数据链路层)对象、IFQ(接口队列)对象、MAC对象、PHY(物理层接口)对象以及Channel对象等仿真组件。


 


图3.2  NS节点和链路的内部结构
(2)跟踪与监视模型
跟踪与监视的主要功能是跟踪、显示和监视网络模拟的整个过程,采集虚拟网络的性能状态参数和输出数据,最后形成统计结果。NS模拟器主要通过在链路上增加一些跟踪对象来跟踪虚拟网络的行为。跟踪对象能够对链路上每个数据包的到达、离开或丢弃行为进行跟踪,并实时地写入跟踪文件,从而用来动态地显示模拟运行的过程或作为后续分析的数据。监视则是通过在队列中插入一些监视对象来动态地计算队列长度的变化以及到达、离开或丢弃的数据包数量,并把结果动态地记录到监视文件中,便于后续的分析和处理。
(3)可视化工具
可视化工具有动态和静态之分。动态工具Nam可利用跟踪文件动态地显示模拟运行的全过程,并可按不同的时间粒度显示不同的采集数据。静态工具XGraph可对输出的数据进行分析统计,以图形和图表显示出结果。NS的仿真过程网络仿真一般要经过建立模型、模拟实现和结果分析三个过程。NS的仿真分为两个层次:一是用户层次用户直接利用NS已有的仿真组件和模型进行网络的模拟和分析,而无需对NS本身作任何修改和扩展,即通常所言的NS仿真;二是系统层次,用户使用OTcl和C++语言对NS本身进行开发和扩展,实现新的协议和算法。转贴于 酷文网-论文下载中心 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号