网络模拟器ns

网络模拟器ns

ID:20759179

大小:54.50 KB

页数:4页

时间:2018-10-15

网络模拟器ns_第1页
网络模拟器ns_第2页
网络模拟器ns_第3页
网络模拟器ns_第4页
资源描述:

《网络模拟器ns》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、网络模拟器NS摘要随着Inter的迅猛发展,X络模拟占有十分重要的位置。文中探讨和分析了NS-2的结构、功能及其使用方法,最后给出一个实例,具体解释了NS-2的使用方法和用相关工具对输出结果进行处理的方法,得到了预期的模拟结果。关键词X络模拟;NS;应用0引言随着Inter的迅猛发展,X络规模和复杂性的迅速增加,X络研究人员一方面要不断思考新的X络协议和算法,为X络发展做前瞻性的基础研究;另一方面也要研究如何利用和整合现有的X络资源,使X络达到最高效能。无论是哪一方面都需要对新的X络方案进行验证和分析。分析方法的有效性

2、和精确性受假设的限制很大。实验方法的局限在于成本很高,实验床的规模很难做到很大,不能实现X络中的多种通信流量和拓扑的融合。而模拟方法在很大程度上可以弥补前两种方法的不足。NS-2是美国DARPA支持的项目VINT(theVirtualInterNetTested)中的基础和核心部分。由USI/ISI,XeroxPARC,LBNL和UCBerkeley这些美国大学和实验室合作研究开发,其目的在于建立一个X络仿真平台,为X络研究人员提供一系列的仿真工具,来实现新的X络协议的设计和实现。1NS-2体系结构及功能模块1.1NS

3、-2简介NS-2是面向对象的,基于离散事件驱动的X络环境模拟器。它实现了多种X络协议的模拟,如X络协议TCP、UDP,流量源行为,如FTP、Tel、及部分MAC层协议。NS-2用C++和Otcl语言编写而成。它是免费的,开放源代码的,可以很方便地扩展NS-2的功能,将自己开发的新协议模块集成到NS-2环境中。1.2NS-2体系结构NS-2的结构如图1所示。NS-2采用了两级体系结构,为了提高代码的执行效率,NS-2将数据操作与控制部分的实现相分离,事件调度器和基本的X络组件使用C++编写和编译,其主要功能是实现对数据包

4、的处理;NS-2的前端是一个Otcl解释器,主要的功能是对模拟环境的配置、建立。从图1的左下角看,用户利用Otcl库中的模拟对象设计和运行TCL仿真,事件调度器和X络组件通过OTcl链接(tclcl类)和Otcl相关联,这样用户可以在Otcl空间能够方便地对C++对象的函数和变量进行修改与配置。1.3NS-2的功能模块在NS-2中,整个模拟过程由一个名为Simulator的Tcl类来定义和控制的,Simulator类提供了一系列对模拟进行配置的接口,这其中包括选择“事件调度器(eventscheduler)”的接口。进

5、行模拟通常要首先创建一个Simulator类的实例对象,并调用该对象的一系列方法来创建节点(Node)、拓扑(Topology)等模拟所必需的对象。模拟器封装了许多功能模块:节点、链路、分组、代理、流量发生器、应用模拟器等。1)事件调度器:NS-2是一个事件驱动的模拟器,调度器也就成为NS-2的调度中心,主要功能是处理分组(packet)的延迟和充当定时器。从所有事件中选择发生时刻最早的事件执行,调用它的handle函数,把该事件执行完毕,然后从剩余的所有事件中选择发生时刻最早的事件执行,如此反复执行。NS-2只支持单

6、线程,如果有多于一个事件安排在同一时刻,那么会按照事件代码插入的先后次序执行。2)节点(Node):表示端节点和路由器,主要由地址分类器、端口分类器、多播分类器和复制器等模拟组件构成。分类器从逻辑上匹配一个分组,并基于匹配的结果把该分组传递给相应的对象。复制器是生成一个分组的多份拷贝,并把这些拷贝转发到各个订阅了某一多播组G的输出链路。3)链路(Link):用来连接X络节点,所有的链路都是以队列的形式来管理分组的到达、离开和丢弃。主要由DelayLink、Queues和TTLChcker等连接器(Connector)构

7、成。DelayLink构造链路带宽和延迟特征;Queues构造和模拟与该链路相连的路由器的输出缓冲;TTLChcker对该链路的数据包的TTL字段减1操作,并丢弃TTL值为0的数据包。(图2)图2链路4)分组(Packet):是对象间交互的基本单元。由一系列分组头和一个可选的数据空间组成。分组头的结构在Simulator对象创建时就被初始化了,同时每个分组头相对于分组的起始地址的偏移量也被记录下来,提供用户来存取各个头部所包含的信息。5)代理(Agent):代表了X络层分组的起点和终点,并被用于实现如TCP和UDP等X

8、络协议。Agent类支持分组的产生和接收,C++的Agent包含一系列的内部状态变量来表示分组的各个域。Agent可以实现多个层次的协议,对于一些运输层的协议,分组的大小和发送时间通常由Agen提供的应用程序接口(API)来控制,对于在低层使用的Agent(路由Agent),分组的大小和发送时间通常由Agent自己控制。6)流量发

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。