网络性能的仿真+ns2
ns2-25工作原理
ns2-25工作原理
NS2是一个用于网络仿真的工具,它的工作原理涉及到网络模拟、数据包传输、路由算法等多个方面。
NS2使用离散事件驱动的
仿真引擎,能够模拟网络中各种节点之间的通信和数据传输过程。
它可以模拟各种不同类型的网络,包括有线网络和无线网络,以及
各种协议和路由算法。
NS2的工作原理主要包括以下几个方面:
1. 网络拓扑建模,用户可以通过NS2的编程接口定义网络拓扑
结构,包括节点之间的连接关系、链路的传输特性等。
2. 事件驱动仿真,NS2使用事件驱动的仿真引擎,通过模拟时
间的推进来触发各种网络事件,如数据包的发送、接收、路由表的
更新等。
3. 数据包传输模拟,NS2可以模拟数据包在网络中的传输过程,包括数据包的封装、路由选择、传输延迟等。
4. 路由算法模拟,NS2内置了多种常见的路由算法,用户可以
通过配置来选择不同的路由算法,并观察它们在网络中的表现。
5. 性能分析与评估,NS2可以对网络仿真过程中产生的数据进行统计分析,包括吞吐量、延迟、丢包率等性能指标的评估。
总的来说,NS2通过对网络中各种事件的仿真和模拟,帮助用户了解和评估不同网络设计和路由算法的性能表现,从而指导实际网络的部署和优化。
它在学术研究和网络性能分析方面有着广泛的应用。
基于NS2的网络仿真
课设(三):基于NS2的网络仿真一、课程设计目的1、理解NS2的基本概念;2、熟悉安装NS2的实验环境和基本操作;3、仿真分析UDP通信协议;4、学会生成NS2的Tcl脚本及仿真结果分析;二、课程设计原理1、UDP协议(1)协议概述UDP是User Datagram Protocol的简称,中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联)参考模型中一种无连接的传输层协议,它主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成,提供面向事务的简单不可靠信息传送服务。
(2)协议功能描述UDP在IP数据报的头部仅仅加入了复用和数据校验(字段),UDP首部字段由4个部分组成,其中两个是可选的。
各16位的源端口和目的端口用来标记发送和接受的应用进程,因为UDP不需要应答,所以源端口是可选的,如果源端口不用,那么置为零。
在目的端口后面是长度固定的以字节为单位的长度字段,用来指定UDP数据报包括数据部分的长度。
由于缺乏可靠性,UDP应用一般必须允许一定量的丢包、出错和复制。
由于UDP协议缺乏拥塞避免和控制机制,需要基于网络的机制来减小因失控和高速UDP流量负荷而导致的拥塞崩溃效应。
UDP协议只在IP的数据报服务之上增加了很少的功能,这就是端口的功能(有了端口,运输层就能进行复用和分用)和差错检测的功能。
另外,UDP协议应用程序可以是客户机,也可以是服务器程序,不必向TCP协议应用程序那样必须分别建立客户机程序和服务器程序。
在远程控制软件中,如果在局域网内部传输屏幕信息,则使用UDP协议比较容易实现。
但UDP协议不提供可靠性,它的可靠性是交给其他网络设备来解决。
同时用UDP协议来传输的数据一般较小,它需要IP协议来为它对数据进行分段。
2、NS2概述NS2(Network Simulator version2,网络仿真软件第二版)是一种面向对象的网络仿真器,本质上是一个离散事件模拟器。
基于NS2的局域网性能仿真
NS2网络仿真实验
NS2网络仿真实验实验目的:通过修改NS2的TCP协议代码,来简单的观察窗口阈值的不同算法对网络资源利用率的影响。
实验步骤:1. 实验环境搭建(1)系统环境:虚拟机:virtrulbox;操作系统:linux/ubuntu 10.04工作目录:/home/wangtao/workspace/(2)NS2安装与使用:下载NS2软件包到工作目录,地址/sourceforge/nsnam/ns-allinone-2.33.tar.gz解压(注:以下斜体字为命令行命令)tar -zxf ns-allinone-2.33.tar.gzcd ns-allinone-2.33./install(中间的两个bug已经修改,此处忽略)耐心等待安装完毕后将出现如下画面说明安装正常:接下来是系统环境配置,重新进入终端cd ~vim .bashrc(如果没有安装vim最好安装一下,sudo apt-get install vim)在打开的.bashrc的末尾加上以下内容:PATH="$PATH:/home/wangtao/worksapce/ns-allinone-2.33/bin:/home/wangtao/worksapce/ns-a llinone-2.33/tcl8.4.18/unix"exportLD_LIBRARY_PATH="$LD_LIBRARY_PAHT:/home/wangtao/worksapce/ns-allinone-2.33/otcl-1.13,/ home/wangtao/worksapce/ns-allinone-2.33/lib"exportTCL_LIBRARY="$TCL_LIBRARY:/home/wangtao/worksapce/ns-allinone-2.33/tcl8.4.18/library"保存并退出,重新进入终端安装xgraphsudo apt-get install xgraph运行一个简单的例子,以证明环境安装完成:ns /home/wangtao/workspace/ ns-allinone-2.33/tcl/ex/simple.tcl出现如下图说明成功:2.修改代码vim /home/wangtao/workspace/ns-allinone-2.33/tcp/(将窗口阈值一半变为的窗口阈值1/3——wt_)第一处:……if (cwnd_ < ssthresh_)slowstart = 1;if (precision_reduce_) {//halfwin = windowd() / 2; //wangtaohalfwin = windowd() / 3;第二处:……} else {int temp;//temp = (int)(window() / 2);//wangtaotemp = (int)(window() / 3);halfwin = (double) temp;……第三处:……switch (how) {case 0:/* timeouts *///ssthresh_ = int( window() / 2 );//wangtaossthresh_ = int( window() / 3 );if (ssthresh_ < 2)ssthresh_ = 2;cwnd_ = int(wnd_restart_);break;case 1:……第四处……case 4:/* Tahoe dup acks *///ssthresh_ = int( window() / 2 );//wangtaossthresh_ = int( window() / 3 );if (ssthresh_ < 2)ssthresh_ = 2;cwnd_ = 1;break;default:abort();……3.编写tcl代码,实现一个简单的3节点,2条链路的网络网络如下图,具体代码见附件中的源代码。
网络仿真器NS-2及其一个应用实例
NS- 2 的最大的优点是其 源代码 全部公 开, 是 一个开 放 的仿真平台, 用户可以根据自己的需 求编写相 应的模块加 入 到 NS- 2 的模块中去, 从而实现 NS- 2 的功能扩展。 3. 1 模块编写
用户应该根据目标模块的功能, 详细分析 编译层的类 层 次结构, 然后确定类 的继承 关系。例 如用 户通过 Agent 类 创 建了一个新类 MyAgent, 代码如下: class MyAgent : public Agent { public :
Network Simulator NS- 2 and Its Application
WU Shi- hao, LIN Qing- hua, XU Bu- gong
( South China University of Technology, Guangzhou Guangdong 510640 , China)
4) 代理( Agent) : 负载网络层分组 的产生 和接收, 也可 以 用在各个层次的协议实现中。Agent 类包含 源及目 的节点 地 址、分组 类型、大小、优先 级等状 态变量, 并利 用这些 状态 变 量来给所产生的分组的各个字段赋值。每个 Agent 连接到 一 个网络节点上( 一般是端节点) , 由该 节点给它分 配一个端 口 号。Agent 是实现 UDP 协议及各种版本 TCP 协议的基类。
通常情况下, 模 拟器模 拟工 作的开 始, 就是 通过 创建 一 个 Simulator 类的实例后开始的。simulator 类可以 看成是对 整 个仿真器的封装, 含成员类 node、link、agent、package、LAN 等。
我们从创建一个仿真器的实例对象开 始, 通 过这个仿 真 器调用各种方法 生成 节点, 进而 构造 拓扑 图, 对仿真 的各 个 对象进行配置, 定义事件, 然后根据定义的 事件, 模拟整个 网 络活动的过程。在创建模拟器对象时, 在构造函 数中同时 也 创建一个该模拟器的事件调度器( Event Scheduler) 。
ns2的基本功能和用法。
ns2的基本功能和用法。
NS2是一款广泛使用的离散事件网络仿真器,它可以用来模拟网络协议、网络拓扑结构、传输层协议等各种网络方面的问题。
在本文中,我们将会详细介绍NS2的基本功能和用法,让您了解如何使用这个强大的工具来开展网络仿真和探索。
第一部分:NS2的简介NS2全称Network Simulator 2,是一款免费且开源的网络仿真平台,它可以运行于Linux和Windows操作系统。
NS2是C++编写的,它是由一个模块化的体系结构构建而成的。
NS2可以帮助你模拟和测试各种网络协议和技术,包括但不限于TCP/IP、WiFi、无线通信、移动通信、卫星通信等。
NS2的基本组成部分包括:- OTcl:OTcl是一个面向对象的Tcl解释器,它被用来编写NS2的脚本文件。
它可以帮助您表示仿真模型以及控制仿真场景和参数。
- C++代码:NS2的模拟核心是由C++编写的,它包含了底层的网络协议处理逻辑和数据结构。
- Trace:NS2的Trace模块可以记录仿真过程中所有的事件和消息交换。
我们可以通过Trace来分析仿真结果,并对仿真场景进行可视化。
总结NS2是一个开源且强大的网络仿真器,它的核心部分是由C++编写而成的。
NS2可以帮助您模拟和测试各种网络协议和技术,并提供一个强大的OTcl 脚本语言来控制和配置仿真模型。
第二部分:NS2的基本功能NS2提供了很多强大的功能,如下所示:1. 拓扑结构模拟NS2可以帮助我们模拟各种网络拓扑结构,例如星型、树形结构、层次结构等。
通过定义节点、连接和协议,我们可以很容易地构建复杂的拓扑结构,并进行仿真和测试。
2. 参数设置和控制通过OTcl脚本,我们可以轻松地配置和控制仿真模型。
我们可以设置各种参数,例如发送速率、仿真持续时间、节点位置等等。
此外,我们还可以通过设置事件触发器来控制仿真场景的流程。
3. 模拟协议NS2可以帮助我们模拟各种协议,例如TCP、UDP、ICMP等。
基于NS2的网络仿真实验教学研究-最新教育文档
基于NS2的网络仿真实验教学研究网络的发展日新月异,作为电气信息类和计算机类专业的核心专业课――计算机网络,需要教师在教学的过程中不断更新和追踪最新网络技术,以更加适应“计算机网络”教学的要求。
但目前计算机网络教学中存在两个方面的突出问题,首先,缺少必要的实验设备。
像路由器、网关等实验设备比较昂贵,一般的院校无法为学生配备,只能在教学的过程中安排较多的演示,学生无法更好地通过真正的实验环境亲自动手来理解和掌握网络通信原理、锻炼网络工程应用能力[1]。
其次,网络技术和产品的更新换代速度非常快,像近年来无线网络技术飞速发展,对于想学习和研究无线网络的学生而言,再依靠原有局域网环境已无法验证无线网络协议的正确性以及对无线网络性能进行直观、可靠的测试。
因此,尝试将网络仿真软件NS2(Network Simulator Version 2)运用到计算机网络课程教学中,利用NS2,特别是Nam 工具的动画演示可以清晰地向学生演示网络协议的运行过程。
通过NS2进行教学,学生可以直观的看到网络协议的行为,了解各种环境或因素对网络的影响,将抽象的网络概念形象化,把枯燥的网络原理具体化。
1NS2原理和结构NS2是由加州大学伯克利分校(University of California at Berkeley)开发的一种面向对象的、离散事件驱动的网络环境模拟器。
NS2是一款源代码开放且免费的模拟软件,是用于教学、网络研究与分析等方面的网络模拟工具,它内含离散事件模拟引擎,构件库丰富,可以构建并仿真分析整个协议栈的运行情况,也可使用自带的Nam 动画演示程序来观察网络的运行效果,它集成了多种网络协议(如TCP、UDP),业务类型(如FTP、Telnet、Web、CBR等),路由排队机制(如Droptail、RED),路由算法(如Dijkstra算法)可以对固定、无线、卫星以及混合等多种网络进行仿真,实现了绝大多数常见的网络协议以及链路层的模型,利用这些类的实例可以搭建起整个网络的模型。
网络仿真器NS-2及其一个应用实例
NS- 2 是 一个具有仿真事件驱 动、网 络构件 对象库 和网络 配
置模块库的 Otcl 脚本解释器。NS- 2 中编译 类对象通过 Otcl
连接建立了与之对应的解释类对象, 这样用户 可以在 Otcl 空
间能够方便地对 C+ + 对象的 函数和 变量进 行修改与 配置, 充分体现了仿真器的一致和灵活性。 2. 3 NS- 2 的功能模块
本文要介绍的是目前应用较 为广泛的 网络仿 真软件 NS - 2( Network Simulator) , 它是由 UC Berkely 大学开 发的一个 基 于事件驱动的仿真器。它能近乎真实地模 拟网络环 境, 让 我 们可以在各个层次上模拟网络的运行。
2 NS- 2 结构和功能
2. 1 NS- 2 简介 NS- 2 是 面向对象的, 基 于离散 事件驱 动的网 络环境 模
3) 链路( Link) : 由 多个组 件复 合而成, 用来 连接 网络 节 点。所有的链路都是以队列的形式来管理 分组的到 达、离 开 和丢弃。在链路中增加了 Trace/ EnqT 、Trace/ DeqT、Trace/ DrpT 以及 Tracer/ RecvT 等对象可以跟踪每个数据包到达、进入、离 开队列以及被丢弃的时间; 还可以用队列监视 器( Queue Mon itor) 来监测队列长度和平均队长的变化情况。
用户使用 NS- 2 实现tcl 源 程序来初始 化一个事 件 调度器, 定义网络拓扑结构, 配置业务源, 确定 发送和接受 传 输数据包的时间, 然后启动 NS- 2 仿真器。
2) 运行仿真程序。 3) 仿真结果分析: 程序运行 结束后, 用户根据记录 模拟数 据的文档, 利用 NS- 2 中的可视化仿真软件 NAM 动态 查看仿 真的运 行过 程、观察 跟 踪数 据, 或 使用 Linux 中的 Xgraph 或 Windows 下的 Origin 等软件将结果转换成带有坐标的平面图。
浅析Opnet,Ns2,Matlab网络仿真工具
浅析Opnet,Ns2,Matlab网络仿真工具【摘要】网络仿真可以有效提高网络规划和设计的可靠性和准确性,明显地降低网络投资风险,减少不必要的投资浪费。
本文就常见的三种网络仿真工具(OPNET、NS2及MATLAB),从它们的基本情况及特点进行了分析。
【关键字】网络仿真;OPNET;NS2;MATLAB引言随着网络结构和规模越来越复杂化以及网络的应用越来越多样化,单纯地依靠经验进行网络的规划和设计、网络设备的研发以及网络协议的开发,已经不能适应网络的发展,因而急需一种科学的手段来反映和预测网络的性能,网络仿真技术应运而生。
网络仿真可以有效提高网络规划和设计的可靠性和准确性,明显地降低网络投资风险,减少不必要的投资浪费。
各种网络仿真工具在此背景下应运而生。
本文就常见的三种网络仿真工具(OPNET、NS2及MATLAB),从它们的基本情况及特点进行了分析。
基本情况及特点分析1.OPNETOPNET公司最初只有一种产品OPNET Modeler,到目前已经拥有Modeler、ITGuru、SPGuru、WDMGuru、ODK等一系列产品。
对于网络的设计和管理,一般分为3个阶段:第1阶段为设计阶段,包括网络拓扑结构的设计,协议的设计和配置以及网络中设备的设计和选择;第2阶段为发布阶段,设计出的网络能够具有一定性能,如吞吐率、响应时间等等;第3阶段为实际运营中的故障诊断、排错和升级优化。
而OPNET公司的整个产品线正好能面向网络研发的不同阶段,即可以作网络的设计,也可以作为发布网络性能的依据,还可以作为已投入运营的网络的优化和故障诊断工具。
OPNET公司也是当前业界智能化网络管理分析解决方案的主要提供商。
OPNET的主要特点:层次化的网络模型。
使用无限嵌套的子网来建立复杂的网络拓扑结构。
简单明了的建模方法。
Modeler建模过程分为3个层次:过程(process)层次、节点(Node)层次以及网络(Network)层次。
网络仿真器NS2剖析NetworkSimulatorV2
用命令的方法 ❖ EmbeddedTcl类:封装了装载更高级别的内置命令
的方法 ❖ InstVar类:访问C++成员变量,如Otcl变量方法
Tcl类
❖ 获得访问Tcl实例的入口 ❖ 通过解释器调用Otcl过程 ❖ 与解释器交换结果 ❖ 报告出错状况,并以统一方式退出 ❖ 存储、查找TclObject类对象 ❖ 取解释器的句柄
❖ 类TclClass是一个纯虚类,从它派生的 子类需实现两个成员函数:其一是构造 函数,构造解释类层次来镜像编译类层 次;其二是生成函数,生成与之相对应 的TclObjects对象 。
❖ 流程图
TclCommand类
❖ 类TclCommond的作用就在为解释器提供全 局命令
❖ 由TclCommand的定义知道,它是一个虚基 类,必须派生子类,才能工作。
tcpgen.tcl
Nam与Xgraph
❖ 图形显示工具 ❖ Nam <filename.out>:动态显示网络仿真过
程。如:包的传输等等 ❖ Xgraph <filename.tr>:显示仿真过程的数值
特征。如:流量/时间图等
四、NS2的使用
❖ 命令行方式:敲入一个命令,返回一个结果 输入命令: %/ns-version 返回版本号: ns /2.0a12
❖ Base classifier是一虚基类 ❖ address classifier:支持独播,通过位移和掩码将
包的目的地址转化成槽的号码。 ❖ multicast classifier:保持一个哈希链表,匹配地址
基于NS2的网络仿真
基于NS2的网络仿真1 引言在计算机网络技术迅速发展的今天,网络科研人员需要开发新的网络协议,为网络发展做开拓性的研究;网络设计人员需要研究如何利用现有的资源,使设计的网络达到最高效能。
无论哪一方面,都需要对网络方案进行分析和评价。
通过网络仿真,能对各组件的行为进行较精确的模拟,获得足够数据对系统的性能进行较准确的预测。
NS2(Network Simulator, version 2)是由美国加州Lawrence Berkeley 国家实验室等单位开发的开源免费网络仿真软件。
NS2仿真器的功能非常强大,可扩展性强,执行效率高,目前已广泛应用于局域网、广域网、无线移动网和卫星网络的仿真。
2 NS2简介NS2是一种面向对象的网络仿真器。
从整体上可以将NS2分成三个部分,其中两个部分是提供给用户的接口,另外一部分是核心仿真器。
用户接口1主要由Tcl/Tk、OTcl扩展解释器构成,用户通过使用TCL/TK、OTcl脚本语言,编写网络仿真脚本文件。
脚本语言直观、简洁,用户无需过多了解核心仿真器的内部机制就可以使用NS2。
核心仿真器NS2使用C++代码编写,利用了C++面向对象的机制。
Tclcl提供了NS2与Tcl/Tk、OTcl解释器的连接。
用户接口2是指NAM、Xgraph之类的图形显示工具,仿真器执行用户编写的仿真脚本文件,将运行结果加以记录,随后将记录文件交由NAM程序可视化地显示。
3 NS2的使用与安装3.1 NS2的使用NS2网络仿真可以分为两个层次:一个是基于OTcl脚本编程的层次。
因为是利用NS2已有的网络元素实现网络仿真,所以这时不需要对NS2本身进行任何修改,只要编写Otcl脚本即可;另一个层次是基于C++和OTcl编程的层次。
如果NS2中没有所需的网络元素,这时就需要对NS2进行功能扩展,添加新的网络元素,然后再编写OTcl脚本。
使用NS2进行网络仿真的过程归纳为:(1)分析要解决的问题,设计仿真拓扑结构和仿真模型;(2)编写OTcl脚本;或扩展NS2类,再重新编译NS2,然后编写OTcl脚本;(3)用NS2运行OTcl脚本,通过NAM等工具查看网络仿真过程,对仿真结果进行分析。
NS2仿真实验分析报告
NS2仿真实验分析报告一引言1 NS2简介NS2是一款开放源代码的网络模拟软件,最初由UC Berkeley开发。
它是一种向象的网络模拟器,它本质上是一个离散事件模拟器,其本身有一个模拟时钟,所有的模拟都由离散事件驱动。
其采用了分裂对象模型的开发机制,采用C++和OTcl两种语言进行开发。
它们之间采用Tclcl 进行自动连接和映射。
考虑效率和操作便利等因素,NS2将数据通道和控制通道的实现相分离。
为了减少分组和事件的处理时间,事件调度器和数据通道上的基本网络组件对象都使用C++编写,这些对象通过Tclcl映射对OTcl解释器可见。
目前NS2可以用于模拟各种不同的通信网络,它功能强大,模块丰富,已经实现的主要模块有:网络传输协议,如TCP和UDP;业务源流量产生器,如FTP、Telnet、CBR、We b和VBR;路由队列管理机制,如DropTail、RED和CBQ;路由算法;以及无线网络WLAN、移动IP和卫星通信网络等模块,也为进行局域网的模拟实现了多播协议以及一些MAC子层协议。
2 基本概念(1)RED:随机早期探测(Random Early Detect,RED)。
RED属于主动队列管(Active Queue Management, AQW),是目前常见的TCP上防止拥塞的手段。
它通过以一定概率丢失或标记报文来通知端系统网络的拥塞情况。
RED使用平均队列长度度量网络的拥塞程度,然后以线性方式将拥塞信息反馈给端系统。
RED使用最小阈值,最大阈值和最大概率等几个参数。
RED的基本思想是通过监控路由器输出端口队列的平均长度来探测拥塞,一旦发现拥塞逼近,就随机地选择连接来通知拥塞,使它们在队列溢出导致丢包之前减少拥塞窗口,降低发送数据速度,缓解网络拥塞。
RED配置在路由器监视网络流量以便避免拥塞,当拥塞即将发生时,它随机丢弃进来的分组,而不是等到队列缓冲区满是才开始丢弃所有进来的分组,这样可以最少化全局同步的发生。
计算机网络ns2实验报告
课程:计算机网络项目:实验4 ns2 实验一、实验目的安装并运行网络仿真器NS2,了解其功能模块及配套工具的使用,掌握利用NS2进行网络仿真的方法,为进一步的网络系统性能分析设计创造良好的条件。
二、实验原理NS2(Network Simulator version 2,网络仿真软件第二版)是一种面向对象的网络仿真器,本质上是一个离散事件模拟器。
最早来源于1989年哥伦比亚大学开发的Real Network Simulator项目,是一款开源免费的网络模拟软件。
由加州大学伯克利分校(UC Berkeley)开发而成。
它本身有一个虚拟时钟,所有的仿真都由离散事件驱动的。
目前NS2 可用于仿真各种不同的通信网络。
已经实现的仿真模块有:网络传输协议,如TCP 和UDP;业务源流量产生器,如FTP、Telnet、Web CBR 和VBR;路由队列管理机制,如Droptai、RED和CBQ;路由算法,如Dijkstra,以及无线网络的WLAN,Ad hoc路由,移动IP 和卫星通信网络等。
NS2也为进行局域网的仿真而实现了多播以及一些MAC子层协议。
NS2使用C++和OTcl作为开发语言。
NS2可以说是OTcl的脚本解释器,它包含仿真事件调度器、网络组件对象库以及网络构建模型库等。
事件调度器用于计算仿真时间,并且激活事件队列中的当前事件,执行一些相关的事件,网络组件通过传递分组来相互通信,但这并不耗费仿真时间。
所有需要花费仿真时间来处理分组的网络组件都必须要使用事件调度器,它先为这个分组发出一个事件,然后等待这个事件被调度回来之后,才能做下一步的处理工作。
事件调度器的另一个用处就是计时。
由于效率的原因,NS2将数据通道和控制通道的实现相分离,为了减少分组和事件的处理时间,事件调度器和数据通道上的基本网络组件对象都使用C++写出并编译的,这些对象通过映射对OTcl解释器可见。
三、实验内容(1)安装ns-allinone-2.35(2)NS2仿真示例-nam方式四、实验结果与分析:建立一个OTcl脚本文件set ns [new Simulator] /建立对象$ns color 1 Blue /设定颜色$ns color 2 Redset nf [open out.nam w] /打开跟踪文件$ns namtrace-all $nfproc finish {} { /定义结束过程global ns nf$ns flush-traceclose $nfexec nam out.nam &exit 0}set ns0 [$ns node]set ns1 [$ns node]set ns2 [$ns node]set ns3 [$ns node]$ns duplex-link $ns0 $ns2 1Mb 10ms DropTail$ns duplex-link $ns1 $ns2 1Mb 10ms DropTail$ns duplex-link $ns3 $ns2 1Mb 10ms DropTail$ns duplex-link-op $ns0 $ns2 orient right-down$ns duplex-link-op $ns1 $ns2 orient right-up$ns duplex-link-op $ns2 $ns3 orient right$ns duplex-link-op $ns2 $ns3 queuePos 0.5set udp0 [new Agent/UDP] /建立代理UDP $udp0 set class_ 1$ns attach-agent $ns0 $udp0set cbr0 [new Application/Traffic/CBR]$cbr0 set packetSize_ 500$cbr0 set interval_ 0.005$cbr0 attach-agent $udp0set udp1 [new Agent/UDP]$udp1 set class_ 2$ns attach-agent $ns1 $udp1set cbr1 [new Application/Traffic/CBR]$cbr1 set packetSize_ 500$cbr1 set interval_ 0.005$cbr1 attach-agent $udp1set null0 [new Agent/Null] /建立代理NULL$ns attach-agent $ns3 $null0$ns connect $udp0 $null0$ns connect$udp1 $null0$ns at 0.5 "$cbr0 start" /传送数据$ns at 1.0 "$cbr1 start"$ns at 4.0 "$cbr1 stop"$ns at 4.5 "$cbr0 stop"$ns at 5.0 "finish" /调用结束过程$ns run /仿真结果如下:实验分析:系统从n0开始传送数据实验分析:系统从n1开始传送数据实验分析:采用FIFO机制丢包,丢弃n0发送的数据包(3)代码:set ns [new Simulator]set f0 [open out0.tr w]set f1 [open out1.tr w]set f2 [open out2.tr w]for { set i 0 } { $i<5 } {incr i} {set n$i [$ns node]}$ns duplex-link $n0 $n3 1Mb 100ms DropTail$ns duplex-link $n1 $n3 1Mb 100ms DropTail$ns duplex-link $n2 $n3 1Mb 100ms DropTail$ns duplex-link $n3 $n4 1Mb 100ms DropTailproc finish {} {global f0 f1 f2close $f0close $f1close $f2exec xgraph out0.tr out1.tr out2.tr -geometry 800x400 & exit 0}proc attach-expoo-traffic { node sink size burst idle rate } { set ns [Simulator instance]set source [new Agent/UDP]$ns attach-agent $node $sourceset traffic [new Application/Traffic/Exponential]$traffic set packetSize_ $size$traffic set burst_time_ $burst$traffic set idle_time_ $idle$traffic set rate_ $rate$traffic attach-agent $source$ns connect $source $sinkreturn $traffic}proc record {} {global sink0 sink1 sink2 f0 f1 f2set ns [Simulator instance]set time 0.5set bw0 [$sink0 set bytes_]set bw1 [$sink1 set bytes_]set bw2 [$sink2 set bytes_]set now [$ns now]puts $f0 "$now [expr $bw0/$time*8/1000000]"puts $f1 "$now [expr $bw1/$time*8/1000000]"puts $f2 "$now [expr $bw2/$time*8/1000000]"$sink0 set bytes_ 0$sink1 set bytes_ 0$sink2 set bytes_ 0$ns at [expr $now+$time] "record"}set sink0 [new Agent/LossMonitor]set sink1 [new Agent/LossMonitor]set sink2 [new Agent/LossMonitor]$ns attach-agent $n4 $sink0$ns attach-agent $n4 $sink1$ns attach-agent $n4 $sink2set source0 [attach-expoo-traffic $n0 $sink0 200 2s 1s 100k]set source1 [attach-expoo-traffic $n1 $sink1 200 2s 1s 200k]set source2 [attach-expoo-traffic $n2 $sink2 200 2s 1s 300k]$ns at 0.0 "record"$ns at 10.0 "$source0 start"$ns at 10.0 "$source1 start"$ns at 10.0 "$source2 start"$ns at 50.0 "$source0 stop"$ns at 50.0 "$source1 stop"$ns at 50.0 "$source2 stop"$ns at 60.0 "finish"$ns run结果如下:实验分析:三条数据流的峰值分别为0.1Mbit/s, 0.2Mbit/s,0.3Mbit/s五、实验总结在nam辅助分析工具中发现ftp1在零秒开始启动,ftp2在第三秒时刻开始启动,都在第十秒停止,这符合设计目标。
网络仿真与NS-2简介1
GloMoSim is a library written by Parsec.
GloMoSim的层次与功能 GloMoSim
Application Layer Transport Layer Network Layer MAC Layer Radio Layer Channel Layer PROPAGATION-MODEL BANDWIDTH MAC-PROTOCOL NETWORK-PROTOCOL ROUTING-PROTOCOL TRANSPORT-PROTOCOL MOBILITY
/nsnam/index.php/Main_Page
NS-2的历史
NEST (Network Simulation Testbed) REAL (Realistic and Large) NS-1 NS-2 1989: REAL network simulator 1995: DARPA VINT project (Virtual InterNetwork Testbed) at LBL, Xerox PARC, UCB, and USC/ISI Present: DARPA SAMAN(Simulation Augmented by Measurement and Analysis for Network) project and NSF CONSER(Collaborative Simulation for Education and Research) project.
OPNET的特性(续)
混合建模机制:把基于包的分析方法和基于统计的 混合建模机制 数学建模方法结合起来,既可得到非常细节的模拟 结果,也大大提高了仿真效率。 丰富的统计量收集和分析功能:它可以直接收集常 丰富的统计量收集和分析功能 用的各个网络层次的性能统计参数,能够方便地编 制和输出仿真报告。 网管系统、流量监测系统的接口:能够方便的利用 网管系统、流量监测系统的接口 现有的拓扑和流量数据建立仿真模型,同时还可对 仿真结果进行验证。
计算机专业学年论文—基于NS2 的网络仿真与性能分析
学年论文题目:基于NS2 的网络仿真与性能分析学院:计算机科学与工程学院专业:计算机科学与技术班级:学生姓名:学号:指导教师:二零一三年六月六日基于NS2 的网络仿真与性能分析摘要近几年来,网络结构的复杂化和应用的多样化,为网络系统的分析和设计提出了新的挑战,计算机网络的运行行为是不可见的,为了能够实时了解网络的运行效能,网络仿真是可靠手段。
采用先进的网络模拟工具NS2 对端到端网络进行了模拟仿真以及多方面的性能测试,测试包括端到端延迟、抖动、丢包率以及网络吞吐量等参数。
实现了网络模型的动态生成、数据传输的动画模拟、实时数据的计算以及运行结果呈现,给出了在NS2 平台上执行仿真的原理和方法,并对仿真结果进行了具体的分析。
关键字:NS2,网络仿真,时延,抖动,丢包率,吞吐量Network Simulation and Performance Analysis Based on NS2AbstractIn recent years, the complicated network structure and diversification of applications, for the analysis and design of the network system poses new challenges and run behavior of the computer network is not visible, in order to understand network performance in real time, is a reliable means of network simulation. Advanced network simulation tool NS2 simulation on end-to-end network and a number of performance tests, tests include end-to-end latency, jitter, packet loss and network throughput parameter. Implements a network model of dynamic animation generated, data transfer, data calculation in real time, and run results, gives a principle and method of execution on the NS2 simulation and analysis of the results of the simulation are specific.Key words:NS2, network simulation,time delay, jitter, frame-loss ratio,throughput目录第一章引言 (4)第二章基于NS2 的网络仿真与性能分析 (5)2.1 网络仿真简介 (5)2.1.1 网络仿真的特点 (5)2.2 基于 NS2 的网络仿真 (6)2.2.1 仿真步骤 (6)2.2.2 环境的建立与配置 (6)2.2.3 模拟运行 (7)2.2.4 性能分析 (8)结束语 (11)参考文献 (12)第一章引言近几年来,随着网络结构和规模的复杂化以及网络的应用的多样化,单纯依靠经验进行网络的规划规划和设计、网络设备的研发以及网络协议的开发已经不能适应网络的发展;网络仿真很好地满足了这种需求。
NS2概述
setdest
NSG2 产生有线网络及无线网络的剧本(目前尚不支持无线及有线混合 的剧本) 支持的Node种类︰WirelessNode及WiredNode 支持WirelessNode的移动设定 支持的Link种类︰Duplex-link及Simplex-link Agent支援(TCP、TCP/Tahoe、TCP/Reno、TCP/Newreno、 TCP/Vegas、TCPSink、UDP及NULL) 支持的Application种类:CBR及FTP 支持的Routing protocol种类︰DSDV、DSR、AODV及TORA 支持的Queue种类︰DropTail、RED、FQ、DRR、SFQ及CBQ 无线网络相关设定 802.11参数设定(NSG提供一组802.11b的预设参数)
设置trace文件
建立节点和链路
set n0 [$ns node] set n1 [$ns node] $ns duplex-link $n0 $n1 1Mb 10ms DropTail set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ 0.005 $cbr0 attach-agent $udp0 set null0 [new Agent/Null] $ns attach-agent $n1 $null0 $ns connect $udp0 $null0
定义类MFloodHeaderClass:public PacketHeaderClass
计算机网络ns2仿真实验分析(RED、丢包率、端到端延迟、吞吐量)附源码
$ftp attach-agent $tcp $ftp set type_ FTP
#Setup a UDP connection set udp [new Agent/UDP] $ns attach-agent $n1 $udp set null [new Agent/Null] $ns attach-agent $n3 $null $ns connect $udp $null $udp set fid_ 2
#Monitor the queue for link (n2-n3). (for NAM) $ns duplex-link-op $n2 $n3 queuePos 0.5
#Setup a TCP connection set tcp [new Agent/TCP] $tcp set class_ 2 $ns attach-agent $n0 $tcp set sink [new Agent/TCPSink] $ns attach-agent $n3 $sink $ns connect $tcp $sink $tcp set fid_ 1
#Open the NAM trace file set nf [open out.nam w] $ns namtrace-all $nf set nd [open out.tr w] $ns trace-all $nd
#Define a 'finish' procedure proc finish {} {
目前 NS2 可以用于模拟各种不同的通信网络,它功能强大,模块丰富,已经实现的主 要模块有:网络传输协议,如 TCP 和 UDP;业务源流量产生器,如 FTP、Telnet、CBR、Web 和 VBR;路由队列管理机制,如 Droptail、RED 和 CBQ;路由算法;以及无线网络 WLAN、 移动 IP 和卫星通信网络等模块。也为进行局域网的模拟实现了多播协议以及一些 MAC 子层 协议。 2. 基本概念
基于NS2的网络仿真与性能测试
E p r n s s w a sn 2 t e e wo k p ror a c r mee sh s a v n g s s c s i t i v rla l l w o t fe i l d x ei me t ho t tu i g NS o g t t r f m n epa a tr a d a t e , u h a n u t e,ei b e,o c s , lx b e a h n e a i n r l be, a y t o ae. r m x p e t si g a d v ffn i t o s u eu1 e i l e s o c mp r F o a e a l ,e t a m n n e i g t s me h d i s f . i h Ke r s n t r i l t n;o s r t d ly;h o g p t y wo d : e wo k smu a i l s a e; e a t r u h u o
NS e wo k smu a o r e s t r d c e o d , s e a 2 n t r i l t n p o s o p i c o u e r c r s u e t wk, n p o d o e o l t b mn t e n t r e f r a c a a t r . h g u l ta t r t o s o o t e wo k p ro n e p r mee s n h h m
t n p o e s T e u e i 2 t i lt n n t r . e a i s t b an t e n t r f o n c a a t r . h o g h a y i o i r c s . h n, s d t e NS o smu ai ewo k s n ro o o ti e wo k p o l o c h e ma e p r me e T r u h t e a l ss f s n
基于NS_2软件的网络仿真设计与分析 (1)
网络通讯与安全电脑知识与技术在网络规模迅速膨胀的今天,网络设计研究人员一方面需要不断研究新的协议和算法,为网络发展做出前瞻性的研究,另一方面也要考虑如何整合、利用现有的资源,使网络运行达到最高效能。
网络仿真软件是进行网络性能分析、网络设计方案评估的有力工具,它能够实现网络拓扑仿真、协议仿真和通信量仿真,从模拟的网络行为中获取各项网络性能参数,掌握网络的运行情况,进而对网络性能进行综合分析,发现网络瓶颈,优化网络结构[1]。
在众多的网络仿真软件中,NS-2是一种扩展性良好、使用广泛的免费仿真软件。
1NS-2仿真软件概述NS-2是NetworkSimulator(版本2)的缩写,它产生于1989年,1995年DARPA通过VINT(VirtualInternetNetworkTestbed)项目给予资助,目前由USC/ISI,XeroxPARC,LBNL和UCB等机构共同开发。
现在,NS以其对网络协议的广泛支持,强大而简便的二次开发能力等特性,在网络研究领域得到广泛应用。
NS-2有多种平台下的版本,包括Unix、Linux和Windows[2],目前的最新版本为2.28,可以从“http://www.isi.edu/nsnam/dist/”免费下载。
1.1NS-2的体系结构NS-2仿真软件是一个软件包,包括Tcl/Tk,OTcl,NS,Tclcl等组件[3]。
其中Tcl是一种脚本语言,基于它对仿真过程进行编程;Tk是Tcl的图形界面开发工具;OTcl是基于Tcl/Tk的面向对象的扩展语言;NS是用C++实现的面向对象的仿真器;Tclcl提供C++和OTcl的接口,能够对各种网络实体和协议,构造出分裂的对象模型,即一个对象同时有C++和OTcl的两种实现。
组件Xgraph用来显示通信数据的流量,组件Nam用来动态的观察仿真过程。
图1是NS-2的体系结构,除了前面提到的各个组件之外,还用C++实现了事件调度器(Scheduler)和多种网络实体。
毕业论文无线网络中多媒体信息传输的NS2仿真
摘要无线网络中多媒体信息传输的NS2仿真在无线多媒体通信系统中,视频信源在发送端按照一定的编码方式进行编码,形成视频帧,然后在网络层和传输层封装成IP数据包,再经过无线信道传输到达接收端,在接收端进行解包和恢复,得到视频帧,再形成重建后的视频流。
在此过程中,无线信道的传输特性会影响到视频的传输质量.本文在利用Evalvid 工具的基础上,综合NS2仿真工具,建立研究多媒体信息在无线网络中传输的平台。
在视频流仿真方面,本文采用了将视频流的Trace 文件引入NS仿真环境的方法,来模拟实际网络传送的视频流,并在tcl程序代码中设定G-E模型的参数变量,这样就可以得到经模拟网络传输后数据包的收发情况,并对无线信道对多媒体信息传输质量的影响进行评估。
实验中采用的网络拓扑结构为无线局域网拓扑结构。
仿真结果表明,由于无线信道特性的不理想,在接收端恢复视频信息与视频信源相比较,会出现一定的失真。
本文还综合利用多种工具对视频信息的质量变化进行评估,如数据封包的时延、视频的PSNR值、可解画面比例及原始图像和重建后的图像的差异等。
关键词:无线网络;多媒体信息;网络仿真;AbstractThe Simulation Of Multimedia Information Transmission in Wireless Network Video information are encoded by a certain means in the sending end among the system of wireless-multimedia communication,informing the video frames,and then they was encapsulated in the network layer and the transmission layer。
Before they reach the sink,they transmit across the wireless channel,and now they are download and renew,getting the new frames,which inform the rebuided video stream.Among this course,the characteristic of wireless channel could affect the quality of video transmission.Based the useage of Evalvid tool and integrated ns2 simulation tool,we construct the platform for researching the transmission of multimedia in wireless network。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一:网络性能的仿真一、实验要求1)对64个计算机结点,每个计算机采用若干100Mbps集线器(HUB)的方式连接到一台服务器上。
采用NS2仿真软件,对于以上的具体环节进行网络性能的仿真,给出网络的吞吐量,丢包率,总时延,抖动率等参数的仿真曲线,并对结果进行分析。
2)将以上环境中的集线器(HUB)换成交换机(switch),给出网络的信道利用率,吞吐量,传输时延,排队延迟等参数的仿真曲线,并对结果进行分析。
二、实验目的通过本次实验的完成,首先能够学会在Ubuntu环境下安装搭建NS2运行的环境。
其次对于tcl语言有了更加全面的了解。
通过对具体环境的网络环境进行仿真,可以加深对网络的信道利用率,吞吐量,传输时延,排队延迟等参数的计算及了解。
最后通过仿真环境中集线器(HUB)和交换机(Switch)之间的仿真的区别,加深对HUB和交换机之间差别的理解。
三、实验原理1、NS2( Network Simulator version 2),NS(Network Simulator)是一种针对网络技术的源代码公开的,免费的软件模拟平台。
计算机网络是一个相当复杂的系统,包含了各种通信协议和网络技术,而网络仿真是网路通信技术研究的重要手段之一,网络仿真是指采用计算机软件对网络协议,网络拓扑,网络性能进行模拟分析的一种研究手段。
NS2是一种面向对象的网络仿真器,本质是一个离散事件模拟器,它可以仿真各种不同的IP网,实现一些网络传输协议,比如TCP和UDP,还包括业务源流量产生器,比如FTP,CBR等。
NS2使用C++和Otcl作为开发语言。
NS可以说是Otcl的脚本解释器,它包含仿真事件调度器、网络组件对象库以及网络构建模型库等。
NS是用Otcl和C++编写的。
由于效率的原因,NS将数据通道和控制通道的实现相分离。
为了减少分组和事件的处理时间,事件调度器和数据通道上的基本网络组件对象都使用C++写出并编译的,这些对象通过映射对Otcl解释器可见。
当仿真完成以后,NS将会产生一个或多个基于文本的跟踪文件。
只要在Tcl脚本中加入一些简单的语句,这些文件中就会包含详细的跟踪信息。
这些数据可以用于下一步的分析处理,也可以使用NAM将整个仿真过程展示出来。
NS2 软件仿真出的nam图界面如图1所示:图1 nam界面NS2仿真软件生成的trace文件如图2所示:图2 NS2仿真生成的trace文件每一行记录的格式如表1所示:event time FromnodeTonodePkttypepktsizeflags fidSrcaddrDstaddrpktid表1 trace文件每一行的格式解释如下:event:时间描述符,一共有4个,分别为人r,+,-,d 其中r(received)表示数据包被to_node 接收,+(enqueued)表示数据包进入from_node的队列,-(dequeued)表示数据包离开(from_node)的队列,d(dropped)表示数据包被from_node丢弃。
time:时间发生的时间。
From_node/to_noed:事件发生的起始结点。
Pkt_type:数据报的类型。
Pkt_size:数据包的大小。
Flags:数据包的标志字段。
Fid:流标识,标明该数据包属于哪一个数据流。
Src_addr/dst_addr:数据包的源地址和目的地址。
Seq_num:数据包的序列号。
Pkt_id:数据包的唯一标识。
2、集线器(HUB)是计算机网络中连接多个计算机或其他设备的连接设备,是对网络进行集中管理的最小单元。
英文HUB就是中心的意思,像树的主干一样,它是各分支的汇集点。
许多种类型的网络都依靠集线器来连接各种设备并把数据分发到各个网段。
HUB基本上是一个共享设备,其实质是一个中继器,主要提供信号放大和中转的功能,它把一个端口接收的全部信号向所有端口分发出去。
集线器有多种类型,各个种类具有特定的功能、提供不同等级的服务。
依据总线带宽的不同,HUB分为10M、100M和10M/100M自适应三种;根据端口数目的不同主要有8口、16口和24口几种。
交换机(Switch),它是集线器的升级换代产品,从外观上来看的话,它与集线器基本上没有多大区别,都是带有多个端口的长方形盒状体。
交换机是按照通信两端传输信息的需要,用人工或设备自动完成的方法把要传输的信息送到符合要求的相应路由上的技术统称。
广义的交换机就是一种在通信系统中完成信息交换功能的设备。
交换机除了能够连接同种类型的网络之外,还可以在不同类型的网络(如以太网和快速以太网)之间起到互连作用。
如今许多交换机都能够提供支持快速以太网或FDDI等的高速连接端口,用于连接网络中的其它交换机或者为带宽占用量大的关键服务器提供附加带宽。
它是一个网络设备,拥有路由器的一部分功能,它可以决定接收到的数据向什么地方发送,它的速度比路由器要快。
交换机和集线器的主要区别在于以下几方面:1)集线器属于OSI的第一层物理层设备,而交换机属于OSI的第二层数据链路层设备。
也就意味着集线器只是对数据的传输起到同步、放大和整形的作用,对数据传输中的短帧、碎片等无法进行有效的处理,不能保证数据传输的完整性和正确性;而交换机不但可以对数据的传输做到同步、放大和整形,而且可以过滤短帧、碎片等。
2)集线器的工作机理是广播(broadcast),无论是从哪一个端口接收到什么类型的信包,都以广播的形式将信包发送给其余的所有端口,由连接在这些端口上的网卡(NIC)判断处理这些信息,符合的留下处理,否则丢弃掉,这样很容易产生广播风暴,当网络较大时网络性能会受到很大的影响。
从它的工作状态看,HUB的执行效率比较低(将信包发送到了所有端口),安全性差(所有的网卡都能接收到,只是非目的地网卡丢弃了信包)。
而且一次只能处理一个信包,在多个端口同时出现信包的时候就出现碰撞,信包按照串行进行处理,不适合用于较大的网络主干中。
交换机的工作就完全不同,它通过分析Ethernet包的包头信息(其中包含了原MAC地址、目标MAC地址、信息长度等),取得目标MAC地址后,查找交换机中存储的地址对照表(MAC地址对应的端口),确认具有此MAC地址的网卡连接在哪个端口上,然后仅将信包送到对应端口,有效的有效的抑制广播风暴的产生。
3)集线器不管有多少个端口,所有端口都是共享一条带宽,在同一时刻只能有二个端口传送数据,其他端口只能等待,同时集线器只能工作在半双工模式下;而对于交换机而言,每个端口都有一条独占的带宽,这样在速率上对于每个端口来说有了根本的保障。
当二个端口工作时并不影响其他端口的工作,同时交换机不但可以工作在半双工模式下而且可以工作在全双工模式下。
4)集线器只能采用半双工方式进行传输的,因为集线器是共享传输介质的,这样在上行通道上集线器一次只能传输一个任务,要么是接收数据,要么是发送数据。
而交换机则不一样,它是采用全双工方式来传输数据的,因此在同一时刻可以同时进行数据的接收和发送,这不但令数据的传输速度大大加快,而且在整个系统的吞吐量方面交换机比集线器至少要快一倍以上,因为它可以接收和发送同时进行,实际上还远不止一倍,因为端口带宽一般来说交换机比集线器也要宽许多倍。
3、网络性能分析包括对信道利用率,吞吐量,传输时延,排队延迟等参数的分析。
信道利用率公式:)12(1121000-+=++==-A a T N T T T S R av ττ 0T a τ= 参数a 是总线的单程传播时延与帧的发送时延之比。
A 为某个站发送成功的概率。
网络吞吐量是指在某个时刻,在网络中的两个节点之间,提供给网络应用的剩余带宽。
即在没有帧丢失的情况下,设备能够接受的最大速率。
网络吞吐量可以帮组寻找网络路径中的瓶颈。
本次实验中所指的吞吐量为平均吞吐量,定义为单位时间内目的节点接收到的比特数。
端到端时延(end-to-end delay )是指IP 数据包从源结点发送到目的结点所需的时间。
计算公式为接收数据包的时间-源端发送数据包的时间。
平均时延的计算公式为呗接收数据包的时延之和/被接收数据包的个数。
丢包率的计算公式为丢失的数据包个数、总共发出的数据包个数。
抖动率就是延迟时间变化量,由于网络的流量随时都在变化,当流量大的时候,许多封包就必须在结点的队列中等待被传送,因此每个封包从传送端到目的地端的时间也不一定会相同,而这个不同的差异就是所谓的抖动率。
抖动率越大,则表示网络越不稳定。
四、 仿真过程本次实验中,队列管理机制采用双向连接,分别在交换机和集线器两种不同的组网条件下,进行仿真实验。
首先是1对结点分别以2、4、8Mbp 的速率双向收发UDP 数据。
实验中共产生三种不同速率的cbr数据流,分别为cbr1,cbr2,cnr3,速率分别为2、4、8Mbp。
实现双向收发,则需建立两条UDP通信协议,用起始和结束时间来控制数据流,此时只控制一对计算机结点进行通信。
具体代码实现如下:#在第10秒改变时的数据流cbr1set cbr1($i) [new Application/Traffic/CBR]$cbr1($i) attach-agent $udp($i)$cbr1($i) set type_ CBR$cbr1($i) set packet_size_ 1000$cbr1($i) set rate_ 2mb$cbr1($i) set random_ false#在第20秒改变时的数据流cbr2set cbr2($i) [new Application/Traffic/CBR]$cbr2($i) attach-agent $udp($i)$cbr2($i) set type_ CBR$cbr2($i) set packet_size_ 1000$cbr2($i) set rate_ 4mb$cbr2($i) set random_ false#在第30秒改变时的数据流cbr3set cbr3($i) [new Application/Traffic/CBR]$cbr3($i) attach-agent $udp($i)$cbr3($i) set type_ CBR$cbr3($i) set packet_size_ 4000$cbr3($i) set rate_ 8mb$cbr3($i) set random_ falsefor {set i 0} {$i <1} {incr i}{$ns at 0.0 "$cbr1($i) start"$ns at 0.0 "$cbr1([expr $i+34]) start"$ns at 1.0 "$cbr1($i) stop"$ns at 1.0 "$cbr1([expr $i+34]) stop"}for {set i 0} {$i <1} {incr i}{$ns at 1.1 "$cbr2($i) start"$ns at 1.1 "$cbr2([expr $i+34]) start"$ns at 2.1 "$cbr2($i) stop"$ns at 2.1 "$cbr2([expr $i+34]) stop"}for {set i 0} {$i <1} {incr i}{$ns at 2.2 "$cbr3($i) start"$ns at 2.2 "$cbr3([expr $i+34]) start"$ns at 3.2 "$cbr3($i) stop"$ns at 3.2 "$cbr3([expr $i+34]) stop"}同理2对结点,4对结点一直到32对结点之间分别以2、4、8Mbp速率双向收发UDP数据,相同的思路只需要在一对结点通信的基础上修改通信的结点的数量即可。