large-scale-web-traffic-old.tcl
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:3k
源码类别:

通讯编程

开发平台:

Visual C++

  1. #
  2. # Copyright (C) 1999 by USC/ISI
  3. # All rights reserved.                                            
  4. #                                                                
  5. # Redistribution and use in source and binary forms are permitted
  6. # provided that the above copyright notice and this paragraph are
  7. # duplicated in all such forms and that any documentation, advertising
  8. # materials, and other materials related to such distribution and use
  9. # acknowledge that the software was developed by the University of
  10. # Southern California, Information Sciences Institute.  The name of the
  11. # University may not be used to endorse or promote products derived from
  12. # this software without specific prior written permission.
  13. # THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
  14. # WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
  15. # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  16. #
  17. # Maintainer: Polly Huang <huang@isi.edu>
  18. # Version Date: $Date: 1999/10/26 16:51:56 $
  19. #
  20. # @(#) $Header: /cvsroot/nsnam/ns-2/tcl/ex/large-scale-web-traffic-old.tcl,v 1.1 1999/10/26 16:51:56 haoboy Exp $ (USC/ISI)
  21. #
  22. #
  23. # An example script that simulates large-scale web traffic. 
  24. # See web-traffic.tcl for a smaller scale web traffic simulation.
  25. # Some attributes:
  26. # 1. Topology: ~460 nodes, 420 web clients, 40 web servers
  27. # 2. Traffic: approximately 200,000 TCP connections, heavy-tailed connection 
  28. #             sizes, throughout 4200 second simulation time
  29. # 3. Simulation scale: ~800 MB memory, ~1.5-2 hrs running on FreeBSD 3.0
  30. #              Pentium II Xeon 450 MHz PC with 1GB physical memory
  31. #
  32. puts "Warning!!!! Warning!!!!"
  33. puts "This simulation requires ~800 MB MEMORY to complete!!"
  34. puts "If this machine has less than 800 MB physical memory,"
  35. puts "expect this simulation to finish in a DAY or so."
  36. source ../http/http-mod.tcl
  37. global num_node n verbose
  38. set verbose 0
  39. source varybell.tcl
  40. # Basic ns setup
  41. set ns [new Simulator]
  42. $ns set-address 10 21
  43. # Create generic packet trace
  44. $ns trace-all [open large-scale-web-traffic.out w]
  45. create_topology
  46. ########################### Modify From Here #####################
  47. ## Number of Sessions
  48. ## set numSession 400
  49. set numSession 400
  50. ## Inter-session Interval
  51. set interSession [new RandomVariable/Exponential]
  52. $interSession set avg_ 1
  53. ## Number of Pages per Session
  54. set sessionSize [new RandomVariable/Constant]
  55. $sessionSize set val_ 250
  56. set launchTime [$ns now]
  57. for {set i 0} {$i < $numSession} {incr i} {
  58.     set numPage [$sessionSize value]
  59.     set httpSession($i) [new HttpSession $ns $numPage [$ns picksrc]]
  60. ## Inter-Page Interval
  61.     $httpSession($i) setDistribution interPage_ Exponential 15
  62. ## Number of Objects per Page
  63.     $httpSession($i) setDistribution pageSize_ Constant 1
  64.     $httpSession($i) createPage
  65. ## Inter-Object Interval
  66.     $httpSession($i) setDistribution interObject_ Exponential 0.01
  67. ## Number of Packets per Object
  68.     $httpSession($i) setDistribution objectSize_ ParetoII 12 1.2
  69.     $ns at [expr $launchTime + 0.1] "$httpSession($i) start"
  70.     set launchTime [expr $launchTime + [$interSession value]]
  71. }
  72. ## Start the simulation
  73. $ns at 4200.1 "exit 0"
  74. $ns run