文档库 最新最全的文档下载
当前位置:文档库 › NS2和Opnet进行仿真的一个实例

NS2和Opnet进行仿真的一个实例

NS2和Opnet进行仿真的一个实例
NS2和Opnet进行仿真的一个实例

3. 实例分析

上一节简要介绍了5款网络仿真软件,其中比较常用的是OPNET Modeler和NS2,很多大学和科研单位大都采用这两种工具进行网络方面的研究和设计分析。这一节将通过一个实例来展示这两种网络仿真软件的特点,并对这两种软件进行比较分析。

在这个实例中,我们采用网络的拓扑结构如图1所示,图中有5个节点,其中0、1、2号节点是发送节点,4号节点是接收节点。下面是使用OPNET Modeler和NS2两种软件的仿真过程。

图1:仿真网络的拓扑结构

3.1 使用NS2进行网络仿真

在本节中,笔者将使用NS2对图1中的网络进行仿真。使用NS2进行网络仿真的第一步是编写OTCL脚本。在OTCL脚本文件(example_ns2.tcl)中,笔者首先定义了5个节点和连接这5个节点的4条边:

#定义5个节点

set n0 [$ns node]

set n1 [$ns node]

set n2 [$ns node]

set n3 [$ns node]

set n4 [$ns node]

#定义4条边

$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 DropTail

要把节点n0、n1、n2定义为发送节点,即将Traffic Source(发送源)与节点n0、n1、n2相连,我们可以先定义下面的函数:

proc attach-expoo-traffic { node sink size burst idle rate } {

#获得模拟器实例

set ns [Simulator instance]

#建立连接节点的UDP对象

set source [new Agent/UDP]

$ns attach-agent $node $source

#建立traffic源的对象并设置traffic参数

set 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 $sink

return $traffic

}

上面的函数返回发送源的句柄,因此,我们可以使用下面的语句将3个发送源与n0、n1、n2相连:

set 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]

由上面的代码我们可以看出,每个数据发送源的峰值发送速率分别为

100kbit/s、200kbit/s和300kbit/s。而下面的代码用来定义接收器(n4与3个sink对象相关联):

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 $sink2

同时,定义3个文件来保存每个接收器(sink)每秒接收到的数据量:

set f0 [open out0.tr w]

set f1 [open out1.tr w]

set f2 [open out2.tr w]

在脚本中,笔者定义了一个record函数来记录网络仿真时感兴趣的数据:

proc record {} {

global sink0 sink1 sink2 f0 f1 f2

#获得模拟器实例

set ns [Simulator instance]

#设置每0.5秒会调用本函数一次

set time 0.5

#记录有多少字节被接收节点接收?

set bw0 [$sink0 set bytes_]

set bw1 [$sink1 set bytes_]

set bw2 [$sink2 set bytes_]

#获得当前的时间

set now [$ns now]

#向文件中写入带宽(单位为MBit/s)

puts $f0 "$now [expr $bw0/$time*8/1000000]"

puts $f1 "$now [expr $bw1/$time*8/1000000]"

puts $f2 "$now [expr $bw2/$time*8/1000000]"

#将接收器接收到的字节重置为0

$sink0 set bytes_ 0

$sink1 set bytes_ 0

$sink2 set bytes_ 0

#重新调用record函数

$ns at [expr $now+$time] "record"

}

在脚本的最后,笔者定义了finish函数来关闭文件和打开Xgraph观察运行结果:

proc finish {} {

global f0 f1 f2

#关闭输出文件

close $f0

close $f1

close $f2

#调用Xgraph显示网络仿真曲线

exec xgraph out0.tr out1.tr out2.tr -geometry 800x400 &

exit 0

}

在仿真网络运行时,我们可以设置一开始就调用record函数,并在运行后10

秒时启动发送者发送数据,并在运行后50秒时停止发送数据,最后调用finish 函数使用Xgraph显示运行结果(显示接收端的数据接收速度)。

图2是用Xgraph显示的网络仿真结果,从图中可以看出每个数据接收端的接收速率曲线(注意到3个数据接收端的峰值接收速率分别为100kbit/s、200kbit/s 和300kbit/s),这与先前在脚本中定义的峰值发送速率相同。

图2:用Xgraph显示的NS2的仿真结果

3.2 使用Opnet进行网络仿真

在这一节中,笔者将使用Opnet Moderler 8.0对图1所示的网络进行仿真。对图1所示的简单网络结构,在Opnet Moderler中是不必要写脚本的。在绝大多数的仿真实验中,Opnet Moderler仅使用户通过其界面就可以完成。在本节的例子中,网络拓扑结构在Opnet Moderler中如图3所示。

在Opnet Moderler中,笔者使用了三个以太网工作站(ethernet_station_adv)来表示网络中的三个数据源节点n0、n1和n2,用两个交换机

(ethernet4_switch_adv)来表示网络流量中转节点n3和n4,用三个以太网工作站(ethernet_station_adv)来表示网络中的三个数据接收器sink1、sink2

和sink3。连接各个节点的链路为10BaseT。然后,因为要限制n0、n1和n2的输出流量之比为1:2:3,所以可以设置n0、n1和n2的发送分组的间隔分别为服从均值为6、3和2的指数分布。最后,可以设置网络模拟运行时间为1小时(60分钟),取10000个取样点,可得每个接收端(sink1、sink2和sink3)的负载(load)统计曲线如图4。

