⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tcpsrm.tcl

📁 对IEEE 802.11e里的分布式信道接入算法EDCA进行改进
💻 TCL
字号:
## A simple example for tcp/srm  #### Create a simple six node topology:##        s1                 s3#         \                 /# 10Mb,2ms \  1.5Mb,20ms   / 1.5Mb,10ms#           r1 --------- r2# 10Mb,3ms /               \ 10Mb,5ms#         /                 \#        s2                 s4## updated to use -multicast on and allocaddr by Lloyd Woodproc build_topology { ns } {    global node_    set node_(s1) [$ns node]    set node_(s2) [$ns node]    set node_(r1) [$ns node]    set node_(r2) [$ns node]    set node_(s3) [$ns node]    set node_(s4) [$ns node]    $ns duplex-link $node_(s1) $node_(r1) 10Mb 2ms DropTail    $ns duplex-link $node_(s2) $node_(r1) 10Mb 3ms DropTail    $ns duplex-link $node_(r1) $node_(r2) 1.5Mb 20ms RED    $ns queue-limit $node_(r1) $node_(r2) 10    $ns queue-limit $node_(r2) $node_(r1) 10    $ns duplex-link $node_(s3) $node_(r2) 10Mb 4ms DropTail    $ns duplex-link $node_(s4) $node_(r2) 10Mb 5ms DropTail     $ns duplex-link-op $node_(s1) $node_(r1) orient right-down    $ns duplex-link-op $node_(s2) $node_(r1) orient right-up    $ns duplex-link-op $node_(r1) $node_(r2) orient right    $ns duplex-link-op $node_(r1) $node_(r2) queuePos 0    $ns duplex-link-op $node_(r2) $node_(r1) queuePos 0    $ns duplex-link-op $node_(s3) $node_(r2) orient left-down    $ns duplex-link-op $node_(s4) $node_(r2) orient left-up} source ../mcast/srm-nam.tclset ns [new Simulator -multicast on]set f [open out.tr w]$ns trace-all $fset nf [open out.nam w]$ns namtrace-all $nfbuild_topology $nsset group [Node allocaddr]set mh [$ns mrtproto DM {}]set srmStats [open srmStats.tr w]set srmEvents [open srmEvents.tr w]set n(0) $node_(r2)set n(1) $node_(r1)set n(2) $node_(s3)set n(3) $node_(s4)set fid 0foreach i [array names n] {        set srm($i) [new Agent/SRM]        $srm($i) set dst_addr_ $group        $srm($i) set dst_port_ 0        $srm($i) set fid_ [incr fid]        $srm($i) log $srmStats        $srm($i) trace $srmEvents        $ns attach-agent $n($i) $srm($i)}# Attach a data source to srm(0)set packetSize 210set exp0 [new Application/Traffic/Exponential]$exp0 set packetSize_ $packetSize$exp0 set burst_time_ 500ms$exp0 set idle_time_ 500ms$exp0 set rate_ 100k$exp0 attach-agent $srm(0)$srm(0) set tg_ $exp0$srm(0) set app_fid_ 0$srm(0) set packetSize_ $packetSize     ;# so repairs are correct$ns at 0.0 "$srm(0) start; $srm(0) start-source"$ns at 1.0 "$srm(1) start"$ns at 1.1 "$srm(2) start"$ns at 1.2 "$srm(3) start"# tcp setupset redq [[$ns link $node_(r1) $node_(r2)] queue]$redq set setbit_ true set tcp1 [$ns create-connection TCP/Reno $node_(s1) TCPSink $node_(s3) 0]$tcp1 set window_ 15$tcp1 set ecn_ 1# #set tcp2 [$ns create-connection TCP/Reno $node_(s2) TCPSink $node_(s1) 1]#$tcp2 set window_ 15#$tcp2 set ecn_ 1 set ftp1 [$tcp1 attach-app FTP]    #set ftp2 [$tcp2 attach-app FTP] $ns at 4.0 "$ftp1 start"#$ns at 0.0 "$ftp2 start"proc finish src {        $src stop         global ns srmStats srmEvents        $ns flush-trace        #close $f        #close $nf	close $srmStats        close $srmEvents        #XXX        puts "Filtering ..."	exec tclsh8.0 ../../../nam-1/bin/namfilter.tcl out.nam        puts "running nam..."        exec nam out.nam &        exit 0}$ns at 5.0 "finish $exp0"$ns run

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -