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

📄 test-suite-v1.tcl

📁 柯老师网站上找到的
💻 TCL
📖 第 1 页 / 共 2 页
字号:
	ns run}proc test_renoA {} {	global s1 s2 r1 k1	create_testnet	[ns link $r1 $k1] set queue-limit 8	set tcp1 [ns_create_connection tcp-reno $s1 tcp-sink $k1 0]	$tcp1 set window 28	set tcp2 [ns_create_connection tcp-reno $s1 tcp-sink $k1 1]	$tcp2 set window 4	set tcp3 [ns_create_connection tcp-reno $s1 tcp-sink $k1 2]	$tcp3 set window 4	set ftp1 [$tcp1 source ftp]	ns at 1.0 "$ftp1 start"	set ftp2 [$tcp2 source ftp]	ns at 1.2 "$ftp2 start"	$ftp2 set maxpkts 7	set ftp3 [$tcp3 source ftp]	ns at 1.2 "$ftp3 start"	$ftp3 set maxpkts 7	tcpDump $tcp1 1.0	tcpDump $tcp2 1.0	tcpDump $tcp3 1.0	# trace only the bottleneck link	[ns link $r1 $k1] trace [openTrace 5.0 test_renoA]	ns run}proc test_reno2 {} {	global s1 s2 r1 k1	create_testnet	[ns link $r1 $k1] set queue-limit 9	set tcp1 [ns_create_connection tcp-reno $s1 tcp-sink $k1 0]	$tcp1 set window 50	set tcp2 [ns_create_connection tcp-reno $s2 tcp-sink $k1 1]	$tcp2 set window 20	set ftp1 [$tcp1 source ftp]	set ftp2 [$tcp2 source ftp]	ns at 1.0 "$ftp1 start"	ns at 1.0 "$ftp2 start"	tcpDump $tcp1 1.0	# trace only the bottleneck link	[ns link $r1 $k1] trace [openTrace 10.0 test_reno2]	ns run}proc test_reno3 {} {	global s1 s2 r1 k1	create_testnet	[ns link $r1 $k1] set queue-limit 8	[ns link $k1 $r1] set queue-limit 8	set tcp1 [ns_create_connection tcp-reno $s1 tcp-sink $k1 0]	$tcp1 set window 100	set tcp2 [ns_create_connection tcp-reno $s2 tcp-sink $k1 1]	$tcp2 set window 16	set ftp1 [$tcp1 source ftp]	set ftp2 [$tcp2 source ftp]	ns at 1.0 "$ftp1 start"	ns at 0.5 "$ftp2 start"	tcpDump $tcp1 1.0	# trace only the bottleneck link	[ns link $r1 $k1] trace [openTrace 8.0 test_reno3]	ns run}proc test_reno4 {} {         global s1 s2 r1 r2 s3 s4        create_testnet2        [ns link $r1 $r2] set queue-limit 29        set tcp1 [ns_create_connection tcp-reno $s1 tcp-sink-da $r2 0]        $tcp1 set window 80 	$tcp1 set maxcwnd 40        set ftp1 [$tcp1 source ftp]        ns at 0.0 "$ftp1 start"        tcpDump $tcp1 1.0        # trace only the bottleneck link        [ns link $s1 $r1] trace [openTrace 2.0 test_reno4]        ns run}proc test_reno4a {} {         global s1 s2 r1 r2 s3 s4        create_testnet2        [ns link $r1 $r2] set queue-limit 29        set tcp1 [ns_create_connection tcp-reno $s1 tcp-sink-da $r2 0]        $tcp1 set window 40	$tcp1 set maxcwnd 40        set ftp1 [$tcp1 source ftp]        ns at 0.0 "$ftp1 start"        tcpDump $tcp1 1.0        # trace only the bottleneck link        [ns link $s1 $r1] trace [openTrace 2.0 test_reno4]        ns run}proc test_reno5 {} {        global s1 s2 r1 k1        create_testnet        [ns link $r1 $k1] set queue-limit 9        set tcp1 [ns_create_connection tcp-reno $s1 tcp-sink $k1 0]        $tcp1 set window 50        $tcp1 set bug-fix false        set tcp2 [ns_create_connection tcp-reno $s2 tcp-sink $k1 1]        $tcp2 set window 20        $tcp2 set bug-fix false        set ftp1 [$tcp1 source ftp]        set ftp2 [$tcp2 source ftp]        ns at 1.0 "$ftp1 start"        ns at 1.0 "$ftp2 start"        tcpDump $tcp1 1.0        # trace only the bottleneck link        [ns link $r1 $k1] trace [openTrace 10.0 test_reno5]        ns run}proc test_telnet {} {	global s1 s2 r1 k1	create_testnet	[ns link $r1 $k1] set queue-limit 8	[ns link $k1 $r1] set queue-limit 8	set tcp1 [ns_create_connection tcp-reno $s1 tcp-sink $k1 0]	set tcp2 [ns_create_connection tcp-reno $s2 tcp-sink $k1 1]	set tcp3 [ns_create_connection tcp-reno $s2 tcp-sink $k1 2]	set telnet1 [$tcp1 source telnet] ; $telnet1 set interval 1	set telnet2 [$tcp2 source telnet] ; $telnet2 set interval 0 	# Interval 0 designates the tcplib telnet interarrival distribution	set telnet3 [$tcp3 source telnet] ; $telnet3 set interval 0	ns at 0.0 "$telnet1 start"	ns at 0.0 "$telnet2 start"	ns at 0.0 "$telnet3 start"	tcpDump $tcp1 5.0	# trace only the bottleneck link	[ns link $r1 $k1] trace [openTrace 50.0 test_telnet]	# use a different seed each time	puts seed=[ns random 0]	ns run}proc test_delayed {} {	global s1 s2 r1 k1	create_testnet	set tcp1 [ns_create_connection tcp $s1 tcp-sink-da $k1 0]	$tcp1 set window 50	# lookup up the sink and set it's delay interval	[$k1 agent [$tcp1 dst-port]] set interval 100ms	set ftp1 [$tcp1 source ftp]	ns at 1.0 "$ftp1 start"	tcpDump $tcp1 1.0	# trace only the bottleneck link	[ns link $r1 $k1] trace [openTrace 4.0 test_delayed]	ns run}proc test_phase {} {	global s1 s2 r1 k1	create_testnet	[ns link $s2 $r1] set delay 3ms	[ns link $r1 $s2] set delay 3ms	[ns link $r1 $k1] set queue-limit 16	[ns link $k1 $r1] set queue-limit 100	set tcp1 [ns_create_connection tcp $s1 tcp-sink $k1 0]	$tcp1 set window 32	set tcp2 [ns_create_connection tcp $s2 tcp-sink $k1 1]	$tcp2 set window 32	set ftp1 [$tcp1 source ftp]	set ftp2 [$tcp2 source ftp]	ns at 5.0 "$ftp1 start"	ns at 1.0 "$ftp2 start"	tcpDump $tcp1 5.0	# trace only the bottleneck link	[ns link $r1 $k1] trace [openTrace 25.0 test_phase]	ns run}proc test_phase1 {} {	global s1 s2 r1 k1	create_testnet	[ns link $s2 $r1] set delay 9.5ms	[ns link $r1 $s2] set delay 9.5ms	[ns link $r1 $k1] set queue-limit 16	[ns link $k1 $r1] set queue-limit 100	set tcp1 [ns_create_connection tcp $s1 tcp-sink $k1 0]	$tcp1 set window 32	set tcp2 [ns_create_connection tcp $s2 tcp-sink $k1 1]	$tcp2 set window 32	set ftp1 [$tcp1 source ftp]	set ftp2 [$tcp2 source ftp]	ns at 5.0 "$ftp1 start"	ns at 1.0 "$ftp2 start"	tcpDump $tcp1 5.0	# trace only the bottleneck link	[ns link $r1 $k1] trace [openTrace 25.0 test_phase1]	ns run}proc test_phase2 {} {        global s1 s2 r1 k1        create_testnet          [ns link $s2 $r1] set delay 3ms        [ns link $r1 $s2] set delay 3ms        [ns link $r1 $k1] set queue-limit 16        [ns link $k1 $r1] set queue-limit 100        set tcp1 [ns_create_connection tcp $s1 tcp-sink $k1 0]        $tcp1 set window 32        $tcp1 set overhead 0.01        set tcp2 [ns_create_connection tcp $s2 tcp-sink $k1 1]        $tcp2 set window 32        $tcp2 set overhead 0.01                set ftp1 [$tcp1 source ftp]        set ftp2 [$tcp2 source ftp]         ns at 5.0 "$ftp1 start"        ns at 1.0 "$ftp2 start"                tcpDump $tcp1 5.0         # trace only the bottleneck link        [ns link $r1 $k1] trace [openTrace 25.0 test_phase2]        ns run}proc test_timers {} {	global s1 s2 r1 k1	create_testnet	[ns link $r1 $k1] set queue-limit 2	[ns link $k1 $r1] set queue-limit 100	set tcp1 [ns_create_connection tcp $s1 tcp-sink-da $k1 0]	$tcp1 set window 4	# lookup up the sink and set it's delay interval	[$k1 agent [$tcp1 dst-port]] set interval 100ms	set tcp2 [ns_create_connection tcp $s2 tcp-sink-da $k1 1]	$tcp2 set window 4	# lookup up the sink and set it's delay interval	[$k1 agent [$tcp2 dst-port]] set interval 100ms	set ftp1 [$tcp1 source ftp]	set ftp2 [$tcp2 source ftp]	ns at 1.0 "$ftp1 start"	ns at 1.3225 "$ftp2 start"	tcpDump $tcp1 5.0	# trace only the bottleneck link	[ns link $r1 $k1] trace [openTrace 10.0 test_timers]	ns run}proc printpkts { label tcp } {	puts "tcp $label total_packets_acked [$tcp get ack]"}proc printdrops { label node1 node2} {	set link [ns link $node1 $node2]	puts "class: $label per-link total_drops [$link stat $label drops]"	puts "class: $label per-link total_packets [$link stat $label packets]"	puts "class: $label per-link total_bytes [$link stat $label bytes]"}proc printstop { stoptime } {	puts "stop-time $stoptime"}proc test_stats {} {	global s1 s2 r1 k1	create_testnet	set stoptime 10.1	[ns link $s2 $r1] set delay 200ms	[ns link $r1 $s2] set delay 200ms	[ns link $r1 $k1] set queue-limit 10	[ns link $k1 $r1] set queue-limit 10		set tcp1 [ns_create_connection tcp $s1 tcp-sink $k1 0]	$tcp1 set window 30	set tcp2 [ns_create_connection tcp $s2 tcp-sink $k1 1]	$tcp2 set window 30	set ftp1 [$tcp1 source ftp]	set ftp2 [$tcp2 source ftp]	ns at 1.0 "$ftp1 start"	ns at 1.0 "$ftp2 start"	tcpDumpAll $tcp1 5.0 tcp1	tcpDumpAll $tcp2 5.0 tcp2	ns at $stoptime "printstop $stoptime" 	ns at $stoptime "printpkts 0 $tcp1"        ns at $stoptime "printpkts 1 $tcp2"	ns at $stoptime "printdrops 0 $r1 $k1"	ns at $stoptime "printdrops 1 $r1 $k1"	# trace only the bottleneck link	[ns link $r1 $k1] trace [openTrace $stoptime test_stats]	ns run}if { $argc != 1 } {	puts stderr {usage: ns test-suite.tcl [ tahoe1 tahoe2 ... reno reno2 ... ]}	exit 1}if { "[info procs test_$argv]" != "test_$argv" } {	puts stderr "test-suite.tcl: no such test: $argv"}test_$argv

⌨️ 快捷键说明

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