图3:使用Opnet Moderler对图1的网络进行仿真的界面

从图4中可以看出,sink1、sink2、sink3的负载曲线密度依次增大,负载的峰值和均值也依次增高。通过NS2和Opnet Modeler的仿真过程,说明了在链路服务速率足够大的情况下,每个数据源的输出速率与接收端的数据输入速率成近似的正比例关系。

图4:使用Opnet Modeler得到的每个sink的负载曲线

3.3 比较分析

通过对NS2和Opnet Modeler的操作和数据观察结果的对比,我们可以从软件功能和操作易用性两个方面对这两个软件进行分析。

在软件功能方面,Opnet Modeler做的比较完备,可以对分组的到达时间分布、分组长度分布,网络节点类型和链路类型等进行很详细的设置,而且可以通过不同厂家提供的网络设备和应用场景来设计自己的仿真环境,用户也可以方便的选择库中已有的网络拓扑结构。而NS2在这方面的选择不如Opnet Modeler丰富,只能根据实际仿真的环境通过脚本建立逻辑的网络结构,而查看结果需要其他软件的辅助。

在操作易用性方面,Opnet Modeler的优越性是毋庸置疑的,因为它可以使用比较少的操作就可以得到比较详尽和真实的仿真结果。而NS2则要通过编写脚本和C++代码来实现网络仿真,而且用这种方式建立复杂的网络结果则变的非常困难。

当然,NS2是自由软件,免费,这是与OPNET相比最大的优势,而且,作为用户,可以相对比较容易地对NS2进行功能扩展

基于OPNET的IP_QoS仿真

基于OPNET的IP QoS仿真 摘要:网络仿真能够为网络的规划设计提供可靠的定量依据。网络仿真技术能够迅速地建立起现有网络的模型,并能够方便地修改模型并行仿真,这使得网络仿真非常适用于预测网络的性能,回答"WHAT…IF…"这样的问题。本文概要的介绍了网络仿真软件OPNET以及如何进行基于OPNET的IP QoS仿真。 关键词网络仿真、OPNET、IP QOS仿真 WFQ、PQ OPNET-based Simulation of IP QoS Abstract Network simulation for network planning and design can provide a reliable quantitative basis. Network simulation technology can quickly build models of existing networks and can easily modify the model and simulation, which makes network simulation is applied to predict the network performance, the answer "WHAT ... IF ..." this problem. This paper describes the outline of the OPNET network simulation software, and how the IP QoS-based OPNET simulation. Keywords:Network simulation, OPNET, IP QOS simulation ,WFQ,PQ 目录

OPNET实验报告

篇一:opnet仿真实验报告 南京航空航天大学 opnet仿真实验报告 计算机网络实验 目录 1.1 实验 一 ............................................................................. . (3) 1.2 实验 二 ............................................................................. . (3) 第二章opnet网络建模及仿真方法 (3) 2.1 opnet简介 ............................................................................. . (3) 2.2 opnet仿真关键技术 ............................................................................. .. (4) 2.2.1 层次化建模技术 ............................................................................. .. (4) 2.2.2 离散事件仿真机制 ............................................................................. .. (4) 2.2.3 仿真调度机制 ............................................................................. (4) 2.2.4 通信机制 ............................................................................. . (4) 2.3 opnet仿真流程 ............................................................................. (5) 第三章实验仿真过程 ............................................................................. .. (5) 3.1 实验一单台服务器场景仿真过程 (6) 3.1.1 建立网络拓扑结构 ............................................................................. .. (6) 3.1.2 收集统计量 .............................................................................

NS2网络仿真实验

NS2网络仿真实验 实验目的: 通过修改NS2的TCP协议代码,来简单的观察窗口阈值的不同算法对网络资源利用率的影响。 实验步骤: 1. 实验环境搭建 (1)系统环境: 虚拟机:virtrulbox; 操作系统:linux/ubuntu 10.04 工作目录:/home/wangtao/workspace/ (2)NS2安装与使用: 下载NS2软件包到工作目录, 地址https://www.wendangku.net/doc/f03699463.html,/sourceforge/nsnam/ns-allinone-2.33.tar.gz 解压(注:以下斜体字为命令行命令) tar -zxf ns-allinone-2.33.tar.gz cd 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" export LD_LIBRARY_PATH="$LD_LIBRARY_PAHT:/home/wangtao/worksapce/ns-allinone-2.33/otcl-1.13,/ home/wangtao/worksapce/ns-allinone-2.33/lib" export TCL_LIBRARY="$TCL_LIBRARY:/home/wangtao/worksapce/ns-allinone-2.33/tcl8.4.18/library" 保存并退出,重新进入终端 安装xgraph sudo apt-get install xgraph 运行一个简单的例子,以证明环境安装完成: ns /home/wangtao/workspace/ ns-allinone-2.33/tcl/ex/simple.tcl 出现如下图说明成功: 2.修改https://www.wendangku.net/doc/f03699463.html,代码 vim /home/wangtao/workspace/ns-allinone-2.33/tcp/https://www.wendangku.net/doc/f03699463.html, (将窗口阈值一半变为的窗口阈值1/3——wt_https://www.wendangku.net/doc/f03699463.html,) 第一处: …… if (cwnd_ < ssthresh_) slowstart = 1; if (precision_reduce_) { //halfwin = windowd() / 2; //wangtao halfwin = windowd() / 3;

