资源描述:
《 ns仿真技术在计算机网络实验教学中的应用与研究》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、NS2仿真技术在计算机网络实验教学中的应用与研究NS2仿真技术在计算机网络实验教学中的应用与研究NS2仿真技术在计算机网络实验教学中的应用与研究NS2仿真技术在计算机网络实验教学中的应用与研究NS2仿真技术在计算机网络实验教学中的应用与研究NS2仿真技术在计算机网络实验教学中的应用与研究NS2仿真技术在计算机网络实验教学中的应用与研究NS2仿真技术在计算机网络实验教学中的应用与研究NS2仿真技术在计算机网络实验教学中的应用与研究彀///怠/NS2仿真技术在计算机网络实验教学中的应用与研究长时间以来,很多学生反映计算机网络的教学很枯燥,其实,很多计算机网络任课教师也反映这个问题,这丰要是
2、因为计算机网络原理涉及到很多协议和算法,这些内容在传统的实验环境下很难模拟或成本太高.因此,很多高校的计算机网络教学仅仅是让学生练习组建局域网,网络命令,服务器或其他网络互连设备的配置,更有甚者,只是简地通过IE访问Internet,而很少深入到网络的内核,这直接影响到计算机网络的教学效果.为此,我们构建了一个计算机网络仿真平台,不仅可以演示底层协议的工作原理,通过自己修改协议参数来改进协议并进行验证,还可以模拟网络拓扑和一些网络设备的工作方式.仿真技术的引入,不仅节约了实验成本,极大地提高了学生的积极性,更提高了实验教学的水平和质量,仿真环境和真实环境结合,达到r很好的效果.经过两年
3、的应用,我校计算机刚络的教学效果有了明显改善.目前,知名的仿真软件主要有Seawind,OPNET,MATLAB,NS2和GloMoSim.我们采用了免费且开放源代码的网络仿真软件NS2.NS2仿真软件工作机制NS2由编译和解释两个层次组成.编译层包括C++类库,而解释层包括对应的Otcl类,用户以Otcl解释器作为前台使用NS.其体系结构如图l所示.什凋嫂器NS.2Tclc1网络0tcl乡丌什Tcl图1NS2体系结构图NS2仿真有两个层次:一个基于Otcl编程,通过Tcl脚本程序设计,利用现有的NS无素实现仿真,不用修改NS本身;另一个层次基山东工商学院董付国原达/文于C++(在图2
4、中用虚线表示)和Otcl的编程,利用Otcl和NS的接口,编写C++程序,然后重新编译NS来增加新的功能,从而实现仿真的目的,如图2所示.对于本科生的实验教学来说,只需要用到第一种仿真方法,对于部分水平较高的学生,可以涉及到第二个层次.使用NS2进行网络仿真的一般过程(如图2所示)为:(1)分析要解决的问题,建立模型;(2)编写Tcl脚本,模拟问题的处理过程,或修改C++代码并重新编译NS;(3)运行Tcl脚本,得到仿真结果数据;(4)对结果数据进行分析,并以动画或静态图像来演示仿真结果.Ns2仿真软件在计算机网络实验教学中的应用(1)实例NS可以演示计算机网络中大多计算机教育2005
5、.10l51教//,怠,数协议,适有协议I卜在完善之中.我们这仪以TCP和UDP数据流的传输求H月Ns教学中的应用.假设有4个节点,节点2为中间节点,其他端点.节点0和节点3之间建TCP迮接并传输FTP数据流,节点l和节点3之间以UI)I,方式传输CI3I数据流.节点0和节点2以及节点l和节点2之间的带宽均为2M,时延均为l0ms,节点2干u节点3之间带宽为1.7M,时延为20ms,节点2的队列大小为l0,数据包大小为1000b,发送速度为lMbpS.仿真坏境为RedHatLinux9.HNS2.27.(2)结果数据分析Ns2仿真叮以产生两种结果数据,分别输出到lqa[1]文件和tr文
6、件中,前者用米供13ai2l:[具显示动态效果,n以观察数据传输的过程;图3队列未满52f计算机教育2005.10●—.一一一一..—-J图2使用NS进行网络模拟的一般过程图4因队列满而丢弃数据后者供静态分析或用XgiaPh以图表形式观察仿真结果,可以通过数据的分析得到更详细,更准确的信息.图3,4是仿真过程中随机两个时刻的截图,图中节点2上方的小办块表示队列中的数据,而大方块表小因为队列满而丢弃的数据.卜面是今例中NS2产生的tr文件中的部分数据:1.336l8802tcpl040l0.03.029l98r1.33786802tcpl040l0.03.026l93l1.3378682
7、3tcp1040l0.03.026l93d1.33786823topl040…10.03()76193r1.338】21.03.1l53l97}1.33823cbrl00021.0j.11jl97d1.33823cbrl000——21.03.1l53l97在这些数据中,第l列表示事件,主要有r(接受),+(人队列),(出队列),d(丢弃包);第2列表示事件发生的时间(以秒为单位);第3列和第4列表示事件发生的节点号;第5列表示包的类型;第6列表