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

通讯编程

开发平台:

Visual C++

  1. #
  2. # Copyright (c) 1995 Regents of the University of California.
  3. # All rights reserved.
  4. #
  5. # Redistribution and use in source and binary forms, with or without
  6. # modification, are permitted provided that the following conditions
  7. # are met:
  8. # 1. Redistributions of source code must retain the above copyright
  9. #    notice, this list of conditions and the following disclaimer.
  10. # 2. Redistributions in binary form must reproduce the above copyright
  11. #    notice, this list of conditions and the following disclaimer in the
  12. #    documentation and/or other materials provided with the distribution.
  13. # 3. All advertising materials mentioning features or use of this software
  14. #    must display the following acknowledgement:
  15. # This product includes software developed by the Network Research
  16. # Group at Lawrence Berkeley Laboratory.
  17. # 4. Neither the name of the University nor of the Laboratory may be used
  18. #    to endorse or promote products derived from this software without
  19. #    specific prior written permission.
  20. #
  21. # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  22. # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  23. # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  24. # ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  25. # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  26. # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  27. # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  28. # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  29. # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  30. # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  31. # SUCH DAMAGE.
  32. #
  33. # @(#) $Header: /cvsroot/nsnam/ns-2/tcl/ex/example.tcl,v 1.5 2001/07/13 00:11:55 mehringe Exp $ (LBL)
  34. #
  35. #
  36. # Create two nodes and connect them with a 1.5Mb link with a
  37. # transmission delay of 10ms using FIFO drop-tail queueing
  38. #
  39. set ns [new Simulator]
  40. set n0 [$ns node]
  41. set n1 [$ns node]
  42. $ns duplex-link $n0 $n1 1.5Mb 10ms DropTail
  43. #
  44. # Set up BSD Tahoe TCP connection in opposite directions.
  45. #
  46. set src1 [$ns create-connection TCP $n0 TCPSink $n1 1]
  47. set src2 [$ns create-connection TCP $n1 TCPSink $n0 2]
  48. #
  49. # Create ftp sources at the each node
  50. #
  51. set ftp1 [$src1 attach-app FTP]
  52. set ftp2 [$src2 attach-app FTP]
  53. #
  54. # Start up the first ftp at the time 0 and
  55. # the second ftp staggered 1 second later
  56. #
  57. $ns at 0.0 "$ftp1 start"
  58. $ns at 1.0 "$ftp2 start"
  59. #
  60. # Create a trace and arrange for all link
  61. # events to be dumped to "out.tr"
  62. #
  63. set tf [open out.tr w]
  64. $ns trace-queue $n0 $n1 $tf
  65. set qmon [$ns monitor-queue $n0 $n1 ""]
  66. set integ [$qmon get-bytes-integrator]
  67. #
  68. # Dump the queueing delay on the n0->n1 link
  69. # to stdout every second of simulation time.
  70. #
  71. proc dump { link interval } {
  72. global ns integ
  73. $ns at [expr [$ns now] + $interval] "dump $link $interval"
  74. set delay [expr 8 * [$integ set sum_] / [[$link link] set bandwidth_]]
  75. puts "[$ns now] delay=$delay"
  76. }
  77. $ns at 0.0 "dump [$ns link $n0 $n1] 1"
  78. #
  79. # run the simulation for 20 simulated seconds
  80. #
  81. $ns at 20.0 "$ns halt; exit 0"
  82. $ns run
  83. #
  84. # For more examples, see the examples and test suite subdirectories
  85. # (tcl/ex and tcl/test)
  86. # and the on-line documentation (at <http://www.isi.edu/nsnam/ns/>).
  87. #