NS2网络模拟

网络协议分析与仿真课程设计报告 网络模拟 一、课程设计目的 掌握网络模拟工具NS2的使用,学习基本的网络模拟方法。 二、课程设计内容 协议模拟 工具:NS2,awk,shell,perl等; 要求:掌握NS2网络模拟的基本流程; 内容:NS2网络模拟基本流程 编写TCL脚本,搭建如下图所示的一个网络,共6个节点,其中2、3节点用做ftp服务器和客户端,4、5节点用做cbr流量的源和目的,而0、1节点用做转发设备。各节点间的链路属性见图。 cbr null packet size = 1kbytes, rate=1Mbps 模拟时间设为13秒钟,在0.1秒开始产生cbr流量,在1.0秒开发发送发ftp流量; 8.0秒ftp流量结束,12.0秒cbr流量结束。编写脚本(可用shell,awk,或perl等) 分析模拟日志文件,统计每0.5s内0、1节点间链路通过的分组数以及字节数。 三、设计与实现过程 1.仿真脚本代码与详细注解 #Create a simulator object set ns [new Simulator] #Define different colors for data flows (for NAM) $ns color 1 Blue $ns color 2 Red #Open the NAM trace file set nf [open out.nam w] $ns namtrace-all $nf #Open the Trace file

set tf [open out.tr w] $ns trace-all $tf #Define a 'finish' procedure proc finish {} { global ns nf tf $ns flush-trace close $nf close $tf exec nam out.nam & exit 0 } #Create four nodes set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] set n4 [$ns node] set n5 [$ns node] #Create links between the nodes $ns duplex-link $n0 $n2 1.5Mb 10ms DropTail $ns duplex-link $n0 $n4 1.5Mb 10ms DropTail $ns duplex-link $n0 $n1 2Mb 20ms DropTail $ns duplex-link $n1 $n3 1.5Mb 10ms DropTail $ns duplex-link $n1 $n5 1.5Mb 10ms DropTail #Set Queue Size of link (n2-n3) to 10 $ns queue-limit $n0 $n1 10 #Setup a TCP connection set tcp [new Agent/TCP] $ns attach-agent $n2 $tcp set sink [new Agent/TCPSink] $ns attach-agent $n3 $sink $ns connect $tcp $sink $tcp set fid_ 1 #Setup a UDP connection set udp [new Agent/UDP] $ns attach-agent $n4 $udp set null [new Agent/Null] $ns attach-agent $n5 $null

OPNET网络仿真包交换

一、实验目的 1.学习熟悉使用OPNET仿真软件,实现对网络场景的仿真。学习并掌握包交换有线网络的基本知识。 2.数据包建模。学习并掌握数据包建模的基本方法和技能。 3.有线链路建模。学习并掌握有线链路建模的基本方法和技能。 4.中心交换节点建模 学习并掌握中心交换节点建模的基本方法和技能。包括hub进程建模和包流的连接。 5.周边节点建模 学习并掌握周边节点建模的基本方法和技能,包括: src进程建模; sink进程建模; proc进程建模;包流的连接。 6.网络建模。学习并掌握包交换有线网络建模的基本方法技能。 7.配置参数、运行和调试仿真 学习并掌握收集统计量、配置参数、运行和调试仿真的基本方法和技能。 8.仿真结果分析。学习并掌握仿真结果分析的基本方法和技能。 二、实验过程 专题1:实现包交换 1、定义包格式 (1)从File 菜单列表中选择Packet Format,单击OK 按钮。这时打开包格式编辑器。 (2)单击Create New Field 工具按钮,然后将光标移到编辑窗口中,单击鼠标左键,接着单击右键。这时一个新的包域出现在编辑窗口中。设置包域的属性,定义好的包域名称和大小。 图1.包格式定义 (3)从File 菜单中选择Save,命名包格式。 2、定义链路模型 (1)从File 菜单列表中选择Link Model,打开链路模型编辑器。

(2)找到链路类型支持属性框,设置支持的包格式,除了ptdup 外的链路类型对应的Supported属性设置为no,表明该链路只支持点对点双工连接。 (3)在packet formats 属性右边对应的Initial Value 栏中单击鼠标左键。“Supports All Packet Formats”和“Supports Unformatted Packets”复选框取消,同时将新增加包设置为Support。 图2.链路模型定义 3、创建中心节点 定义节点模型,中心交换节点:四对发信机和收信机(每对收发信机对应一个周边节点),一个中心交换处理进程(按地址转交包)。 (1)从File 菜单列表中选择Node Model,打开节点模型编辑器。 (2)在编辑窗口中放置一个进程模块,四个点对点发信机,和四个点对点收信机。 图3.中心进行模型定义 (3)给每个对象命名,并用包流将每个收信机和发信机和hub 相连。查看包流的连接情况。

OPNet仿真实验报告

南京航空航天大学 OPNET仿真实验报告计算机网络实验

