Download presentation
Presentation is loading. Please wait.
1
刘世华 导师:方路平 浙江工业大学软件学院 2018年9月20日星期四
网络仿真与NS-2简介 刘世华 导师:方路平 浙江工业大学软件学院 2018年9月20日星期四
2
内容提要 网络仿真概述 主流网络仿真软件简介 NS-2简介 NS-2安装 NS-2架构与使用 NS-2简单实例 参考资料
3
网络研究的三类方法 分析方法 实验方法 模拟方法 模型分析、协议分析 通用表达式、集合论、概率分析方法 网络实验床(testbed)
实验室测试网 实际网络、小规模试验网 模拟方法 虚拟网络实验床(Virtual network testbed)--仿真软件
4
为什么需要仿真? 学习:学习协议和算法的实现,包括它们的行为和性能 测试:对未实现和未投入实际应用的协议和算法进行测试
比较:对各种研究结果、协议和算法的优缺点进行比较直观和客观的比较
5
仿真的优点 Inexpensive, Flexible and Reconfigurable
Network phenomena interested can be reproduced Opportunity to study large-scale network Easier comparison of results across research efforts
6
仿真的缺点 Important network details may be missed
Protocols or algorithms must be “added” before simulation can be done Have to be carefully verified before the test results can be used
7
网络仿真软件的基本要求 Easy network topology setup
Protocols and application implementation TCP,UDP,… FTP, Telnet, Web, CBR, VBR,… Routing protocols Queue management protocols Configurability Extensibility
8
内容提要 网络仿真概述 主流网络仿真软件简介 NS-2简介 NS-2安装 NS-2架构与使用 NS-2简单实例 参考资料
9
主流仿真软件有哪些? OPNET NS-2 MATLAB SPW QualNet/GloMoSim
10
OPNET简介 OPNET:Optimized Performance Network Engineering Tool
OPNET最早是由麻省理工学院LIDS实验室受美国军方委拖开发. 可模拟LAN, WAN, ISDN及卫星通信网的模型.
11
OPNET界面
12
OPNET的特性 三层建模机制:最底层为Process模型,以状态机来描述协议;其次为Node模型,由相应的协议模型构成,反映设备特性;最上层为网络模型。三层模型和实际的网络、设备、协议层次完全对应,全面反映了网络的相关特性; 齐全的模型库:包括路由器、交换机、服务器、客户机、ATM设备、DSL设备、ISDN设备等常见网络设备模型;
13
OPNET的特性(续) 混合建模机制:把基于包的分析方法和基于统计的数学建模方法结合起来,既可得到非常细节的模拟结果,也大大提高了仿真效率。
丰富的统计量收集和分析功能:它可以直接收集常用的各个网络层次的性能统计参数,能够方便地编制和输出仿真报告。 网管系统、流量监测系统的接口:能够方便的利用现有的拓扑和流量数据建立仿真模型,同时还可对仿真结果进行验证。
14
OPNET的功能 Define Problem Gather Data OPNET可以模拟现有的绝大部分网络和协议:
ATM, Frame Relay, FDDI Ethernet, Token Ring TCP/UDP/IP, HTTP Network Editor Node Editor Process Editor Build Models Run Simulations Simulation Tool Debugging Tool Analyze Results Analysis Tool Animation Viewer
15
MATLAB简介 MATLAB软件是由美国Mathworks公司推出的用于数值计算和图形处理的科学计算系统环境。MATLAB是英文MATrix LABoratory (矩阵实验室)的缩写。 MATLAB环境下,用户集成了程序设计、数值计算、图形绘制、输入输出、文件管理等各项功能。 MATLAB提供了一个人机交互的数学系统环境,该系统的基本数据结构是矩阵,在生成矩陈对象时,不要求作明确的维数说明。 开放源代码的Scilab与matlab类似。
16
SPW简介 SPW(Signal Process WorkSystem)仿真软件是Cadence公司的产品
17
SPW的特点 SPW的一个显著特点是他提供了HDS接口和MATLAB接口。MATLAB里面的很多模型可以直接调入SPW,然后利用HDS生成C语言仿真代码或者是HDL语言仿真代码。 SPW通常可以应用于无线和有线载波通信、多媒体和网络设计与分析等领域,特别提供第三代移动通信的模块支持。 适用于无线通信物理层、链路层算法和协议的开发仿真。
18
QualNet简介 QualNet 原是美国加州大学洛杉矶分校 (UCLA) 开发的开放源代码的GloMoSim 的商业版,Scalable Simulation Solutions 成功地将QualNet 由学术性质的开源软件转变为商业软件,主要客户包括:政府部门、军方承包商以及世界 500 强的许多公司。 从有线LAN和WAN,到蜂窝、卫星、WLAN和移动Ad Hoc网络,QualNet支持广泛的联网应用。
19
GloMoSim简介 GloMoSim(Global Mobile Information System Simulator) is a scalable simulation environment for wireless network systems. GloMoSim developer: University of California,Los Angeles Computer Science Department GloMoSim is a library written by Parsec.
20
GloMoSim的层次与功能 Application Layer PROPAGATION-MODEL BANDWIDTH
Channel Layer Radio Layer MAC Layer Network Layer Transport Layer Application Layer PROPAGATION-MODEL BANDWIDTH MAC-PROTOCOL NETWORK-PROTOCOL ROUTING-PROTOCOL TRANSPORT-PROTOCOL MOBILITY
21
主流仿真软件比较 软件 条目 OPNET NS-2 MATLAB SPW QualNet/ GloMoSim 界面友好性 GUI、代码
Tcl script 主要是代码 拓扑结构配置 GUI,配置方便 代码编程 GUI?代码 支持的构件库 丰富的构件库 比较丰富 丰富的工具箱 丰富 配置灵活性 一般 非常灵活 比较灵活 执行效率 较高 低 较低 支持语言 Proto-C C++/OTcl C/FORTRAN C/HDL C/C++/Parsec 可扩展性 差 好 比较好 兼容性 与MATLAB兼容 使用成本 高 开源免费 高/开源免费 入门难度 难度大 较难 难 通用性 较好
22
内容提要 网络仿真概述 主流网络仿真软件简介 NS-2简介 NS-2安装 NS-2架构与使用 NS-2简单实例 参考资料
23
NS-2简介 NS2(Network Simulator, version 2)是一种面向对象的网络仿真器,最初由UC Berkeley开发而成。 它本质上是一个离散事件模拟器,本身有一个虚拟时钟,所有的仿真都由离散事件驱动的。 官方网址: 维客(Wiki)网址:
24
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.
25
NS-2的功能 Wired Wireless Tracing, visualization, various utilities
Transportation: TCP,UDP,RTP,SRM Traffic sources:web, ftp, telnet, cbr, stochastic Queuing disciplines:drop-tail, RED, FQ, SFQ, DRR QoS: IntServ and Diffserv Emulation Wireless Ad hoc routing and mobile IP Directed diffusion, sensor-MAC Tracing, visualization, various utilities
26
NS-2版本状态 最新发布的稳定版本:2.30 最近发布时间:2006年9月26日 5月27日: ns-allinone-2.29.3发布
“A new four-year program to develop the next major version of ns-3 was officially started on July 1, The program is funded as part of the NSF CISE CRI program.”
27
NS-2的组成部分 Tcl release 8.4.13 (必备组件) Tk release 8.4.13 (必备组件)
Otcl release 1.12 (必备组件) TclCL release 1.18 (必备组件) Ns release 2.30 (必备组件 ) Nam release 1.12 (可选组件) Xgraph version 12 (可选组件) CWeb version 3.4g (可选组件) SGB version 1.0 (?) (可选组件, 为所有类UNIX平台安装sgblib库) Gt-itm gt-itm and sgb2ns 1.1 (可选组件) Zlib version (可选, 安装Nam软件包需要用到)
28
内容提要 网络仿真概述 主流网络仿真软件简介 NS-2简介 NS-2安装 NS-2架构与使用 NS-2简单实例 参考资料
29
NS-2安装基本要求 必要的开发工具包 binutils gcc/g++ make 必要的库文件 glibc
Xlibs-dev, libx11-dev
30
NS-2.30的安装 NS-2.30在Ubuntu6.06 Linux下的安装 (进入ns-allinone-2.30的源码目录)
zxf ns-allinone-2.30.tar.gz ¶ 解压 ns-allinone-2.30¶ (进入ns-allinone-2.30的源码目录) ¶ 安装
31
环境变量设置 在家目录下的.bashrc文件中加入下面三行:
export PATH=$PATH:~/ns-allinone-2.30/bin:/home/lsh/ns-allinone-2.30/tcl8.4.13/unix:/home/lsh/ns-allinone-2.30/tcl8.4.13/unix export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/lsh/ns-allinone-2.30/otcl-1.12:/home/lsh/ns-allinone-2.30/lib export TCL_LIBRARY=$TCL_LIBRARY:/home/lsh/ns-allinone-2.30/tcl8.4.13/library
32
Cygwin的下载
33
Cygwin的安装
34
NS-2与操作系统的匹配(来源:网络论坛)
操作系统版本 NS版本 备注 RedHat Linux RH9.0 2.26~2.30 完全安装 FC2 2.29 FC4 2.28~2.30 FC5 2.26,2.30 FC6 2.30 AS4 2.29,2.30 装Xlib Ubuntu Linux 5.04 2.28,2.29 5.10 6.06 2.27~2.30 Kubuntu6.06 only KDE SuSe Linux Enterprise 10 NS Mac OS X10.4 2.28~2.29 install X11 Windows 2000,XP + VC6 2.26 逐个编译 Cygwin 需要的包和库
35
内容提要 网络仿真概述 主流网络仿真软件简介 NS-2简介 NS-2安装 NS-2架构与使用 NS-2简单实例 参考资料
36
NS-2的分裂对象模型 实现层:采用C++对象 方便协议和算法的实现 提高执行效率 表示层:采用OTcl对象 方便拓扑和节点属性的修改
提高仿真便利性
37
OTcl对象树
38
NS-2的体系架构
39
NS-2使用一般流程 问题 修改源代码 仿真建模 结果分析 建立/运行 仿真程序
40
NS-2的实际操作界面 用户采用NS-2原有的模块进行仿真分析时,其实际工作就是通过Tcl/OTcl编程建模/运行并分析结果。
41
内容提要 网络仿真概述 主流网络仿真软件简介 NS-2简介 NS-2安装 NS-2架构与使用 NS-2简单实例 参考资料
42
NS-2实例详解 节点0:主机 四个节点:0~3 其中节点2作为路由器对网络流量进行转发 节点2:路由器 节点3:主机 节点1:主机
本实例的拓扑结构
43
NS-2仿真脚本的基本框架 set ns [new Simulator] //新建仿真器对象
set nf [open out.nam w] //打开输出文件 $ns namtrace-all $nf //记录所有输出 proc finish {} { //定义一个退出过程 //里面进行删除对象,关闭文件等操作 } $ns at 5.0 “finish“ //定时运行结束过程 $ns run //启动仿真程序
44
NS-2的网络构件 节点(网络设备或主机) set n0 [$ns node] #创建节点 链路(连接节点的通路)
$ns duplex-link $n0 $n2 1Mb 10ms DropTail 代理(网络协议实体) set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0
45
本例完整代码(一) Set ns [new Simulator] proc finish {} { global ns nf
#Define different colors for data flows $ns color 1 Blue $ns color 2 Red #Open the nam trace file set nf [open out.nam w] $ns namtrace-all $nf #Define a 'finish' procedure proc finish {} { global ns nf $ns flush-trace #Close the trace file close $nf exec nam out.nam & exit 0 }
46
(二)建立节点和链路 set n0 [$ns node] set n1 [$ns node] set n2 [$ns node]
$ns duplex-link $n0 $n2 1Mb 10ms DropTail $ns duplex-link $n1 $n2 1Mb 10ms DropTail $ns duplex-link $n3 $n2 1Mb 10ms SFQ (二)建立节点和链路 #Monitor the queue for the link between node 2 and node 3 $ns duplex-link-op $n2 $n3 queuePos 0.5 set udp0 [new Agent/UDP] $udp0 set class_ 1 $ns attach-agent $n0 $udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ 0.005 $cbr0 attach-agent $udp0
47
(三)新建Agent set udp1 [new Agent/UDP] $udp1 set class_ 2
$ns attach-agent $n1 $udp1 set cbr1 [new Application/Traffic/CBR] $cbr1 set packetSize_ 500 $cbr1 set interval_ 0.005 $cbr1 attach-agent $udp1 #Create a Null agent (a traffic sink) and attach it to node n3 set null0 [new Agent/Null] $ns attach-agent $n3 $null0 #Connect the traffic sources with the traffic sink $ns connect $udp0 $null0 $ns connect $udp1 $null0
48
(四)运行时间调度 #Schedule events for the CBR agents $ns at 0.5 "$cbr0 start“
$ns at 4.0 "$cbr1 stop“ $ns at 4.5 "$cbr0 stop“ #Call the finish procedure after 5 seconds of simulation time $ns at 5.0 "finish“ #Run the simulation $ns run
49
(五)运行结果
50
(六)结果的处理 了解trace文件的结构,自己编程处理 使用现有工具 Linux提供了许多小工具对结果进行处理
脚本语言:gawk、tcl、shell 绘制曲线图形: xgraph,gnuplot,tracegraph
51
实用参考资料 网络论坛(Network Forum):http://www.netforum.com.cn/ 科研论坛网络仿真版:
台湾柯志亨教授的主页: NS by Example: Ns tutorial: 源码与架构分析: 中文书籍:《NS与网络模拟》 官方手册:~/ns-allinone-2.30/ns-2.30/doc/everything.pdf NS2学习交流论坛: (我们自己新建的论坛)
52
结束语 我们的兴趣方向: 1、NS2资料整理:出版第二本简体中文书籍 2、NS2应用研究:用于网络仿真(如Ad hoc)
谢谢大家!
Similar presentations