移动通信系统与原理实验-NS2

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在脚本所在文件夹右键“在终端中打开”, 输入su(密码123456),执行ns命令。 如:ns test.tcl

8
NSG2生成Tcl脚本方法

由于NSG2是以Java撰写,因此可在任何支持Java的平台 上执行(如Windows、Linux、Mac OS ...),另外NSG2 本身并不需要安装,只要通过Java来启动。 在执行NSG2之前必须先确定计算机中装有Java Runtime Environment(JRE)或Java SE Development Kit(JDK),以 Window操作系统为例,可在DOS命令窗口(开始->运行>cmd)中输入” java -version” 指令
27
NSG2生成无线网络Tcl举例
#=================================== # Applications 定义 #=================================== #建立与udp0绑定的数据流cbr0 set cbr0 [new Application/Traffic/CBR] $cbr0 attach-agent $udp0 $cbr0 set packetSize_ 1000 $cbr0 set rate_ 0.5Mb $cbr0 set random_ null $ns at 1.0 "$cbr0 start" $ns at 60.0 "$cbr0 stop" #建立与udp1绑定的数据流cbr1 set cbr1 [new Application/Traffic/CBR] $cbr1 attach-agent $udp1 $cbr1 set packetSize_ 1000 $cbr1 set rate_ 0.5Mb $cbr1 set random_ null $ns at 1.0 "$cbr1 start" $ns at 60.0 "$cbr1 stop"

每一个事件都有一个预定的执行(虚拟的)时间, 独立于真实执行时间。

CPU 执行的快慢不影响结果。
7
二、设置通信环境

通信环境是由Tcl脚本来配置的

利用软件NSG2生成Tcl脚本。如:test.tcl
(晨光资源:移动通信原理与系统实验参考资料:TCL脚本入门教程(中文 版)和TCL脚本自动生成器NSG2下载及使用说明)
28
NSG2生成无线网络Tcl举例
#=================================== # 终止 #=================================== #定义结束过程,关闭Trace文件和NAM显示文件, proc finish {} { global ns tracefile namfile $ns flush-trace close $tracefile close $namfile exec nam test.nam & exit 0 } for {set i 0} {$i < $val(nn) } { incr i } { $ns at $val(stop) "\$n$i reset"} #模拟结束时调用结束过程 $ns at $val(stop) "$ns nam-end-wireless $val(stop)" $ns at $val(stop) "finish" $ns at $val(stop) "puts \"done\" ; $ns halt" #执行模拟 $ns run
24
NSG2生成无线网络Tcl举例
#=================================== # 初始化 #=================================== #建立simulator实例 set ns [new Simulator] #建立拓扑对象 set topo [new Topography] $topo load_flatgrid $val(x) $val(y) #创建god create-god $val(nn) #设置trace set tracefile [open test.tr w] $ns trace-all $tracefile #设置 NAM trace set namfile [open test.nam w] $ns namtrace-all $namfile $ns namtrace-all-wireless $namfile $val(x) $val(y) #创建无线信道 set chan [new $val(chan)];
3
NS2功能

无线网络
网络类型:MANET, Sensor Networks • 路由:AODV, DSR, DSDV,Mobile IP以及 HMIPv6等 • MAC: 802.11, 802.15.4,Smac等 • 传输层、多种数据流模拟

4
NS2 组件

ns: 网络模拟器

执行tcl脚本,进行模拟,并将所有的模拟结果 以trace文件的格式输出。 将ns的结果可视化。
Gawk gnuplot

nam: 网络 AniMator

பைடு நூலகம்

模拟的流程
tcl 脚本
ns-2
Trace文件 Nam文件
nam
5
NS2体系结构

面向对象的设计
支持重用 容易维护 方便扩展,如添加新协议


分裂对象模型

C++是高效的编译执行语言,功能模拟,性能 较好 Otcl 解释执行的,进行场景配置。不必重新编 译更灵活
移动与通信系统实验
——NS2仿真方法
一、构建实验环境