目录 第一章实验任务 (3) 1.1 实验一 (3) 1.2 实验二 (3) 第二章OPNET网络建模及仿真方法 (3) 2.1 OPNET简介 (3) 2.2 OPNET仿真关键技术 (4) 2.2.1 层次化建模技术 (4) 2.2.2 离散事件仿真机制 (4) 2.2.3 仿真调度机制 (4) 2.2.4 通信机制 (4) 2.3 OPNET仿真流程 (5) 第三章实验仿真过程 (5) 3.1 实验一单台服务器场景仿真过程 (6) 3.1.1 建立网络拓扑结构 (6) 3.1.2 收集统计量 (8) 3.1.3 运行仿真 (9) 3.1.4 60台PC场景1_expand_60 (10) 3.1.5 90台PC场景1_expand_90 (11) 3.2 实验一多台服务器场景仿真过程 (12) 3.3 实验二用OPNET对RIP仿真分析 (13) 第四章实验仿真结果及分析 (13) 4.1 单台服务器场景仿真结果及分析 (13) 4.1.1 整个网络平均延迟对比曲线图 (14) 4.1.2 服务器与交换机链路的平均吞吐量对比曲线图 (14) 4.1.3 服务器CPU负载变化对比曲线图,见图16. (15) 4.2 多台服务器场景仿真结果及分析 (16) 4.2.1 整个网络平均延迟对比曲线图 (16) 4.2.2 服务器与交换机链路的平均吞吐量对比曲线图 (16) 4.2.3 服务器CPU负载变化对比曲线图 (17) 4.3 用OPNET对RIP仿真结果及分析 (18) 4.3.1 RIP协议概述 (18) 4.3.2 RIP的工作原理 (18) 4.3.3 RIP路由更新机制 (20) 4.3.4 建立网络拓扑结构 (21) 4.3.5 仿真结果 (23) 4.3.6 对RIP协议的总结 (28) 第五章实验心得体会以及不足 (29) 5.1 心得和体会 (29) 5.2 实验中的不足 (29)

基于NS2的无线传感器网络软件仿真实验

目录 ●课程设计目的 ●课程设计内容 ●课程设计实验原理 ?WSN路由协议 ?WSN MAC层协议 ?修改的路由协议 ●课程设计小组分工 ●课程设计实验流程 ●课程设计实验结果分析 ●课程设计心得体会 ●课程设计总结 ●参考文献 ●源代码

一、课程设计目的 无线传感器网络是物联网的基本组成部分,是物联网用来感知和识别周围环境的信息生成和采集系统,传感器网络对信息处理来说如同人体的感觉突触一样重要。为了方便感知和部署并提高网络的可扩展性,传感器网络一般采用无线通信方式,从而形成了节点之间可自组织拓扑结构的无线传感器网络。本课程设计的目的综合应用学生所学知识,建立系统和完整的传感器网络概念,理解和巩固无线传感器网络基本理论、原理和方法,掌握无线传感器网络开发的基本技能。 二、课程设计内容 软件仿真实验。 要求使用相关软件仿真一个无线传感器网络,要求如下: ●自行参考相关资料,成功安装NS2(或OPNET也可以); ●利用NS2自带的范例,构建一个100个节点的无线传感器网络, 能够成功运行;最好能有界面显示; ●利用利用NS2自带的范例或其它已有脚本,仿真上述无线传感器 网络一种路由协议(例如一种多播路由协议); ●利用利用NS2自带的范例或其它已有脚本,仿真上述无线传感器 网络采用一种MAC协议; ●修改或自行编写一个简单路由协议或MAC协议,并进行仿真运 行。

三、课程设计实验原理 a)WSN路由协议 传统计算机网络对路由协议要求如下:正确性,健壮性,稳定性,公平性,最优性。除此之外,无线传感器网络对路由协议更注重以下特殊要求:能源有效性,简单性,多路性。无线传感器网络是以数据为中心(Data Centric)进行路由的,不同于传统Ad hoc网络以地址为中心(Address Centric)进行路由的模式。由于传感器最基本任务就是感知、采集数据,无线传感器网络邻近节点间采集的数据必然具有相似性,存在冗余信息,需经数据融合(Data Fusion)处理再进行路由。有研究表明,在分布密度为ρ(x, y)的随机区域,传感器间冗余数据为:η=ζSeρ。直接传输这些未经处理、存在冗余的数据,将会造成网络带宽、节点能源的巨大浪费,导致节点迅速死亡,缩短整个网路的生命周期。 无线传感器网络中的大部分节点不像传统Ad hoc网络中的节点一样快速移动,因此没有必要花费很大的代价频繁地更新路由表信息。常规路由协议通常认为底层的通信信道是双向的,但是在采用无线通信的无线传感器网络环境中,由于发射功率或地理位置等因素的影响,可能存在单向信道。它给常规路由协议带来三个严重的影响:认知单向性、路由单向性和汇点不可达。

网络模拟器NS2中仿真功能的问题分析及改进

