版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第4章例1#建立一个模拟set ns new Simulator#定义不同数据流的颜色(NAM显示时用到)$ns color 1 Blue$ns color 2 Red#开启Trace跟踪和NAM跟踪set tracefd open wired.tr w$ns trace-all $tracefdset nf open wired.nam w$ns namtrace-all $nf#定义结束进程proc finish global ns tracefd nf$ns flush-traceclose $tracefdclose $nfexit 0#定义节点set n0 $ns nodeset n
2、1 $ns nodeset n2 $ns nodeset n3 $ns nodeset n4 $ns nodeset n5 $ns node#$n5 color black$n5 color red#定义节点间的链路$ns duplex-link $n0 $n1 2Mb 10ms DropTail$ns duplex-link $n1 $n2 2Mb 10ms DropTail$ns duplex-link $n1 $n4 2Mb 20ms DropTail$ns duplex-link $n3 $n4 2Mb 10ms DropTail$ns duplex-link $n4 $n5 2Mb
3、10ms DropTail#定义链路的队列长度$ns queue-limit $n1 $n4 10#指定节点间的相互位置(NAM显示用到)$ns duplex-link-op $n0 $n1 orient right-down$ns duplex-link-op $n2 $n1 orient right-up$ns duplex-link-op $n1 $n4 orient right$ns duplex-link-op $n3 $n4 orient left-down$ns duplex-link-op $n5 $n4 orient left-up#监视链路的队列$ns duplex-lin
4、k-op $n1 $n4 queuePos 0.5#建立一个TCP连接set tcp new Agent/TCP $tcp set class_ 2$ns attach-agent $n0 $tcpset sink new Agent/TCPSink$ns attach-agent $n5 $sink$ns connect $tcp $sink$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
5、 ;#建立一个数据发送代理$ns attach-agent $n2 $udp ;#将数据发送代理绑定到发送节点set null new Agent/Null ;#建立一个数据接收代理$ns attach-agent $n3 $null ;#将数据接收代理绑定到接收节点$ns connect $udp $null ;#连接两个代理(也就决定了数据包的发送和接收节点)$udp set fid_ 2#在UDP代理上建立CBR流set cbr new Application/Traffic/CBR$cbr attach-agent $udp$cbr set type_ CBR$cbr set pack
6、et_size_ 1000$cbr set rate_ 1mb$cbr set random_ false#启动和结束流代理$ns at 0.5 $cbr start$ns at 1.0 $ftp start$ns at 9.0 $ftp stop$ns at 9.5 $cbr stop$ns at 9.5 $ns detach-agent $n0 $tcp; $ns detach-agent $n5 $sink#仿真结束时调用结束进程$ns at 10.0 finish#打印CBR数据包的大小和间隔puts CBR packet_size_ = $cbr set packet_size_pu
7、ts CBR interval = $cbr set interval_#执行模拟$ns run例2#简单无线网络模型模拟#无线节点参数set val(chan) Channel/WirelessChannel ;# channel type 信道类型:无线信道set val(prop) Propagation/TwoRayGround ;# radio-propagation model 信道模型:TwoRayGroundset val(netif) Phy/WirelessPhy ;# network interface type 无线物理层set val(mac) Mac/802_11
8、;# MAC type MAC层协议set val(ifq) Queue/DropTail/PriQueue ;# interface queue typeset val(ll) LL ;# link layer type set val(ant) Antenna/OmniAntenna ;# antenna modelset val(ifqlen) 50 ;# max packet in ifqset val(rp) AODV ;# 路由协议set val(x) 600 ;# 拓扑长度set val(y) 200 ;# 拓扑宽度set val(stop) 10.0 ;# time of si
9、mulation end# 建立一个simulator实例set ns new Simulator#$ns use-newtrace#开启Trace跟踪和NAM跟踪set tracefd open wireless.tr wset namtrace open wireless.nam w$ns trace-all $tracefd$ns namtrace-all-wireless $namtrace $val(x) $val(y)#建立topology对象set topo new Topography$topo load_flatgrid $val(x) $val(y)#创建godcreate
10、-god 3set chan_1_ new $val(chan)#配置无线节点(包括使用何种路由协议,何种mac协议,无线信道的模型等等)$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_1_ -topoInstance $topo -agentTrace ON -r
11、outerTrace ON -macTrace ON -movementTrace OFF #建立无线节点并设置节点的位置(节点位置决定了拓扑结构)set n(0) $ns node #$n(0) shape hexagon#$n(0) label n0#$n(0) label-color Red$n(0) random-motion 0$n(0) set X_ 100.0$n(0) set Y_ 100.0$n(0) set Z_ 0.0$ns initial_node_pos $n(0) 20set n(1) $ns node$n(1) random-motion 0$n(1) set X
12、_ 300.0$n(1) set Y_ 100.0$n(1) set Z_ 0.0$ns initial_node_pos $n(1) 20set n(2) $ns node$n(2) random-motion 0$n(2) set X_ 500.0$n(2) set Y_ 100.0$n(2) set Z_ 0.0$ns initial_node_pos $n(2) 20 #建立一个UDP代理set udp0 new Agent/UDP ;#建立一个数据发送代理$ns attach-agent $n(0) $udp0 ;#将数据发送代理绑定到发送节点set null0 new Agent/
13、Null ;#建立一个数据接收代理$ns attach-agent $n(2) $null0 ;#将数据接收代理绑定到接收节点$ns connect $udp0 $null0 ;#连接两个代理(也就决定了数据包的发送和接收节点) #在UDP代理上建立CBR流set cbr new Application/Traffic/CBR $cbr attach-agent $udp0 # 仿真结束时重置节点for set i 0 $i 3 incr i $ns at 10.0 $n($i) reset;#启动和结束流代理$ns at 0.5 $cbr start$ns at 9.5 $cbr stop#
14、定义结束进程proc finish global ns tracefd namtrace $ns flush-trace close $tracefd close $namtraceexit 0#仿真结束时调用结束进程$ns at $val(stop) finish$ns at $val(stop) puts NS EXISTING.; $ns haltputs Start Simulation.# run the simulation$ns run例3#有线无线网络混合模拟#无线节点参数set val(chan) Channel/WirelessChannel ;# channel type
15、 信道类型:无线信道set val(prop) Propagation/TwoRayGround ;# radio-propagation model 信道模型:TwoRayGroundset val(netif) Phy/WirelessPhy ;# network interface type 无线物理层set val(mac) Mac/802_11 ;# MAC type MAC层协议set val(ifq) Queue/DropTail/PriQueue ;# interface queue typeset val(ll) LL ;# link layer type set val(a
16、nt) Antenna/OmniAntenna ;# antenna modelset val(ifqlen) 50 ;# max packet in ifqset val(rp) DSDV ;#路由协议set val(nn) 4 ;#节点数目set val(x) 600 ;set val(y) 600 ;set val(stop) 10.0 ;# time of simulation end# 建立一个simulator实例set ns new Simulator#设定分层路由地址$ns node-config -addressType hierarchicalAddrParams set
17、domain_num_ 2 ;# 2个网络lappend cluster_num 1 1 ;# 每个网络一个子网AddrParams set cluster_num_ $cluster_numlappend eilastlevel 1 3 ;# 2个子网的节点数目为1和3AddrParams set nodes_num_ $eilastlevelputs Configuration of hierarchical addressing done#$ns use-newtrace#设置traceset tracefd open wired_wireless2.tr wset namtrace o
18、pen wired_wireless2.nam w$ns trace-all $tracefd$ns namtrace-all-wireless $namtrace $val(x) $val(y)#建立topology对象set topo new Topography$topo load_flatgrid $val(x) $val(y) #创建godcreate-god $val(nn)set sinkNode $ns node 0.0.0$sinkNode set X_ 500$sinkNode set Y_ 300$sinkNode set Z_ 0$ns initial_node_pos
19、 $sinkNode 60set chan_1_ new $val(chan)#无线节点配置$ns node-config -wiredRouting ON -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_1_ -topoInstance $topo -agentTrace ON -routerT
20、race ON -macTrace ON -movementTrace OFF #新建BS节点set bs(0) $ns node 1.0.0$bs(0) random-motion 0 #节点标签与初始位置设定$bs(0) set X_ 200.0$bs(0) set Y_ 300.0$bs(0) set Z_ 0.0$ns initial_node_pos $bs(0) 60#定义节点间的链路$ns duplex-link $sinkNode $bs(0) 10Mb 1ms DropTail$ns duplex-link-op $sinkNode $bs(0) orient left#定义
21、链路的队列长度#$ns queue-limit $bs(0) $sinkNode 10#监视链路的队列#$ns duplex-link-op $bs(0) $sinkNode queuePos 0.5$ns node-config -wiredRouting OFF -macType Mac/802_11 #新建SS节点set ss(0) $ns node 1.0.1$ss(0) base-station AddrParams addr2id $bs(0) node-addr$ss(0) set X_ 50.0$ss(0) set Y_ 450.0$ss(0) set Z_ 0.0$ns in
22、itial_node_pos $ss(0) 60set ss(1) $ns node 1.0.2$ss(1) base-station AddrParams addr2id $bs(0) node-addr$ss(1) set X_ 50.0$ss(1) set Y_ 150.0$ss(1) set Z_ 0.0$ns initial_node_pos $ss(1) 60set udp0 new Agent/UDP$ns attach-agent $ss(0) $udp0set null0 new Agent/Null$ns attach-agent $sinkNode $null0$ns c
23、onnect $udp0 $null0set ugs0 new Application/Traffic/UGS$ugs0 attach-agent $udp0set udp1 new Agent/UDP$ns attach-agent $sinkNode $udp1set null1 new Agent/Null$ns attach-agent $ss(1) $null1$ns connect $udp1 $null1set ugs1 new Application/Traffic/UGS$ugs1 attach-agent $udp1$ns at 0.5 $ugs0 start$ns at
24、1.0 $ugs1 start$ns at 9.0 $ugs1 stop$ns at 9.5 $ugs0 stopproc finish global ns tracefd namtrace $ns flush-trace close $tracefd close $namtraceexit 0#事件安排$ns at $val(stop) finish$ns at $val(stop) puts NS EXISTING.; $ns haltputs Start Simulation.# run the simulation$ns run第10章delay.awkBEGIN highest_ui
25、d=0;event = $1;time = $2;node = $3;len = length(node);if(len = 3) node_ = substr(node,2,1);trace_type = $4;flag = $5;uid = $6;pkt_type = $7;pkt_size = $8; else from_node = $3;to_node =$4;pkt_type = $5;pkt_size = $6;flag = $7;uid = $12;if(len=3) if(event=s & node_=2 & trace_type=AGT & pkt_type=cbr)st
26、art_timeuid = time; else if(event=r & to_node=0 & pkt_type=cbr)end_timeuid = time;if(highest_uid uid) highest_uid = uid;END id=1;k=0;total_delay=0;avg_delay=0;for(i=0; i 0) total_delay=total_delay+delay;k+;avg_delay=total_delay/k;printf(%f %.9fn,rate,avg_delay);get_perform#!/bin/shi=1while $i -le 30
27、0 ; dons w_w.tcl $igawk f delay.awk rate=$i wired_wireless.tr delaygawk f loss.awk rate=$i wired_wireless.tr loss_rategawk -f throughtput.awk rate=$i wired_wireless.tr throughtputif $i -le 225 ; theni=$($i+20)elif $i -le 250 ; theni=$($i+5)elsei=$($i+2)fidoneexit 0jitter.awkBEGIN highest_uid=0;event
28、 = $1;time = $2;node = $3;len = length(node);if(len = 3) node_ = substr(node,2,1);trace_type = $4;flag = $5;uid = $7;pkt_type = $8;pkt_size = $9; else from_node = $3;to_node =$4;pkt_type = $5;pkt_size = $6;flag = $7;uid = $12;if(len=3) if(event=s & node_=2 & trace_type=AGT & pkt_type=cbr)start_timeu
29、id = time; else if(event=r & to_node=0 & pkt_type=cbr)end_timeuid = time;if(highest_uid uid) highest_uid = uid;END id=1;for(i=0; i=highest_uid; i+ )start = start_timei;end = end_timei;if(start end) delayi=end-start;last_delay=0;last_seqno=0;for(i=0; i=highest_uid; i+)if(delayi!=0) if(last_delay=0) j
30、itter=0; else jitter=(delayi-last_delay)/(i-last_seqno);printf(%d %.8fn,i,jitter);last_delay=delayi;last_seqno=i;loss.awkBEGIN fsDrops=0;numfs2=0;numfs0=0;event = $1;time = $2;node = $3;len = length(node);if(len = 3) node_ = substr(node,2,1);trace_type = $4;flag = $5;uid = $6;pkt_type = $7;pkt_size
31、= $8; else from_node = $3;to_node =$4;pkt_type = $5;pkt_size = $6;flag = $7;uid = $12;if(len=3) if(event=s & node_=2 & trace_type=AGT & pkt_type=cbr)numfs2+; else if(event=r & to_node=0 & pkt_type=cbr)numfs0+;END loss_rate=0;fsDrops=numfs2-numfs0;loss_rate=fsDrops/numfs2;printf(%f %.3fn,rate,loss_ra
32、te);plot_dataset multiplotset size 0.5,0.5set origin 0.0,0.0set xrange 225:250set xlabel data_rate(Kbps)set ylabel pkt_delay(s)plot delay with linespoints lw 2 pt 19set origin 0.5,0.0set ylabel loss_rate(100%)plot loss with linespoints lw 2 pt 19set origin 0.0,0.5set ylabel throughtput(Kbps)plot thr
33、oughtput with linespoints lw 2 pt 19throughtput.awkBEGIN init=0;i=0;event = $1;time = $2;node = $3;len = length(node);if(len = 3) node_ = substr(node,2,1);trace_type = $4;flag = $5;uid = $6;pkt_type = $7;pkt_size = $8; else from_node = $3;to_node =$4;pkt_type = $5;pkt_size = $6;flag = $7;uid = $12;i
34、f(len=1) if(event=r & to_node=0 & pkt_type=cbr) pkt_byte_sumi+1=pkt_byte_sumi+(pkt_size-20);if(init=0)start_time=time;init=1;end_timei=time;i+;END th = 8*pkt_byte_sumi-1/(end_timei-1-start_time)/1000;printf(%f %.3fn, rate, th);wire_wireless.tcl#有线+无线网络混合模拟#增加全局变量opt(rate)和过程getoptset opt(rate) 0;#变量
35、opt(rate)保存数据速率值proc getopt argc argv ;#过程getopt获取从命令行传递过来的数据速率值global optset opt(rate) lindex $argv 0#无线节点参数set val(chan) Channel/WirelessChannelset val(prop) Propagation/TwoRayGroundset val(netif) Phy/WirelessPhyset val(mac) Mac/802_11set val(ifq) Queue/DropTail/PriQueueset val(ll) LLset val(ant)
36、Antenna/OmniAntennaset val(ifqlen) 50set val(rp) DSDVset val(nn) 4set val(x) 600set val(y) 600set val(stop) 10.0# 建立一个simulator实例set ns new Simulator#设定分层路由地址$ns node-config -addressType hierarchicalAddrParams set domain_num_ 2 ;# 2个网络lappend cluster_num 1 1 ;# 每个网络一个子网AddrParams set cluster_num_ $c
37、luster_numlappend eilastlevel 1 3 ;# 2个子网的节点数目为1和3AddrParams set nodes_num_ $eilastlevelputs Configuration of hierarchical addressing done#$ns use-newtrace#设置traceset tracefd open wired_wireless.tr wset namtrace open wired_wireless.nam w$ns trace-all $tracefd$ns namtrace-all-wireless $namtrace $val(
38、x) $val(y)#建立topology对象set topo new Topography$topo load_flatgrid $val(x) $val(y)#创建godcreate-god $val(nn)set sinkNode $ns node 0.0.0$sinkNode set X_ 500$sinkNode set Y_ 300$sinkNode set Z_ 0$ns initial_node_pos $sinkNode 60set chan_1_ new $val(chan)#无线节点配置$ns node-config -wiredRouting ON -adhocRout
39、ing $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_1_ -topoInstance $topo -agentTrace ON -routerTrace ON -macTrace ON -movementTrace OFF #新建BS节点set bs(0) $ns node 1.0.0$bs(0) random-moti
40、on 0 #节点标签与初始位置设定$bs(0) set X_ 200.0$bs(0) set Y_ 300.0$bs(0) set Z_ 0.0$ns initial_node_pos $bs(0) 60#定义节点间的链路$ns duplex-link $sinkNode $bs(0) 10Mb 1ms DropTail$ns duplex-link-op $sinkNode $bs(0) orient left#定义链路的队列长度#$ns queue-limit $bs(0) $sinkNode 10#监视链路的队列#$ns duplex-link-op $bs(0) $sinkNode q
41、ueuePos 0.5$ns node-config -wiredRouting OFF -macType Mac/802_11#新建SS节点set ss(0) $ns node 1.0.1$ss(0) base-station AddrParams addr2id $bs(0) node-addr$ss(0) set X_ 50.0$ss(0) set Y_ 450.0$ss(0) set Z_ 0.0$ns initial_node_pos $ss(0) 60set ss(1) $ns node 1.0.2$ss(1) base-station AddrParams addr2id $bs
42、(0) node-addr$ss(1) set X_ 50.0$ss(1) set Y_ 150.0$ss(1) set Z_ 0.0$ns initial_node_pos $ss(1) 60getopt $argc $argv;#调用过程getopt获取数据发送速率puts opt(rate)=$opt(rate)set udp0 new Agent/UDP$ns attach-agent $ss(0) $udp0set null0 new Agent/Null$ns attach-agent $sinkNode $null0$ns connect $udp0 $null0set cbr0
43、 new Application/Traffic/CBR$cbr0 attach-agent $udp0$cbr0 set rate_ $opt(rate)Kb;#数据发送速率值使用变量opt(rate)的值set udp1 new Agent/UDP$ns attach-agent $sinkNode $udp1set null1 new Agent/Null$ns attach-agent $ss(1) $null1$ns connect $udp1 $null1set cbr1 new Application/Traffic/CBR$cbr1 attach-agent $udp1$cbr
44、1 set rate_ $opt(rate)Kb;#数据发送速率值使用变量opt(rate)的值$ns at 0.5 $cbr0 start$ns at 1.0 $cbr1 start$ns at 9.0 $cbr1 stop$ns at 9.5 $cbr0 stopproc finish global ns tracefd namtrace $ns flush-trace close $tracefd close $namtraceexit 0#事件安排$ns at $val(stop) finish$ns at $val(stop) puts NS EXISTING.; $ns haltputs Start Simulation.# run the simulation$ns run第11章wireless.tcl#简单无线网络模型模拟#无线节点参数set val(chan) Channel/WirelessChannel ;# channel type 信道类型:无线信道set val(prop) Propagation/TwoRayGround ;# radio-propa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年重庆市中考化学试卷及答案
- 2026年营养师营养评估与膳食指导技能考核试题及答案解析
- 国内沿海集装箱货运代理协议新10篇
- 医务人员手卫生规范试题(+答案)
- 医学伦理学题库及答案
- 医院感染管理制度知识考核试题及答案
- 2026及未来5年中国手工拼花被数据监测研究报告
- 医院环境物体表面清洁与消毒试题(附答案)
- 职业技能鉴定国家题库-保育员初级理论知识试卷A(含答案)
- 2026年活塞环行业技术分析报告
- 2026年秋北师大版新教材四年级上册数学(全册)知识点清单梳理
- 2024版压力容器设计审核题库(综合题)
- 手术室护理人文关怀与沟通技巧
- (2026年)皮内注射技术课件
- 2025版《广东省护理病历书写管理规范(试行)》
- 福建金投集团招聘笔试题目
- 企业新春员工福利礼品选购指南【课件文档】
- 机泵基础知识培训
- 6S启动大会课件
- ISO14644-5-2025洁净室及相关受控环境-第5部分运行中文版
- 犀塔数据悟相科技:2025RWA入门100问
评论
0/150
提交评论