网络性能的仿真+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 等软件将结果转换成带有坐标的平面图。
- 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数据,相同的思路只需要在一对结点通信的基础上修改通信的结点的数量即可。