第21卷第2期 系 统 仿 真 学 报? V ol. 21 No. 2 2009年1月 Journal of System Simulation Jan., 2009 网络模拟器NS2中仿真功能的问题分析及改进 况晓辉1, 赵 刚1,2, 郭 勇1, 3 (1.北京系统工程研究所, 北京 100101; 2.清华大学计算机科学与技术系, 北京 100084; 3.国防科技大学信息系统与管理学院, 长沙 410073) 摘 要:网络仿真技术为解决大规模网络规划、应用和协议设计面临的挑战提供了新的途径。作为广泛应用的网络模拟器,NS2为建立可扩展的网络仿真环境奠定了重要基础。在描述NS2仿真功能实现的基础上,重点分析了NS2仿真功能存在的不足。针对发现的问题,提出并实现了NS2仿真功能扩展,最后验证了仿真功能扩展的正确性。 关键词:网络仿真;NS2;报文转换;功能扩展 中图分类号:TP393 文献标识码:A 文章编号:1004-731X (2009) 02-0427-05 Improvement of Emulation Function in Network Simulator KUANG Xiao-hui 1, ZHAO Gang 1,2, GUO Yong 1, 3 (1. Beijing Institute of System and Engineering, Beijing 100101, China; 2. Department of Computer Science and Technology, Tsinghua University, Beijing 100084, China; 3. Department of Information System and Management of NUDT, Changsha 410073, China) Abstract: Network emulate technology which enables real hosts and a real network to interact with a virtual network, becomes a very important way to resolve the challenge faced in network plan, application and protocol design. As a famous network simulator, NS2 proposed a foundation to construct network emulate platform. The emulation function of NS2 was described firstly. Based on analysis the problem of emulation function in NS2, the extension of NS2 emulation function was proposed and implemented. The correctness of extension was dominated in the end. Key words: network emulation; NS2; packet reform; function extension 引 言互联网的迅速发展与膨胀对网络的规划、应用和协议的 设计提出了新的挑战。在试验环境中对网络规划、新的应用和协议进行评估是应对上述挑战的有效手段之一[1-3]。当前构建复杂网络试验环境的实现技术主要包括测试床、网络模拟(network simulation )和网络仿真(network emulation )[4]等三种类型。 测试床具有逼真度高的优点,但是造价较高、规模和复杂性有限。网络模拟具有可控性强、灵活性高、代价低以及能够实现复杂网络拓扑等优点,但是对于网络流量以及实现细节支持不够,交互性不高。网络仿真综合了测试床和网络模拟的优点。在仿真环境中,网络应用运行在实际的硬件平台上,且能够与实际的环境交互,扩展性和灵活性较高,同时网络试验环境可配置、可控制、可重复,能够生成真实网络流量,从而成为当前构建网络试验环境的重要技术。当前网络仿真技术研究思路分为两种:一种思路是将仿真网络看作简单的延迟黑盒(simple delay lines ),仅关注网络出入口的设置,该思路具有硬件要求低的优点。相关研究包括:Dummynet [5],NIST net [6]等。另一种思路是通过建立虚拟网络模拟进行实时网络仿真。真实网络流量能够通过仿真 收稿日期:2007-06-10 修回日期:2008-02-09 作者简介:况晓辉(1975-), 男, 湖南新化, 博士, 副研究员, 研究方向为计算机网络, 信息安全;赵刚(1969-), 男, 河北保定, 研究员, 研究方向为计算机网络, 信息安全; 郭勇(1966-), 男, 湖南常德, 研究员, 研究方向为计算机网络, 计算机软件。 器,虚拟网络能够根据交互生成网络流量。相关的研究包括VINT/nse [7],ModelNet [8],NetBed [9], Virtual Routers [10],PlanetLab [11]以及IP-TNE [1]等。 随着网络复杂性的提高,基于延迟黑盒的网络仿真环境难以满足应用需求。因此,建立在网络模拟基础上的仿真环境成为网络仿真技术的研究重点。在网络模拟器实现中,NS2 [12]能够支持有线和无线、本地或卫星、局域网和广域网等各种网络类型以及网络分层模型,具有强大的二次开发能力以及可扩展、易配置和编程的事件驱动特性,为构建网络仿真平台提供了良好基础。然而,NS2已有的仿真功能在IP 地址支持、路由机制、协议支持等方面存在不足,难以满足网络技术研究和协议设计开发的实际需求。 本文在深入分析NS2仿真功能的基础上,重点分析了已有功能存在的不足,描述并实现了NS2仿真功能扩展,解决了IP 地址支持、动态路由以及拓扑验证的问题。最后,通过试验验证了仿真功能的正确性和有效性。 1 NS2网络仿真功能分析 事件驱动的网络模拟器NS2是DARPA 支持的VINT 项目中的核心部分,由Berkeley, USC/ISI 、 LBL 和Xerox PARC 等大学和实验室合作开发,其目的是构造虚拟的网络平台和模拟工具,以支持网络协议的研究、设计和开发。 1.1 仿真功能 NS2仿真模块实现了模拟器与实际网络的连接功能,

OPNET网络仿真入门实例

