📄 test-suite-routed.tcl
字号:
$self tcpDump $tcp1 1.0 # Trace only the bottleneck link $self traceQueues $node_(s1) [$self openTrace 2.0 $testName_] $ns_ run}Class Test/reno4a -superclass TestSuiteTest/reno4a instproc init topo { $self instvar net_ defNet_ test_ set net_ $topo set defNet_ net2 set test_ reno4a $self next}Test/reno4a instproc run {} { $self instvar ns_ node_ testName_ $ns_ queue-limit $node_(r1) $node_(r2) 29 set tcp1 [$ns_ create-connection TCP/Reno $node_(s1) TCPSink/DelAck $node_(r2) 0] $tcp1 set window_ 40 $tcp1 set maxcwnd_ 40 set ftp1 [$tcp1 attach-app FTP] $ns_ at 0.0 "$ftp1 start" $self tcpDump $tcp1 1.0 # Trace only the bottleneck link $self traceQueues $node_(s1) [$self openTrace 2.0 $testName_] $ns_ run}Class Test/reno5 -superclass TestSuiteTest/reno5 instproc init topo { $self instvar net_ defNet_ test_ set net_ $topo set defNet_ net0 set test_ reno5 $self next}Test/reno5 instproc run {} { $self instvar ns_ node_ testName_ $ns_ queue-limit $node_(r1) $node_(k1) 9 set tcp1 [$ns_ create-connection TCP/Reno $node_(s1) TCPSink $node_(k1) 0] $tcp1 set window_ 50 $tcp1 set bugFix_ false set tcp2 [$ns_ create-connection TCP/Reno $node_(s2) TCPSink $node_(k1) 1] $tcp2 set window_ 20 $tcp2 set bugFix_ false set ftp1 [$tcp1 attach-app FTP] set ftp2 [$tcp2 attach-app FTP] $ns_ at 1.0 "$ftp1 start" $ns_ at 1.0 "$ftp2 start" $self tcpDump $tcp1 1.0 # Trace only the bottleneck link $self traceQueues $node_(r1) [$self openTrace 10.0 $testName_] $ns_ run}Class Test/reno5a -superclass TestSuiteTest/reno5a instproc init topo { $self instvar net_ defNet_ test_ set net_ $topo set defNet_ net1 set test_ reno5a $self next}Test/reno5a instproc run {} { $self instvar ns_ node_ testName_ $ns_ delay $node_(s1) $node_(r1) 3ms $ns_ delay $node_(r1) $node_(s1) 3ms set tcp1 [$ns_ create-connection TCP/Reno $node_(s1) TCPSink $node_(k1) 0] $tcp1 set window_ 50 $tcp1 set bugFix_ false set tcp2 [$ns_ create-connection TCP/Reno $node_(s2) TCPSink $node_(k1) 1] $tcp2 set window_ 50 $tcp2 set bugFix_ false set ftp1 [$tcp1 attach-app FTP] set ftp2 [$tcp2 attach-app FTP] $ns_ at 1.0 "$ftp1 start" $ns_ at 1.75 "$ftp2 produce 100" $self tcpDump $tcp1 1.0 # trace only the bottleneck link $self traceQueues $node_(r1) [$self openTrace 6.0 $testName_] $ns_ run}Class XTest/telnet -superclass TestSuiteXTest/telnet instproc init topo { $self instvar net_ defNet_ test_ set net_ $topo set defNet_ net0 set test_ telnet $self next}XTest/telnet instproc run {} { $self instvar ns_ node_ testName_ $ns_ queue-limit $node_(r1) $node_(k1) 8 $ns_ queue-limit $node_(k1) $node_(r1) 8 set tcp1 [$ns_ create-connection TCP/Reno $node_(s1) TCPSink $node_(k1) 0] set tcp2 [$ns_ create-connection TCP/Reno $node_(s2) TCPSink $node_(k1) 1] set tcp3 [$ns_ create-connection TCP/Reno $node_(s2) TCPSink $node_(k1) 2] set telnet1 [$tcp1 attach-app TELNET]; $telnet1 set interval_ 1 set telnet2 [$tcp2 attach-app TELNET]; $telnet2 set interval_ 0 # Interval 0 designates the tcplib telnet interarrival distribution set telnet3 [$tcp3 attach-app TELNET]; $telnet3 set interval_ 0 $ns_ at 0.0 "$telnet1 start" $ns_ at 0.0 "$telnet2 start" $ns_ at 0.0 "$telnet3 start" $self tcpDump $tcp1 5.0 # Trace only the bottleneck link $self traceQueues $node_(r1) [$self openTrace 50.0 $testName_] # use a different seed each time puts seed=[$ns_ random 0] $ns_ run}Class Test/delayed -superclass TestSuiteTest/delayed instproc init topo { $self instvar net_ defNet_ test_ set net_ $topo set defNet_ net0 set test_ delayed $self next}Test/delayed instproc run {} { $self instvar ns_ node_ testName_ set tcp1 [$ns_ create-connection TCP $node_(s1) TCPSink/DelAck $node_(k1) 0] $tcp1 set window_ 50 # lookup up the sink and set it's delay interval [$node_(k1) agent [$tcp1 dst-port]] set interval 100ms set ftp1 [$tcp1 attach-app FTP]; $ns_ at 1.0 "$ftp1 start" $self tcpDump $tcp1 1.0 # Trace only the bottleneck link $self traceQueues $node_(r1) [$self openTrace 4.0 $testName_] $ns_ run}Class Test/phase -superclass TestSuiteTest/phase instproc init topo { $self instvar net_ defNet_ test_ set net_ $topo set defNet_ net0 set test_ phase $self next}Test/phase instproc run {} { $self instvar ns_ node_ testName_ $ns_ delay $node_(s2) $node_(r1) 3ms $ns_ delay $node_(r1) $node_(s2) 3ms $ns_ queue-limit $node_(r1) $node_(k1) 16 $ns_ queue-limit $node_(k1) $node_(r1) 100 set tcp1 [$ns_ create-connection TCP $node_(s1) TCPSink $node_(k1) 0] $tcp1 set window_ 32 set tcp2 [$ns_ create-connection TCP $node_(s2) TCPSink $node_(k1) 1] $tcp2 set window_ 32 set ftp1 [$tcp1 attach-app FTP] set ftp2 [$tcp2 attach-app FTP] $ns_ at 5.0 "$ftp1 start" $ns_ at 1.0 "$ftp2 start" $self tcpDump $tcp1 5.0 # Trace only the bottleneck link $self traceQueues $node_(r1) [$self openTrace 25.0 $testName_] $ns_ run}Class Test/phase1 -superclass TestSuiteTest/phase1 instproc init topo { $self instvar net_ defNet_ test_ set net_ $topo set defNet_ net0 set test_ phase1 $self next}Test/phase1 instproc run {} { $self instvar ns_ node_ testName_ $ns_ delay $node_(s2) $node_(r1) 9.5ms $ns_ delay $node_(r1) $node_(s2) 9.5ms $ns_ queue-limit $node_(r1) $node_(k1) 16 $ns_ queue-limit $node_(k1) $node_(r1) 100 set tcp1 [$ns_ create-connection TCP $node_(s1) TCPSink $node_(k1) 0] $tcp1 set window_ 32 set tcp2 [$ns_ create-connection TCP $node_(s2) TCPSink $node_(k1) 1] $tcp2 set window_ 32 set ftp1 [$tcp1 attach-app FTP] set ftp2 [$tcp2 attach-app FTP] $ns_ at 5.0 "$ftp1 start" $ns_ at 1.0 "$ftp2 start" $self tcpDump $tcp1 5.0 # Trace only the bottleneck link $self traceQueues $node_(r1) [$self openTrace 25.0 $testName_] $ns_ run}Class Test/phase2 -superclass TestSuiteTest/phase2 instproc init topo { $self instvar net_ defNet_ test_ set net_ $topo set defNet_ net0 set test_ phase2 $self next}Test/phase2 instproc run {} { $self instvar ns_ node_ testName_ $ns_ delay $node_(s2) $node_(r1) 3ms $ns_ delay $node_(r1) $node_(s2) 3ms $ns_ queue-limit $node_(r1) $node_(k1) 16 $ns_ queue-limit $node_(k1) $node_(r1) 100 set tcp1 [$ns_ create-connection TCP $node_(s1) TCPSink $node_(k1) 0] $tcp1 set window_ 32 $tcp1 set overhead_ 0.01 set tcp2 [$ns_ create-connection TCP $node_(s2) TCPSink $node_(k1) 1] $tcp2 set window_ 32 $tcp2 set overhead_ 0.01 set ftp1 [$tcp1 attach-app FTP] set ftp2 [$tcp2 attach-app FTP] $ns_ at 5.0 "$ftp1 start" $ns_ at 1.0 "$ftp2 start" $self tcpDump $tcp1 5.0 # Trace only the bottleneck link $self traceQueues $node_(r1) [$self openTrace 25.0 $testName_] $ns_ run}Class Test/timers -superclass TestSuiteTest/timers instproc init topo { $self instvar net_ defNet_ test_ set net_ $topo set defNet_ net0 set test_ timers $self next}Test/timers instproc run {} { $self instvar ns_ node_ testName_ $ns_ queue-limit $node_(r1) $node_(k1) 2 $ns_ queue-limit $node_(k1) $node_(r1) 100 set tcp1 [$ns_ create-connection TCP $node_(s1) TCPSink/DelAck $node_(k1) 0] $tcp1 set window_ 4 # look up the sink and set its delay interval [$node_(k1) agent [$tcp1 dst-port]] set interval_ 100ms set tcp2 [$ns_ create-connection TCP $node_(s2) TCPSink/DelAck $node_(k1) 1] $tcp2 set window_ 4 # look up the sink and set its delay interval [$node_(k1) agent [$tcp2 dst-port]] set interval_ 100ms set ftp1 [$tcp1 attach-app FTP] set ftp2 [$tcp2 attach-app FTP] $ns_ at 1.0 "$ftp1 start" $ns_ at 1.3225 "$ftp2 start" $self tcpDump $tcp1 5.0 # Trace only the bottleneck link $self traceQueues $node_(r1) [$self openTrace 10.0 $testName_] $ns_ run}Class Test/stats -superclass TestSuiteTest/stats instproc init topo { $self instvar net_ defNet_ test_ set net_ $topo set defNet_ net0 set test_ stats $self next}Test/stats instproc printpkts { label tcp } { puts "tcp $label total_packets_acked [$tcp set ack_]"}#XXX Still unfinished in ns-2Test/stats instproc printdrops { label link } { puts "link $label total_drops [$link stat 0 drops]" puts "link $label total_packets [$link stat 0 packets]" puts "link $label total_bytes [$link stat 0 bytes]"}Test/stats instproc printstop { stoptime } { puts "stop-time $stoptime"}Test/stats instproc run {} { $self instvar ns_ node_ testName_ $ns_ delay $node_(s2) $node_(r1) 200ms $ns_ delay $node_(r1) $node_(s2) 200ms $ns_ queue-limit $node_(r1) $node_(k1) 10 $ns_ queue-limit $node_(k1) $node_(r1) 10 set stoptime 10.1 set tcp1 [$ns_ create-connection TCP $node_(s1) TCPSink $node_(k1) 0] $tcp1 set window_ 30 set tcp2 [$ns_ create-connection TCP $node_(s2) TCPSink $node_(k1) 1] $tcp2 set window_ 30 set ftp1 [$tcp1 attach-app FTP] set ftp2 [$tcp2 attach-app FTP] $ns_ at 1.0 "$ftp1 start" $ns_ at 1.0 "$ftp2 start" $self tcpDumpAll $tcp1 5.0 tcp1 $self tcpDumpAll $tcp2 5.0 tcp2 $ns_ at $stoptime "$self printstop $stoptime" $ns_ at $stoptime "$self printpkts 1 $tcp1" #XXX Awaiting completion of link stats #$ns_ at $stoptime "$self printdrops 1 [$ns_ link $node_(r1) $node_(k1)]" # trace only the bottleneck link $self traceQueues $node_(r1) [$self openTrace $stoptime $testName_] $ns_ run}Class Test/tahoe_long -superclass TestSuiteTest/tahoe_long instproc init topo { $self instvar net_ defNet_ test_ set net_ $topo set defNet_ net3 set test_ tahoe_long $self next}Test/tahoe_long instproc run {} { $self instvar ns_ node_ testName_ set tcp1 [$ns_ create-connection TCP $node_(s1) TCPSink $node_(s3) 0] $tcp1 set window_ 100 set tcp2 [$ns_ create-connection TCP $node_(s2) TCPSink $node_(s3) 1] $tcp2 set window_ 16 set ftp1 [$tcp1 attach-app FTP] set ftp2 [$tcp2 attach-app FTP] $ns_ at 1.0 "$ftp1 start" $ns_ at 0.5 "$ftp2 start" $self tcpDump $tcp1 5.0 # Trace only the bottleneck link set traceFile [$self openTrace 15.0 $testName_] $self traceQueues $node_(r1) $traceFile foreach i [list {r2 r3} {r3 r4}] { set L [$ns_ link $node_([lindex $i 0]) $node_([lindex $i 1])] $L trace-dynamics $ns_ $traceFile $L trace-dynamics $ns_ stdout } $ns_ run}Class Test/reno_long -superclass TestSuiteTest/reno_long instproc init topo { $self instvar net_ defNet_ test_ set net_ $topo set defNet_ net3 set test_ reno_long $self next}Test/reno_long instproc run {} { $self instvar ns_ node_ testName_ set tcp1 [$ns_ create-connection TCP/Reno $node_(s1) TCPSink $node_(s3) 0] $tcp1 set window_ 100 set tcp2 [$ns_ create-connection TCP/Reno $node_(s2) TCPSink $node_(s3) 1] $tcp2 set window_ 16# $tcp1 set bugFix_ false# $tcp2 set bugFix_ false set ftp1 [$tcp1 attach-app FTP] set ftp2 [$tcp2 attach-app FTP] $ns_ at 1.0 "$ftp1 start" $ns_ at 0.5 "$ftp2 start" $self tcpDump $tcp1 5.0 # Trace only the bottleneck link set traceFile [$self openTrace 15.0 $testName_] $self traceQueues $node_(r1) $traceFile foreach i [list {r2 r3} {r3 r4}] { set L [$ns_ link $node_([lindex $i 0]) $node_([lindex $i 1])] $L trace-dynamics $ns_ $traceFile $L trace-dynamics $ns_ stdout } $ns_ run}TestSuite runTest### Local Variables:### mode: tcl### tcl-indent-level: 8### tcl-default-application: ns### End:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -