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

通讯编程

开发平台:

Visual C++

  1. # pm-simple.tcl
  2. #
  3. # Demonstrates the use of PackMime to generate HTTP/1.1 traffi
  4. # useful constants
  5. set CLIENT 0
  6. set SERVER 1
  7. remove-all-packet-headers;             # removes all packet headers
  8. add-packet-header IP TCP;              # adds TCP/IP headers
  9. set ns [new Simulator];                # instantiate the Simulator
  10. $ns use-scheduler Heap;                # use the Heap scheduler
  11. # SETUP TOPOLOGY
  12. # create nodes
  13. set n(0) [$ns node]
  14. set n(1) [$ns node]
  15. # create link
  16. $ns duplex-link $n(0) $n(1) 10Mb 0ms DropTail
  17. # SETUP PACKMIME
  18. set rate 15
  19. set pm [new PackMimeHTTP]
  20. $pm set-client $n(0);                  # name $n(0) as client
  21. $pm set-server $n(1);                  # name $n(1) as server
  22. $pm set-rate $rate;                    # new connections per second
  23. $pm set-http-1.1;                      # use HTTP/1.1
  24. # SETUP PACKMIME RANDOM VARIABLES
  25. # create RNGs (appropriate RNG seeds are assigned automatically)
  26. set flowRNG [new RNG]
  27. set reqsizeRNG [new RNG]
  28. set rspsizeRNG [new RNG]
  29. # create RandomVariables
  30. set flow_arrive [new RandomVariable/PackMimeHTTPFlowArrive $rate]
  31. set req_size [new RandomVariable/PackMimeHTTPFileSize $rate $CLIENT]
  32. set rsp_size [new RandomVariable/PackMimeHTTPFileSize $rate $SERVER]
  33. # assign RNGs to RandomVariables
  34. $flow_arrive use-rng $flowRNG
  35. $req_size use-rng $reqsizeRNG
  36. $rsp_size use-rng $rspsizeRNG
  37. # set PackMime variables
  38. $pm set-flow_arrive $flow_arrive
  39. $pm set-req_size $req_size
  40. $pm set-rsp_size $rsp_size
  41. # record HTTP statistics
  42. $pm set-outfile "pm-simple.dat"
  43. $ns at 0.0 "$pm start"
  44. $ns at 300.0 "$pm stop"
  45. $ns run