OPNET网络仿真入门实例 OPNET简介 OPNET最早出自麻省理工学院的两个博士之手,最终得以商业化。OPNET被广泛应用于精确模拟领域,例如网络设备制造领域的企业商Cisco以及运营商AT&T,都采用OPNET来做各种各样的网络环境模拟和调试。在OPNET的各类产品中,Modeler几乎包含其他产品的所有功能,针对不同领域,主要的用途如下:(1)对于企业网的模拟,Modeler 调用自带的已经建好的标准模型组建网络,在某些业务应用达不到事先预想结果或服务质量未及规定要求,比如说网上电子交易过程中交易延迟、数据库服务等业务响应时间慢于正常情况时,Modeler捕捉重要的流量进行分析,从业务、网络、服务器三方面来找出瓶颈。(2)对于比企业网更复杂的运行商(ISP)网络的模拟,Modeler把焦点放在整个业务层、流量的模拟,使得运营商可以有效地查出业务配置中产生的错误,例如网络中的哪些服务器配置不够妥善,让黑客容易攻击,有哪些业务的参数配置不合适等情形。(3)针对研发的需要,Modeler提供了一个开放的环境,使用户能够建立新的协议和配备,并且能够将细节定义并模拟出来。为使读者有一个生动、形象、更明确的理解,我们再进行如下说明解释:Modeler 所能应用的各种领域主要包括三个方面即端到端结构、新的协议开发和优化、网络和业务层配合如何达到最好的性能。举例来说明一下吧,假设我们要将现有的IPv4的网络升级到IPv6的网络,需要确定采用哪种技术方式对转移效果来说比较好,这就属于端到端结构上的应用;新协议的开发,比如说目前流行的3G无线协议的开发,在系统级的仿真中,可以分析一种新的路由或调度算法如果使路由器或交换机达到QoS;在网络和业务之间如何优化方面,可以分析新引进的业务对整个网络的影响、网络对业务的要求,实际应用中网络和业务是对矛盾,通过Modeler模拟来查找网络和业务之间所能达到的最好的指标。 软件的安装 图1

opnet实验报告范例

opnet实验报告范例 OPNet仿真实验报告 第一章实验任务 1.1 实验一 –设置一个仿真场景,假设PC有N台,服务器有M台,交换机和路由器根据N值进行配置 –当N=30,60,90和M=1时,设置仿真场景,配置连接设备,服务器配置FTP、TELNET、WWW、SNMP等服务,给出N不同取值时: 1)整个网络平均延迟对比曲线图 2)服务器与交换机链路的平均吞吐量对比曲线图 3)服务器CPU负载变化对比曲线图 –当N=90,M分别取值1和2时,设置仿真场景,配置连接设备,服务器配置同上,给出M不同取值时: 1)整个网络平均延迟对比曲线图 2)服务器与交换机链路的平均吞吐量对比曲线图 3)服务器CPU负载变化对比曲线图。 1.2 实验二 RIP协议的OPNET仿真分析 第二章OPNET网络建模及仿真方法 2.1 OPNET简介 OPNET是1986年由美国MIL3 Inc.(现在为OPNET Technologies Inc.)

研制的,最初是用于军事需要,但很快就发展成为一款商业化软件,并成为目前世界上最先进的网络仿真和开发工具之一。现在全球大约有2700个OPNET用户,涉及企业、军事、教育、银行、保险等多个领域,被第三方权威机构评为“世界级网络仿真软件第一名”。作为商业软件的OPNET价格非常昂贵,但它也提供了专门用于教育和科研的免费版本,如OPNET IT Guru。 OPNET支持面向对象的建模方式,并提供图形化的编辑界面,更便于用户使用;采用离散事件驱动的模拟机理,使计算效率得到了很大提高;将基于包的分析方法和基于统计的数学建模方法结合起来,大大加快了仿真速度,而且可以得到更加细节化的模拟结果;在物件拼盘中,包含了详尽的模型库:路由器、交换机、服务器、客户机、ATM设备、DSL设备等,还有其它厂商的配备,使OPNET在新网络项目的设计以及对现有网络的分析方面都有卓越表现;它为通信协议和路由算法的研究提供了与真实网络相同的环境。此外,功能完善的结果分析器为网络性能的分析提供了有效而又直观的工具;提供了多种业务模拟方式;具有丰富的收集分析统计量,查看动画和调试等功能;它可以直接收集常用的各个网络层次的性能统计参数,能够方便地编制和输出仿真报告。 目前OPNET的应用在国内还处于起步阶段,因此OPNET具有很大的研究和应用价值。 2.2 OPNET仿真关键技术 2.2.1 层次化建模技术

NS2实验报告

NS2实验报告 一、实验平台和环境 本实验是在Windows XP操作系统平台下安装了Cygwin软件以模仿Linux 下的编程环境,然后在Cygwin模仿的环境中安装了ns-allinone-2.34软件包,该软件包包含nam、otcl、tcl、tclcl、tk以及xgraph等软件包和辅助分析工具。 二、实验步骤 2.1 安装与配置 1.安装cygwin a)在cygwin官方网站下载setup.exe。 b)运行setup.exe,使用默认配置选择unix安装。 c)在选择安装组件时确认安装以下内容:XFree86-base, XFree86-bin, XFree86-prog,XFree86-lib, XFree86-etc,make,patch,perl,gcc,gcc-g++, gawk,gnuplot,tar 和gzip。 Diffstat,diffutils,libXmu,libXmu-devel,libXmu6,libXmuu1, X-startup-scripts xorg-x11-base xorg-x11-bin xorg-x11-devel xorg-x11-bin-dlls xorg-x11-bin-lndir xorg-x11-etc xorg-x11-fenc xorg-x11-fnts xorg-x11-libs-data xorg-x11-xwin 2.安装NS2 a)在NS2官方网站下载ns2-allinone-2.34.tar.gz安装包。 b)将ns2-allinone-2.34.tar.gz拷贝放入cygwin用户目录下。 c)运行cygwin,命令行下输入tar xvfz ns2-allinone-2.34.tar.gz。 d)进入ns2-allinone-2.34目录,执行./install开始安装。

