vlantest-flat.tcl
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:2k
源码类别:

通讯编程

开发平台:

Visual C++

  1. puts "sourcing tcl/lan/vlan.tcl..."
  2. source ../lan/vlan.tcl
  3. set opt(tr) out
  4. set opt(namtr) "vlantest-flat.nam"
  5. set opt(seed) 0
  6. set opt(stop) .5
  7. set opt(node) 4
  8. set opt(qsize) 100
  9. set opt(bw) 10Mb
  10. set opt(delay) 1ms
  11. set opt(ll) LL
  12. set opt(ifq) Queue/DropTail
  13. set opt(mac) Mac/Csma/Cd
  14. set opt(chan) Channel
  15. set opt(tcp) TCP/Reno
  16. set opt(sink) TCPSink
  17. set opt(app) FTP
  18. proc finish {} {
  19. global ns opt
  20. $ns flush-trace
  21. exec nam $opt(namtr) &
  22. exit 0
  23. }
  24. proc create-trace {} {
  25. global ns opt
  26. if [file exists $opt(tr)] {
  27. catch "exec rm -f $opt(tr) $opt(tr)-bw [glob $opt(tr).*]"
  28. }
  29. set trfd [open $opt(tr) w]
  30. $ns trace-all $trfd
  31. if {$opt(namtr) != ""} {
  32. $ns namtrace-all [open $opt(namtr) w]
  33. }
  34. return $trfd
  35. }
  36. proc create-topology {} {
  37. global ns opt
  38. global lan node source node0 nodex
  39. set num $opt(node)
  40. for {set i 0} {$i < $num} {incr i} {
  41. set node($i) [$ns node]
  42. lappend nodelist $node($i)
  43. }
  44. set lan [$ns make-lan $nodelist $opt(bw) 
  45. $opt(delay) $opt(ll) $opt(ifq) $opt(mac) $opt(chan)]
  46. set node0 [$ns node]
  47. $ns duplex-link $node0 $node(1) 20Mb 2ms DropTail
  48. $ns duplex-link-op $node0 $node(1) orient right
  49. set nodex [$ns node]
  50. $ns duplex-link $nodex $node(2) 20Mb 2ms DropTail
  51. $ns duplex-link-op $nodex $node(2) orient left
  52. }
  53. ## MAIN ##
  54. set ns [new Simulator]
  55. set trfd [create-trace]
  56. create-topology
  57. set tcp0 [$ns create-connection TCP/Reno $node0 TCPSink $nodex 0]
  58. $tcp0 set window_ 15
  59. set ftp0 [$tcp0 attach-app FTP]
  60. #set udp0 [new Agent/UDP]
  61. #$ns attach-agent $node0 $udp0
  62. #set cbr0 [new Application/Traffic/CBR]
  63. #$cbr0 attach-agent $udp0
  64. #set rcvr0 [new Agent/Null]
  65. #$ns attach-agent $nodex $rcvr0
  66. #$udp0 set dst_ [$rcvr0 set addr_]
  67. $ns at 0.0 "$ftp0 start"
  68. #$ns at 0.0 "$cbr0 start"
  69. $ns at $opt(stop) "finish"
  70. $ns run