欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:2338132       资源大小:61.22KB        全文页数:176页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    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


    注意事项

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

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开