基于NS2的UDP仿真报告

基于NS2的UDP协议仿真 1. UDP协议的特点 UDP 是OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP 协议基本上是IP协议与上层协议的接口。UDP协议适用端口分别运行在同一台设备上的多个应用程序。UDP协议并不提供数据传送的保证机制。如果在从发送方到接收方的传递过程中出现数据报的丢失,协议本身并不能做出任何检测或提示。UDP协议称为不可靠的传输协议。 UDP报头由4个域组成,其中每个域各占用2个字节,具体如表1所示: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1819 20 21 22 23 24 25 26 27 28 29 30 31 源端口目的端口 段长校验和 表1 UDP报头结构 UDP协议使用端口号为不同的应用保留其各自的数据传输通道。数据发送一方(可以是客户端或服务器端)将UDP数据报通过源端口发送出去,而数据接收一方则通过目标端口接收数据。UDP协议使用报头中的校验值来保证数据的安全。校验值首先在数据发送方通过特殊的算法计算得出,在传递到接收方之后,还需要再重新计算。如果某个数据报在传输过程中被第三方篡改或者由于线路噪音等原因受到损坏,发送和接收方的校验计算值将不会相符,由此UDP协议可以检测是否出错。 2. NS2软件的安装与配置 2.1 ubuntu实验环境 Ubuntu是Linux的一个版本,是一款免费的操作系统,Ubuntu 项目完全遵从开源软件开发的原则;用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。NS2在linux环境下运行比在windows下更稳定,出现更少的错误,还可以更改linux内核,使得仿真效果更好。 2.2 软件安装 NS2可以再Linux平台下运行,因此一般需要安装Linux操作系统。也可以采用Windows+虚拟机(VMware,Virtual PC)+NS组合的方式。 若要在Ubuntu上运行NS2,下面的软件是在安装和使用NS2中需要用到的,必须先行安装。

浅析Opnet,Ns2,Matlab网络仿真工具

浅析Opnet,Ns2,Matlab网络仿真工具 【摘要】网络仿真可以有效提高网络规划和设计的可靠性和准确性,明显地降低网络投资风险,减少不必要的投资浪费。本文就常见的三种网络仿真工具(OPNET、NS2及MATLAB),从它们的基本情况及特点进行了分析。 【关键字】网络仿真;OPNET;NS2;MATLAB 引言 随着网络结构和规模越来越复杂化以及网络的应用越来越多样化,单纯地依靠经验进行网络的规划和设计、网络设备的研发以及网络协议的开发,已经不能适应网络的发展,因而急需一种科学的手段来反映和预测网络的性能,网络仿真技术应运而生。网络仿真可以有效提高网络规划和设计的可靠性和准确性,明显地降低网络投资风险,减少不必要的投资浪费。各种网络仿真工具在此背景下应运而生。本文就常见的三种网络仿真工具(OPNET、NS2及MATLAB),从它们的基本情况及特点进行了分析。 基本情况及特点分析 1.OPNET OPNET公司最初只有一种产品OPNET Modeler,到目前已经拥有Modeler、ITGuru、SPGuru、WDMGuru、ODK等一系列产品。 对于网络的设计和管理,一般分为3个阶段:第1阶段为设计阶段,包括网络拓扑结构的设计,协议的设计和配置以及网络中设备的设计和选择;第2阶段为发布阶段,设计出的网络能够具有一定性能,如吞吐率、响应时间等等;第3阶段为实际运营中的故障诊断、排错和升级优化。而OPNET公司的整个产品线正好能面向网络研发的不同阶段,即可以作网络的设计,也可以作为发布网络性能的依据,还可以作为已投入运营的网络的优化和故障诊断工具。OPNET公司也是当前业界智能化网络管理分析解决方案的主要提供商。 OPNET的主要特点: 层次化的网络模型。使用无限嵌套的子网来建立复杂的网络拓扑结构。 简单明了的建模方法。Modeler建模过程分为3个层次:过程(process)层次、节点(Node)层次以及网络(Network)层次。在过程层次模拟单个对象的行为,在节点层次中将其互连成设备,在网络层次中将这些设备互连组成网络。几个不同的网络场景组成“项目”,用以比较不同的设计方案。这也是Modeler建模的重要机制,这种机制有利于项目的管理和分工。

NS2仿真实例汇总

