计算机网络课程教学中网络仿真辅助教学方法的探讨
计算机网络课程教学中网络仿真辅助教学方法的探
摘要:针对计算机网络课程内容枯燥乏味,抽象难懂,实验受限等特点,文章探讨使用
NS-2 网络仿真工具进行辅助教学的方法,根据教学过程中的不同阶段,面向不同能力、
不同兴趣的学生实施阶梯式教学,从而提高学生的学习兴趣、加深他们对课程内容的理解
,增强他们的创新能力。
关键词:计算机网络;网络仿真;NS-2
随着计算机和网络技术的飞速发展,网络应用已经成为计算机应用中的一个重要领域
。为了培养计算机网络应用人才,各大高校都开设了计算机网络课程,针对不同层次的学
生,介绍计算机网络体系结构和计算机网络各个层次的协议及其工作原理,以及一些专题
内容,如网络安全,计算机网络的最新进展等。然而,由于计算机网络课程的理论性、抽
象性、实践性和应用性都比较强,在传统的教学模式中,课堂教学仍以教师讲授理论为主
,在实验环节只安排少量的简单的配置和验证性实验,因此大多数学生感觉该课程比较抽
象空洞,难以理解和掌握,很难在日后工作中学以致用[1]。本文结合多年网络研究的经验
,探讨了如何在计算机网络课程教学的各个环节中使用加州大学伯克利分校开发的网络仿
真器 NS-2(Network Simulator,Version 2),构建虚拟的仿真教学环境进行辅助教学,从而
增进学生对网络体系和网络协议的理解、提高他们的实践能力、设计能力和研究能力。
1NS-2 仿真器的特点和功能
计算机网络是一个大型复杂系统,如果采用建立实验床的方法对其进行演示、分析和
研究的成本比较高,主要表现在网络规模难以做大,灵活性受限,较难进行重新组网以及
实验资源的共享,网络中多种通信流量以及多种拓扑的融合很难实现。另外,在教学过程
中,实验的准备工作比较复杂,时间花费比较多。目前,在网络通信技术研究过程中,通
常采用网络仿
真的手段来进行新协议的设计与验证。NS-2 是一个面向对象的基于离散事件驱动的
开源网络仿真工具,功能强大、配置方便、扩展性好,既可以利用已有的模块对各类网络
拓扑、网络协议以及网络性能进行模拟分析,也可以利用它所提供的用户接口,将自己开
发的模块集成进去,从而实现对已有协议的改进与新协议的开发测试,因而它成为了目前
通信网络领域最流行的网络仿真工具之一[2]。
NS-2 具备丰富的网络协议组件和强大的功能模块,可以模拟大部分的网络场景,能
够仿真有线网和无线网(包括卫星网、AD hoc 网络)、局域网和广域网,可以模拟各个层次
的协议。它的主要功能如下:
1) 网络场景的快速生成。可以利用各种开源工具(如 nsBench、NSG、setdest、
cbrgen)自动产生仿真脚本,实现不同类型及规模的网络场景的快速生成。
2) 网络节点和链路的配置。可以手动编写仿真脚本文件配置各种类型的网络。比如对
各节点的能量、节点上的协议代理、业务源流量产生器和接收器的设置;对各链路上的带
宽、延迟的设置,对队列管理机制的选择和设置,如:Droptail,RED,CBQ,以及各种公
平队列(FQ、SFQ、DRR)等。
3) 网络协议的选择与配置。NS-2 中通过代理实现了链路层、网络层、传输层等不同
网络协议,如链路层的 、 协议;网络层的路由协议,其中包括分层路由、广
播路由、多播路由、静态路由、动态路由等协议;传输层的 TCP 和 UDP 协议等。
4) 各种类型网络应用的模拟。可以通过控制分组的大小和发送速率来模拟真实网络中
的应用,如链路层的 、 协议,FTP、Telnet 等。
5) 仿真过程的动态显示。使用 NS-2 提供的动画演示程序 NAM,可以动态地演示各种
网络及协议的行为过程。
6) 可以根据仿真结果进行协议的性能分析。在仿真程序运行过程中,每个分组的到达
、离开链路或队列,甚至分组被丢弃等信息,都会被详细论文联盟 地记
录在 Trace 文件中,可以利用 gawk 提取、分析数据,数据的分析结果可以使用 NS-2 提供
的 Xgraph 软件、或者交互式画图软件 gnuplot 等形象地展现出来。
2 使用 NS-2 辅助完成阶梯式教学
虽然 NS-2 所提供的强大功能可以满足计算机网络课程的教学需求,但是在教学应用
的过程中还存在一些问题。首先,由于 NS-2 是开源软件,版本不断更新,导致它的安装
过程比较复杂,有时不容易安装成功,这很容易引发学生的畏难情绪。其次,NS-2 提供
了庞大的源代码,包含庞大复杂的网络体系,学生很难在短时间内理解透彻。第三,NS-2
采用 C++语言和 OTcl 语言(MIT 开发的面向对象的 Tcl 脚本语言)共同编写,仿真过程的设
计虽然只需用 OTcl 语言编写脚本,但学生也很难熟练掌握。鉴于以上问题,我们针对学
生学习的不同阶段和不同的学习能力,设计了阶梯式的 NS-2 辅助教学方法,在教学的过
程中,因材施教,层层递进[3]。在课堂教学中,利用仿真运行过程的动画演示,帮助学生
掌握知识难点,提高学生的学习兴趣。在实验教学中,事先设计好仿真脚本程序,并在实
验指导手册中详细给出实验步骤,尽量减少学生编写代码的负担,降低他们的畏难情绪,
从而使他们能够将精力集中在仿真结果的分析和网络课程的学习上来。在课程设计与毕业
设计阶段,可以对学习能力强、对网络研究比较感兴趣的同学布置协议分析与设计类型的
题目,为进一步从事网络方向的学习、研究与工作打好基础。
课堂教学
计算机网络课程中概念很多,网络体系机构与各层的协议的工作原理是学生普遍反映
不容易掌握的难点。对于这些原理性问题,有时即使通过丰富的多媒体课件演示,学生依
然觉得空洞,只知其然不知其所以然。比如在讲授以太网的载波监听多路访问/碰撞检测
(CSMA/CD: Carrier Sense Multiple Access with Collision Detection)技术时,虽然通过讲
解和多媒体演示,学生能够理解冲突检测和退避策略,但是这种技术的采用究竟对整个局
域网的性能(如:数据延迟、吞吐量)有何影响,他们很难有体会。此时,如果能够使用 NS
做一下实际网络的模拟,既形象生动,又可以进一步加深学生对知识的理解,提高他们的
分析能力。图 1 展示了以太网上的资源共享和竞争机制。演示完后,教师还可以通过分析
仿真过程生成的 Trace 文件使学生进一步理解数据发送时的信道监听与等待,如图 2 所示
,当数据包当前状态被标记成“h”时,表示该节点在等待信道空闲以便发送数据,当多个数
据源同时发送数据时,可能会造成数据丢包现象,此时需要采用避让策略,可以利用
Trace 文件中记录的信息对某一时期网络吞吐量进行计算,当数据源增多时,网络的吞吐
量并非线性增长,这就说明了信道竞争会对以太网的吞吐量造成一定的影响。
再比如,NS 中提供了的各种改进的 TCP 版本的协议,囊括了 TCP 的慢启动、拥塞避
免以及快速重传和快速恢复机制。在课堂上,可以通过 NAM 观看数据报文和 ACK 报文的
发送过程,如图 3 所示,学生可以观察动画窗口,同时也可以通过监视窗口了解当前数据
报文和 ACK 报文的序号,窗口的大小以及队列的长度等信息。教师还可以分析仿真结果
,以图表的方式对不同版本的协议进行比较,加强学生对协议工作原理的理解。如图 4 所
示,当 TCP 采用慢启动机制时,滑动窗口的大小是指数增加的,而如果没有采用慢启动机
制,窗口则是固定大小,这样很快就会发生拥塞,使滑动窗口大小重置,数据包被丢弃。
实验教学
实验教学是课堂教学的有力补充,计算机网络课程的实验内容可以分为以下几类,网
络设备和网络操作的基本认知,网线制作、局域网的组建,网络操作系统的配置,路由协
议的配置以及网络应用系统的设计等[4],这些实验都受实验室条件的限制,因此在实验安
排上可以适当设计一些仿真实验,既可以解决实验室资源等问题,也使学生对课堂教学中
的理论知识有更真切的感受。
实验教学可以从以下几个方面展开:实验的准备,实验内容安排,实验过程,实验结
果分析与实验报告。考虑到 NS 的复杂性以及学生个体的差异,教师需要对每个实验进行
充分的准备,将本次实验所涉及到的 NS 模块、相关协议的参数以及实验内容和操作步骤
都写入实验指导书,根据学生的情况,还可以指导他们在自己的机器中安装 NS,这样便
可以进行课外实验。在实验内容的安排上,可以指导学生通过 NS 搭建网络仿真平台,直
观地了解各协议的行为,掌握它们的工作原理,还可以指导学生修改协议参数了解各种因
素对网络带来的影响。比如,在讲完网络互连这一章时,可以安排学生在 NS 环境中搭建
一个网络,详细了解各种路由协议的工作原理,还可以指导学生对不同路由协议的各项性
能指标进行对比。再比如:设计一个网络,请同学对比一下 FTP 流和 CBR 流的传输特性
,深入理解面向连接的应用和无连接应用的区别。另外,也可以把课堂演示的实验请同学
重做一遍。在实验课上,可以进行分组实验,任命接受能力强的同学为组长,参考实验指
导书的内容,带领本组同学顺利完成实验。对有条件的同学,还可以组织他们进行课外实
验。每次实验结束后,要求学生分组进行实验结果的分析和讨论,并完成实验报告。
总之,NS 仿真实验作为其他类型实验的补充,可以巩固学生对课堂知识原理的理解
,激发他们探索网络世界的兴趣。
课程设计
计算机网络课程的课程设计内容大都侧重于计算机网络的工程应用,通常安排学生进
行某校园网或企业网的网络规划,然而,对学生完成的网络规划,很难做出客观全面的评
价。我们认为,对于一些基础比较好,热衷于网络研究的同学,可以建议他们利用 NS 来
规划网络。
课程设计的时间一般安排为 1~2 周,分为以下几个阶段进行:选题、方案设计、方
案实施、总结与答辩。课程设计题目可以分为两大类,一类题目由教师设计好网络环境,
请同学们修改参数,并学会分析仿真结果,做出网络或协议特性或性能的总结,另一类可
以请同学们自己设计网络环境,并在此环境之上做些探索性的实验,比如,要求学生设计
一个规模比较大的广域网,采用分层路由,并为不同的网络域设置不同的路由算法,考察
一下网络中各协议的行为与性能。学生可根据自己的能力与兴趣选取合适的题目。在方案
设计阶段,要求学生绘制好网络拓扑图,设计好实验网络场景,配置好合理的实验参数,
并提出预想的实验结果。教师须对学生的设计方案进行审核,提出修改建议。在实施阶段
,学生需要充分运用随机过程和统计学原理,每类实验都需要进行多次,以保证实验结果
的可信度。在实验数据的统计结果上,要求同学以图表的形式进行对比分析,并参加课程
设计的答辩。
课程设计环节在实验教学的基础上进一步强化了学生的分析问题、解决问题以及动手
实践的能力。
毕业设计
到了毕业设计阶段,可以设计一些研究性的题目,引导准备从事计算机网络研究的同
学参加教师的科研项目,拓展他们的网络视野,提高他们的操作能力和创新能力。毕业设
计的时间通常有 2~3 月,可以分为以下几个部分进行:选题、文献阅读、NS 网络环境的
搭建、协议的设计、协议的分析与比较,论文撰写与答辩。在毕业设计论文的选题阶段,
教师一定要根据学生的实际能力与兴趣点来推荐题目,可以请学生就 NS 的某一模块深入
了解,或者对某个不熟悉的网络深入了解研究,协同老师完成协议或算法的改进。题目定
好后,教师要向学生下达明确详细的任务书,并帮助学生制定好进度表。然后,通过文献
阅读使学生熟悉网络特点或协议以及相应的 NS 模块,并完成 NS 平台的搭建,熟练掌握
NS2 的组网方法。接下来,指导学生进行新协议的设计或仿真场景的设计,并通过统计方
法对仿真结果进行性能分析,完成
毕业论文的撰写和答辩任务。
通过毕业设计,不仅训练了学生掌握了大型应用程序的架构,培养了团队合作的开发
精神,同时也提高了他们研究能力以及面向对象编程的能力。我们曾经指导毕业生完成“
无线传感器网络中以数据为中心的路由算法”以及“ad hoc 网络中路由协议的分析与比较”等
论文,都取得了良好的成绩,这也证实,部分毕业班学生确实有能力完成一些研究性的工
作。
3 结语
如何快捷真实的重现网络场景,形象生动的展示网络行为,使课堂教学活跃、实验任
务多样,课程设计、毕业设计能调动学生的积极性,发挥学生的创造性,是计算机网络课
程教学中值得大家探讨的问题。NS-2 网络仿真器以其开放的接口、强大的功能深受网络
科研人员的喜爱,同时,它也提供了很多的教学案例以及教学演示工具,因此也可以作为
一个辅助工具,与其他教学方法相结合,很方便得应用于计算机网络课程不同阶段的教学
中,解决传统教学模式下产生的以上问题。使用 NS 辅助教学虽然优化了教学过程、提高
了学习效率,但是也给教师提出了新的挑战,要求教师不仅要熟悉 NS 的开发体系,同时
要根据教学内容选择制定合适的教学案例,只要教师要能够扬长避短、循序渐进、因材施
教,就能使 NS 在教学中发挥最大的作用。
注:南京师范大学计算机软件技术基础教学团队资助项目。
参考文献:
[1] 弋改珍. 网络仿真在网络课程教学中的应用与实践[J]. 湖州师范学院学报
,2008,30(2):120-123.
[2] UCB/LBNL/VINT. Network Simulator ns-2[EB/OL]. [2010-01-14].
[3] 李敏,王建新,王伟平.“计算机网络”课程的阶梯化教学研究[J]. 计算机教育
,2009(22):100-102.
[4] 姜宏岸,赵启升,伍俊明. 计算机网络类课程实验教学研究[J]. 计算机教育
,2009(21):128-130.
Exploration of Teaching Methods Aided by Network Simulation in the Teaching of
Computer Network Course
GAO Qian1,2
(1. School of Computer Science and Technology, Nanjing Normal University, Nanjing
210046, China; 2. Jiangsu Research Center of Information Security & Confidential
Engineering, Nanjing 210046, China)
Abstract: According to the characteristics of Computer Network such as
uninteresting, abstract, complicated contents and limited experiment conditions, this
paper explores the teaching methods aided by NS-2 network simulation tools. In different
stages of the teaching process, different teaching methods and task are applied to
different levels of students, which is called level teaching method and this method can
excite student’s study enthusiasm, deepen thEir comprehension of course contents and
improve their innovation ability.
Key words: Computer Network; network simulation; NS-2