NS2网络仿真软件应用于教学中的研究
NS2网络仿真软件应用于教学中的研究
NS2网络仿真软件应用于教学中的研究
石太彬;童孟军
【期刊名称】《计算机时代》
【年(卷),期】2013(000)007
【摘要】网络技术的迅速发展,使计算机网络教学模式必须不断改进以满足实际需求.为此,在计算机网络课堂中引入了网络仿真软件NS2以辅助教学.NS2是一款优秀的开源软件,能够仿真计算机网络的众多协议,以及最新的网络技术.将NS2融入教学的同时,开发了相应的软件来管理NAM文件.这种教学模式可以使学生轻松地理解网络协议及其原理.
【总页数】4页(P62-65)
【作者】石太彬;童孟军
【作者单位】杭州电子科技大学计算机学院,浙江杭州310018;杭州电子科技大学计算机学院,浙江杭州310018
【正文语种】中文
【中图分类】G642.0
【相关文献】
1.NS2网络仿真软件在计算机网络教学中的应用 [J], 韩亚利;
2.NS2仿真软件在无线网络教学中的应用 [J], 李大勇
3.NS2网络仿真软件在计算机网络教学中的应用 [J], 韩亚利
4.NS2网络仿真软件在计算机网络教学中的应用 [J], 李玉霞
5.浅谈网络仿真软件在计算机专业网络教学中的应用——以NS2为例 [J], 邓志霞
因版权原因,仅展示原文概要,查看原文内容请购买。
NS2网络仿真软件应用于教学中的研究共7页文档
NS2网络仿真软件应用于教学中的研究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)。
基于NS2的网络仿真研究与应用
第 21 卷第 12 期计算机仿真2004 年 12 月文章编号: 1006- 9348( 2004) 12- 0128- 04基于 NS2 的网络仿真研究与应用王晓燕, 郑明春( 山东师范大学计算机系, 山东 济南 250014) 摘要: 通信网络的日新月异, 各种网络方案和协议日趋复杂、 网络规模日趋庞大, 对网络研究人员而言, 掌握网络 仿真的重要 性是不言而喻的。
该文主要介绍了免费网络仿真软件 NS2 软件包构成、 工作原理及 NS 仿真环境的搭建, 并详细介绍了该软 件使用中的难点问题。
在此基础上以 NS2 为平台对基于一种新 的速率的 组播拥塞 控制算法 IRBMCC 性能 进行了大 量仿真 实验, 并以此为例介绍了仿真过程中代码层修改、 拓扑构建, 以及如何将感兴趣 的数据转换成 X、 坐标图像, 并 对最终结果 Y 进行了分析。
同时还介绍了一些必要的系统安装知识。
关键词: 模拟器; 仿真; 组播拥塞控制 中图分类号: TP393 文献标识码: AStudy and Application of Network Simulation Technology Based on NS2WANG Xiao- yan, ZHENG Ming- chun( Dept. of Computer Science , Shandong Normal University, Jinan Shandong 250014, China) ABSTRACT: The mastery of the network simulative tools is important for the increasing of complexity and scale of network. This paper mainly analyzes the architecture of NS simulator, describes the details of the build of the simulated environment and explains how user to develop his own objects under NS2 in combination with the new rate- based multicast congestion control algorithm IRBMCC. The paper also introduces some necessary knowledge of the related OS installation. KEYWORDS: Simulator; Simulation;Multicast congestion- control1引言在研究 和设计 网络协议 时通常 需要利 用仿真 软件对 其性能仿真中的应用。
NS2仿真技术在计算机网络实验教学中的应用与研究
51计算机教育 2005.10教/育/信/息/化长时间以来,很多学生反映计算机网络的教学很枯燥,其实,很多计算机网络任课教师也反映这个问题,这主要是因为计算机网络原理涉及到很多协议和算法,这些内容在传统的实验环境下很难模拟或成本太高。
因此,很多高校的计算机网络教学仅仅是让学生练习组建局域网、网络命令、服务器或其他网络互连设备的配置,更有甚者,只是简单地通过IE访问Internet,而很少深入到网络的内核,这直接影响到计算机网络的教学效果。
为此,我们构建了一个计算机网络仿真平台,不仅可以演示底层协议的工作原理,通过自己修改协议参数来改进协议并进行验证,还可以模拟网络拓扑和一些网络设备的工作方式。
仿真技术的引入,不仅节约了实验成本,极大地提高了学生的积极性,更提高了实验教学的水平和质量,仿真环境和真实环境结合,达到了很好的效果。
经过两年的应用,我校计算机网络的教学效果有了明显改善。
目前,知名的仿真软件主要有Seawind、OPNET、MATLAB、NS2和GloMoSim。
我们采用了免费且开放源代码的网络仿真软件NS2。
NS2仿真软件工作机制NS2由编译和解释两个层次组成。
编译层包括C++类库,而解释层包括对应的Otcl类,用户以Otcl解释器作为前台使用NS。
其体系结构如图1所示。
NS2仿真有两个层次:一个基于Otcl编程,通过Tcl脚本程序设计,利用现有的NS元素实现仿真,不用修改NS本身;另一个层次基于C++(在图2中用虚线表示)和Otcl的编程,利用Otcl和NS的接口,编写C++程序,然后重新编译NS来增加新的功能,从而实现仿真的目的,如图2所示。
对于本科生的实验教学来说,只需要用到第一种仿真方法,对于部分水平较高的学生,可以涉及到第二个层次。
使用NS2进行网络仿真的一般过程(如图2所示)为:(1)分析要解决的问题,建立模型;(2)编写Tcl脚本,模拟问题的处理过程,或修改C++代码并重新编译NS;(3)运行Tcl脚本,得到仿真结果数据;(4)对结果数据进行分析,并以动画或静态图像来演示仿真结果。
NS2仿真实验分析报告
NS2仿真实验分析报告一引言1 NS2简介NS2是一款开放源代码的网络模拟软件,最初由UC Berkeley开发。
它是一种向象的网络模拟器,它本质上是一个离散事件模拟器,其本身有一个模拟时钟,所有的模拟都由离散事件驱动。
其采用了分裂对象模型的开发机制,采用C++和OTcl两种语言进行开发。
它们之间采用Tclcl 进行自动连接和映射。
考虑效率和操作便利等因素,NS2将数据通道和控制通道的实现相分离。
为了减少分组和事件的处理时间,事件调度器和数据通道上的基本网络组件对象都使用C++编写,这些对象通过Tclcl映射对OTcl解释器可见。
目前NS2可以用于模拟各种不同的通信网络,它功能强大,模块丰富,已经实现的主要模块有:网络传输协议,如TCP和UDP;业务源流量产生器,如FTP、Telnet、CBR、We b和VBR;路由队列管理机制,如DropTail、RED和CBQ;路由算法;以及无线网络WLAN、移动IP和卫星通信网络等模块,也为进行局域网的模拟实现了多播协议以及一些MAC子层协议。
2 基本概念(1)RED:随机早期探测(Random Early Detect,RED)。
RED属于主动队列管(Active Queue Management, AQW),是目前常见的TCP上防止拥塞的手段。
它通过以一定概率丢失或标记报文来通知端系统网络的拥塞情况。
RED使用平均队列长度度量网络的拥塞程度,然后以线性方式将拥塞信息反馈给端系统。
RED使用最小阈值,最大阈值和最大概率等几个参数。
RED的基本思想是通过监控路由器输出端口队列的平均长度来探测拥塞,一旦发现拥塞逼近,就随机地选择连接来通知拥塞,使它们在队列溢出导致丢包之前减少拥塞窗口,降低发送数据速度,缓解网络拥塞。
RED配置在路由器监视网络流量以便避免拥塞,当拥塞即将发生时,它随机丢弃进来的分组,而不是等到队列缓冲区满是才开始丢弃所有进来的分组,这样可以最少化全局同步的发生。
ns2仿真软件介绍
ns2网络仿真软件NS 是一种针对网络技术的源代码公开的、免费的软件模拟平台,研究人员使用它可以很容易的进行网络技术的开发,而且发展到今天,它所包含的模块已经非常丰富,几乎涉及到了网络技术的所有方面。
所以,NS成了目前学术界广泛使用的一种网络模拟软件。
在每年国内外发表的有关网络技术的学术论文中,利用NS给出模拟结果的文章最多,通过这种方法得出的研究结果也是被学术界所普遍认可的,此外,NS也可作为一种辅助教学的工具,已被广泛应用在了网络技术的教学方面。
因此,目前在学术界和教育界,有大量的人正在使用或试图使用NS。
然而,对初学者来说,NS是非常难于掌握的,一般人从学习NS到上手至少需要半年多时间。
原因是多方面的:一方面,NS内容庞杂,随软件所提供的手册更新不够快,初学者阅读起来非常困难;另一方面,使用NS还要掌握其它很多必备的相关知识以及相关工具,这会使初学者感到无从入手;有的使用者可能还不了解网络模拟的过程或是对NS软件的机制缺乏理解,这也影响了对NS的掌握。
另外,不论在国外还是国内,还没有一本书能集中回答和解决这些问题,这也是NS难于被掌握的一个重要原因。
1、NS2简介NS2 (Network Simulator, version 2)是一种面向对象的网络仿真器,由UC Berkeley开发而成。
它本身有一个虚拟时钟,所有的仿真都由离散事件驱动的。
目前NS2可以用于仿真各种不同的IP网,已经实现的一些仿真有:网络传输协议,比如TCP和UDP;业务源流量产生器,比如FTP,Telnet,Web CBR和VBR;路由队列管理机制,比如Droptail,RED和CBQ;路由算法,比如Dijkstra等。
NS2也为进行局域网的仿真而实现了多播以及一些MAC 子层协议。
NS2 使用C++和Otcl作为开发语言。
NS可以说是Otcl的脚本解释器,它包含仿真事件调度器、网络组件对象库以及网络构建模型库等。
事件调度器计算仿真时间,并且激活事件队列中的当前事件,执行一些相关的事件,网络组件通过传递分组来相互通信,但这并不耗费仿真时间。
NS2仿真技术在网络实验教学中的应用
计 算 机 网 络 是 一 门理 论 与 应 用 紧 密 结 合 、 及 涉 很 多协 议 、 法 的课 程 , 实 验 内容 在 传统 的实 验 环 算 其
境下 很 难 模 拟 或 成 本 太 高 。为 此 , 试 将 网 络 仿 真 尝 技 术 引入 网络 教 学 ,通 过 构 建 网络 仿 真 平 台 ,以 动 画 演 示 网络 协 议 的 动 态 运行 过 程 ,以 较低 的成 本 提
Ab t a t sr c :Th sp p rf c s so h u rn r be n t ec mp t r ewo k e p rme t l e c ig, n to u e i a e o u e n t e c r e t o lms i h o u e t r x ei n a ta h n a d i r d c s p n n t e o e a ig p icp ea d a v n a e ft e wiey u e e wo k smu ao 2 tp t owa d a ta h n t o h p r t r il n d a t g so h d l s d n t r i lt rNS .I u s f r r e c ig meh d n n
性, 并具有 以下 特点 :
供 丰 富 的 实 验 教 学 环 境 ,增 强 学 生对 计算 机 网 络协 议 的理 解 。 目前 , 名 的 网络 仿 真 软 件 主 要 有 Gl 知 o —
Ap l ain o 2i ewok e p r na ec ig pi t fNS nn t r x ei tl a hn c o me t
J Z qn,Ca Ch n a i ui i agn
( p rme to mp t r E g n e ig a d S in e Ya c e g Te c e s Un v r iy De a t n fCo u e n ie rn n ce c , n h n a h r i e st ,Ya c e g 2 4 0 n h n 2 0 2,Ch n ) ia
NS2在无线网络实验教学中的应用word精品文档4页
NS2在无线网络实验教学中的应用基金项目:本文系2010-2013年重庆邮电大学教改项目“通信网络虚拟体验系统建设与实验课程开发”(项目编号:XJG1002)的研究成果。
无线网络技术[1]是当前计算机网络中的最热点的研究领域,也是一门理论性比较强的课程,在传统的实验室中开展实验教学比较困难。
现有的针对无线网络的实验设备,成本非常昂贵,而且代码保密,学生很难深入理解网络协议和算法。
为此,我们将网络仿真工具NS2引入无线网络实验教学中,利用NS2的动画效果动态演示节点的收发包过程,不但可以帮助学生深刻理解网络协议和算法,提高学生学习无线网络的兴趣,而且利用NS2代码开源的特点,还可以使得学生深入到协议和算法的具体实践中去,从而提高学生的编程能力,激发学生对无线网络协议验证、改进和开发的兴趣。
一、NS2的介绍网络模拟是进行网络技术研究的一种基本手段,是指采用软件对网络的协议、拓扑和性能进行模拟分析。
网络模拟可以在硬件条件不具备的情况下帮助科研人员快速学习、设计、分析和改进协议和算法。
此外,网络模拟还可以在不需要建立实际网络系统的情况下比较、评估和验证新旧协议和算法的性能。
目前,常见的网络仿真软件主要有OPNET、SPD、Qualnet 和NS2等。
所有的仿真软件都支持有大量的网络协议,但是OPNET、SPD和Qualnet均为商业化产品,价格昂贵。
而NS2属于开源软件,有着良好的开放性和可扩展性,因此在网络模拟中使用最为广泛。
NS[2]是由UC Berkeley大学开发的一种面向对象的网络环境模拟器,来源于1989年的Real Network Simulator项目,目前最流行的是版本2,即NS2(Network Simulator 2)。
经过全世界各地研究者多年来不断的努力和完善,NS2已经成为一个涉及网络各个方面的优秀的网络模拟工具。
NS2集成的大量无线网络协议,以及其强大的二次开发能力使得NS2已经成为无线网络学术研究最常用的仿真平台。
计算机网络ns2实验报告
课程:计算机网络项目:实验4 ns2 实验一、实验目的安装并运行网络仿真器NS2,了解其功能模块及配套工具的使用,掌握利用NS2进行网络仿真的方法,为进一步的网络系统性能分析设计创造良好的条件。
二、实验原理NS2(Network Simulator version 2,网络仿真软件第二版)是一种面向对象的网络仿真器,本质上是一个离散事件模拟器。
最早来源于1989年哥伦比亚大学开发的Real Network Simulator项目,是一款开源免费的网络模拟软件。
由加州大学伯克利分校(UC Berkeley)开发而成。
它本身有一个虚拟时钟,所有的仿真都由离散事件驱动的。
目前NS2 可用于仿真各种不同的通信网络。
已经实现的仿真模块有:网络传输协议,如TCP 和UDP;业务源流量产生器,如FTP、Telnet、Web CBR 和VBR;路由队列管理机制,如Droptai、RED和CBQ;路由算法,如Dijkstra,以及无线网络的WLAN,Ad hoc路由,移动IP 和卫星通信网络等。
NS2也为进行局域网的仿真而实现了多播以及一些MAC子层协议。
NS2使用C++和OTcl作为开发语言。
NS2可以说是OTcl的脚本解释器,它包含仿真事件调度器、网络组件对象库以及网络构建模型库等。
事件调度器用于计算仿真时间,并且激活事件队列中的当前事件,执行一些相关的事件,网络组件通过传递分组来相互通信,但这并不耗费仿真时间。
所有需要花费仿真时间来处理分组的网络组件都必须要使用事件调度器,它先为这个分组发出一个事件,然后等待这个事件被调度回来之后,才能做下一步的处理工作。
事件调度器的另一个用处就是计时。
由于效率的原因,NS2将数据通道和控制通道的实现相分离,为了减少分组和事件的处理时间,事件调度器和数据通道上的基本网络组件对象都使用C++写出并编译的,这些对象通过映射对OTcl解释器可见。
三、实验内容(1)安装ns-allinone-2.35(2)NS2仿真示例-nam方式四、实验结果与分析:建立一个OTcl脚本文件set ns [new Simulator] /建立对象$ns color 1 Blue /设定颜色$ns color 2 Redset nf [open out.nam w] /打开跟踪文件$ns namtrace-all $nfproc finish {} { /定义结束过程global ns nf$ns flush-traceclose $nfexec nam out.nam &exit 0}set ns0 [$ns node]set ns1 [$ns node]set ns2 [$ns node]set ns3 [$ns node]$ns duplex-link $ns0 $ns2 1Mb 10ms DropTail$ns duplex-link $ns1 $ns2 1Mb 10ms DropTail$ns duplex-link $ns3 $ns2 1Mb 10ms DropTail$ns duplex-link-op $ns0 $ns2 orient right-down$ns duplex-link-op $ns1 $ns2 orient right-up$ns duplex-link-op $ns2 $ns3 orient right$ns duplex-link-op $ns2 $ns3 queuePos 0.5set udp0 [new Agent/UDP] /建立代理UDP $udp0 set class_ 1$ns attach-agent $ns0 $udp0set cbr0 [new Application/Traffic/CBR]$cbr0 set packetSize_ 500$cbr0 set interval_ 0.005$cbr0 attach-agent $udp0set udp1 [new Agent/UDP]$udp1 set class_ 2$ns attach-agent $ns1 $udp1set cbr1 [new Application/Traffic/CBR]$cbr1 set packetSize_ 500$cbr1 set interval_ 0.005$cbr1 attach-agent $udp1set null0 [new Agent/Null] /建立代理NULL$ns attach-agent $ns3 $null0$ns connect $udp0 $null0$ns connect$udp1 $null0$ns at 0.5 "$cbr0 start" /传送数据$ns at 1.0 "$cbr1 start"$ns at 4.0 "$cbr1 stop"$ns at 4.5 "$cbr0 stop"$ns at 5.0 "finish" /调用结束过程$ns run /仿真结果如下:实验分析:系统从n0开始传送数据实验分析:系统从n1开始传送数据实验分析:采用FIFO机制丢包,丢弃n0发送的数据包(3)代码:set ns [new Simulator]set f0 [open out0.tr w]set f1 [open out1.tr w]set f2 [open out2.tr w]for { set i 0 } { $i<5 } {incr i} {set n$i [$ns node]}$ns duplex-link $n0 $n3 1Mb 100ms DropTail$ns duplex-link $n1 $n3 1Mb 100ms DropTail$ns duplex-link $n2 $n3 1Mb 100ms DropTail$ns duplex-link $n3 $n4 1Mb 100ms DropTailproc finish {} {global f0 f1 f2close $f0close $f1close $f2exec xgraph out0.tr out1.tr out2.tr -geometry 800x400 & exit 0}proc attach-expoo-traffic { node sink size burst idle rate } { set ns [Simulator instance]set source [new Agent/UDP]$ns attach-agent $node $sourceset traffic [new Application/Traffic/Exponential]$traffic set packetSize_ $size$traffic set burst_time_ $burst$traffic set idle_time_ $idle$traffic set rate_ $rate$traffic attach-agent $source$ns connect $source $sinkreturn $traffic}proc record {} {global sink0 sink1 sink2 f0 f1 f2set ns [Simulator instance]set time 0.5set bw0 [$sink0 set bytes_]set bw1 [$sink1 set bytes_]set bw2 [$sink2 set bytes_]set now [$ns now]puts $f0 "$now [expr $bw0/$time*8/1000000]"puts $f1 "$now [expr $bw1/$time*8/1000000]"puts $f2 "$now [expr $bw2/$time*8/1000000]"$sink0 set bytes_ 0$sink1 set bytes_ 0$sink2 set bytes_ 0$ns at [expr $now+$time] "record"}set sink0 [new Agent/LossMonitor]set sink1 [new Agent/LossMonitor]set sink2 [new Agent/LossMonitor]$ns attach-agent $n4 $sink0$ns attach-agent $n4 $sink1$ns attach-agent $n4 $sink2set source0 [attach-expoo-traffic $n0 $sink0 200 2s 1s 100k]set source1 [attach-expoo-traffic $n1 $sink1 200 2s 1s 200k]set source2 [attach-expoo-traffic $n2 $sink2 200 2s 1s 300k]$ns at 0.0 "record"$ns at 10.0 "$source0 start"$ns at 10.0 "$source1 start"$ns at 10.0 "$source2 start"$ns at 50.0 "$source0 stop"$ns at 50.0 "$source1 stop"$ns at 50.0 "$source2 stop"$ns at 60.0 "finish"$ns run结果如下:实验分析:三条数据流的峰值分别为0.1Mbit/s, 0.2Mbit/s,0.3Mbit/s五、实验总结在nam辅助分析工具中发现ftp1在零秒开始启动,ftp2在第三秒时刻开始启动,都在第十秒停止,这符合设计目标。
基于NS-2的模拟技术在计算机网络教学中的应用研究
p id i ef l f e e e r h, no t ec mp trn t r e c ig, ytk n esi ewid w o CP p o o o n lw tr —u . l n t ed o t s a c i t o ue ewok ta h n b a ig t l n o f e h i n r h h d T r tc l d s a o sa t p a 1 g r h a n e a l ,gv e ea r c d r f o i m s a x mp e ie g n r l o e u eo t p NS一2 d i gn ts lt ,b t n p cu ed mo srt n o o on e i ae ymoi itr e n t i f mmu i ain p oo o mu o ao c nc t r tc l o a d a ay i o o u n r c k td ns u d rt n i a i n o r h n iey te ra iig me h n s a d t e c mp e n n ss fd c me t a e ma e su e t n e sa d mo e e sl a d c mp e e sv l h e l n c a im n h o lx l T y z
昆 明 学 院 学 报
21 , 33 : 0 1 3 ( )6 6 4— 7
CN 5 3—1 1 / I S l 7 —5 3 2 1 G4 s N 64 69
J u n lo n n i e st o r a fKu mi g Un v r i y
基 于 N 2的模 拟 技术在 计 算 机 网络教 学 中的应 用 研究 S一
Ke r s y wo d :NS一2; o u e ewo k smu a o ; ewo k ta h n c mp trn t r ; i ltr n t r e c i g
基于NS2仿真的网络课程教学方案设计
20 0 7年 9月
基 于 NS 2仿真 的 网络课 程教 学 方案设 计
陈 晶D 滕丽敏 ’
( 聊城大学 计 算机学院 , ” 山东 聊 城 2 2 5 ; 海 市 职 业 学 院 信 息 工 程 系 , 东 威 海 2 4 0 ) 5 0 9 威 山 62 0
摘 要 针 对 高校 计 算机 网络课 程教 学 中存在 的原理 抽 象、 内容 复杂 、 实验 条件 难 以 满足教 学需 求等 问题 , 出了将 网络仿 真 工具 NS 提 2应 用 于网络课 程 教 学和 实验 的方法 , 有助 于帮 助 学生分 析 和理 解复 杂 的网络 协议 , 高学 习兴趣和 学习效 果.介 绍 了网络 模拟 软件 NS , 讨 NS 在 教 学 提 2探 2
束 后 进行分 析 的依据 .NS采 用 这种 分裂模 型既 提 高 了仿 真效 率 , 快 了仿 真速 度 , 加 又提 供 了仿 真 配置 的
灵 活性 和操作 的简 便性 f. 2 ]
收 稿 日期 :0 70— 8 2 0— 42
维普资讯
第3 期
NS 2的安装 方式 . 引
学 生 的学 习 兴趣.
1 NS 2简 介
NS 2由UC B r e ek l y大学 开发 , 的源代码 全部公 开 , 它 提供 开放 的用户接 口, 且可 扩展 、 并 容易配 置 , 它 支 持 多种 局域 网 、 域 网、 广 无线 移动 网和卫 星 网络 的仿 真 , 一种 理想 的网络仿 真工 具. 是 NS 使 用分裂 对 象模 型 的开发机制 , 用C+ +和 O c 两种 开发语 言进行 开发 , 2 采 tl 由前 台 ( 释层 ) 解 和后
为满 足 当前社 会 对 网络 技术 人 才 的需 求 , 高 校在 计 算 机等 相 关专业 纷 纷 开设 了计 算机 网络 课 程. 各 这 门课 程理论 部分 所 占 比例 较大 , 以讲解 网络 的工作原 理 为主 , 其教学 手段往 往采用 课 堂教学 和实验课 相 结合 的方式 .在 课 堂教 学 中 , 师一 般 只能针 对抽 象 的 网络 体 系结构 和 复杂 的 网络协 议 进行 理论 上 的分 教 析, 多媒 体教学 虽然 能够 起到 一定 的辅助 作用 , 学生很 难 真正理 解课堂讲 授 的知识 ; 但 在实 践环 节 中, 由于 网络技术 更新速 度快 及经 费所 限 , 大部分 高校很 难构建 满 足需求 的网络实 验教学 环 境 , 使得 学 生难 以在 真 实 的网络环境 中获得感 性 认识 . 然 , 显 这种 现状 对 于培 养 高层次 的 网络 技术 人 才是 不利 的 , 而将 网络 仿 真
NS2在计算机网络课程中的应用研究
NS2在计算机网络课程中的应用研究摘要:针对计算机网络课程的教学演示,分析当前主流的网络模拟技术,并介绍ns2网络模拟器的模拟流程,结合tcp协议和udp 协议,给出实例教学演示,增加学生的学习兴趣并增强了教师的教学效果。
关键词:计算机网络 ns2 tcp 协议 udp协议中图分类号:tp393 文献标识码:a 文章编号:1007-3973(2012)012-163-021引言随着计算机网络的持续快速发展,系统结构的日益完善,已经深入到人们日常的工作、学习、生活等的方方面面。
正是伴随着计算机网络知识的普及,计算机网络课程成为了高校计算机专业的一门专业课。
该课程中涉及到大量的概念、原理以及抽象复杂的网络协议,这都成为了许多初学者的瓶颈。
以internet核心协议之一的tcp协议为例,tcp协议本身为了实现在不可靠的ip协议上进行可靠数据交付,包含了大量复杂的机制,而在教学过程中,针对网络协议的传输过程,仅通过演示课件达到直观、精确地展示效果非常困难;另一方面,网络实验平台的搭建受到院校经费和环境的影响,并不一定可以达到课程所需的要求。
基于此,为提升学生对网络课程的兴趣,而且由于网络模拟技术与工具的成熟,通过网络模拟软件,构建虚拟的tcp协议仿真模拟教学环境,一方面,增强学生对tcp协议和udp协议传输机理的直观理解,促进学生学习动力的产生;另一方面,为教师提供有力的网络教学辅助工具。
本文基于经典的ns2网络模拟软件,提出tcp 与udp协议连接建立、数据流传输等的分析和演示教学过程。
2网络模拟工具进展2.1 网络模拟技术介绍在计算机网络的研究方法中,商业软件的特点是价格昂贵且不具备开放性,从而对网络研究的进行产生了滞后的影响。
由于网络模拟技术的特点是成本低,具有开放性的软件包,且能用于研究尚未实施的网络机制,因此,为网络研究者提供了良好的研究平台和工具。
在众多的这类软件工具中,被网络研究人员广泛应用的主流工具有以下几种:(1)ns2。
NS-2网络模拟器在计算机网络教学中的应用探究
NS-2网络模拟器在计算机网络教学中的应用探究刘艳艳;李玉龙【摘要】Currently,the teaching of university computer networks meets some problems:theory teaching is boring and hard tounderstand;practice teaching is in short with equipment,physical simulation environment cannot be built.We can apply NS-2,a network simulation software,to our teaching.By doing so,we can combine the theory teaching and practical teaching closely.This method will deepen student's understanding,improve their learning motivation,and achieve good teaching results.%目前,高校计算机网络课的教学普遍存在理论课枯燥乏味、难以理解,实验设备不足,无法搭建实物模拟环境等问题。
将一种常用的网络仿真软件NS-2作为辅助教学工具运用到计算机网络课程教学中,可使理论教学和实验教学紧密结合,加深学生的理解,提高学生的积极性,从而取得良好的教学效果。
【期刊名称】《河北软件职业技术学院学报》【年(卷),期】2011(013)003【总页数】3页(P62-64)【关键词】计算机网络教学;NS-2;网络仿真【作者】刘艳艳;李玉龙【作者单位】兰州交通大学电子与信息工程学院,兰州730070;兰州交通大学数理与软件工程学院,兰州730070【正文语种】中文【中图分类】TP391.99在现代科技的发展进程中,物物相连的互连网(物联网)已成为新一代信息技术的重要组成部分,计算机网络知识的普及和应用也成为全民教育的一个重点,几乎所有的高校都以不同的形式开设了计算机网络课程,而这门课程具有较强的理论性和应用性,只靠传统的课堂讲授是远远不够的[1]。
NS2网络仿真软件在计算机网络教学中的应用
摘要:为了让学生更好的理解计算机网络知识,提高学生的学习效率,在教学中引入了网络仿真软件辅助教学的方法逐渐成熟,通过建立一个仿真的网络平台,学生能具体认识网络知识。
本文将介绍ns2网络仿真软件的工作原理与运行流程,举例说明ns2网络仿真软件应用实例,探讨其在计算机网络教学中的意义。
关键词:ns2网络仿真软件;计算机网络;教学中图分类号:tp391.9信息技术在当代发展迅速,在社会发展中扮演着重要的角色,熟悉并掌握计算机技术成为了当代社会对现代人的基本要求,因此,基本上各大高校都开始了相应的教学课程以教授计算机网络知识。
在教学过程中,教师利用这个模型可以向学生们展示所学知识中有关的计算机原理与相关算法,化抽象为具体,生动形象的将网络展现在学生面前,不仅激发学生学习的积极性,也促进了教学的进行。
1 ns2网络仿真软件的介绍及应用优势1.1 相关介绍ns2是众多网络仿真工具中的一种,其面向的是网络协议方面的性能,同类的opent由于运行费用比较高,常应用于商业。
ns2网络仿真软件是以开源为基础的多协议网络模拟,其特点是面向具体对象与驱动时间离散,模仿的是网络的运行情况。
经过长期的发展,ns2网络仿真软件得到了不断地改进,正逐步完善。
1.2 应用优势1.2.1 各种各样的组件模块。
在ns2网络仿真软件中有各种各样的组件模块,即大量的节点、各种协议以及链路的延迟接点等,不要求拓展ns2,只用稍微的做一点修改或准备好一个脚本即可,在教学过程中应用会比较的方便简单。
1.2.2 化抽象为具体的动画。
如果只是抽象的讲解计算机知识是很空洞的,但是有动画的辅助,过程会变得简单很多,教学过程也会变得生动有趣。
1.2.3 知识的深度与广度得到了扩展。
运用ns2网络仿真软件辅助教学,学生能自主的安排自己的学习时间,不用担心大课堂的限制,可随时根据自身需要重点学习自己薄弱的地方,随心地选择自己要攻克的实验内容。
2 ns2网络仿真软件的特点2.1 灵活性学生可在ns2提供的平台上选择自己的喜欢的网络环境,设置相应的参数,就不用担心数据丢失方面的问题出现了,因为ns2网络仿真软件提供监控和跟踪的功能,可记录操作过程中重要的步骤,对结果进行分析和再现结果都是很简单,在真实的网络坏境中我们很难享受到这种灵活性。
NS2仿真与网络实验教学
( a rneB re yN tnl aoaoy 的 网 络研 究 Lwec ekl ai a Lbrt ) e o r
组研 制开 发 ,是 D R A 支 持 的 V N A P I T项 目的核 心
部分 。
N S功 能 强大 ,能 够仿 真有 线 和无 线 网 ( 地 和 本
第 8卷
第 2期
实 验 科 学 与 技 术
・7 5・
N 2仿 真 与 网 络 实 验 教 学 S
陈建 锐
( 江师 范学院实验教学管理处 ,广 东 湛江 湛 5 44 ) 2 0 8
摘要 :针对计 算机 网络 实验教 学存 在的 问题 ,介 绍 了 目前应 用较为广泛 的 网络仿 真器 N 2的 工作 原理 和特 点。探 讨 了 N 2 S S 在 网络教 学中的应用 ,提 出了将 网络仿真 工具 N 2应 用于 网络课程教 学和 实验 的方法 ,有利 于 学生更加 直观地理 解 网络 协 S 议的 实现原理 ,提 高网络教 学的效果 ,并给 出 了应 用实例 。 关 键 词 :N 2软件 ;网络仿 真 ;实验教 学 S
文献标识码 : 文 章 编 号 :17 4 5 (0 0 0 0 7 0 6 2— 5 0 2 1 )2— 0 5— 3 中 图 分 类 号 :T 3 19 6 2 ・ 2 P 9 . ;G 4 4 3
网络模拟器NS-2及其应用分析
1.2
NS-2 体系结构
NS-2 的结构如图 1 所示。 NS-2 采用了两级体系结构, 为了提高代码的执行效率, NS-2 将数据操作与控制部分
的实现相分离,事件调度器和基本的网络组件使用 C++编写和编译,其主要功能是实现对数
据包的处理;NS-2 的前端是一个 Otcl 解释器,主要的功能是对模拟环境的配置、建立。从 图 1 的左下角看,用户利用 Otcl 库中的模拟对象设计和运行 TCL 仿真,事件调度器和网络 组件通过 OTcl 链接(tclcl 类)和 Otcl 相关联,这样用户可以在 Otcl 空间能够方便地对 C ++对象的函数和变量进行修改与配置。
图 3 利用 NS-2 进行网络模拟的过程
2.1
Otcl 实现模拟的一般过程
(1) 建立 network model: 描述模拟网络拓扑结构,确定链路
的基本特性,如延迟、带宽和丢失策略等。 (2) 建立 traffic model: 包括端设备的协议绑定和通信业务
量模型的建立,配置业务量模型的参数,从而确定网络上的业务量分布。 (3) 设置 ห้องสมุดไป่ตู้race 对象。Trace 对象能够把模拟过程中发生的特
1
1.1
NS-2 体系结构及功能模块
NS-2 简介
NS-2 是面向对象的,基于离散事件驱动的网络环境模拟器。它实现了多种网络协
议的模拟,如网络协议 TCP、UDP,流量源行为,如 FTP、Telnet、Web、CBR、VBR;实现了 DropTail、RED、CBQ 等几种路由器队列管理机制以及 Dijkstra,动态路由、静态路由、组播 路由等路由算法。此外,NS-2 还支持组播协议 SRM 及部分 MAC 层协议。 NS-2 用 C++和 Otcl 语言编写而成。它是免费的,开放源代码的,可以很方便地扩展 NS-2 的功能,将自己开发的新协议模块集成到 NS-2 环境中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要:网络技术的迅速发展,使计算机网络教学模式必须不断改进以满足实际需求。
为此,在计算机网络课堂中引入了网络仿真软件ns2以辅助教学。
ns2是一款优秀的开源软件,能够仿真计算机网络的众多协议,以及最新的网络技术。
将ns2融入教学的同时,开发了相应的软件来管理nam文件。
这种教学模式可以使学生轻松地理解网络协议及其原理。
关键词: ns2;网络仿真;辅助教学;网络协议; nam文件管理软件中图分类号:g642.0 文献标志码:a 文章编号:1006-8228(2013)07-62-040 引言随着网络技术的飞速发展,传统的计算机网络教学受到较大的冲击,在教学中引入网络模拟显出了十分的必要性与重要性。
计算机网络教学一般可分为理论教学和实验教学两个部分,传统的教学模式存在很突出的问题。
首先,计算机网络课程从设计到许多复杂的概念和原理,教学中通常使用幻灯片来教学,无法简单灵活地来展示动态过程。
学生在学习中感到枯燥乏味,难以理解,导致渐渐失去兴趣。
其次,实验器材比较昂贵,实验室内配备的实验器材数量有限,很难达到较高标准的实验环境,并且实验的时间也是有限的,学生无法充分地理解并且掌握通信技术以及网络工程应用能力,久而久之更加感到无趣。
解决这一难题的有效方法是,在教学中引入网络模拟技术,使用nam工具,可以清晰地向学生展示网络协议的动态运行过程,提高学生的学习效率,改善教学效果。
1 ns2仿真软件简介ns2是一款开放源代码的网络模拟原件,由美国加州大学伯克利分校(uc berkeley)的mash研究组开发。
ns2能够仿真多种网络上的众多协议,这些协议涉及到网络的各个层次[1]。
ns2的本质是一个面向对象的离散事件模拟器[2],所有的仿真都是由离散事件驱动的。
ns2采用c++和otcl两种开发语言进行开发,底层仿真引擎主要用c++编写,otcl作为仿真时的命令和配置语言。
c++是强制类型的程序设计语言,程序模块运行速度非常快,易实现精确复杂的算法。
otcl是无强制类型的脚本程序编写语言,具有简单、容易实现和修改的特性,可以在不必重新编译的情况下修改仿真参数和仿真过程,两种语言的结合使ns2的仿真效率特别高。
2 ns2模拟仿真实验管理器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资料,让学生能自行下载,进行自主学习喝相互讨论。
因此,下一步的目标就是建立这种教学平台。