NS2仿真软件(共7篇)
NS2仿真软件 篇1
NS2 (Network Simulator, version 2) 是一种面向对象的网络仿真器[1], 软件的源代码可以从网上免费下载。由于NS内容庞杂, 而且NS软件的使用还要掌握很多相关知识和相关工具。目前介绍NS的书籍很少, 且使用中出现问题有时很难找到原因, 一些协议程序的源代码对于NS的不同版本又是不兼容的, 故NS较难掌握。
1 NS仿真软件简介
NS2 (Network Simulation Version 2) 是用C++编写的网络模拟仿真器[2], 其前端是OTCL解释器, 仿真器内核定义了有层次结构的多种类, 称为编译类结构, OTCL中有相似的类结构, 称为解释类结构, NS2是有OTCL脚本驱动的仿真器, 由C++构造网络部件, 如, 网络协议、定时器、网络框架等。OTCL是面向对象的脚本语言, 是对TCL的扩展, 在脚本中定义的每个对象是C++类的实例。
NS2提供的仿真支持有:①模拟的网络类型:广域网、局域网、移动通信网、卫星通信网;②数学方面的支持:随机数的产生、随机变量、积分;③跟踪监测:包类型 、队列监测、 流监测;;④路由点到点传播路由、组播路由、网络动态路由、层次路由。
2 NS2安装
NS[3]是在UNIX系统上开发的, 因此, 在Linux、FreeBSD、Solaris等Unix系统安装是最佳选择, 当然NS也可以运行在windows平台上。
2.1 Linux系统下的安装与卸载
下面是不同的Linux版本与不同的NS版本的安装组合:
Ubuntu5.10 + NS2.29;
Ubuntu6.06 + NS2.29.3;
Ubuntu5.04 + NS2.29 (NS2.28) ;
RedHat 9.0 + NS2.26 2.27 2.28 2.29 2.30;
FC4 + NS2.28 2.29。
目前最流行的Linux版本是Red Hat Linux, 最新NS版本是2.30。下面以2.26版本为例介绍一下在Linux系统下的安装:
(1) 安装系统Red Hat Linux9.0, 并简单学习一下linux系统操作。
(2) 下载NS安装软件
官方下载:http://www.isi.edu/nsnam/ns/ns-build.html;
把下载到的ns-allinone-2.26.tar.gz放在目录/home/adhoc/下面 (adhoc是自己新建的目录名) , 打开终端:
输入:cd /home/adhoc 回车;
输入:ls 回车。
上面两个命令执行完后就到了/home/adhoc/目录下, 此时可以看到有一个文件包ns-allinone-2.26.tar.gz
再在终端输入: tar xvfz ns-allinone-2.26.tar.gz 回车就可以看到解压缩过程。
解压完成后输入:ls 回车;
于是在/home/adhoc/目录下就多了一个名字为ns-allinone-2.26的文件夹。
输入: ls –a 回车就可以看到一个名字为install的文件。
然后在终端中输入: ./install 此时NS开始安装了。
安装完后窗口里会有设置路径的提示, 先把设置路径复制下来。
此时安装基本完成, 但接着还要设置PATH、LD-LIBRARY-PATH和TCL-LIBRARY三个环境变量的值。
新建一个终端, 输入: cd /root 回车 进入到root目录下面。
输入:gedit .bashrc 回车 (gedit是一个文本编辑器, .bashrc是一个隐藏的文件, 用gedit .bashrc就可以直接打开) 。
在.bashrc该文件末尾添加如下语句: (如下语句即上面步骤中复制好的设置路径直接粘贴过来) 。
export
PATH="$PATH:/home/adhoc/ns-allinone-2.26/bin:/home/adhoc/ns-allinone-2.26/tcl8.3.2/unix:/home/adhoc/ns-allinone-2.26/tk8.3.2/unix"
export
LD-LIBRARY-PATH="$LD-LIBRARY:/home/adhoc/ns-allinone-2.26/otcl-1.0a8:/home/adhoc/ns-allinone-2.26/lib"
export
TCL-LIBRARY="$TCL-LIBRARY:/home/adhoc/ns-allinone-2.26/tcl8.3.2/library
此时NS安装完成。
新建一个终端, 输入:ns 回车。
如果出现%, 则证明NS软件安装成功。
卸载时直接把ns-allinone-2.26文件夹删除即可。
2.2 Windows xp系统下的安装
(1) 先安装cygwin软件 (安装程序可以从网站www.cygwin.com下载) , 例如:安装到c:cygwin目录, 安装好之后可以在windows平台下打开类似Linux的模拟环境。
(2) 安装ns2的步骤
①s-allinone-2.27.tar.gz拷贝到目录cygwinhome*** (***为登陆windows时的用户名) ;②输入命令:tar xvfz ns-allinone-2.27.tar.gz 进行解压缩;③输入命令:cd ns-2.27 ;再输入:./install 安装;④运行NS前, 先设置路径, 打开目录c:cygwinhome***下的文件.bashrc, 在文件末尾添加下列语句:
此时, ns2.27的安装就已经完成。卸载时直接删除安装文件夹即可。
3 以添加mflood新协议为例, 说明NS的仿真过程
NS2包含[4]Tcl/Tk、Otcl、NS、Tcl, 其中Tcl是一个开放脚本语言, 用来对NS2进行编程;Tk是Tcl的图形界面开发工具, 可帮助用户在图形环境下开发图形界面;OTcl是基于Tcl/Tk的面向对象扩展, 有自己的类层次结构;NS-2.26为本软件包的核心, 是面向对象的仿真器, 用C++编写, 以OTcl解释器作为前端;Tclcl则提供C++和OTcl的接口, 使对象和变量出现在两种语言中。为了直观的观察和分析仿真[5]结果, NS2 提供了可选的Xgraphy、可选件Nam。
下面依次说明mflood协议扩展[6]过程,
(1) 图1为NS2文件包的内容:
再打开图1中文件夹ns-2.26。
(2) 将下载的码 (mflood.cc、mflood.h、mflood-packet.h、mflood-seqtable.cc、mflood-seqtable.h) 保存为一个名为mflood的文件夹放到图1的ns-2.26目录下, 并对几个相关的文件进行改动。
修改NS目录下的packet.h文件;修改tcl/lib/ns-packet.tcl, 为新的分组增加一个入口;修改makefile文件, 将*.o文件加入到该文件NS对象文件列表中。在ns-2.26依次运行make clean、make depend和make命令, 如果make过程没有错误提示, 则表示成功添加了mflood新协议。
(3) 下面是一个调用MFLOOD协议的脚本文件mflood-3nodes.tcl:
在终端敲入命令: ns mflood-3nodes.tcl 即可运行此脚本文件。
运行完后, 在与脚本文件相同目录下生成mflood.tr和mflood.nam两个文件。Mflood.tr结果实例如下:
s 10.000000000 -0- AGT ---0 cbr 512 [0 0 0 0] ------ [0:0 2:0 32 0] [0] 0 0
r 10.000000000 -0- RTR ---0 cbr 512 [0 0 0 0] ------ [0:0 2:0 32 0] [0] 0 0
在此列举几个NS自带的常用工具:动画显示工具nam, 图形绘制工具xgraph和gnuplot, 数据处理工具gawk和tracegraph。
(4) 用Java语言或gawk语言编程对仿真得到的trace文件进行处理, 得出所需要得一些统计数据 (如, 丢包率、端到端时延等) 。
(5) 按照步骤 (4) 得出的数据用gnuplot或matlab画图, 通过绘图找出数据的规律, 更直观的分析比较协议的各种性能。
4 结束语
NS2是一个面向对象的网络仿真工具, 它能对软件库中已有元素进行分析, 也能进行新构件的添加扩展进而进行仿真。以AODV协议为例详细介绍了NS2仿真Ad Hoc网络路由协议的具体过程。仅给出了不同的停留时间下的仿真结果, 但对于其它, 如, 不同的运动速度、不同的节点数量、不同的业务源数等情况下的无线自组网协议性能仿真也具有积极的参考价值。
参考文献
[1]罗薇, 罗娟, 彭兵.基于NS-2的无线网络仿真分析与研究[J].电脑知识与技术, 2009 (5) :2576-2578.
[2]康春年.基于NS2的Ad hoc网络仿真研究[J].信息通信, 2008 (5) :12-14.
[3]徐雷鸣, 庞博, 赵耀.NS与网络模拟[M].北京:人民邮电出版社, 2003.
[4]汪国星, 张怡轩.基于NS2的Ad-Hoc网络路由协议仿真[J].计算机与数字工程, 2006 (34) :68-70.
[5]王振中, 关媛, 陆建德, 等.基于NS2仿真平台的Ad-Hoc新路由协议的模拟[J].计算机仿真, 2007, 24 (4) :139-144.
[6]孙祺, 李骐, 高振明.基于NS网络仿真器的研究与扩展[J].网络与计算机技术及应用, 2004, (1) :24-26.
NS2仿真软件 篇2
关键词:NS2,仿真教学,计算机网络
随着网络技术的发展日新月异, 计算机网络实验教学中, 科任老师必须具备与时俱进的教学理念和“因材施教”的教学原则, 科学合理地进行教学课程的更新和调整, 使教学内容和最新的网络技术保持相符合的进度。在新时代中, 计算机网络教学的弊端是显而易见的。
一、NS2简介
NS2是由加州大学伯克利分校开发的一种在UNIX/Linux环境当中的模拟网络环境的软件, 其主要对象是离散事件, 其具有开放性, 且无需付费, 能够应用在网络研究、教学分析等各个方面中, 具有很大的应用价值, 该软件内部具有丰富的构件库, 且带有离散事件的模拟引擎装置, 可以随时掌握协议栈的具体营运状态。它使网络协议、业务类型、路由排队机制等方面的工作得到高度的集中化处理, 还可以高效地解决无线卫星以及多种综合型网络的仿真工作。不断完善网络协议以及链路层的模型的建立, 通过以上举出的例子论证, 搭建实验网络的模型过程中更具有容易的可操作性。它的设计细节相当繁琐, 使用NS2的优势在于以下的几方面。
1. NS2具有强大的快捷性和方便性
在模拟的网路环境中, 实验者都可以很好地监督和控制网络结构中各个层次的结构。使用者主要需要集中精力来研究完成自身实验中的基本元素的构造, 基本上可以忽略其他方面的工作。这样的工作优势在于可以做到具体问题具体分析, 变换网络环境可以更符合实验展开的需要。同时站在不同的角度进行研究实验对象不同方面的性能, 通过各种不同的渠道, 获取更丰富的计算机网络信息资源。利用具体生动专业的语言向学生传授网络概念和原理, 使学生可以提高自身的学习接受能力, 达到学以致用的教学成果。
2. NS2具有强大的经济性和节能性
NS2协议网络仿真软件最鲜明的特征是它不需要花费, 而且开源众多。主要在软件模拟器开展设计工作, 它的功能比无数的电线构架的硬件环境更强大无比。合理地使用NS2, 让学生可以在单机环境中都可以不断反复循环模拟所有网络中的每一个元素, 所以学校只需要立足于原有的网络实验设备的利用, 不需要投入过高的经济成本便可以满足学生的学生需求, 为他们提供高效的网络设计与操作环境。在实验的开展方面, 不需要消耗过大的能源, 却可以达到最理想的实验教学效果。
3. 模拟结果的分析具有精确性和真实性
在模拟结果的分析方面, 具有很大的可操作性。在学校提供的教学平台之下, 得出具体的配置环境参数, 便可以创造出最理想真实的网络环境, 并且可以高效真实地掌握最重要环节的信息, 完整地记录下来, 为接下来的实验环节提供可靠的参考和重要的依据。从不同的渠道中获取快捷的网络性能评价, 同时灵活地解决这过程中会发生的各种问题, 这些工作的操作比真实网络中完成的模拟结果的分析更具有精确性和真实性。
二、NS2的仿真机制的工作程序
NS2仿真技术所包含的层次如下:首先是不断地拓展和丰富OTCL编程的用户层次, 不需要对NS本身再进行任何调整和修改, 只要认真做好编写OTCL仿真脚本的工作就可以了;其二是不断拓展C++和OTCL编程的系统层次, 使NS2内核的功能实行多样化和时效化, C+和OTCL种类会越来越多。我们可以通过OTCL和NS的接口的技术来促进NS的改革和创新。NS2仿真的主要工作程序包括:构建模型、实现模拟的功能、科学地分析实验的结果等。第一步, 我们可以建立虚拟的网络测试环境, 必须明确网络各个节点位置以及连接是否正确, 实行各级代理的科学配置, 还有使各条线路的传输能力更符合实验的进展。最后一步是对仿真结果进行及时高效的跟踪。并且建立相应的文件夹, 根据不断更新的网络性能的参数, 做好相应的保存工作。完成了仿真工作后, NS2肯定会产生若干个跟踪文件, 我们可以利用多种多样的观察器, 对分析的结果进行具体的研究和总结。比如作为一种可视化工具的Nam, 它主要是通过动画的方式向人们展示完整的仿真过程。作为绘图工具的Xgraph或Gnuplot, 它可以通过图形的方式向人们展示具体精确的端时延、丢包率以及吞吐量等性能的资料信息。
三、NS2软件在教学中的应用
传统的无线传感器网络的优势在于需要功耗比较低, 它符合分簇路的特征, 它所建立的是Leach协议。它可以使传感器节点接受到不同强度的信号, 并按照不同强度形成不同的簇。作为路由器的簇头作用在于, 可以快捷地数据传送给基站。当簇头和基站通信保持相同进度的时候, 将有利于扩大全网范围, 减少能源的消耗, 延长全网的生存周期。
1. 软件仿真过程
软件仿真过程很复杂, 首先是生成节点的场景文件。一般场景的文件会命名为NS2 2.28/mit/u AMPS/sims, 它的后缀名是.txt。它的若干个节点的分布都具有随机的特征。在编写其他节点和时间关系的脚本时候, 可以充分利用gawk。一般.alive文件都会体现节点动态的生存的状态, 而且还备注了具体的操作时间。为了得出leach.energy文件中结果, 我们需要利用awk脚本进行编写。最后是总结leach.data中的数据, 快速编写data.awk脚本等。
2. 软件仿真结果
根据图一, 我们可以更明确存活节点数与时间方面的具体联系。在160 S左右的时候会出现死亡节点, 就可以运用算法进行处理。仿真的定义100个节点。所以在之前的160秒的时候, 它节点的数量应该是100, 但是在这过程中会造成节点能源的消耗, 节点数量会在100以下, 所以我们可以根据全图的大体趋势上来观察起伏的情况。图2呈现了网络成功发包率与时间的差异性, 网络的发包率在网络运行中保持稳定的提高趋势, 在390S的时候就消耗了所有的能量, 便不再进行发送数据包的工作。根据仿真结果的研究表明, Leach协议它具有负载均衡的功能, 它的工作是循环渐进的, 选择出簇的第一个节点, 使网络的能量负载的分布更加均匀平衡。
四、结束语
使网络仿真软件NS2在计算机网络教学中得到不断的推广和应用, 通过NS2和Nam工具的动画更直观具体地演示网络协议的运行过程, 使学生更容易理解和掌握学科知识, 解决各种对网络造成影响的因素和条件。使网络概念和原理更富有趣味性, 提高学生的学习兴趣。
参考文献
[1]留岚兰.实验课程设置与创新型人才培养[J].实验技术与管理, 2007, 24 (1) :123-125.
[2]董春玲.NS在网络教学中的应用[J].山东电大学报, 2007 (1) :30-32.
基于NS2的网络仿真研究 篇3
网络的研究者经常需要在进行新协议的开发及验证工作,有些网络软件的测试运行需要很多的节点共同协作才能完成。由于受到技术条件、资源、经费等各方面因素的限制,很难建立实际的网络环境来满足这些应用的需要,事实上,实际网络的复杂性和多样的影响因素,使得一些网络实验的结果并不能给实验者较好的反馈。因此,我们需要能够模拟网络环境,进行虚拟的网络仿真的工具。NS2[1]就是目前用得较多的网络模拟软件。利用它可以非常方便的搭建虚拟的网络环境,进行各种网络仿真的实验。
1. NS2介绍
NS2是由UC Berkeley大学开发出来的免费的源代码公开的网络仿真软件,它运行在UNIX/LINUX环境下。NS2是一个面向对象的、离散时间驱动的模拟器,使用C++和OTcl两种语言作为开发语言。之所以采用这种分裂的对象模型是由于:1、C++语言可以高效快速进行大量的数据处理,这样对于模拟网络中的报文处理、协议的报头等信息的处理是非常重要的。一般情况下,NS2中各种网络协议的实现,网络传输代理等一些网络模拟组件的底层实现都是用C++语言来完成的;2、对于用户而言,模拟网络环境配置(网络节点的类型、拓扑结构等)要求有相当的灵活性来支持用户完成。此时,用OTcl脚本语言可以支持用户采用编写脚本的方式快速的建立网络环境,灵活地进行网络参数的配置。事实上,NS2就是一个OTcl语言的解释器,通过解释OTcl脚本语言,建立对应的OTcl对象,而每一个OTcl对象对和一个C++模块相对应,通过这种方式来进行网络的模拟。NS2中的分裂对象模型如下图所示:
1.1 NS2的安装
NS2主要运行在UNIX/LINUX操作系统之下。若要在WINDOWS下使用NS2,可以采用WINDOWS+Cygwin+NS2的方式。Cygwin是一个在WINDOWS平台上运行的UNIX模拟环境,先安装完Cygwin以后,之后NS2的安装方式与在UNIX LINUX下的安装方式基本一致。但在Cygwin下运行NS2,当网络模拟的规模较大时,容易出现问题,一般不建议采用这种方式使用NS2。以下介绍在LINUX下安装NS2的安装过程。
有两种安装NS2的方式,即:1、单独的安装NS2的所需要的每一个组件。如前所述,NS2的安装需要有Tcl/Tk、Tclcl和OTcl组件的支持,一般而言,许多的LINUX操作系统已经将上述组件安装完成。需要注意的是,NS2的编译安装过程中,需要Tcl/Tk等组件的开发头文件,而许多的LINUX系统中,只安装了Tcl/Tk等组件的最终库文件或可执行程序,并未安装相应开发包的头文件,所以要首先安装这些组件的头文件,比如对于Tcl组件,需要安装Tcl8.xx-dev这样的开发包,这些开发包会将头文件放置在正确的目录下,一般是/usr/include文件夹下。否则编译过程会提示未找到Tcl组件。其中有两个比较重要的组件要安装,一个是用于动画演示数据包传递过程的组件nam,另一个是能作图的软件xgraph。当然,还可以安装其它的作图软件以辅助仿真结果的图形化展示,如gnuplot。2、一站式安装方式,即下载NS2的完全安装包,当前最新版本为ns-allinone-2.35,里面包含了以上的所有组件。对于初学者建议采用第二种安装方式。将安装包解压以后,在解压以后生成的目录中有自动安装脚本install,直接执行./install即可。
NS2的源代码并没有经过各个操作系统平台的严格测试,其自身所带的组件与操作系统本身所安装的库可能会有冲突。所以在安装过程中可能还会遇到各种问题[2],比如函数调用有歧义等问题。所以在安装过程中要查看编译器给出的提示信息,必要时,需要对源代码做出改动。安装完成以后,会生成可执行文件ns2,nam等。源代码文件不要删除,在以后进行网络协议开发等工作时,需要改动相应的C++文件,重新编译生成相应的库文件。
1.2 使用NS2的一般过程
使用NS2进行网络仿真的一般过程如下:
(1)、分析仿真任务,设定本次仿真的网络环境、拓扑等,了解本次仿真要收集哪方面的数据,比如要观察数据包在某个网络环境下的时延还是路由器的丢包率等。
(2)、查看利用NS2提供的现有模块、协议能否满足仿真的要求。如果不能,可能需要对底层的C++模块做修改,进行协议的修改,对NS2进行扩展。事实上,NS2的强大即体现在此处,新协议的开发,验证都可以在NS2里进行。这也是网络研究的难点---除了提出新的协议之外,要验证新协议,还需要对NS2的整体架构熟悉,只有这样,才能将新的协议集成进NS2中。
(3)、编写OTcl脚本搭建网络环境,设定网络的相关参数。得益于NS2的分裂对象模型,用OTcl语言编写仿真脚本。
(4)、进行网络的仿真,仿真的时间,数据文件的名字都可以在仿真脚本里指定。
(5)、对采集得到的数据文件进行分析,得出相应的结果。
2. 一个具体的网络仿真过程
2.1 仿真任务:分析一个网络环境下的数据包的平均传输时延。网络的拓扑结构以及相关的参数设置如下图所示。
如图所示的网络拓扑中,节点n0通过通信链路向节点n4发送TCP数据流,承载的业务数据为FTP数据。给定通信链路的基本参数,分析n0到n4的数据包平均传输时延。
2.2 编写仿真脚本
在图2的网络场景中,所有的网络元素NS2都提供了,不涉及到新的通信协议等内容,所以,并不涉及修改NS2中的C++文件,直接用OTcl语言编写仿真脚本搭建模拟场景。仿真脚本简要如下:
上面的OTcl代码是一个基本的框架。模拟脚本的编写并不复杂,参考一些简单的例子[3],利用NS2提供的网络元素,能比较快的编写仿真脚本。对于不同的网络环境,比如无线网络模拟的场景,需要掌握NS2所提供的无线网络元素。NS2只是网络模拟的工具,工具的使用并不复杂,复杂点在于网络的规划,要模拟的场景,一旦这些问题分析清楚,利用NS2所提供的网络元素能很方便的搭建网络场景。
2.3 对采集的数据进行分析
以2.2中的代码为例,模拟的结果产生两个数据文件,即out.nam文件和out.tr文件。其中out.nam文件记录了相应的数据,用来以动画的形式展示数据发送、接收、丢弃的过程等。如下图展示的即是图2所示的网络模拟过程的动画演示。
在图3中,只是较为形象的查看了数据的传送过程,如果要做定量的分析,如要计算从n0到n4节点的数据包平均传输时延,则需要利用Trace文件中记录的数据。有线网络模拟生成的Trace文件格式记录了每一个分组的调度事件,以下为一个Trace文件的部分内容[4]:
Trace文件中记录了数据包传送事件的类型,如+代表数据进入链路队列,-则代表数据离开链路队列而r则代表目的节点接收到了数据;事件发生的时间、发送节点的id号、接收节点的id号、数据的类型、大小等。
仿真结果的分析就是要解析Trace文件的格式,根据其中记录的数据得出时延、时延抖动、丢包率等性能参数。例如,如果要计算数据传输时延,其计算公式为:D(i)=R(i)-S(i),其中D(i)是第i个数据包的传输时延,R(i)是第i个数据包的接收时间,S(i)是该数据包的发送时间,这些信息都在Trace文件中有记录。如果要计算节点1到节点4的平均传输时延,计算出每个从节点1发送到节点4的数据包的时延,求其加权平均即可。
Trace是文本文件,要从其中提取出数据,最常见的方法是编写awk脚本[5],awk脚本可以非常方便地提取Trace文件中相应数据域的数据,灵活的操作所提取的数据,生成最终需要的结果。
3 结束语
本文给出了安装NS2的注意事项、使用NS2进行网络模拟的一般过程。如果不涉及网络协议的开发,单纯的进行网络仿真,NS2的使用比较简单的。其主要的难点在于要学习的东西较多,如需要了解NS2中提供的众多网络组件、Tcl语言。还需要掌握基本的数据处理工具。要学的知识比较杂。更深一步的内容,则涉及到协议改进,协议开发等,要在NS2上验证新的协议,要求更全面的掌握NS2所提供的各网络组件的功能,NS2的架构等。
参考文献
[1]徐雷鸣,庞博,赵耀.NS与网络仿真[M]北京:人民邮电出版社,2003
[2]The Network Simulator ns-2:Installation Problems,Bug Fixes,and Help[EB/OL]http://www.isi.edu/nsnam/ns/ns-problems.html
[3]NS by Example[EB/OL]http://nile.wpi.edu/NS/
[4]黄化吉,冯穗力,秦丽姣,陆宏治.NS网络模拟和协议仿真[M]北京:人民邮电出版社2010
NS2仿真软件 篇4
关键词:WLAN,隐藏AP,NS2
引言
无线局域网 (Wireless Local Area Networks:WLANs) 是指利用射频 (Radio Frequency:RF) 或是红外线 (Infra Red:IR) 技术, 以无线的方式连接两部或多部需要交换资料的计算机设备。相较于以有线方式所构成的区域网络, 无线区域网络能利用简单的存取架构让使用者透过它, 利用无线的高移动性来应用于各个需要的应用领域之中[1]。
无线局域网中, “隐藏AP”导致网络传输过程中丢包的现象时有发生, 由此会直接导致网络连接的不确定性, 因此解决“隐藏AP”问题已成为无线局域网MAC层协议的主要问题之一。IEEE802.11 DCF是无线局域网最普遍的MAC协议[2]。DCF的RTS/CTS短帧控制机制就是针对此问题设计的。然而, 它有一个基本假设就是所有隐藏AP都在接收方的传输范围内, 也就是说能够成功接收到CTS包。理论分析与实验研究发现当AP发送方到STA接收方的距离大于某一定值时, 此假设不成立, 从而影响到无线网络的性能[3]。本文首先从理论上对WLAN网络中导致的隐藏节点的原因进行研究分析, 然后利用NS2工具模拟了存在隐藏节点时WLAN网络的数据传输过程, 对WLAN网络的部分性能作出了评价, 从而得到了一些影响WLAN网络性能的重要参数。最后文章从应用的角度, 提出了两点建议, 用于改善存在隐藏AP的WLAN网络性能, 作为电信级WLAN网络优化的依据。
1 WLAN隐藏节点
空中的介质线路中包含了信息, 而且会传输到各网络节点。但无线网络的界限比较模糊, 有时候并不是每个节点都可以跟其他节点直接通信。无线传播中的部分参数如下:
传输范围 (TX_range) :可以成功接收帧的通信范围, 取决于发送能量和无线电波传输特性。物理层侦听范围 (PCS_range) :可以检测到该传输的范围, 取决于接受器灵敏度和无线电波传输特性。干扰范围 (IF_range) :在此范围内的节点如果发送不相关的帧, 将干扰接收端的接受并导致丢帧[4]。
(1) 隐藏节点概述
802.11定义中, AP承担起信号传递的作用。在这种机制下, 终端抢占到信道后, 首先向接收方发送RTS报文, 接收方会回应CTS, 因AP回应报文的无线信号会覆盖到BSS下的所有终端。RTS/CTS报文中都包含信道被占用的时间, 协议规定接收到RTS和CTS的终端必须在RTS/CTS报文中要求的时间内认为信道忙, 不能发送数据, 从而解决了隐藏节点的问题。但在实际应用中, 802.11协议将是否使用RTS/CTS门限的权力下放给了每个终端, 由终端自己决定是否使用这个机制, 在实际使用中用户很少会去配置这个功能, 因此RTS/CTS实际效用不大。很多电脑缺省设置为不采用[5]。
(2) 下面是两种出现隐藏节点的情况:
(1) 同一AP下的终端不可见
同一AP所带两个天线分别覆盖两个区域, 两个区域内关联的终端由于距离较远或者屏蔽较重而互相监测不到信号收发, 终端1在向AP发送数据时, 终端2也可能因为监测不到终端1的发射信号而同时向AP发送数据, 这时在AP侧接收无线信号便形成冲突, 如图1。
(2) 同频不可见AP间存在重叠覆盖
同频AP间因连接定向天线或者阻挡不能监测彼此信号, 且存在交叉覆盖范围时, 在交叉覆盖范围内有终端上网时, 同频AP也互为隐藏节点。两个AP存在交叉覆盖区域, 但AP间无法监测到彼此的信号, 即监测部件 (天线) 不在另一AP的覆盖区域内, 在交叉覆盖区域内存在用户时, AP因为无法监测另一个AP的信号发送情况而同时向终端发送数据, 在终端侧形成冲突, 如图2。
值得一提的是, 当两个AP相互间能够侦测彼此信号, 即处于全重叠覆盖状态时, 两者以自由竞争形式占用信道, 即使两AP存在交叉覆盖区域, 干扰区内发生碰撞的机会较小。因此, 工程上在安放AP时, 考虑使两AP处于全覆盖范围内能够有效的提高网络性能。
2 仿真实验及分析
2.1 仿真参数介绍
NS2是起源于1989年由UC Berkeley开发REAL网络模拟器, 使用NS2仿真无线网络环境, 需要设定无线节点的通信范围[6]。无线信号在传递的过程中会衰减, 衰减的幅度与天气、传输距离和穿透介质等因素相关, 当信号到达接收端仍能有足够的强度 (超过信号接收门限RXThresh_) , 就可以被接受。本文中涉及的参数包括信号接收门限RXThresh_, 信号感应门限CSThresh_, TwoRayGround传输模型, 计算RXThresh_的数学模型如下式所示:
式中:P为信号强度;tP为发送功率;tG为发送端天线增益;rG为接收端天线增益;th为发送端天线高度;rh为接收天线高度。NS2中附带的Threshold可根据节点的发射功率和距离等求得节点接收门限以及感应门限值。
2.2 构建仿真模型
基于上述分析, 本文仿真实验的主要任务就是观测半重叠覆盖状态 (存在隐藏节点) 与全重叠覆盖状态 (不存在隐藏节点) 对吞吐量的影响。半重叠覆盖状态时, 设置节点1、2、3之间的距离为100m, 节点之间的监听范围150m, 分组有效传送距离为120m, 仿真环境为500 m x500m的正方形区域, 节点1和2之间建立一条udp连接, 节点1从5.0~20 s以1MB的速率向2发送分组大小为1000 Byte的CBR流, 节点2和3之间也建立一条udp连接, 节点3从10.0~30s以1 MB的速率向2发送分组大小为1000 Byte的CBR流。当设定分组的传送距离为120m时, 利用NS2提供的工具threshold我们可以方便地得到传送功率为0.281838W, 发送频率为9.14×10-8Hz, 发送端天线增益为1, 接收端增益为1, 发送端天线高度为1.5m, 接收端天线高度为1.5m, 节点2的RxThresh要设定为6.88081×10-9w。节点1、3的CSThresh设定为2.81838×10-9w。其他参数不变, 设置节点1、2、3之间的距离为70m, 即节点1, 节点3处于全重叠覆盖状态, 仿真拓扑图如图3。
2.3 仿真结果分析
运行OTCL仿真脚本, 提取trace文件的数据, 计算出网络吞吐量。利用gnuplot绘图工具得出0.0~30s时段, 处于不同重叠覆盖状态下的网络吞吐量曲线图, 如图4:
从图4中可以发现, 在节点处于半重叠覆盖时, 10.0~20s时段, 由于节点1、节点3无法监测到彼此的信号, 同时向节点2发送CBR流, 出现隐藏节点问题, 数据发生碰撞, 网络流量急剧下降。在节点处于全重叠覆盖时, 由于节点1、节点3可监测到彼此的信号, 采用自由竞争的方式向节点2发送CBR流, 隐藏节点问题消失, 所以网络流量比较稳定。因此, 隐藏节点的存在影响了网络性能, 改变节点的覆盖范围可有效的解决隐藏节点问题。
基于以上理论, 在实际应用中, 若AP的覆盖范围过大, 特别是采用室外覆盖时, AP覆盖范围的广泛性将可能直接造成大量的同频不可见状况, 也即是出现隐藏节点问题。此时, 应从两个方面来加以解决:
(1) 对于室内覆盖, 建议将容量作为首要考虑因素, 大型场馆内缩小干扰AP的覆盖范围, 牺牲少量的覆盖范围换取整体网络性能的上升, 采用分布系统的, 控制单AP覆盖范围, 杜绝单AP跨楼覆盖现象。
(2) 对于室外覆盖, 应尽量缩小AP的覆盖范围, 控制小区覆盖中同一AP所带天线覆盖多个楼宇的现象, 基站类覆盖方式控制AP带的天线个数。在同一室外区域部署多张WLAN网络时充分协调频率和覆盖范围, 降低AP发射功率, 调整AP的天线方向角、俯仰角, 避免同频AP交叉覆盖。
3 总结
本文主要对WLAN隐藏AP问题作了理论研究和仿真实验, 考虑了同频不可见现象对网络性能的影响, 并提出了几点解决问题的建议。仿真结果显示隐藏节点对系统的吞吐量有较大的影响, 合理布置AP位置能有效改善网络性能, 对WLAN网络优化具有一定的参考价值。在实际应用中, 同一区域部署多张WLAN网络时应充分协调频率和覆盖范围, 降低AP发射功率, 调整AP的天线方向角、俯仰角, 避免同频AP交叉覆盖, 确保所建WLAN具有良好的网络性能。
参考文献
[1]刘乃安.无线局域网 (WLAN) -原理、技术与应用[M].陕西:西安电子科技大学出版社, 2004:13-14
[2]韩旭东, 曹建海, 张春业.802.11协议关键技术及性能分析[J].现代通信, 2003, 12:12-15
[3]陈文周.WiFi技术研究及应用[J].北京:数据通信, 2008 (2) :21-24
[4]刘俊, 徐晶斌.基于NS的网络仿真探讨[J]计算机应用研究, 2002 (9) :75-78.
[5]伟陵.移动通信中的关键技术[M].北京:北京邮电大学出版社, 2009:41-43
NS2仿真软件 篇5
无线传感器网络是物联网的基本组成部分, 是物联网用来感知和识别周围环境信息的生成和采集系统, 它是由部署在监测区内的许多微型传感器节点, 通过无线通信的方法构成的一个多跳的自组织网络系统, 目的在于协作地感知、采集和处理网络覆盖区域内感知对象的信息, 并且发送给观察者。
虽然无线传感器网络的工作效率很高, 但是由于节点大多需要在无人看管、不更换电池或不可能更换电池等条件下进行长时间的工作, 因而高效率、低功耗的路由算法在无线传感器网络中就显得尤为的重要。
2 LEACH算法及其改进算法
近年来人们在不断地研究路由算法, 提出了各种方案, 在能量消耗和网络生命周期等方面取得了比较大的进展。LEACH算法是路由算法中十分具有代表性的算法, 也是比较成熟的算法。
2.1 LEACH算法
LEACH是第一种基于聚簇式的分层路由协议, 它采用了轮的概念, 在每一轮中采用随机的方式为每个簇选择簇头节点, 然后由簇内节点收集信息, 并汇聚到簇首, 最后再由簇首节点直接发往基站节点BS。LEACH协议的这种方式在一定程度上均衡了各个节点的能量消耗, 但是它由于采用簇首到基站BS单跳的通信方式, 这样就不可避免的造成了作为簇首的节点能量消耗过快, 又因为LEACH选择簇首时采用随机的方式, 而能量消耗过多的节点一旦再被选为簇首, 就有可能在下一轮信息采集中死亡, 从而导致信息采集失败, 进而影响整个网络的功能目标。
2.2 LEACH-C算法
LEACH-C是一种基于LEACH的改进型协议, 它对LEACH的改进有2点:首先簇首选取不再是随机的选取, 而是每个传感器节点先将自身的位置能量信息传输到基站, 由基站规划簇头的产生;其次是簇首到基站BS的通信, 不再是单跳的方式, 而是选择多跳的方式, 这样就可以避免簇首的节点由于长距离通信而造成消耗的能量过大。
2.3 LEACH-E算法
LEACH协议中簇头节点选择算法的缺点在于忽视了每个节点的实际能量, 因此提出了基于簇头节点能量的算法LEACH-E, 通过改进簇头选择操作来克服该缺点。LEACH-E算法考虑了每个节点的能耗, 该能耗影响选择簇头的阈值, 因此有利于能量分布的均衡性。
LEACH-E的主要思想:与LEACH协议不同, 它在选择簇头的过程中, 还考虑节点的能量消耗情况。若节点剩余能量大于网络总的平均能量, 就可以当选为簇头, 从而使能耗分布更加均匀。
3 NS2软件仿真
通过利用NS2仿真工具对LEACH、LEACH-C和LEACH-E协议进行了对比与分析, 仿真及分析结果如下。
3.1 基站的位置位于 (50, 175) 得到的仿真结果
(1) 从仿真结果 (见图1) 来看, LEACH-E生存时间最长, LEACH生存时间次之, LEACH-C网络生存时间最短。由于改进算法LEACH-E结合能量, 进行簇头选择时, 尽量选择剩余能量多的节点充当簇头, 优化了簇头选择, 能进一步延长了网络生存周期。
(2) 从仿真结果 (见图2) 来看, LEACH-E传输的数据包最长, LEACH传输的数据包次之, LEACH-C传输的数据包最短。
(3) 从仿真结果 (见图3) 来看, LEACH-E传输的剩余能量经历的轮数最多, LEACH经历的轮数次之, LEACH-C经历的轮数最少。
3.2 改变基站的位置, 将基站挪到 (0, 0) 的位置
(1) 从仿真结果 (见图4) 来看, LEACH-C生存时间最长, LEACH生存时间次之, LEACH-E网络生存时间最短。
(2) 从仿真结果 (见图5) 来看, LEACH-C传输的数据包最长, LEACH传输的数据包次之, LEACH-E传输的数据包最短。
(3) 从仿真结果 (见图6) 来看, LEACH-C传输的剩余能量经历的轮数最多, LEACH经历的轮数次之, LEACH-E经历的轮数最少。
3.3 仿真结果分析
LEACH-C为LEACH的改进算法, LEACH-C更加适用于基站位于网络边界位置, 当基站位于网络的边界区域, 位于 (0, 0) , 通过网络中存活的节点数的死亡时间, LEACH-C协议比LEACH好。位于中心区域, 通过网络中存活的节点数的死亡时间, LEACH-C的协议比LEACH差。若基站位于节点区域内部, 则LEACH优于LEACH-C, 若位于节点区域外部, 则LEACH-C优于LEACH。这也是改变基站位置进行两次实验的缘由。
从原理上分析, LEACH-C执行的是多跳算法, 如基站位于外部, 由于无簇头的竞争, 簇头由基站指定, 因而更能节省能量。而基站位于内部, 簇首到基站BS的通信, 不再是单跳的方式, 而是选择多跳的方式, 这种通信方式网络的规模较小, 多跳反而加重了网络节点的负担, 因而不如LEACH节省能量。
当基站位于中心区域时, LEACH-E的算法要好于LEACH与LEACH-C。当基站位于边界区域时, LEACH-E的算法要次于LEACH以及LEACH-C。
5 总结
任何网络信息的传输都不可能离开路由协议, 近些年来, 新的适用于WSN的路由协议已经成为WSN研究的热点。而今后研究WSN路由协议的重点将会是对能量有效性、网络周期性、容错性和可扩展性等方面的研究, 国内外对WSN路由协议的研究还处于初步阶段, 因此, 在这方面还有待做进一步的研究。
摘要:文章主要是对路由算法中的LEACH算法以及簇头选举改进方法进行了对比。首先介绍了LEACH协议的基本思想;然后对其改进算法LEACH-C、LEACH-E做了简单说明;最后利用仿真工具NS2对3种协议进行了仿真, 并对仿真结果进行了分析。
关键词:无线传感器网络,LEACH算法,NS2仿真,改进算法
参考文献
[1]孙利民, 李建中, 陈渝, 等.无线传感器网络[M].北京:清华大学出版社, 2005.
[2]王营冠, 王智.无线传感器网络[M].北京:电子工业出版社, 2012.
[3]尚凤军.无线传感器网络通信协议[M].北京:电子工业出版社, 2011.
[4]唐勇, 周天明, 张欣.无线传感器网络路由协议研究进展[J].软件学报, 2006, 17 (3) :410-421.
[5]吴迪, 胡钢, 倪刚, 等.无线传感器网络安全路由协议的研究[J].传感技术学报, 2008, 21 (7) .
[6]沈波, 张世永, 钟亦平.无线传感器网络分簇路由协议[J].软件学报, 2006, 17 (7) :1588-1600.
NS2仿真软件 篇6
Ethernet已经成为局域网的事实标准, 它在局域网市场上的占有率超过90%。随着计算机价格的下降, 组建并运行局域网不是一件非常难的事情。然而, 在网络教学中, 如何去体会和理解局域网中协议的运行机理不是一件容易的事情。
网络仿真是一种使用软件模拟实际网络的运行, 跟踪记录网络运行过程中的各种参数, 对不同类型的数据进行分析, 得出网络性能的评估结果的方法。网络仿真工具多种多样, 其中应用较为广泛的是NS2[1] (Simulation Networkversion2) 。
NS2仿真原理
1.NS2的特点: (1) 采用面型对象、离散事件驱动的仿真方法, 便于对实际网络建模, 仿真效率高, 系统易于扩展。 (2) 采用两种语言即C++和Otcl, 兼顾仿真效率和系统建模的灵活性。可以使用Otcl进行仿真场景配置, 采用C++编写网络组件扩充系统的仿真能力。 (3) 支持802.3Mac协议;可生成指定的业务流;支持链路失败、出错处理。 (4) 仿真结果使用NAM进行动态显示。
2.Ethernet仿真原理
LAN连接实现网络协议栈中低三层的功能:逻辑链路层 (LL) 、介质访问控制层 (MAC) 、物理层。
物理层有两个仿真对象:Channel和Classifier/Mac。Channel仿真共享介质, 并在发送过程中支持MAC对象的介质访问机制;接收时, Classifier/Mac负责将复制包传送给接收的MAC对象。
MAC依赖物理层的功能完成载波侦听、冲突检测和冲突避免等功能, CSMA/CD的所有功能都在MAC对象中实现。
链路层实现排队和地址解析。Queue实现发送队列机制, LL对象实现地址解析。
每个局域网中有一个默认的Lan Router对象, 该对象在局域网初始化时被创建。对于LAN上的每一个节点, 链路层对象 (LL) 有一个指向Lan Router的指针, 它能为局域网上发送的每个包找到目的节点[2]。
Ethernet仿真实现与分析
根据NS2仿真所使用的语言, 仿真分为解释层和编译层。解释层用来配置仿真场景及参数;编译层用来实现仿真元素, 如物理层、链路层、MAC协议等。
1.配置网络场景
图1构架了一个总线型的以太网, 总线上共有0-7号站点, 总线带宽为10Mb, 延时为30ms, 0号节点为发送者, 6号节点为接收者。在二者进行通信的过程中, 分别设定延时为15ms、20ms、25ms、30ms、35ms、40ms时, 改变其带宽, 分别为2Mb、4Mb、6Mb、8Mb、10Mb、12Mb、14Mb, 来分析时延、带宽与吞吐量之间的关系。仿真时间4.5秒。
2.仿真结果分析
仿真结果以两种形式给出, 一种是使用NS提供的动画软件NAM, 可以动态地演示局域网通信的整个过程。
由于LAN只实现了OSI参考模型的低三层功能, 缺少传输层和应用层。在仿真LAN时, 为了仿真数据包在LAN中的传送过程, 仿真实例中加入了9号节点, 它具有传输层功能, 作为0号节点和6号节点通信时的数据源。
第二种仿真结果是以trace文件形式给出。
仿真结束后, 使用grep和gawk数据处理工具对trace文件中的数据进行处理, 得到网络吞吐量随时延和带宽的变化情况如上图2所示。
从图2可以看出, 当总线上延时和带宽分别为10Mb、30m不变时, 0号给6号传送数据, 当设定延时不变时, 随着带宽的增大, 吞吐量会随之增加;但是当带宽的值增加到超过总线上总带宽时, 吞吐量保持不变;当设定带宽值不变时, 网络的吞吐量随着延迟的增加大而减小。
结论
NS2已经成为一个广泛应用的网络仿真工具, 其中集成了大量典型的有线、无线甚至卫星网络下各个层协议, 同时NS2研究者及用户又在对NS2进行不断的修改和完善。NS2的这种开放性, 使得NS2在教育和研究方面有着广泛的应用。
本文使用NS2仿真Ethernet网络的通信过程, 特别是使用NAM工具动态演示了Ethernet的通信原理。通过演示, 可以直观地看到网络协议的行为, 了解各种环境或者因素对网络带来的影响。为了进一步深入研究, 本文通过相关工具对仿真结果进行分析, 给出网络吞吐量与时延、带宽之间的关系。研究的步骤和结果对于仿真技术在网络课程教学中的应用具有一定的借鉴作用。
摘要:本研究了使用NS2仿真Ethernet网络的原理和步骤, 设置LAN仿真场景, 并使用数据处理工具对结果进行分析。分析结果给出网络带宽、延迟对网络吞吐量的影响。研究的步骤和结果对于仿真技术在网络课程教学中的应用具有一定的参考价值。
关键词:网络仿真,局域网,网络课程教学
参考文献
[1]徐雷鸣.NS2与网络模拟[M].北京:人民邮电出版社, 2006, 11.
NS2仿真软件 篇7
目前Internet拥塞控制技术路线有两条:以TCP为核心的基于窗口的端到端闭环控制方式,和在路由器中采用排队算法和数据报丢弃策略进行控制,即IP拥塞控制。 其中排队算法通过决定哪些包可以传输来分配带宽,丢弃策略通过决定哪些包被丢弃来分配缓存。路由器采用的队列调度算法主要包括队尾丢弃算法(Drop-tail)、随机早期检测丢弃算法(RED)、基于类的加权公平队列(CBQ)、加权公平队列(WFQ)等。同时,IETF为解决日益突出的 QoS问题,先后提出了综合服务模型(Int-Serv)和区分服务模型(Diff-Serv)。
本文在考虑实际网络流量组成条件的情况下,用NS2模拟器模拟和分析路由器实施区分服务前后不同队列调度算法的性能表现,以指导实际网络配置和应用。
2 实际网络拓扑及数据分析
实验参考一中等规模校园网,主干1000M,边界路由器CISCO3640,缓冲区大小512KB,与内部中心交换机相连链路1000M,路由器与Internet相连链路100M。内部中心交换机采用CISCO4506三层交换机,缓冲区为2MKB,校园网内部划分20个VLAN。该网络目前有终端1000余台,服务器20台,提供的服务主要有WWW、FTP、DNS、E-MAIL、DHCP、数据库管理系统、视频点播和远程教学等。通过在三层交换机出口对进出校园网所有流量连续采样10天,并对采集数据进行分析。
据所获数据知,应用层各协议按数据流量大小比例依次为:DNS(59.99%)、HTTP(10.86%)、NetBios(SMB)(5.27%)、BOOTP(4.37%),其它如SMTP、FTP、HTTPS、NFS、Telnet等流量较小,其他占19.04%,如图1示。分析可得,UDP和TCP数据包数量比率3:1,总字节数量比率6:1,UDP平均包大小146字节,TCP包平均大小67字节。经统计,此时间段内TCP连结数为1000,网络延迟分布为0-10 ms。
另外,网络中65s-127s的数据包占71.87%,128s-255s的数据包占18.80%,64s的占5.40%,如图2示。以太网数据帧大小64s-1518s,故可判断网络主要由相对较小的数据包组成。这说明网络当中数据包平均包长会随应用变化而变化,当网络应用由以WWW、FTP、TELNET为主转向各种实时应用时,用户数据包统计平均包长会越来越短。
3 仿真实验及结果分析
本文使用NS2模拟器进行实验,模拟路由器采用Drop-tail、RED和CBQ三种算法时所对应的延迟、吞吐量、抖动、丢包率、队列大小变化。CBQ理论上可保证高优先级数据包在拥塞时较少被丢弃,但需交换机或主机将数据帧打上标记,故实施区分服务前比较Drop-tail和RED算法,其后比较Drop-tail和CBQ算法。实验考虑的因素有TCP连结数、TCP和UDP平均包大小、TCP和UDP包数量、整个链路延迟等。
3.1 Best Effort下Drop-tail与RED算法性能比较
实验拓扑如图3示,瓶颈为N2—N3链路,容量100Mbps,延迟5ms,N1-N2间链路容量1000Mbps,延迟1ms。其他链路容量均为100Mbps,延迟2ms。缓存与实际设备相同,N1、N3为2155packets,N2为540packets。源点在0-7ms内随机产生数据包,持续时间200s,主机数量30%发送EF流,70%发送BE流。路由器N2测量器令牌桶参数为[100Mbit/s,20000byte],整形器令牌桶参数为[100Mbit/s,20000byte]。
实验分别在节点N2上实施Drop-tail和RED队列调度算法,并对延迟、吞吐量、抖动、丢包率和队列大小等相关性能参数进行了比较和分析。
*延迟分析
从图4分析可知,相同条件下RED比DropTail延迟更小,且随连结数增加,RED产生延迟变化不大,而Drop-Tail延迟出现大幅增加。
*吞吐量分析
从图5分析可知,相同条件下RED和DropTail吞吐量基本相同,连结数增加时二者吞吐量均随之增加,未出现较大差异。
* 抖动分析
从图6分析可知,相同条件下RED和Drop-Tail延迟抖动基本相同。随着连结数增加,抖动都随之增加,也未出现较大不同。
* 丢包率分析
从图7分析可知,相同条件下RED比Drop-Tail丢包率稍低,随着连结数增加两种算法丢包率均降低。
* 队列大小分析
从图8分析可知,相同条件下RED比Drop-Tail队列长度小,即RED所需缓存更小,RED比Drop-Tail队列大小变化更明显。
综上述,RED较Drop-Tail延迟和队列大小均小,但二者吞吐量、抖动及丢包率基本相同。故若网络对延迟要求不高且路由器有足够缓存,两种算法无本质区别。
3.2 区分服务下Drop-tail与CBQ算法性能比较
实验仍采用图3所示拓扑及表1所示数据,并将源节点和目标节点数据包按区分服务要求进行标记,流量控制采用令牌桶机制。
* 延迟分析
从图9分析可知,相同条件下CBQ和Drop-Tail延迟基本相同,随着连结数增加,二者延迟均增加,无较大区别。
* 吞吐量分析
从图10分析可知,连接数量较少时CBQ比Drop-Tail吞吐量更低,且表现出较大抖动;当连结数增加时,二者吞吐量趋向相同。
* 抖动分析
从图11分析可知,相同条件下CBQ和Drop-Tail延迟抖动基本相同,随着连结数增加二者抖动增加,并未出现较大不同。
* 丢包率分析
从图12分析可知,两种算法连结数为100和300时丢包率基本相同,且300时丢包率略高。但连结数为200时,CBQ比Drop-Tail丢包率明显低,说明两种算法丢包率与UDP和TCP连接比例有密切关系。
* 队列大小分析
从图13分析可知,相同条件下CBQ比Drop-Tail队列稍小,无明显区别。随着连接数增加,队列大小也在增加,且二者区别越来越小。
综上述,区分服务下CBQ算法比较Drop-Tail无明显优势,相反,在TCP连接数较低时CBQ算法吞吐量更低。考虑到CBQ算法的复杂度对路由器造成的影响,Drop-Tail算法性能更优。
4 结论和今后的工作
本文通过对一中等规模局域网流量组成特征的分析,得出了流量组成、大小分布等特征;并使用NS2模拟器模拟实际网络流量组成条件下,路由器在实施区分服务前后不同队列调度算法下性能比较。发现实施前RED算法比Drop-Tail算法的延迟和队列大小均小,但两者吞吐量、抖动及丢包率基本相同,故若网络对延迟要求不高,且路由器缓存足够,两种算法无本质区别;区分服务下CBQ算法较Drop-Tail无明显优势,相反,TCP连接数较低时CBQ算法吞吐量更低。考虑到CBQ算法复杂度对路由器造成的影响,Drop-Tail算法的性能更好。由此可知,在实际设备配置过程中,要充分考虑网络实际流量情况和应用需求,并非所用配置越复杂越好。
本实验中实际流量只从传输层进行了模拟,并未考虑应用层的不同协议组成,这将是进一步研究重点。
摘要:通过对一中等规模局域网流量分析,得出其流量组成、大小分布等特征;使用实际采集数据,用NS2模拟器模拟分析路由器在实施区分服务前后不同队列调度算法下的性能表现,发现了一些新的特征,由这些新特征可知在实际设备配置过程中,要充分考虑网络实际流量和应用需求,并非所用配置越复杂越好。
关键词:网络配置,区分服务,NS2,队列调度算法
参考文献
[1]Will E.Leland Daniel V.Wilson.High Time-Resolution Measurement and Analysis of LANTraffic.Implications for LAN Interconnection[J],july,2004.
[2]武航星,穆德俊,潘文平等.网络拥塞控制算法综述[J],计算机科学,2007.2:17-19.
[3]刘益洪,戴冬梅.TCP/IP协议的拥塞控制策略[J],通信技术,2008.7:15-16.
[4]谭敏生,姚高,常泓等.WSN中基于多路径路由的拥塞控制算法[J],南华大学学报[J],2011.2:34-36