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

通讯编程

开发平台:

Visual C++

  1. # Copyright (C) 2001 by USC/ISI
  2. # All rights reserved.                                            
  3. #                                                                
  4. # Redistribution and use in source and binary forms are permitted
  5. # provided that the above copyright notice and this paragraph are
  6. # duplicated in all such forms and that any documentation, advertising
  7. # materials, and other materials related to such distribution and use
  8. # acknowledge that the software was developed by the University of
  9. # Southern California, Information Sciences Institute.  The name of the
  10. # University may not be used to endorse or promote products derived from
  11. # this software without specific prior written permission.
  12. # THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
  13. # WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
  14. # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  15. # An simple script for testing empweb
  16. #
  17. # Created by Kun-chan Lan (kclang@isi.edu)
  18. global num_node n verbose lan_client lan_server 
  19. source simpletopo.tcl
  20. # Basic ns setup
  21. set ns [new Simulator]
  22. puts "creating topology"
  23. create_topology
  24. #trace files setup (isi: inbound traffic  www: all traffic)
  25. $ns trace-queue $n(1) $n(0) [open test.out w]
  26. $ns trace-queue $n(0) $n(1) [open test.in w]
  27. # Create page pool
  28. set pool [new PagePool/EmpWebTraf]
  29. # Setup servers and clients
  30. $pool set-num-client 1
  31. $pool set-num-server 1
  32. $pool set-num-remote-client 0
  33. $pool set-num-server-lan 0
  34. $pool set-client 0 $n(2)
  35. $pool set-server 0 $n(1)
  36. set i 0
  37. set stopTime 100.1
  38. # Number of Sessions
  39. set numSession 1
  40. # Inter-session Interval
  41. set interSession [new RandomVariable/Empirical]
  42. $interSession loadCDF cdf/sess.inter.cdf
  43. ## Number of Pages per Session
  44. set sessionSize [new RandomVariable/Empirical]
  45. $sessionSize loadCDF cdf/pagecnt.cdf
  46. # Random seed at every run
  47. global defaultRNG
  48. $defaultRNG seed 0
  49. # Create sessions
  50. $pool set-num-session $numSession
  51. set interPage [new RandomVariable/Empirical]
  52. $interPage loadCDF cdf/idle.cdf
  53. set pageSize [new RandomVariable/Constant]
  54. $pageSize set val_ 1
  55. set interObj [new RandomVariable/Empirical]
  56. $interObj loadCDF cdf/obj.inter.cdf  
  57. set objSize [new RandomVariable/Empirical]
  58. #for FullTcp
  59. $objSize loadCDF cdf/obj.size.byte.cdf
  60. #for old tcp
  61. #$objSize loadCDF cdf/obj.size.pkt.cdf
  62. set reqSize [new RandomVariable/Empirical]
  63. #for FullTcp
  64. $reqSize loadCDF cdf/req.byte.cdf
  65. #for old tcp
  66. #$reqSize loadCDF cdf/req.pkt.cdf
  67. set persistSel [new RandomVariable/Empirical]
  68. $persistSel loadCDF cdf/persist.cdf
  69. set serverSel [new RandomVariable/Empirical]
  70. $serverSel loadCDF cdf/server.cdf
  71. set windowS [new RandomVariable/Empirical]
  72. $windowS loadCDF cdf/wins.cdf
  73. set windowC [new RandomVariable/Empirical]
  74. $windowC loadCDF cdf/winc.cdf
  75. set mtu [new RandomVariable/Empirical]
  76. $mtu loadCDF cdf/mtu.cdf
  77. set launchTime 0
  78. for {set i 0} {$i < $numSession} {incr i} {
  79.         if {$launchTime <=  $stopTime} {
  80.    set numPage [$sessionSize value]
  81.            $pool create-session  $i  
  82.      $numPage [expr $launchTime + 0.1] 
  83.      $interPage $pageSize $interObj $objSize 
  84.      $reqSize $persistSel $serverSel $windowS $windowC $mtu 1
  85.    set launchTime [expr $launchTime + [$interSession value]]
  86. }
  87. }
  88. ## Start the simulation
  89. $ns at $stopTime "finish"
  90. proc finish {} {
  91.         global ns gf
  92.         $ns flush-trace
  93.         exit 0
  94. }
  95. puts "ns started"
  96. $ns run