ImageVerifierCode 换一换
格式:DOCX , 页数:176 ,大小:61.22KB ,
资源ID:2338132      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-2338132.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(NS网络模拟和协议仿真源代码.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

NS网络模拟和协议仿真源代码.docx

1、NS网络模拟和协议仿真源代码第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-trace close $tracefd close $nf exit 0#定义节点se

2、t n0 $ns nodeset n1 $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

3、-link $n4 $n5 2Mb 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#监视链

4、路的队列$ns duplex-link-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

5、 udp new Agent/UDP ;#建立一个数据发送代理$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

6、_ CBR$cbr set packet_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

7、set packet_size_puts 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 va

8、l(mac) Mac/802_11 ;# 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)

9、10.0 ;# time of simulation 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) $

10、val(y)#创建godcreate-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

11、 -agentTrace ON -routerTrace 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-m

12、otion 0$n(1) set X_ 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 ;#将数据发送代理绑定到发送节点se

13、t null0 new Agent/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

14、 at 9.5 $cbr stop#定义结束进程proc finish global ns tracefd namtrace $ns flush-trace close $tracefd close $namtrace exit 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/WirelessChan

15、nel ;# channel type 信道类型:无线信道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 l

16、ayer type set val(ant) 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 hierarch

17、icalAddrParams set 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

18、.tr wset namtrace open 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$

19、ns initial_node_pos $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 -age

20、ntTrace ON -routerTrace 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 $b

21、s(0) orient left#定义链路的队列长度#$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(

22、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(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 $s

23、inkNode $null0$ns connect $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

24、 $ugs0 start$ns at 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 $namtrace exit 0#事件安排$ns at $val(stop) finish$ns at $val(stop) puts NS EXISTING.; $ns haltputs Start Simulation.# run the simulation$ns run第10章delay

25、.awkBEGIN highest_uid=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_=

26、2 & trace_type=AGT & pkt_type=cbr) start_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

27、_delay);get_perform#!/bin/shi=1while $i -le 300 ; do ns w_w.tcl $i gawk f delay.awk rate=$i wired_wireless.tr delay gawk f loss.awk rate=$i wired_wireless.tr loss_rate gawk -f throughtput.awk rate=$i wired_wireless.tr throughtput if $i -le 225 ; then i=$($i+20) elif $i -le 250 ; then i=$($i+5) else

28、i=$($i+2) fidoneexit 0jitter.awkBEGIN highest_uid=0; event = $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_timeuid = time; else if(event=r & to_node=0 & pkt_type=cbr) end_timeuid = time; if(highest_uid uid) highest_uid = uid;EN

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2