lan.tcl
上传用户:hongyou
上传日期:2022-06-26
资源大小:1k
文件大小:2k
源码类别:

网络

开发平台:

Unix_Linux

  1. set ns [new Simulator]
  2. $ns color 1 Blue
  3. $ns color 2 Red
  4. $ns color 3 Green 
  5. set nf [open out.nam w]
  6. $ns namtrace-all $nf
  7. set tf [open out.tr w]
  8. $ns trace-all $tf
  9. proc finish {} {
  10.         global ns nf tf
  11.         $ns flush-trace
  12.         close $nf
  13.         close $tf
  14.         exec nam out.nam &
  15.         exit 0
  16. }
  17. set r1 [$ns node]
  18. set m1 [$ns node]
  19. set n1 [$ns node]
  20. set n2 [$ns node]
  21. set n3 [$ns node]
  22. set n4 [$ns node]
  23. set r2 [$ns node]
  24. set m2 [$ns node]
  25. set n5 [$ns node]
  26. set n6 [$ns node]
  27. set n7 [$ns node]
  28. set n8 [$ns node]
  29. set r3 [$ns node]
  30. set m3 [$ns node]
  31. set n9 [$ns node]
  32. set n10 [$ns node]
  33. set n11 [$ns node]
  34. set n12 [$ns node]
  35. set lan0 [$ns newLan "$r1 $r2 $r3 " 1Mb 10ms LL Queue/DropTail MAC/Csma/Ca Channel]
  36. set lan1 [$ns newLan "$r1 $m1 $n1 $n2 $n3 $n4" 1.5Mb 10ms LL Queue/DropTail MAC/Csma/Ca Channel]
  37. set lan2 [$ns newLan "$r2 $m2 $n5 $n6 $n7 $n8" 1.5Mb 10ms LL Queue/DropTail MAC/Csma/Ca Channel]
  38. set lan3 [$ns newLan "$r3 $m3 $n9 $n10 $n11 $n12" 1.5Mb 10ms LL Queue/DropTail MAC/Csma/Ca Channel]
  39. set tcp [new Agent/TCP]
  40. $ns attach-agent $n1 $tcp
  41. set sink1 [new Agent/TCPSink]
  42. set sink2 [new Agent/TCPSink]
  43. $ns attach-agent $n9 $sink1
  44. $ns attach-agent $n12 $sink2
  45. $ns connect $tcp $sink1
  46. $ns connect $tcp $sink2
  47. $tcp set fid_ 1
  48. set ftp [new Application/FTP]
  49. $ftp attach-agent $tcp
  50. $ftp set type_ FTP
  51. set udp1 [new Agent/UDP]
  52. $ns attach-agent $m1 $udp1
  53. set udp2 [new Agent/UDP]
  54. $ns attach-agent $n2 $udp2
  55. set null1 [new Agent/Null]
  56. set null2 [new Agent/Null]
  57. set null3 [new Agent/Null]
  58. $ns attach-agent $n6 $null1
  59. $ns attach-agent $n12 $null2
  60. $ns connect $udp1 $null1
  61. $ns connect $udp2 $null2
  62. $udp1 set fid_ 2
  63. $udp2 set fid_ 3
  64. set cbr1 [new Application/Traffic/CBR]
  65. $cbr1 attach-agent $udp1
  66. $cbr1 set type_ CBR
  67. $cbr1 set packet_size_ 1000
  68. $cbr1 set rate_ 1mb
  69. $cbr1 set random_ 1
  70. set cbr2 [new Application/Traffic/CBR]
  71. $cbr2 attach-agent $udp2
  72. $cbr2 set type_ CBR
  73. $cbr2 set packet_size_ 1000
  74. $cbr2 set rate_ 1mb
  75. $cbr2 set random_ 1
  76.       
  77. $ns at 0.1 "$ftp start"
  78. $ns at 1 "$cbr1 start"
  79. $ns at 2 "$cbr2 start"
  80. $ns at 4 "$ftp stop"
  81. $ns at 3 "$cbr1 stop"
  82. $ns at 5.0 "$cbr2 stop"
  83. $ns at 5.5 "finish"
  84. $ns run