NS2网络仿真软件应用于教学中的研究

2013-04-29 01:38:34石太彬童孟军
计算机时代 2013年7期
关键词:网络协议辅助教学

石太彬 童孟军

摘 要: 网络技术的迅速发展,使计算机网络教学模式必须不断改进以满足实际需求。为此,在计算机网络课堂中引入了网络仿真软件NS2以辅助教学。NS2是一款优秀的开源软件,能够仿真计算机网络的众多协议,以及最新的网络技术。将NS2融入教学的同时,开发了相应的软件来管理NAM文件。这种教学模式可以使学生轻松地理解网络协议及其原理。

关键词: NS2; 网络仿真; 辅助教学; 网络协议; NAM文件管理软件

中图分类号:G642.0 文献标志码:A 文章编号:1006-8228(2013)07-62-04

0 引言

随着网络技术的飞速发展,传统的计算机网络教学受到较大的冲击,在教学中引入网络模拟显出了十分的必要性与重要性。计算机网络教学一般可分为理论教学和实验教学两个部分,传统的教学模式存在很突出的问题。首先,计算机网络课程从设计到许多复杂的概念和原理,教学中通常使用幻灯片来教学,无法简单灵活地来展示动态过程。学生在学习中感到枯燥乏味,难以理解,导致渐渐失去兴趣。其次,实验器材比较昂贵,实验室内配备的实验器材数量有限,很难达到较高标准的实验环境,并且实验的时间也是有限的,学生无法充分地理解并且掌握通信技术以及网络工程应用能力,久而久之更加感到无趣。

解决这一难题的有效方法是,在教学中引入网络模拟技术,使用NAM工具,可以清晰地向学生展示网络协议的动态运行过程,提高学生的学习效率,改善教学效果。

1 NS2仿真软件简介

NS2是一款开放源代码的网络模拟原件,由美国加州大学伯克利分校(UC Berkeley)的MASH研究组开发。NS2能够仿真多种网络上的众多协议,这些协议涉及到网络的各个层次[1]。

NS2的本质是一个面向对象的离散事件模拟器[2],所有的仿真都是由离散事件驱动的。NS2采用C++和OTcl两种开发语言进行开发,底层仿真引擎主要用C++编写,OTcl作为仿真时的命令和配置语言。C++是强制类型的程序设计语言,程序模块运行速度非常快,易实现精确复杂的算法。Otcl是无强制类型的脚本程序编写语言,具有简单、容易实现和修改的特性,可以在不必重新编译的情况下修改仿真参数和仿真过程,两种语言的结合使NS2的仿真效率特别高。

NS2为基于Unix平台的开源免费软件,可以在其官方网站下载。同时也可以在Windows下使用,鉴于多媒体教室以及实验室条件,可以采用Windows+Cygwin+NS2的安装方式。

2 NS2模拟仿真实验管理器

为了方便管理编写后的NAM文件,开发了NS2模拟仿真实验管理器(图1)。该软件以nam-1.0a11a-win32.exe[3]作为插件,以支持对NAM文件的播放。该软件具有添加、删除NAM文件的功能,另外还可以查询常用的脚本代码。它使用简单、方便,是管理NAM与编写脚本的得力助手。

3 NS2应用于教学的优势

⑴ NS2丰富的组件模块。NS2提供了丰富的网络组件,如各种节点、链路延迟、队列管理以及从数据链路层到应用层中的多种协议[4]。课堂使用的仿真过程比较简单,无需对NS进行扩展,因此只需要稍作修改或者编写一个OTcl脚本,就可以达到课堂教学的需求。

⑵ NAM生动形象的动画。有些课程内容比较难以讲述和理解,但是通过动画方式便简单多了。比如在学习路由协议时,通过NAM动画和Xgraph,帮助学生理解路由的变化情况。NAM可以将网络拓扑结构和仿真脚本的运行过程以动画的形式生动形象地显示出来,Xgraph则通过平面坐标图的形式显示运行时获取的数据。

⑶ 缓解高校建设网络实验室的压力。使用NS2,学生完全可以在单机环境中模拟整个网络的各个元素,学校可基于原有的网络实验设备,只需投入较少的资金就能为大量学生提供实用的网络设計与操作环境,既节约了实验成本,又能得到较好的实验教学效果。

