APP下载

NS2在计算机网络原理课程学习中的应用

2010-05-28金怡孙志

中国教育技术装备 2010年33期
关键词:路由表路由动画

金怡 孙志

海军航空工程学院青岛分院 山东 青岛 266041

随着网络技术的日益普及,计算机网络课程正逐渐成为高校计算机相关专业的一门专业基础课,甚至一些非计算机专业也开设了网络课程的选修课。然而计算机网络课程的基本概念和原理涉及许多抽象的理论知识和大量的网络协议,使许多初学者感到抽象难懂。在教学过程中,利用普通的演示型课件很难直观、灵活、准确地表现网络协议的工作过程。另一方面,网络实验中所涉及的硬件设备较为昂贵,很多院校受资金和网络环境限制,难以在实验室内构建满足使用要求的实验平台,导致该课程基础理论与实验相脱节,学生普遍反映该课程枯燥,理解困难,学习兴趣不高。解决此类问题的一个有效途径是在课程的教学和实验环节引入软件模拟和仿真技术,不仅可以给从事网络课程教学的教师提供有力的教学辅助工具,而且有助于增强学生对所学知识的感性认识,提高学习兴趣和效率。

1 NS2简介

NS是Network Simulator的英文缩写,即网络模拟器,又称为网络仿真器,目前最新版本是2.34。最初为了研究大规模网络的网络协议交互行为,由UC Berkeley而开发,它为有线和无线网络上的TCP、路由和多播等协议的仿真提供了强有力的支持。NS2是一个开源软件,任何人可以获得、使用和修改其源代码,是目前网络研究领域应用最广泛的网络仿真软件之一。

NS2本质上是一个面向对象的离散事件模拟器,所有的仿真都是由离散事件驱动的。NS2使用分裂对象模型的开发机制,采用C++和OTcl两种开发语言进行开发。它们之间采用TclCL进行自动连接和映射。仿真用户只要通过简单易用的Tcl/OTcl脚本编写出仿真代码,即可对仿真拓扑、节点、链路等各种部件和参数进行方便快速的配置。通过制定仿真场景和仿真进程,交换特定的分组来模拟真实网络情况,并将执行情况记录到日志文件中,以提供给仿真用户进行分析解读,获取仿真结果。

使用NS2进行网络仿真,仿真之前,首先应分析仿真过程涉及哪个层次。NS2仿真分2个层次,一个是基于OTcl编程的层次,利用NS已有的网络元素即可实现仿真过程,无需对NS2本身进行任何修改,只要编写一个OTcl脚本即可;另一个是基于C++和OTcl编程的层次,如果NS2中没有所需的网络元素,就需要首先对NS2进行扩展,添加所需要的网络元素。这就需要利用前面所提到的分裂对象模型,添加新的C++和OTcl类,然后再编写OTcl脚本。整个仿真过程如图1所示。

图1 利用NS进行网络模拟的过程

2 NS2在教学过程中的仿真应用

NS2中提供了丰富的网络构件,在计算机网络课程中所涉及的各种网络组件(如常见的各种节点、链路以及从数据链路层到应用层中的各种协议)在NS2中基本都可以找到,只需稍加修改即可满足该课程教学中的需求。所以仿真过程比较简单,无需对NS进行扩展,通常只需利用已有的构件编写一个OTcl脚本即可。在实际教学过程中,NS2通常可以有如下几种应用方式。

1)有些课程内容比较难以讲述和理解,但是却比较便于通过动画等方式表示。这种情况下,需要认真分析教学过程中的困难所在,研究如何利用NS2能够较为直观地表现这一问题,以便于学习理解。例如在学习路由协议时,可通过NAM动画,让学生观察当网络拓扑发生变化时路由的变化情况。

2)综合使用NS2提供的awk语言、gnuplot或Xgraph等工具对仿真过程产生的数据进行分析,将结果以图表的形式向学生进行展示,使学生对问题能有一个直观或者量化的认识。比如随着网络通信量的增加,可以方便地通过这一方式来分析网络拥塞、丢包率、网络吞吐量的变化情况,并将这些指标通过图表进行对比分析。

3)对于有能力、有兴趣的学生,可以引导进行NS2的学习和使用,以便能够在学习的过程中自己动手对某些问题进行仿真分析。

3 仿真实例

本部分将通过一个实例来详述NS2在实际教学过程中的应用。该实例将仿真动态路由协议RIP(Routing Information Protocols)的工作过程,当网络拓扑发生变化时,所选路由的动态变化情况,并将这一仿真过程生成NAM动画,以便能够在课堂上进行演示。

3.1 仿真环境

