lan1.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 Z 18
  18. for {set i 0} {$i<$Z} { incr i } {
  19. set n($i) [$ns node]
  20. }
  21. set lan0 [$ns newLan "$n(0) $n(6) $n(12) " 1Mb 10ms LL Queue/DropTail MAC/Csma/Ca Channel]
  22. set lan1 [$ns newLan " $n(0) $n(1) $n(2) $n(3) $n(4) $n(5)" 1.5Mb 10ms LL Queue/DropTail MAC/Csma/Ca Channel]
  23. set lan2 [$ns newLan "$n(6) $n(7) $n(8) $n(9) $n(10) $n(11)" 1.5Mb 10ms LL Queue/DropTail MAC/Csma/Ca Channel]
  24. set lan3 [$ns newLan "$n(12) $n(13) $n(14) $n(15) $n(16) $n(17)" 1.5Mb 10ms LL Queue/DropTail MAC/Csma/Ca Channel]
  25. set tcp1 [new Agent/TCP]
  26. $ns attach-agent $n(1) $tcp1
  27. set tcp2 [new Agent/TCP]
  28. $ns attach-agent $n(1) $tcp2
  29. set tcp3 [new Agent/TCP]
  30. $ns attach-agent $n(1) $tcp3
  31. set sink(2) [new Agent/TCPSink]
  32. $ns attach-agent $n(2) $sink(2)
  33. $ns connect $tcp1 $sink(2)
  34. set sink(8) [new Agent/TCPSink]
  35. $ns attach-agent $n(8) $sink(8)
  36. $ns connect $tcp2 $sink(8)
  37. set sink(16) [new Agent/TCPSink]
  38. $ns attach-agent $n(16) $sink(16)
  39. $ns connect $tcp3 $sink(16)
  40. $tcp1 set fid_ 1
  41. $tcp2 set fid_ 2
  42. $tcp3 set fid_ 3
  43. set ftp(1) [new Application/FTP]
  44. $ftp(1) attach-agent $tcp1
  45. $ftp(1) set type_ FTP
  46. set ftp(2) [new Application/FTP]
  47. $ftp(2) attach-agent $tcp2
  48. $ftp(2) set type_ FTP
  49. set ftp(3) [new Application/FTP]
  50. $ftp(3) attach-agent $tcp3
  51. $ftp(3) set type_ FTP
  52. $ns at  0.1 "$ftp(1) start"
  53. $ns at  2.1 "$ftp(2) start"
  54. $ns at  4.1 "$ftp(3) start"
  55. $ns at  2 "$ftp(1) stop"
  56. $ns at  4 "$ftp(2) stop"
  57. $ns at  6 "$ftp(3) stop"
  58. $ns at 7 "finish"
  59. $ns run