⑷ 学生的知识体系在深度和广度上得到拓展。学生能灵活地掌握自己的实验时间,不受传统真实实验室关闭和开放时间的限制,重点攻克自己的难点;按照自己的进度,自主地选择自己所需要的实验内容。同时,有利于加强对学生自学能力的培养。从而可以开拓学生视野,激发学生实验的兴趣,有助于学生创新思维能力和动手能力的培养。

4 NS2在教学中的应用

NS2的体系结构复杂,对于初学者来说具有很大的困难[1],为了将NS2应用到计算机网络课程的教学中,需要设计合理的教学方案。首先,在授课前,教师编写或者修改NS2仿真的源代码,然后在授课时演示仿真实例,做到深入浅出。为了使得知识更加形象直观地展示给学生,对于仿真中的参数,需要精心设计。其次,在实验教学中,教师向学生提供NS2的仿真实验脚本,学生通过运行实验脚本,加深对于理论知识的理解,并且建议学生修改脚本中的仿真参数,观察和思考不同环境下的实验结果,最终将知识消化和吸收。对于编程能力较好的同学,教师可以设计一些题目,让学生独立编写仿真脚本代码,这样不仅能加深学生对知识的理解和NS2的掌握,同时培养学生的动手操作能力以及独立思考的能力。

以下给出的是计算机网络中TCP与UDP、静态路由与动态路由、CSMA/CD协议的仿真实例。

4.1 TCP与UDP仿真模拟。

TCP包含了复杂的机制,是计算机网络教学的一个难点[5]。为了便于理解,设计了TCP与UDP的对比实验。在进行TCP与UDP模拟实验时,首先建立一个网络拓扑结构图,如图2所示。

该网络环境包含了两个传输节点0和1,路由器2和数据接收端3。节点0到节点2之间与节点1到节点2之间的网络带宽都为2Mbps,传递延迟时间为10ms。网络结构中带宽瓶颈都是在节点2和节点3之间,瓶颈为1.7Mpbs,传递延迟时间为20ms。而且所有的队列模式都是DropTail,在节点2和节点3之间的最大队列长度是10个包。在节点0和节点3之间会有一条FTP联机,FTP使用的传输层协议是TCP。节点0上使用TCP代理,而节点1上使用UDP代理。目的节点3使用TCPsink代理来接收TCP数据,并返回ACK数据包。

在本仿真实例中,0.1秒时,节点1开始向节点3发送CBR数据流(速率恒定数据流),图3为NAM动画的截图,图中连线为链路,线上方的流动的图形为数据包,在NAM动画中可以控制动画的播放速度,可以清晰的看到CBR数据流的恒定发送情况。

UDP为面向无连接的,因此,节点3没有向节点1返回确认包。1.0秒时,节点0开始向节点3发送FTP数据包,图4为NAM动画的截图,TCP为面向连接的可靠传输协议,图中连线下方的竖线便是节点3返回节点0的确认包。初始拥塞窗口大小设置为1,随着时间的推进,节点0收到节点3返回的确认包,在TCP协议的控制下,发送窗口的大小成倍增加,当拥塞窗口增加到一定程度时,节点2出现丢包现象(图4中节点2下方的方块即为丢弃的数据包),节点3返回的确认包少于节点0发送的数据包,节点0将重传丢失的数据包,并且减小发送窗口的大小。在NAM动画中,可以观察到节点2丢失的数据包中也包含CBR的数据包,由于UDP是面向无连接的,节点1并不知道丢失了数据包,依然继续发送CBR数据流。在本仿真实例中,学生可以直观地观察到TCP的拥塞控制、TCP慢启动以及TCP与UDP鲜明的对比,轻松而愉快地掌握了原本枯燥乏味的协议理论知识。

4.2 静态路由与动态路由仿真模拟

路由协议是学生学习中的重点,其概念抽象,同时也是一个难点[6]。NS2提供了对Dijkstra、静态路由、动态路由、组播路由等多中路由协议的支持,因此设计了动态路由与静态路由的对比仿真实验。

4.2.1 静态路由仿真模拟

模拟静态路由。图5与图6为静态路由的NAM截图,网络拓扑如图5所示。在图5中,1.0s以前数据正确传送,通过链路(n0,n1,n3,n4)进行传送。如图6所示,当到1.0s时链路(n1,n3)发生问题,由于是静态路由,其没有重新选择链路的功能,数据传送进入瘫痪状态,节点3附近的数据包,为链路断开后,节点1丢弃的数据包。通过NAM动画可以看到,每经过一段时间节点0会进行尝试性传送,直到断开的链路重新恢复正常,数据包又在原来的链路上进行传送,数据发送情况与图5相同。