在windows系统装虚拟机——VMware环境
(晨光资源:VMware-workstation-full-7.1.4-385536)
创建LINUX系统环境——Fedora14 实验软件——NS2(推荐直接安装nsallinone-2.35 )
26
NSG2生成无线网络Tcl举例
#=================================== # Agent定义 #=================================== #建立一个 UDP代理udp0与null2的连接 set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 set null2 [new Agent/Null] $ns attach-agent $n4 $null2 $ns connect $udp0 $null2 $udp0 set packetSize_ 1500 #建立一个 UDP代理udp1与null3的连接 set udp1 [new Agent/UDP] $ns attach-agent $n1 $udp1 set null3 [new Agent/Null] $ns attach-agent $n5 $null3 $ns connect $udp1 $null3 $udp1 set packetSize_ 1500
21
NSG2生成无线网络Tcl举例
22
NSG2生成无线网络Tcl举例
23
NSG2生成无线网络Tcl举例
#=================================== # 无线节点参数 #=================================== set val(chan) Channel/WirelessChannel ;# 物理信道类型是无线信道 set val(prop) Propagation/TwoRayGround ;# 无线传输模型 set val(netif) Phy/WirelessPhy ;# 网络接口类型是无线物理层 set val(mac) Mac/802_11 ;# MAC 层协议采用802.11协议 set val(ifq) Queue/DropTail/PriQueue ;# 接口队列类型是IFQ队列 set val(ll) LL ;# 逻辑链路层类型LL层 set val(ant) Antenna/OmniAntenna ;# 天线模型是全向天线 set val(ifqlen) 50 ;# 网络接口队列的大小是50 set val(nn) 6 ;# 无线节点有6个 set val(rp) DSDV ;# 无线路由协议是DSDV set val(x) 866 ;# 设定拓扑范围长度 set val(y) 2136 ;# 设定拓扑范围宽度 set val(stop) 60.0 ;# 设定模拟时间60s
11
NSG2生成Tcl脚本方法

参数设定
在有线网络剧本时,参数的设定包含模拟时间和 Trace档的名称(包含NAM的Trace文件),而在建立无 线网络剧本时,则另外多了无线网络(Wireless)及频道 特性(Channel)的相关设定。比较值得一提的是,在频 道特性的相关设定中,NSG2提供了一组模拟802.11b的 参考值,然而在预设的情况下并不会启用,如果使用者要 启用这些设定,则选取画面左边的方块即可,当然,也可 以根据模拟的需求设定新的值。
#========================= # 节点定义 #========================= #创建六个节点 set n0 [$ns node] $n0 set X_ 550 $n0 set Y_ 438 $n0 set Z_ 0.0 $ns initial_node_pos $n0 20 set n1 [$ns node] $n1 set X_ 552 $n1 set Y_ 302 $n1 set Z_ 0.0 ……
25
NSG2生成无线网络Tcl举例
#================================== # 无线节点配置 #================================== $ns node-config -adhocRouting $val(rp) \ -llType $val(ll) \ -macType $val(mac) \ -ifqType $val(ifq) \ -ifqLen $val(ifqlen) \ -antType $val(ant) \ -propType $val(prop) \ -phyType $val(netif) \ -channel $chan \ -topoInstance $topo \ -agentTrace ON \ -routerTrace ON \ -macTrace OFF \ -movementTrace ON
6
NS2系统结构
--离散事件模拟

把世界上的一切都看成事件
维护一个基于发生时间排序的事件(events)队列 维护一个系统的时间[virtual time] 重复的执行以下的过程: 从对首取出一个事件, set [virtual time]=event’s time 处理这个事件 如果在处理时间过程中产生新的event,插入queue
(晨光资源:移动通信原理与系统——NS2实验安装方法)(兴趣扩展)

课程资源:已经搭建好的Fedora14+ ns2.35环境(test)
2
(晨光资源:移动通信原理与系统实验参考NS2仿真环境)(下载到Fedora Linux 2.6.x kernel文件夹)
NS2功能

有线网络
• • • •

路由层:DV, LS, PIM-SM 传输层: TCP and UDP 流量产生: web, ftp, telnet, cbr, stochastic 队列模型: drop-tail, RED, FQ, SFQ QoS : IntServ and Diffserv
12
NSG2生成无线网络Tcl举例
13
NSG2生成无线网络Tcl举例
14
NSG2生成无线网络Tcl举例
15
NSG2生成无线网络Tcl举例
16
NSG2生成无线网络Tcl举例
17
NSG2生成无线网络Tcl举例
18
NSG2生成无线网络Tcl举例
19
NSG2生成无线网络Tcl举例
20
NSG2生成无线网络Tcl举例
(晨光资源:jdk-7u7-windows-i586及安装说明)

9
NSG2生成Tcl脚本方法

若成功安装,如下图:
10
NSG2生成Tcl脚本方法
NSG2中包含以下五种模式: Hand mode Node mode Link mode(只适用于有线网络剧本) Agent mode Application mode
相关文档
最新文档