NS2目前只有Unix和Linux版本,而多媒体教室中的计算机主要采用Windows操作系统。为了便于在课堂上对学生进行演示,通常可在Windows+Cygwin的环境下安装NS2。Cygwin是一个著名的Windows环境下的Linux操作环境,在Windows操作系统中安装好Cygwin后,即可以在该环境中安装NS2。

3.2 RIP路由协议

RIP是目前使用较为广泛的一种距离向量协议,RIP的度量基于跳数(hops count),每经过一台路由器,路径的跳数加1。跳数越多,路径就越长,RIP算法会优先选择跳数最少的路径,而不考虑该链路的其他方面的因素,如带宽、延时或费用等。RIP支持的最大跳数是15,跳数为16的网络被认为不可达。该仿真过程就是为了在课堂上演示RIP协议在网络拓扑发生变化时选择最短路径的过程。

在NS2中没有直接提供RIP路由协议,但是RIP路由协议是基于距离向量的,所以在进行实验时,可使用NS2中已实现的距离向量路由协议(DV)来模拟其工作过程。

3.3 网络拓扑及仿真事件设计

在该仿真实例中定义一个由9个结点组成的网络,通信业务的源节点为n3,目的节点为n8。从0.5秒开始,由n3向n8发送恒定比特流(CBR),所选的最短路由是n3-n2-n0-n4-n8;从1.0秒开始,n2到n0的通路中断,经过路由表的更新,n3将以新的路由n3-n2-n1-n0-n4-n8向n8发送恒定比特流;从1.5秒开始,n4到n8的通路中断,n3将以新的路由n3-n2-n1-n0-n4-n7-n8向n8发送恒定比特流;从2.0秒开始,n4到n7的通路中断,n3将以新的路由n3-n2-n1-n0-n4-n5-n7-n8向n8发送恒定比特流;从2.5秒开始,n4到n5的通路中断,经过路由表的更新,n3无法与n8建立新路由;从3.0秒开始,n4-n5,n4-n7和n4-n8三条通路同时恢复,路由表更新后,n3将沿n3-n2-n1-n0-n4-n8与n8连通;从3.5秒开始,n2-n0通路恢复,路由表更新后,n3将沿n3-n2-n0-n4-n8与n8连通;在4.0秒CBR终止,在4.5秒时事件结束。

3.4 仿真程序的实现

本仿真程序的主要源代码如框1所示。

3.5 仿真结果演示

代码运行结束后,将结果记录在trace文件中,并可生成NAM动画,将这一过程演示给学生。当网络拓扑发生变化时,RIP协议将动态选择一条跳数最少的路径作为最佳路径。如图2所示,仿真程序在1.2秒时,n2到n0的通路由于网络故障中断,从图中经过路由表的更新后,n3以新的路由向n8发送数据流。

图2 仿真程序NAM动画在1.2秒时的状态

图3表示仿真程序在2.3秒的状态,n2到n0、n4到n8、n4到n7的通路均由于网络故障中断,经过路由表的更新,n3以新的路由向n8发送数据流。

图3 仿真程序NAM动画在2.3秒时的状态

图4 仿真程序NAM动画在3.8秒时的状态

图4表示仿真程序在3.8秒的状态,所有链路故障均恢复,经过路由表的更新,n3以新的路由向n8发送数据流。

4 结束语

在网络课程教学过程中使用网络仿真软件NS2,一方面可以有效地克服课程枯燥抽象、难以理解的困难,加深学生对网络原理和各种协议的认识和理解,另外还可以让学生更加轻松、深入地学习该门课程,提高学生的学习兴趣。如若能够在课程的某些实验环节中也适当地引入该软件,让学生自己动手编写仿真代码,完成仿真过程,必定能够进一步提高学生的自主学习和研究能力,收到更好的学习效果。

[1]Fall K, Varadhan K. The NS Manual[EB/OL].http://www.isi.edu/nsnam/ns/ns-documentation.html

[2]谢希仁.计算机网络[M].5版.北京:电子工业出版社,2008:263

[3]徐雷鸣,庞博,赵耀.NS与网络模拟[M].北京:人民邮电出版社,2003:1

[4]陈晶,滕丽敏.基于NS2仿真的网络课程教学方案设计[J].聊城大学学报:自然科学版,2007(20):100-102

[5]姜恩华.基于NS2的计算机网络课程辅助教学研究[J].淮北煤炭师范学院学报:自然科学版,2007(28):84-88

猜你喜欢

路由表路由动画
做个动画给你看
动画发展史
基于OSPF特殊区域和LSA的教学设计与实践
我的动画梦
探究路由与环路的问题
我是动画迷
基于新路由表的双向搜索chord路由算法
PRIME和G3-PLC路由机制对比
WSN中基于等高度路由的源位置隐私保护
eNSP在路由交换课程教学改革中的应用