4.2.2 动态路由仿真模拟

模拟动态路由。图7与图8为动态路由的NAM截图,网络拓扑如图7所示。通过观察NAM动画看以看到,动态路由协议在连接开始之时,各个节点之间相互交换路由信息。当确定最短路径之后,便开始通过这条路径向目的网络发送数据,如图7所示,链路为:n0,n1,n3,n4。链路(n1,n3)发生问题后数据发送如图8所示。这时根据动态路由算法,更新各自的路由表,重新选择代价最小的路径到达目的网络,链路为:n0,n1,n2,n4。节点3附近的数据包为链路出现故障时节点1丢弃的数据包。当链路恢复时,再次更新路由信息,使用代价最小的路径发送数据,重新变为链路n0,n1,n3,n4,此时因为所有链路都没有问题,不会有数据包的丢失,数据发送情况与图7相同。

通过静态路由与动态路由协议仿真实验的观察以及对比,学生可以轻松地理解静态路由和动态路由建立的过程,以及它们各自应对链路故障的方法。原本抽象的路由协议的每一个过程都通过NAM直观的展现出来,学生因此也很容易记忆与掌握。

4.3 CSMA/CD仿真模拟

CSMA/CD是工作在数据链路层的协议,原理简单并且易于实现,但是不少同学对于如何实现侦听不能很好的理解。于是我们设计了本仿真实验。图9为NAM动画的截图,创建一个总线型的局域网,并且在MAC層使用了CSMA/CD协议。在本实验构建的这个总线型局域网中,包含了12个节点,将局域网的带宽设置为10Mb,时延设置为10ms,队列类型设置为DropTail。节点9向节点10发送数据,在进行播放NAM动画时,控制播放速度,可以很好地观察到整个传输过程,很容易理解侦听的实现、LAN的资源共享与竞争机制。利用本仿真实验,我们可以更好地理解CSMA/CD协议。

5 结束语

在教学实践中,将NS2引入教学,使理论知识的学习不再枯燥乏味,学生可以更加轻松、深入地学习,学习兴趣也得到提高。NS2中的NAM动画工具不同于传统的幻灯片和视频等其他演示工具,它具有很高的灵活性,直观性,准确性,在理论知识的教学中可以化抽象为具体,把抽象的网络协议运行过程直观地呈现给学生,激发学生的学习兴趣,提升教学效果。对于学有余力的学生,可以让他们深入学习NS2,独立编写代码,构思并且设计实验,提高创新思维能力[7]。任课教师应当建立一个数据库,或者教学平台,用于存放了常用的仿真脚本、测试题以及NS2资料,让学生能自行下载,进行自主学习喝相互讨论。因此,下一步的目标就是建立这种教学平台。

参考文献:

[1] 方路平,刘世华,陈盼等.NS-2网络模拟基础与应用[M].国防工业出版社,2008.

[2] 李大勇.NS2仿真软件在无线网络教学中的应用[J].微计算机信息,2010.19:181-183

[3] http://www.isi.edu/nsnam/nam/[EB/0L].

[4] 刘俊,徐昌彪,隆克平.基于NS的网络仿真探讨[J].计算机应用研究,2002.9:56-59

[5] 谢希仁.计算机网络(第五版)[M].电子工业出版社,2008.

[6] 王相林.计算机网络——原理、技术与应用[M].机械工业出版社,2010.

[7] 留岚兰.实验课程设置与创新型人才培养[J].实验技术与管理,2007.1:132-134

猜你喜欢
网络协议辅助教学
计算机网络理论下的传播研究结构模型:Communication一词的两种翻译
一种蓝牙多跳网络协议的设计与研究
电子制作(2018年17期)2018-09-28 01:56:52
基于载波技术的多点温度测量系统设计
基于DPI技术的语音视频流量监控系统设计与实现
《计算机组成原理》综合教学辅助平台的设计与实现
作为辅助教学的微课程的设计原则初探
计算机辅助教学过程中应注意的几个问题
如何运用多媒体平台辅助小学数学教学
考试周刊(2016年86期)2016-11-11 08:19:10
论初中物理实验课堂的创建
南北桥(2016年10期)2016-11-10 16:46:44
关于天基传输网络体系结构的讨论