首页
会员中心
到顶部
到尾部
其他电子电气

NS-2网络仿真演示

时间:2020/10/27 9:23:35  作者:  来源:  查看:0  评论:0
内容摘要:       本毕业设计课题研究的主要内容是:(1)完成系统开发平台的搭建;(2)在Linux环境下,利用目前主流的网络仿真软件NS-2,通过编写OTcl脚本,调用NS-2中的相关组件,最后使用nam动画演示工具设计出一...

       本毕业设计课题研究的主要内容是:(1)完成系统开发平台的搭建;(2)在Linux环境下,利用目前主流的网络仿真软件NS-2,通过编写OTcl脚本,调用NS-2中的相关组件,最后使用nam动画演示工具设计出一套演示系统,直观地演示各种网络运作过程;(3)利用C++和OTcl编程的相关知识,实现NS-2的扩展。

 基于NS-2的网络行为演示系统
      NS-2(Network Simulator,version2)是一个由UC Berkeley开发的用于仿真各种IP网络的优秀仿真软件。它是一种面向对象的网络仿真器,本质上是一个离散事件模拟器,本身有一个虚拟时钟,所有的仿真都由离散事件驱动的。NS-2在进行网络仿真方面,具有以下几个特点[4]:
1、仿真采用两种语言
      NS-2仿真的一个显著特点是采用两种语言即C++和OTcl,以满足仿真的特殊需要。C++是一种相对运行速度较快但是改变比较慢的语言,程序的运行时间很短,但转换时间很长,比较适合具体协议描述。OTcl运行速度较慢,但可以快速转变的脚本语言,正好和C++互补,用来进行仿真参数的配置是最适合不过的。另外TclCL模块能够将两种语言中的变量和对象连接起来。
2、支持各种业务模型和多种通信协议
      NS-2内置了各种常用的业务模型,包括FTP业务模型、CBR业务模型、On\Off业务模型等。同时它还支持TCP和UDP两种传输协议以及多种路由协议,包括分级路由、广播路由、多播路由、静态路由、动态路由等,这极大方便了用户的使用。另外支持通过C++二次开发用户自己需要的协议。
3、采用面向对象技术
      NS-2采用面向对象技术,这就保证了软件的可扩充性和重用性,提高了程序开发的效率。对象的属性能够很容易地配置,每个对象属于相应的行为和功能的类。类也可以继承其他类,也可以通过C++来定义新的类来满足用户自己特定的需求。
4、很强的结果处理能力
      为了分析仿真结果,仿真结果的数据必须能够完整收集。NS-2提供了两种基本数据追踪能力:跟踪和监控。跟踪能够将每个数据包在任何时刻的状态记录到指定文件中,例如包在队列或链路中丢弃、到达、离开的行为都可以记录下来。而监控则可以有选择记录自己需要的数据,例如统计发送包、接收包、丢弃包的总数量。同时监控也可用来对所有包或者指定的单一数据流进行监测。同时NS-2还提供了动态显示仿真过程的nam观察器和xgraph图形显示工具。用户从nam观察器中可以直观了解数据包的传递过程,而xgraph工具可以很方便地将仿真结果转换成图表形式。
     总体来说,NS-2设计的出发点是基于网络仿真,它集成了多种网络协议,业务类型,路由排队管理机制,路由算法。此外,NS-2还集成了组播业务和应用于局域网仿真有关的部分、MAC层协议。其仿真主要针对路由层,传输层,数据链路层展开,因此NS-2可以进行对固定,无线,卫星以及混合等多种网络的仿真,但它最适用于TCP层以上的模拟。NS-2的特点是源代码公开、可扩展性强、速度和效率优势明显。在本课题的设计中,我们正是采用了NS-2仿真平台的下的nam动画演示工具来进行网络运行过程的演示,并实现了NS-2的二次开发。
在第3章中,我们还将就NS-2仿真软件的相关知识进行详细的介绍。


