RED算法测试tcl脚本

来源:互联网 发布:网络传真机服务 编辑:程序博客网 时间:2024/05/21 03:56

# Create a simple six node topology:
#
#        s0                 d0
#         /                 /
# 10Mb,2ms /  1.5Mb,20ms   / 10Mb,4ms
#           r1 --------- r2
# 10Mb,3ms /               / 10Mb,5ms
#         /                 /
#        s1                 d1

set ns [new Simulator]

set nd [open out.tr w]
$ns trace-all $nd
set nf [open out.nam w]
$ns namtrace-all $nf

set r0 [$ns node]
set r1 [$ns node]
set s0 [$ns node]
set s1 [$ns node]
set d0 [$ns node]
set d1 [$ns node]

$ns duplex-link $r0 $r1 1.5Mb 20ms RED

# Tracing a queue
set redq [[$ns link $r0 $r1] queue]
set tchan_ [open curq.q w]
$redq trace curq_
$redq attach $tchan_

#use new ared
$redq set adaptive_ 1
#set new ared parameters
$redq set thresh_ 10
$redq set maxthresh_ 30
$redq set limit_ 1000
$redq set mean_pktsize_ 500
$redq set q_weight_ 0.004
$redq set mark_p_ 0.1
$redq set interval_ 0.1

$ns duplex-link $s0 $r0 10Mb 2ms DropTail
$ns duplex-link $s1 $r0 10Mb 3ms DropTail
$ns duplex-link $r1 $d0 10Mb 4ms DropTail
$ns duplex-link $r1 $d1 10Mb 5ms DropTail

$ns queue-limit $r0 $r1 25
$ns queue-limit $r1 $r0 25
 
$ns duplex-link-op $s0 $r0 orient right-down
$ns duplex-link-op $s1 $r0 orient right-up
$ns duplex-link-op $r0 $r1 orient right
$ns duplex-link-op $r0 $r1 queuePos 0
$ns duplex-link-op $r1 $r0 queuePos 0
$ns duplex-link-op $d0 $r1 orient left-down
$ns duplex-link-op $d1 $r1 orient left-up


set tcp0 [$ns create-connection TCP/Reno $s0 TCPSink $d0 0]
$tcp0 set window_ 15
set tcp1 [$ns create-connection TCP/Reno $s1 TCPSink $d1 1]
$tcp1 set window_ 15
set ftp0 [$tcp0 attach-source FTP]
set ftp1 [$tcp1 attach-source FTP]

 

$ns at 0.0 "$ftp0 start"
$ns at 3.0 "$ftp1 start"
$ns at 50 "finish"

proc finish {} {
    global tchan_ nf nd
    if { [info exists tchan_] } {
 close $tchan_
    }
    close $nf
    close $nd
    exit 0
}

$ns run

原创粉丝点击