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

通讯编程

开发平台:

Visual C++

  1. source ../lib/ns-queue.tcl
  2. set ns [new Simulator]
  3. $ns color 0 blue
  4. $ns color 1 red
  5. $ns color 2 white
  6. set n1 [$ns node]
  7. set n2 [$ns node]
  8. set n3 [$ns node]
  9. set f [open out.tr w]
  10. $ns trace-all $f
  11. set nf [open out.nam w]
  12. $ns namtrace-all $nf
  13. $ns duplex-link $n1 $n2 500kb 2ms DropTail
  14. $ns duplex-link $n2 $n3 1Mb 10ms DropTail
  15. $ns duplex-link-op $n1 $n2 orient right-down
  16. $ns duplex-link-op $n2 $n3 orient right
  17. $ns duplex-link-op $n2 $n3 queuePos 0.5
  18. set udp1 [new Agent/UDP]
  19. $ns attach-agent $n1 $udp1
  20. set cbr1 [new Application/Traffic/CBR]
  21. $cbr1 set packetSize_ 1024
  22. $cbr1 attach-agent $udp1
  23. set null1 [new Agent/Null]
  24. $ns attach-agent $n3 $null1
  25. $ns connect $udp1 $null1
  26. $ns at 0.0 "$cbr1 start"
  27. set tcp [new Agent/TCP]
  28. $tcp set class_ 1
  29. $tcp set packetSize_ 1024
  30. set sink [new Agent/TCPSink]
  31. $ns attach-agent $n1 $tcp
  32. $ns attach-agent $n3 $sink
  33. $ns connect $tcp $sink
  34. set ftp [new Source/FTP]
  35. $ftp set agent_ $tcp
  36. $ns at 2.0 "$ftp start"
  37. $ns at 20.0 "finish"
  38. proc do_nam {} {
  39. puts "running nam..."
  40. exec nam out.nam &
  41. }
  42. proc finish {} {
  43. global ns f nf
  44. close $f
  45. close $nf
  46. $ns flush-trace
  47. do_nam
  48. exit 0
  49. }
  50. $ns monitor-queue $n1 $n2 [$ns get-ns-traceall]
  51. set l12 [$ns link $n1 $n2]
  52. $l12 set qBytesEstimate_ 0
  53. $l12 set qPktsEstimate_ 0
  54. set queueSampleInterval 0.5
  55. $ns at [$ns now] "$l12 queue-sample-timeout"
  56. $ns run