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

📄 common.tcl

📁 droptail和RED的tcl脚本文件
💻 TCL
字号:
##   The scripts used to make the figure in the paper were from a# simulator that is now several generations old.  These ns-2 scripts# are a slightly-modified version of scripts from Davide Bergamasco at# Cisco.## window = 70, bandwidth = 5ms# window = 240, bandwidth = 20ms set bandwidth 20msset window 240 proc make_traffic {} {    global ns n3 n4 n5 n6 tcp3 tcp4 fmon_    set tcp3 [new Agent/TCP]    $tcp3 set overhead_ 0.00017    $ns attach-agent $n3 $tcp3    set snk3 [new Agent/TCPSink]    $ns attach-agent $n6 $snk3    $ns connect $tcp3 $snk3    $tcp3 set fid_ 0        set tcp4 [new Agent/TCP]    $tcp4 set overhead_ 0.00017    $ns attach-agent $n4 $tcp4    set snk4 [new Agent/TCPSink]    $ns attach-agent $n6 $snk4    $ns connect $tcp4 $snk4    $tcp4 set fid_ 1        set ftp3 [new Source/FTP]    $ftp3 set agent_ $tcp3    $ns at 0.0 "$ftp3 start"        set ftp4 [new Source/FTP]    $ftp4 set agent_ $tcp4    set StartTime [expr [ns-random]  / 2147483647.0 / 100]    puts "starttime $StartTime"    $ns at $StartTime "$ftp4 start"    set fmon_ [$ns makeflowmon Fid]    $ns attach-fmon [$ns link $n5 $n6] $fmon_}## This isn't actually used, but if called, it would make a plot# of the instantaneous queue size.#proc trace_red {} {    global ns n5 n6    set redq [[$ns link $n5 $n6] queue]    set tchan_ [open all.q w]    $redq trace curq_     $redq attach $tchan_}proc init {seed BuffSize} {    global ns SimTime packetsize window        puts "$seed"    ns-random $seed    set packetsize 1000    set SimTime 5.0        set ns [new Simulator]    #set nf [open out.nam w]    #$ns namtrace-all $nf        $ns color 0 blue    $ns color 1 red    Agent/TCP set window_ $window    Agent/TCP set packetSize_ $packetsize    Queue set limit_ $BuffSize}proc topo {} {    global ns n3 n4 n5 n6 queuetype bandwidth    set n3 [$ns node]    $n3 color "blue"    set n4 [$ns node]    $n4 color "red"    set n5 [$ns node]    $n5 shape box    set n6 [$ns node]        $ns duplex-link $n3 $n5 100Mb 1ms DropTail    $ns duplex-link $n4 $n5 100Mb 1ms DropTail    $ns duplex-link $n5 $n6 45Mb $bandwidth $queuetype    $ns duplex-link-op $n5 $n6 queuePos 0.5}proc get_queue {} {    global ns fmon_    set fcl [$fmon_ classifier]    set fids { 0 1 }    set total 0.0    foreach i $fids {            set flow [$fcl lookup auto 0 0 $i]            if { $flow != "" } {                    set dsamp [$flow get-delay-samples]		    set mean [$dsamp mean]		    set total [expr $total + $mean]                    # puts "flow $i mean [format "%8.6f" $mean]"            }    }    puts "mean delay (in seconds) [format "%8.6f" [expr $total / 2]]"    puts "(A queue of 100 packets corresponds to delay of 0.017 seconds.)"}proc finish {} {    global SimTime packetsize    global tcp3     global tcp4    set throughput [expr [$tcp3 set t_seqno_] * $packetsize * 8.0 / $SimTime/1000000]    # puts "flow [$tcp3 set fid_] throughput [format "%6.2f" $throughput]"    set throughput1 [expr [$tcp4 set t_seqno_] * $packetsize * 8.0 / $SimTime/1000000]     # puts "flow [$tcp4 set fid_] throughput [format "%6.2f" $throughput1]"    puts "total throughput (in Mbps) [format "%6.2f" [expr $throughput + $throughput1]]"    #  puts "running nam..."    #  exec nam out.nam &    exit 0}

⌨️ 快捷键说明

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