NS-2仿真模拟实例汇总 (以方路平的书为主) 1.例4.5a:DropTail队列管理的NS_2模拟实例(P161) set ns [new Simulator] set nf [open out.nam w] $ns namtrace-all $nf set tf [open out.tr w] set windowVsTime [open win w] set param [open parameters w] $ns trace-all $tf proc finish {} { global ns nf tf $ns flush-trace close $nf close $tf exec nam out.nam & exit 0 } set n2 [$ns node] set n3 [$ns node] $ns duplex-link $n2 $n3 0.7Mb 20ms DropTail set NumbSrc 3 set Duration 50 for {set j 1} {$j <=$NumbSrc} {incr j} { set S($j) [$ns node] } set rng [new RNG] $rng seed 2 set RVstart [new RandomVariable/Uniform] $RVstart set min_ 0 $RVstart set max_ 7 $RVstart use-rng $rng for {set i 1} {$i <=$NumbSrc} {incr i} { set startT($i) [expr [$RVstart value]]

《网络仿真与模拟》实验教学大纲

《网络仿真与模拟》实验教学大纲 课程编号:404821036 课程类别:专业选修课 实验学时:16学时 学分:2 适用专业:网络工程 一、实验教学目的和任务 现代通信网络飞速发展,网络结构和规模日益复杂庞大,开展的网络业务也越来越丰富。如何以最小的代价组建性能优良的网络,以及快速而准确地从多种网络构建方案选出最优的一种,通过组建实际的网络进行测试是不经济的,当网络庞大时更是不可能实行的,而利用软件仿真却是一条经济的、可行的,而且有效的方法。通过仿真,不仅可以对现有网络进行优化设计和规划,还可以开展网络设备及网络协议的研究。通过实验教学,可以使学生更加深刻地掌握Opnet软件的应用方法以及组网工程的核心技术。 实验教学的任务是:掌握主流网络仿真软件OPNET基本使用方法,包括仿真环境和仿真过程,重点掌握以太网和无线网络的仿真技术,并且在仿真环境下进行关于TCP/IP协议、A TM 协议、MPLS协议和无线局域网协议的网络通信实验。把学生培养成具有雄厚理论基础,又有熟练动手能力的高级复合型人才,为以后能顺利从事网络工程建设或科学研究打下坚实基础。 二、实验教学基本要求 本课程是一门实践性很强的专业课,只有通过深入细致的实验,才能使学生深刻掌握Opnet仿真软件的安装方法和基本应用方法。因此要求学生积极参与Opnet软件的学习与网络建模,学会分析仿真数据,从中找出网络故障的原因并提出合理的解决方案,还要学会利用VC++联调仿真过程中出现的错误,以及利用现有模块和自主编程优化网络建模方案。 三、实验教学内容 实验分为验证性实验和设计性实验两个部分,其中实验一为验证性实验,其余为设计性实验,每次上实验课时需要调试出一个结果给老师检查,并在课后提交实验报告;在进行设计性实验之前,需要先行准备好设计资料并进行小组讨论,以4-6人为一组,在上实验课时提交初步的设计方案供老师评阅指导,并在课后上交一份完整的设计报告。 实验一 Opnet基础应用方法 1、实验目的及要求

NS2仿真实验报告

Ns2简单有线网络仿真实验报告 一、实验概述 1、在windows系统下安装Centos虚拟机 2、在Centos系统下安装NS2仿真工具包 3、Nam方式示例 二、实验内容 1)NS2仿真工具包安装说明 1.在Centos系统下设置root账户 2.解压NS2文件 3.安装ns-allinone-2.35 设置环境变量 4.验证NS2工具包安装情况 2)Nam方式 Otcl脚本 # 产生一个仿真的对象 set ns [new Simulator] #针对不同的资料流定义不同的颜色,这是要给NAM用的 $ns color 1 Green $ns color 2 Red #开启一个NAM trace file set nf [open out.nam w] $ns namtrace-all $nf #开启一个trace file,用来记录封包传送的过程 set nd [open out.tr w] $ns trace-all $nd #定义一个结束的程序 proc finish {} { global ns nf nd $ns flush-trace close $nf close $nd #以背景执行的方式去执行NAM exec nam out.nam & exit 0 } #产生6个网络节点 set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node]

set n4 [$ns node] set n5 [$ns node] #把节点连接起来 $ns duplex-link $n0 $n2 2Mb 10ms DropTail $ns duplex-link $n1 $n2 2Mb 10ms DropTail $ns duplex-link $n2 $n3 1.7Mb 20ms DropTail $ns duplex-link $n3 $n4 1.7Mb 30ms DropTail $ns duplex-link $n3 $n5 1.5Mb 30ms DropTail #设定ns2到n3之间的Queue Size为10个封包大小$ns queue-limit $n2 $n3 10 $ns queue-limit $n3 $n4 5 #$ns queue-limit $n3 $n5 10 #设定节点的位置,这是要给NAM用的 $ns duplex-link-op $n0 $n2 orient right-down $ns duplex-link-op $n1 $n2 orient right-up $ns duplex-link-op $n2 $n3 orient right $ns duplex-link-op $n3 $n4 orient right-up $ns duplex-link-op $n3 $n5 orient right-down #观测n2到n3之间queue的变化,这是要给NAM用的$ns duplex-link-op $n2 $n3 queuePos 0.5 #建立一条n0-n5TCP的联机 set tcp [new Agent/TCP] $ns attach-agent $n0 $tcp set sink [new Agent/TCPSink] $ns attach-agent $n5 $sink $ns connect $tcp $sink #在NAM中,TCP的联机会以Green表示 $tcp set fid_ 1 #在TCP联机之上建立FTP应用程序 set ftp [new Application/FTP] $ftp attach-agent $tcp $ftp set type_ FTP #建立一条UDP的联机 set udp [new Agent/UDP] $ns attach-agent $n1 $udp set null [new Agent/Null] $ns attach-agent $n3 $null $ns connect $udp $null #在NAM中,UDP的联机会以红色表示 $udp set fid_ 2 #在UDP联机之上建立CBR应用程序 set cbr [new Application/Traffic/CBR] $cbr attach-agent $udp

相关文档
相关文档 最新文档