摘 要:基于计算机网络的实践教学现状,初步探讨了ns2在该课程实践教学中的应用。重点介绍了ns2进行网络仿真的基本方法和步骤,并通过具体实例详细阐述了其在无线网络实践教学中的应用。教学实践证明,该方法不仅在一定程度上缓解了现有教学条件和资金不足的问题,而且能够激发学生的学习热情,大大提高了教学质量。
关键词:无线网络,ns2,网络仿真
0引言
计算机网络作为计算机类专业和电气信息类专业的核心课程之一,其中涉及了大量的概念、原理以及各种协议和算法等。这些内容大多抽象晦涩,单纯通过理论教学难以让学生理解和掌握。实践教学是解决上述问题的有效方法。然而,一方面由于受到现有教学条件和资金的制约,另一方面由于计算机网络技术发展的日新月异,这使得我校目前的实践教学越来越不能够满足本课程对学生的理论知识和实践能力的培养要求。
近年来,国内外许多高校纷纷利用各种网络仿真软件,将它们应用于计算机网络课程的实践教学中,并且取得了一定的成效。从某种程度上来讲,借助各种网络仿真软件以弥补硬件资源条件的不足,这已经成为高校计算机网络实践教学发展的一种趋势。本文将ns2网络仿真技术应用于计算机网络课程的实践教学中,重点介绍了利用ns2进行网络仿真的基本方法和步骤,并通过具体实例详细阐述了其在无线网络实践教学中的应用。
1计算机网络实践教学现状
以笔者所在学校为例,网络实验室创建于上世纪末,至今已十年有余。由于实验设备比较陈旧,硬件基础薄弱,从而导致教师和学生难以及时追踪和掌握一些最新的网络技术。Www.133229.COM特别是在实践中理解和掌握这些新技术,更是显得相当困难。例如,针对目前流行的无线网络、ipv6技术等,现有的实验设备根本无法开展相关的实践教学活动。另一方面,购置新的实验设备则意味着需要投入大量的资金,而我校目前在资金投入方面尚存在困难。
ns2是加州大学伯克利分校开发的一种离散事件驱动的网络模拟器。作为一款开源的网络仿真软件,ns2已被广泛用于计算机网络的相关教学和科研工作中,且已取得了良好的效果。因此,将ns2技术引入到计算机网络课程的实践教学是非常有必要和有意义的。
2利用ns2进行计算机网络实践教学
ns2的功能非常强大,能够提供有线和无线网络中各种协议的仿真与模拟。比如:网络层rip、ospf和bgp路由协议,传输层tcp和udp协议,应用层ftp和telnet协议等。特别是针对目前流行的无线网络wlan技术,如无线传感器网络wsn(wireless sensor network),ns2更是提供了非常有力的支持。
2.1ns2仿真的基本方法和步骤
在ns2中,网络构件采用分裂对象模型方式实现。即,用户接口在otcl脚本中实现,而构件的主要功能则在c++中实现。与此对应地,ns2包含两个层次:(1)用户层次。对于简单的网络模拟,只需通过编写otcl脚本就可将各种已有的网络元素组合起来,而无需对ns2本身进行任何修改。(2)系统层次。对于一些复杂的模拟情形,可以首先采用c++语言对ns2内核进行功能扩展并重新编译,然后编写相应的otcl脚本进行仿真。
总的来说,利用ns2进行网络仿真分为以下三个步骤:
1)问题定义。首先,根据被模拟的网络对象,分析并确定网络仿真所涉及的层次。
2)模拟实现。其次,根据仿真层次来决定编写必要的otcl脚本或构造可能需要的c++和otcl 类。例如,根据仿真具体要求可能需要添加新的网络元素等。
3)结果分析。最后,执行模拟并通过nam将整个仿真过程用动画的方式展现出来,采用xgraph或gnuplot 等绘图工具对结果文件进行分析和处理。同时,根据分析结果决定是否需要进一步修改和完善。
图1给出了ns2进行网络仿真的基本流程:
图1ns2进行网络仿真的基本流程
2.2无线网络实践教学仿真实例
本节将通过一个具体实例来介绍ns2在无线网络实践教学中的应用。实验仿真环境为windows xp + cygwin平台,模拟场景为在一个500m×500m的区域,其中包含a、b、c三个移动节点,初始位置分别为(10, 10, 0)、(160, 240, 0)和(450, 300, 0)。节点的移动方向分别为:a→(250, 250, 0),b→(480, 250, 0),c→(250, 250, 0),速度均为5m/s。节点a、b、c分别在第10s、15s、110s开始移动。在此过程中,a和c尝试建立ftp连接。
(1)部分关键模拟脚本代码
#设置移动网络采用的路由协议为dsdv
set val(rp) dsdv
#创建n个移动节点
for {set i o} {}$i<$val(n)} {incr i } {
set node_($i) [$ns node]
}
#设定节点a的初始位置为(10, 10, 0)
$node_(0) set x_10.0
$node_(0) set y_10.0
$node_(0) set z_10.0
#设定节点b在第15s以5m/s的速度向(480, 250, 0)位置移动
$ns at 15.0 "$node_(1) setdest 480.0 250.0 5.0"
(2)模拟结果分析
图2dsdv模拟窗口大小
图2和图3分别给出了采用dsdv和dsr路由算法的模拟结果。从中可以看出,刚开始时,由于节点相隔较远,ftp的连接无法建立。经过几次超时重试之后,节点a、c通过节点b建立连接,此时数据通过b节点进行转发。又经过一段时间之后,节点a、c彼此靠近。当距离足够近时,二者建立直接连接。图2中出现的窗口大小跳变和图3中的拐点即是由此产生。当节点继续移动彼此远离时,此时连接断开。另外,可以发现,dsr路由算法建立ftp连接的时间比dsdv算法早6s左右,这是因为dsr采用了更为高效的按需驱动的动态源路由算法。
图3 dsr模拟窗口大小
由于可以通过nam对整个仿真过程进行动画演示,这使得课堂教学气氛活跃,不仅激发了学生的学习热情,而且也便于学生对网络原理的深入理解和掌握。
3结束语
本文充分利用网络仿真技术,将ns2仿真软件应用到计算机网络课程的实践教学过程中。不仅在一定程度上解决了现有教学条件和资金不足的问题,而且能够满足本课程对学生的理论知识和实践能力的培养要求。更重要的是,它还能够提高学生的自我学习和自主创新能力。因此,这将对提高我校计算机网络教学的质量和水平,具有十分重要的意义。
参考文献:
[1] 陈建锐.ns2仿真与网络实验教学[j].实验科学与技术,2010, 8(2): 75-77.
[2] 张琪, 谢慧等.基于ns2的网络仿真实验教学研究[j].计算机教育,2010(10): 144-146.
[3] 付雪峰,刘有珠等.计算机网络课程实验教学探讨[j].南昌工程学院学报,2008,27(2): 59-61.
[4] 方路平,刘世华,陈盼等.ns-2网络模拟基础与应用[m].国防工业出版社, 2008.