毕业设计方案的对比和选择
     为了解决目前我国高校在计算机网络教学中的理论教学和实验操作方面存在的各种问题,我们提出了搭建一个网络实验平台的设计目标。一方面,通过这个实验平台,操作者能够“透明”的使用各种网络构件元素,这样能够实现常见协议和算法运行过程的仿真;另一方面,操作者能够灵活的修改网络拓扑、实体参数和环境变量,有针对性的获取网络的相关信息;最后一方面,为了能够对网络进行深层次的开发,该实验平台应当具很强的可扩展性。操作者可以在原有组件的基础上,开发自己的网络组件模型,丰富网络功能。
      基于上面我们对传统的教学演示工具和目前的一些主流的仿真软件的对比和分析,笔者发现传统的教学演示工具在进行网络理论的讲解演示时,仅仅是对网络过程的抽象演示,无法让观看者形象的理解网络的运作过程和了解网络参数对网络性能的影响。在这方面,网络仿真软件就很好的解决了传统的教学演示工具存在的问题,而且具有很强的可扩展性。如表2-1是对目前几种主流网络仿真软件的比较。
表2-1 主流仿真软件比较
仿真软件 OPENT NS-2 MATLAB
 界面友好性   好  一般  好
 拓扑结构配置  GUI,配置方便  Tcl script,代码编程  GUI、代码
 支持的构建库  丰富的构建库  比较丰富  丰富的工具箱
 配置灵活性  一般  非常灵活  比较灵活
 执行效率  较高  较高  低
 支持语言  Proto-C  C++/OTCL  C/FORTRAN
 可扩展性  差  好  比较好
 兼容性  差  一般  一般
 使用成本  高  开源免费  较高
 入门难度  难度大  较难  一般
 通用性  差  一般  较好
    在本课题所设计的网络实验平台中,我们需要考虑的主要指标有:实验平台的成本、执行效率、可扩展性。综合考虑表2-1中所列的三种主流网络仿真软件的这三项指标,我们最终选取NS-2来搭建网络仿真实验平台,完成网络运作过程的演示,并实现对该实验平台的扩展。

。。。。。。。。

结    论
        随着计算机网络不断深入到人们的日常生活中,现在有越来越多的人希望能够具体的了解相关的知识。而我们设计的网络运作过程演示系统能够帮助观看者形象的理解计算机网络的运行方式和网络协议,并能对网络性能进行详尽的分析。这为初学者快速掌握计算机网络的相关知识提供了可能。对计算机网络知识的掌握,这只是掌握计算机网络的第一阶段,我们的下一步是对网络的开发,如:研究新的网络数据传输介质,提出新的网路协议,开发新的网络架构等。而我们采用的基于网络仿真软件NS-2的开发平台,它的可扩展性能够为网络的开发提供便利。正是基于这些,本文提出的演示系统和NS-2的扩展开发具有很好的应用前景。
      通过半年的努力,完成了演示系统的设计和NS-2的二次开发。主要完成的工作有:
① 完成了开发平台的搭建,并熟练掌握了开发平台的使用。
② 掌握了Linux操作系统的各种基本指令,熟悉了Linux开发环境。
③ 掌握了C++和OTcl编程知识,理解了NS-2的体系结构。
④ 熟悉了网络通信协议,掌握了网络仿真软件NS-2的动画演示工具nam的使用,完成了TCP/UDP数据传输过程以及静态/动态路由的数据转发过程的演示。
⑤ 完成了NS-2的二次开发,实现洪泛路由协议MFlood,掌握了NS-2扩展开发的一般步骤。
由于时间和能力有限,本次设计还有一些不足之处,有待下一步工作的完善。总结起来,主要有以下几个问题:
① 本次设计在进行NS-2的二次开发时,只是基于对现有协议的修改,缺乏自主开发C++类的能力。
② 在设计过程中,只实现了TCP/UDP数据传输和静态/动态路由的数据转发等一些基本的网络过程的演示,下一步还需要在开发平台上实现其它网络过程的演示。
③ 在本次设计中,主要是运用了NS-2的nam工具,接下来还需要运用NS-2的其它工具进行网络性能的分析。
 

Tags:网络



相关评论
广告联系QQ:45157718 点击这里给我发消息 电话:13516821613 杭州余杭东港路118号雷恩国际科技创新园  网站技术支持:黄菊华互联网工作室 浙ICP备06056032号