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

通讯编程

开发平台:

Visual C++

  1. # pkts.tcl
  2. # This script tries to simulate a scnenario involving very large number 
  3. # of packets on the fly so that we can get an idea of the memory usage 
  4. # due to heavyweight pkt-hdrs in every pkt.
  5. # Dmalloc has been used to measure memory consumption for this 
  6. # experiment. 
  7. # With all pkt-headers (default condition in ns) memory consumption
  8. # is ~140MB. with total pkts on the fly at around 60,000, (using cbr 
  9. # pktsize of 210, linkBW of 1Gb, delay of 100ms),
  10. # memory consmp. ~2KB/pkt.
  11. # With (unused) pkt headers removed, memory usage is ~30Mb and the 
  12. # figure for per pkt comes down to ~500bytes
  13. # which is a considerable gain (about 75% reduction of memory use).
  14. # add/remove packet headers as required
  15. remove-all-packet-headers       ;# removes all except common
  16. add-packet-header IP Message     ;# hdrs reqd for cbr traffic
  17. #add-packet-header Flags IP TCP  ;# hdrs reqd for TCP
  18. #setting CBR rate to 1Gb to match the link BWrate
  19. Application/Traffic/CBR set rate_ 1000Mb
  20. set ns [new Simulator]
  21. set linkBW 1000Mb
  22. set delay 100ms
  23. set n0 [$ns node]
  24. set n1 [$ns node]
  25. set f [open pkts.tr w]
  26. $ns trace-all $f
  27. #set nf [open pkts.nam w]
  28. #$ns namtrace-all $nf
  29. $ns duplex-link $n0 $n1 $linkBW $delay DropTail
  30. #set tcp0 [new Agent/TCP]
  31. set udp0 [new Agent/UDP]
  32. $ns attach-agent $n0 $udp0
  33. #set ftp0 [new Application/FTP]
  34. set cbr0 [new Application/Traffic/CBR]
  35. $cbr0 attach-agent $udp0
  36. #set sink0 [new Agent/TCPSink]
  37. set null0 [new Agent/Null]
  38. $ns attach-agent $n1 $null0
  39. $ns connect $udp0 $null0
  40. $ns at 0.2 "$cbr0 start"
  41. $ns at 1.0 "finish"
  42. proc finish {} {
  43.     global ns f nf
  44.     $ns flush-trace
  45.     close $f
  46.     #close $nf
  47.     puts "running nam.."
  48.     exec nam pkts.nam &
  49.     exit 0
  50. }
  51. $ns run