做网站如何把支付宝微信吧,wordpress的mysql,上海网络做网站公司,贷款平台推广代理NS是一种针对网络技术的源代码公开的、免费的软件模拟平台#xff0c;研究人员使用它可以很容易的进行网络技术的开发#xff0c;而且发展到今天#xff0c;它所包含的模块已经非常丰富#xff0c;几乎涉及到了网络技术的所有方面。所以#xff0c;NS成了目前学术界广泛使…NS是一种针对网络技术的源代码公开的、免费的软件模拟平台研究人员使用它可以很容易的进行网络技术的开发而且发展到今天它所包含的模块已经非常丰富几乎涉及到了网络技术的所有方面。所以NS成了目前学术界广泛使用的一种网络模拟软件。在每年国内外发表的有关网络技术的学术论文中利用NS给出模拟结果的文章最多通过这种方法得出的研究结果也是被学术界所普遍认可的此外NS也可作为一种辅助教学的工具已被广泛应用在了网络技术的教学方面。因此目前在学术界和教育界有大量的人正在使用或试图使用NS。 然而对初学者来说NS是非常难于掌握的一般人从学习NS到上手至少需要半年多时间。原因是多方面的一方面NS内容庞杂随软件所提供的手册更新不够快初学者阅读起来非常困难另一方面使用NS还要掌握其它很多必备的相关知识以及相关工具这会使初学者感到无从入手有的使用者可能还不了解网络模拟的过程或是对NS软件的机制缺乏理解这也影响了对NS的掌握。另外不论在国外还是国内还没有一本书能集中回答和解决这些问题这也是NS难于被掌握的一个重要原因。 1、NS2简介 NS2Network 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的脚本解释器它包含仿真事件调度器、网络组件对象库以及网络构建模型库等。事件调度器计算仿真时间并且激活事件队列中的当前事件执行一些相关的事件网络组件通过传递分组来相互通信但这并不耗费仿真时间。所有需要花费仿真时间来处理分组的网络组件都必须要使用事件调度器。它先为这个分组发出一个事件然后等待这个事件被调度回来之后才能做下一步的处理工作。事件调度器的另一个用处就是计时。NS是用Otcl和C编写的。由于效率的原因NS将数据通道和控制通道的实现相分离。为了减少分组和事件的处理时间事件调度器和数据通道上的基本网络组件对象都使用C写出并编译的这些对象通过映射对Otcl解释器可见。 当仿真完成以后NS将会产生一个或多个基于文本的跟踪文件。只要在Tcl脚本中加入一些简单的语句这些文件中就会包含详细的跟踪信息。这些数据可以用于下一步的分析处理也可以使用NAM将整个仿真过程展示出来。 2、使用NS进行网络仿真的方法和一般过程。 进行网络仿真前首先分析仿真涉及哪个层次NS仿真分两个层次一个是基于OTcl编程的层次。利用NS已有的网络元素实现仿真无需修改NS本身只需编写OTcl脚本。另一个是基于C和OTcl编程的层次。如果NS中没有所需的网络元素则需要对NS进行扩展添加所需网络元素即添加新的C和OTcl类编写新的OTcl脚本。 假设用户已经完成了对NS的扩展或者NS所包含的构件已经满足了要求那么进行一次仿真的步骤大致如下 1开始编写OTcl脚本。首先配置模拟网络拓扑结构此时可以确定链路的基本特性如延迟、带宽和丢失策略等。 2建立协议代理包括端设备的协议绑定和通信业务量模型的建立。 3配置业务量模型的参数从而确定网络上的业务量分布。 4设置Trace对象。NS通过Trace文件来保存整个模拟过程。仿真完后用户可以对Trace文件进行分析研究。 5编写其他的辅助过程设定模拟结束时间至此OTcl脚本编写完成。 6用NS解释执行刚才编写的OTcl脚本。 7对Trace文件进行分析得出有用的数据。 8调整配置拓扑结构和业务量模型重新进行上述模拟过程。 NS2采用两级体系结构为了提高代码的执行效率NS2 将数据操作与控制部分的实现相分离事件调度器和大部分基本的网络组件对象后台使用C实现和编译称为编译层主要功能是实现对数据包的处理NS2的前端是一个OTcl 解释器称为解释层主要功能是对模拟环境的配置、建立。从用户角度看NS2 是一个具有仿真事件驱动、网络构件对象库和网络配置模块库的OTcl脚本解释器。NS2中编译类对象通过OTcl连接建立了与之对应的解释类对象这样用户间能够方便地对C对象的函数进行修改与配置充分体现了仿真器的一致性和灵活性。 3、NS2的功能模块 NS2仿真器封装了许多功能模块最基本的是节点、链路、代理、数据包格式等等下面分别来介绍一下各个模块。 1事件调度器目前NS2提供了四种具有不同数据结构的调度器分别是链表、堆、日历表和实时调度器。 2节点node是由TclObject对象组成的复合组件在NS2中可以表示端节点和路由器。 3链路link由多个组件复合而成用来连接网络节点。所有的链路都是以队列的形式来管理分组的到达、离开和丢弃。 4代理agent负责网络层分组的产生和接收也可以用在各个层次的协议实现中。每个agent连接到一个网络节点上由该节点给它分配一个端口号。 5包packet由头部和数据两部分组成。一般情况下packet只有头部、没有数据部分。 4、NS2的软件构成 NS2包含Tcl/Tk, OTcl, NSTclcl。其中Tcl是一个开放脚本语言用来对NS2进行编程Tk是Tcl的图形界面开发工具可帮助用户在图形环境下开发图形界面OTcl是基于Tcl/Tk的面向对象扩展有自己的类层次结构NS2为本软件包的核心是面向对象的仿真器用C编写以OTcl解释器作为前端Tclcl则提供NS2和OTcl的接口使对象和变量出现在两种语言中。为了直观的观察和分析仿真结果NS2 提供了可选的Xgraphy、可选件Nam。 5、NS现有的仿真元素 从网络拓扑仿真、协议仿真和通信量仿真等方面介绍NS的相应元素 1网络拓扑主要包括节点、链路。NS的节点由一系列的分类器Classifier如地址分类器等组成而链路由一系列的连接器Connector组成。 2在节点上配置不同的代理可以实现相应的协议或其它模型仿真。如NS的TCP代理发送代理有TCPTCP/RenoTCP/VegasTCP/Sack1TCP/FACKTCP/FULLTCP等接收代理有TCPSINKTCPSINK/DELACK。TCPSINK/SACK1TCPSINK/SACK1/DELACK等。此外还提供有UDP代理及接收代理Null负责通信量接收、Loss Monitor通信量接收并维护一些接收数据的统计。 3网络的路由配置通过对节点附加路由协议而实现。NS中有三种单播路由策略静态、会话、动态。 4在链路上可以配置带宽、时延和丢弃模型。NS支持Drop-tailFIFO队列、RED缓冲管、CBO包括优先权和Round-robin 调度。各种公平队列包括FQSFQDRR等。 5通信量仿真方面NS提供了许多通信应用如FTP它产生较大的峰值数据传输Telnet则根据相应文件随机选取传输数据的大小。此外NS提供了四种类型的通信量产生器EXPOO根据指数分布On/Off产生通信量在On阶段分组以固定速率发送Off阶段不发送分组On/Off的分布符合指数分布分组尺寸固定POO根据Pareto分布On/Off产生通信量它能用来产生长范围相关的急剧通信量CBR以确定的速率产生通信量分组尺寸固定可在分组间隔之间产生随机抖动Traffic Trace根据追踪文件产生通信量。 转载于:https://www.cnblogs.com/lungeer/articles/2447747.html