菜单
  

    2  NS(Network Simulator)介绍
    2.1  NS2简介
    NS是Network Simulator的首写字母缩写,它是由LBNL(Lawrence Berkeley National Laboratory )的网络研究小组开发的仿真工具。NS是一种可扩展、易配置、可编程的事件驱动的网络仿真软件[6]。NS支持许多基本的协议,如Tcp协议、一些路由协议和多点发送协议等。
    LBNL的网络仿真软件的开发始于1990年5月对S.Keshav的REAL网络仿真程序的修改。91年夏天,对仿真描述语言进行了修改,称为Tcpsim。1994年12月,Mccane用C++重写了Tcpsim,并用基于Tcl ( Tool Command Language ) 的仿真语言代替了基于yacc ( yet another compiler’s compiler ) 的仿真语言,同时支持多点发送。从此时开始不再称为Tcpsim,而称为NS[7]。
    最初的NS版本,如版本1使用Tcl ( Tool Command Language )。现在使用的是NS-2.31版,使用麻省理工大学开发的Otcl ( Object Tool Command Language ) 语言作为命令行和配置界面。除了流管理以外,NS-2保留了所有功能的先后兼容性,因此支持NS1版中用Tcl脚本书写的程序。NS-2相对于NS-1来说发生了三个基础性的改变:1〕为了获得更大的灵活性,NS-1中较复杂的对象被分解为较简单的分量。2〕配置界面是OTcl,Tcl的面向对象版。3〕Otcl解释器的界面代码独立于主要的仿真器。
    NS的新功能包括RED ( Random Early Detection ) 网关,CBQ ( Class-Based Queueing ) 以及带有SACK ( selective acknowledgements ) 的TCP的两种实现方式。

    2.2  NS2的软件构成
    NS2 包含Tcl/Tk,OTcl。其中Tcl是一个开放脚本语言,用来对NS2进行编程;Tk是Tcl的图形界面开发工具,可帮助用户在图形环境下开发图形界面;OTcl是基于Tcl/Tk的面向对象扩展,有自己的类层次结构;NS2为本软件包的核心,是面向对象的仿真器,用C++编写,以 OTcl解释器作为前端;Tcl/Tk则提供NS2和OTcl的接口,使对象和变量出现在两种语言中[8]。为了直观的观察和分析仿真结果,NS2 提供了可选的Xgraphy、可选件Nam。
    2.3  使用NS2的流程
    进行网络仿真前,首先分析仿真涉及哪个层次,NS仿真分两个层次:一个是基于OTcl编程的层次。利用NS已有的网络元素实现仿真,无需修改NS本身,只需编写OTcl脚本。另一个是基于C++和OTcl编程的层次[8]。如果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. 1 NS2进行网络模拟的基本流程图
    NS2 采用两级体系结构,为了提高代码的执行效率,NS2 将数据操作与控制部分的实现相分离,事件调度器和大部分基本的网络组件对象后台使用C++实现和编译,称为编译层,主要功能是实现对数据包的处理;NS2 的前端是一个OTcl 解释器,称为解释层,主要功能是对模拟环境的配置、建立。从用户角度看,NS2 是一个具有仿真事件驱动、网络构件对象库和网络配置模块库的OTcl脚本解释器。NS2中编译类对象通过OTcl连接建立了与之对应的解释类对象,这样用户间能够方便地对C++对象的函数进行修改与配置,充分体现了仿真器的一致性和灵活性。
  1. 上一篇:神经元耦合系统中的同步研究综述
  2. 下一篇:基于FPGA的脉冲信号发生器设计
  1. PID控制在非线性时延离散混沌系统中的应用

  2. Arduino无线传感网络定位系统设计

  3. AdHoc立方星无中心自组网络...

  4. Socket车位锁控制系统的服务器端设计实现

  5. 基于OFDM的用户接入控制技术研究

  6. QPSK无线通信网络中基于...

  7. Ad-hoc网络路由协议的仿真研究

  8. java+mysql车辆管理系统的设计+源代码

  9. 大众媒体对公共政策制定的影响

  10. 十二层带中心支撑钢结构...

  11. 当代大学生慈善意识研究+文献综述

  12. 电站锅炉暖风器设计任务书

  13. 酸性水汽提装置总汽提塔设计+CAD图纸

  14. 河岸冲刷和泥沙淤积的监测国内外研究现状

  15. 杂拟谷盗体内共生菌沃尔...

  16. 中考体育项目与体育教学合理结合的研究

  17. 乳业同业并购式全产业链...

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回