第3章 网络模拟器NS2
表3.1 不同平台对NS2的支持情况
Tcl-TK Pc+Windows Pc+Linux Y Y Y Y Y Y Y Y OTcl TclC Ns Nam Y Y
注:Y——支持,N——不支持。
xgraph cweb N Y Y Y sgb Gt-itm and sgb2ns zlib N Y N Y N Y
表3.2综合比较Windows和Linux对NS2的支持情况
平台特点 优点:界面友好,人性化设计,网络及硬安装过程 未安装Cygwin时模块支持 支持NS2的使用过程 容易引发较多问题,相关帮助文档及可咨询信息较少,解决问题难度较大。 只可用from all the 必选软件模件支持良好,应用程pieces方式安装,块,但对可选Pc+Windows 序丰富。 缺点:代码冗繁,系较为复杂。 安装Cygwin后可模块的支持性差。 统稳定性及自身修用allinone方式安复能力差。 装较为简单。 由于Linux完全开放源代码的特性,可根据需要任意修改源代码。相关帮助文档及论坛较多,可获得的帮助较多,使问题解决较为容易。 优点:源代码开放,可选用from all the 对NS2的必界面友好,网络功能丰富,较稳定。 缺点:应用软件及硬Pc+Linux 件驱动程序缺乏。 pieces或allinone选模块和可方式安装,较为简选模块支持单。 性良好。
NS2的模拟分为两部分:用C.+编写特定网络元素的实现;用OIcl编写模
15
电子科技大学成都学院课程设计论文
拟所需的脚模拟本文件,在文件中使用这些网络元素;二者之间的结合由NS2 负责完成,NS2规定一个固定的步骤,按照规定的步骤去做即可。 NS2可以完成的功能包括:
(1)构建网络拓扑。NS2中网络拓扑是由node和link构成,其中node大 约可被看作是对实现网络底三层设备的一个模拟,link则可被视为是对物理传输链路的模拟。
(2)实现RTP协议的Agent。NS2中,Agent是对某一个网络协议的模拟, NS2预先实现了UDP Agent和TCP Agent以及一些常用网络应用协议的Agent。 (3)加载应用数据流由Application/Traffic来实现。RTP Agent本身已实 现了产生数据流的工作,无须加载Application。
3.2 NS2组成部分
Tclobject在类层次结构中处于最高层,所有其他主要的类都从它派生而来。它有一
个静态链表记录了用户创建的所有对象,每一个对象都有一个唯一的标识,记录了每个对象所属的类名。使用这种公共基类的好处是各种对象可以存储在同一个链表中,使用对象的函数知道如何处理对象和简单地进行强制类型转换以满足自己的需要。
(1)离散事件调度器(Scheduler):调度器是仿真器的心脏,它记录当前时间,调度网络事件链表中的事件。它有一个静态成员变量instance,供所有的类访问同一个调度器,提供函数产生新事件,指定事件发生的时间。
目前NS2支持四种事件调度器,分别为链表式(linked-list)、堆式(heap)、时间队列式(calendar)和实时(real-time)调度器,其中时间队列式为默认的事件调度器。
(2)事件处理器(Handler):Handle是所有处理事件类的基类,它只是一个虚拟函数,每个继承类实现自己的功能。
(3)节点(Node):节点是对实际网络中分布在不同地理位置的主机、交换机、路由器等网络设备的统一抽象,是构成网络拓扑结构的一个重要组成部分。
16
第3章 网络模拟器NS2
(4)链路(Link):链路用来连接节点和路由器。一个节点可以有一条或多条输出链路(如路由器),所有的链路都以队列的形式来管理分组到达、离开或丢弃,统计并保存字节数和分组数。另外还有一个独立的对象来记录队列日志。
(5)代理(Agent):代理是实际产生和消费分组的对象,它们属于传输层实体,运行在端主机,节点的每一个代理自动被赋与一个唯一的端口号(模拟udp/tcp端口),代理知道与它相连的节点,以便把分组转发给节点,它也知道分组大小,业务类型,目的地址。Agent类是各种UDP/TCP实现类的基类,代理被保存在一个称为demux的链表中。
(6)NS对象(NsObject):NsObject是所有网络实体的基类,包括节点、链路、代理,业务记录(Trace)和数据源等。节点、链路、代理同时继承了NsObject和事件处理器类,因为这三种对象要处理多种事件,其他对象则不需要。
(7)匹配器类(Matcher):匹配器类用来标识有实例对象生成的类,用户给出标识匹配器类的关键字,匹配器类返回相应的新建对象。匹配器类被定义成静态的,只允许一个实例对象[]。
4
NS 功能非常强大,由12个模块组成,下面分别介绍各模块的功能:
(1)Tel:Tel提供了一个强有力的平台,可以生成面向多种平台的应用程序、协议、驱动程序等等。它与Wk(toolkit)协作,可生成GUI应用程序,可在【,c、Unix和Macintosh上运行。Tcl还可用来完成与网页相关的任务,或是为应用程序提供强有力的命令语言。
(2)Tk:与Tel协调工作的图形工具包。
(3)OTcl:即MIT Object Tcl,是Tcl/Tk面向对象编程的扩展。
(4)Tel cl:此目录下含tel/C++的接口,vic、vat、ns、rtp—play、和nam都会用到。
(5)NS:NS主体代码,内含一个节点移动产生器、两个传输事件产生器。 (6)TclDebug:Tcl调试工具包。
(7)Nam:即UCB/LBNL Network AniMator,’占与NS协同工作,将NS仿真过程动态表现出来。
(8)Xgraph:Xgraph是X-Windows应用程序,包含交互式测量和绘制和动画效果。 (9)Gt—itm:GT Internetwork Topology Models的简称,产生模拟j nternt网络结构的拓扑图,还提供了一些例子。
17
电子科技大学成都学院课程设计论文
(10)SGB:Standford GraphBase的简称,图形产生器。 (11)Cweb:与网页相关的工具。
(12)zlib:通用数据数据压缩库(data compression library)。对于NS来说Tel,Tk,Otcl,TclDebug,Nam,Xgraph,Gt—itm,SGB,Cweb, zlib等均为现成工具包。
3.3 NS2模拟基本流程
分析问题 否 结果满意? 是 结束 开始 问题定义 修改源码? 是 修改源码 否 重新编译NS 调试 是 编写Tcl脚本 编译通过? 否 执行模拟 分析结果 图3.1 NS2进行网络模拟的基本流程
18
第3章 网络模拟器NS2
17
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库无线Ad Hoc网络中一种多路径路由协议仿真研究 - 图文(5)在线全文阅读。
相关推荐: