资源描述:
《ns体系结构及其扩展》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第21卷 第8期计 算 机 仿 真2004年8月 文章编号:1006-9348(2004)08-0179-04NS体系结构及其扩展魏蛟龙,肖艳华,张弛(华中科技大学电信系,湖北武汉430074)摘要:网络仿真是进行网络组建设计和网络性能评估时的一项重要的工作,而网络仿真软件是网络性能理论分析、评估网络设计方案以及网络故障诊断的有力工具。随着网络规模的增大,各种网络方案和协议日趋复杂,对于网络研究人员而言,仿真技术在现代通信网络设计中的作用越来越大。该文着重探讨网络仿真免费软件NS,首先分析了NS网络仿真器的体系结构,并对其两级类层次结构作了详细说明,然后介绍了如何在N
2、S环境下开发用户自己的仿真对象,对网络进行更加自主的仿真。关键词:网络;仿真;网络仿真软件;接口中图分类号:TP393文献标识码:AArchitectureofNSandItsExtendingWEIJiao-long,XIAOYan-hua,ZHANGChi(TheEIDepartmentofHUST,WuhanHubei430074,China)ABSTRACT:NetworkSimulationisveryimportantindesigningnetworkandevaluatingtheperformanceofnetwork,andthenetworksim
3、ulatorisamuchpowerfultool.Simulationisplayingthemoreandmoreimportantroleindesigningmoderntelecommunicationnetworkduetoincreasedcomplexityandscaleofnetworks.Atfirst,thispaperanalyzedthearchitectureofNSsimulator,describedthedetailsofmainclasses.Then,thepaperexplainedhowtodevelopuser′sownob
4、jectsunderNSenvironment.KEYWORDS:Network;Simulation;NetworkSimulator(NS);Interface1 前言之不多,因此,本文所做的工作对利用NS进行网络研究的科在网络迅速膨胀的今天,网络研究人员一方面要不断思研人员来说无疑是有帮助的。考新的网络协议和算法,为网络发展做前瞻性的基础研究;另一方面也要研究如何利用和整合现有的网络资源,使网络2NS体系结构达到最高效能。无论是哪一方面都需要对新的网络方案进NS鼓励用户对其进行扩展,它是一个开放、免费使用的[1]行验证和分析,网络仿真无疑提供了一个方便、高效的验软
5、件。NS软件体系提供的基本抽象是“可编程组合”。仿真[4]证和分析方法。网络仿真是使用计算机技术构造网络拓扑、程序动态地把对象组合到任意的仿真配置中。实现网络协议的模拟网络行为。它能获取特定的网络特性2.1NS构成参数,进而可对网络性能进行研究和分析,达到改善网络运目前,NS提供了大量仿真环境的元素,如仿真器、节点行状况的目的。它包括网络拓扑仿真、协议仿真和通信量仿和分组转发、链路和延迟、队列管理与分组调度、代理、时钟、真,模拟网络流量在实际网络中传输、交换等的过程。分组头及其格式、局域网等;提供了丰富的数学支持,如随机[2][3]NS是一个面向对象的仿真工具,既能进行
6、现有网络数产生、积分等;提供方便的追踪和监视方法等;同时也提供元素的仿真分析,又是一个开发新协议、新方案的工具,尤其完整的路由支持,如单播/组播路由、动态/静态路由、层次路是它具有进行各种网络性能仿真的能力同时又是免费的软由等。NS软件是一个软件包,包括Tcl/Tk,OTcl,NS,Tclcl。件,对广大国内网络研究人员的意义是显而易见的。然而,其中Tcl是一个开放脚本语言,用来对NS进行编程;Tk是Tcl目前国内介绍和研究NS的文献较少,许多研究人员对NS知的图形界面开发工具,可帮助用户在图形环境下开发图形界面;OTcl是基于Tcl/Tk的面向对象扩展,有自己的类层次
7、结基金项目:湖北省自然科学基金(No.99J041、No.2001ABB104)。构;NS为本软件包的核心,是面向对象的仿真器,用C++编收稿日期:2003-10-03写,以OTcl解释器作为前端;Tclcl则提供NS和OTcl的接口,—179—使对象和变量出现在两种语言中。MyAgent建立联系,具体代码如下:NS的设计者在开发这个软件时,他们希望能向用户提classMyAgent:publicAgent{供最大的自由度而不影响到系统的性能,因而NS使用的仿public:真语言针对不同的仿真功能,提供了C++和OTcl两种编程MyAge