⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme

📁 这个软件的功能是实现多播协议
💻
字号:
Some notes on the test suite---------------------------To run the test suites in this directory:./test-all-red./test-all-sack./test-all-schedule./test-all-tcp./test-all-red-v1./test-all-cbq-v1./test-all-sack-v1./test-all-v1./test-all-mcastOR, just for validation purposes:./test-all-red quiet./test-all-sack quiet./test-all-schedule quiet./test-all-tcp quiet./test-all-red-v1 quiet./test-all-cbq-v1 quiet./test-all-sack-v1 quiet  ./test-all-v1 quiet./test-all-mcast----------------------------Each of the test suites has been split off into three parts, two ofwhich are common to all of them.  The common parts are:I)  The topologies library, stored in topologies.tcl    This contains a catalogue of topologies used in the test suite.    Currently, four topologies are defined (net0 through net3).    Variants of the topology are classified according to the following    criteria:    Name of	Qs on Fall-	Dynamic		 Routing	 MultiPath    Variant	back links	 Links?		Protocol?	Forwarding?  -----------------------------------------------------------------------------  <none>	 DropTail	   no		 Static		    NO  net#-		 DropTail	   yes		 Static		    NO  net#-Session	 DropTail	   yes		 Session	    NO  net#-DV	 DropTail	   yes		   DV		    NO  net#RED-Session   RED		   yes		 Session	    NO  net#RED-DV	    RED		   yes		   DV		    NO  net#-DVm0	 DropTail	   no		   DV		    YES  net#-DVm1	 DropTail	   yes		   DV		    YES  net#RED-DVm0	 DropTail	   no		   DV		    YES  net#RED-DVm1	 DropTail	   yes		   DV		    YES    Note that the RED variants are only defined if the backbone links    themselves use RED queues.NOTE:  All tests that use dynamic links (otehr than net#-) use atracefile to generate the dynamics events.  The variant net#- currentlyuses an Exponential distribution to decide link failure and recoverytimes.  It also writes out the trace file `dyn.tr' that is used by theother variants.The initialiser for each topology also invokes the instance procedure``config''.  Each test-suite that is defined could individuallyreconfigure a particular topology to suite its needs.  As an example,this feature is used by the RED test suites to redefine ``linterm_''for the backbone links in the net2 topology.The class hierarchy for the topologies is:    SkelTopology    |    +-----  NodeTopology/4nodes    |       |    |       +-----  Topology/net0    |       |       |    |       |       +-----  Topology/net0-    |       |       +-----  Topology/net0-Session    |       |       .    |       .       .    |       .       +-----  Topology/net0-DVm1    |       .    |    +-----  NodeTopology/6nodes    |    |    .    .    .The base class for all topologies is the Class SkelTopology.  Itprovides one ``useful'' method: add-fallback-links.  The method adds fallback paths between pairs of nodes, each link in the pathhaving identical characteristics.Different node topology classes are derived from the skeleton topologyclass.  There are three currently defined, NodeTopology/4nodes,NodeTopology/6nodes, and NodeTopology/8nodes.  The node countindicates the number of nodes in the topology, less those used foralternate (fallback) paths.  The constructor for each classinstantiates each of the nodes in that topology.Each topology is then derived from the appropriate NodeTopology.Four basic topologies are currently defined, Topology/net0 throughTopology/net4. 1.  net0:  Simple 4 node topology (+1 fallback node) shown as:		   s1        __ b1 __		     \      /  0.8Mb \	      8Mb,5ms \    /   100ms  \ 		        r1 ------------ k1              8Mb,5ms /    0.8Mb, 100ms		     /		   s2		Queue limit on <r1, k1> = 6    Variants defined: net0-, net0-Session, net0-DV, net0-DVm0, and net0-DVm1.    Cost on link <r1, k1> = 2 for net0-DVm0 and net0-DVm1.2.  net1:  Another simple 4 node topology (+1 fallback node) shown as:		   s1        __ b1 __		     \      /  1.5Mb \             10Mb,5ms \    /   100ms  \ 		        r1 ------------ k1             10Mb,5ms /    1.5Mb, 100ms		     /		   s2		Queue limit on <r1, k1> = 23    Variants defined: net1-, net1-Session, net1-DV, net1-DVm0, net1-DVm1.    Cost on link <r1, k1> = 2 for net1-DVm0 and net1-DVm1.3.  net2: Simple 6 node topology (+1 fallback node) shown as:	        s1       __b1__       s3	          \     /1.5 Mb\     /	  10Mb,2ms \   /  10ms  \   / 10Mb,4ms	            r1 ---------- r2	  10Mb,3ms /   1.5Mb 20ms   \ 10Mb,5ms		  /        RED       \	        s2                    s4     Variants defined: net2-, net2-Session, net2-DV, net2-DVm0, net2-DVm1,	net2RED-Session, net2RED-DV, net2RED-DVm0, net2RED-DVm1.    Cost on link <r1, r2> = 2 for *-DVm0, *-DVm1 topology variants.    Note that, unlike the earlier topologies, the delay on the fallback    path is the same as the main path,    		i.e. delay(r1,b1) + delay(b1,r2) = delay(r1,r2).4.  net3: Simple 8 node topology (+3 fallback nodes) shown as:            s1       __b1__        __b2__        __b3__       s3              \     /1.5 Mb\      /1.5 Mb\      /1.5 Mb\     /      10Mb,2ms \   /  10ms  \    /  10ms  \    /  10ms  \   / 10Mb,4ms                r1 ---------- r2 ---------- r3 ---------- r4      10Mb,3ms /   1.5Mb,20ms    1.5Mb 20ms    1.5Mb 20ms   \ 10Mb,5ms	      /        RED           RED           RED       \            s2                                                s4     Variants defined: net2-, net2-Session, net2-DV, net2-DVm0, net2-DVm1,	net2RED-Session, net2RED-DV, net2RED-DVm0, net2RED-DVm1.    Cost on link <r1, r2>, <r2, r3>, <r3, r4> = 2 for *-DVm0, *-DVm1	topology variants.II)	misc.tcl defines the base class TestSuite for the tests.It also defines the routines common to all the test suites.The class hierarchy for TestSuite is:	TestSuite	    |	    +-----  Test/tahoe	    |	    +-----  Test/phaseSack1	    .	    .	    .The constructor instantiates the appropriate topology.  It willcheck that the test will run on the specified topology (or itsvariant).  The testName is set to "test:topology".  It alsoenables a global trace file, all.tr.Other routines defined includes the procedure finish.  Unlike inthe ns-1 test suites, this routine does not process the tracefile.  It is upto an external test suite driver to process theoutput traces appropriately.  This permits us to flexibly useeither gnuplot, xgraph, or nam as desired.tcpDump and tcpDumpAll are identical to the ns-1 test suite.openTrace differs, only in that, it adds the line "v testName$testName_" to the trace file, out.tr.  Most of the tests gathertraces at the node `r1'.New routines traceQueues, usage, and runTest are also defined.	- traceQueues will trace the queues of all links incident on a	  specified now.  This allows us to trace tcp acks, as well as	  traffic through alternate paths conveniently.	- usage is a global procedure that simple prints out the usage	  relevant for the particular test suite being used.	- runTest is a static (?) procedure that should be invoked by	  the test suite.  It checks that the specified test and	  topology are correctly defined.  It instantiates the test, and	  then "run"s the test.	In addition, misc.tcl will source tcl/test/redefines.tcl, if present.This allows us (allowed me) to selectively redefine proceduresembedded in ns for debugging, or additional tracing.III)	The test suites themselves are in individual files.  Currently,the three are routed, red, and sack.  `routed' is identical to the v2test suite.  Each of these define a series of tests.  The format of atest-suite file is:	set dir [pwd]	catch "cd tcl/test"	source misc.tcl	source topologies.tcl	catch "cd $dir"	define test 1	define test 2	.	.	.	TestSuite runTestThe template for a typical test is:---------------------------------------------------------------------------Class Test/tahoe1 -superclass TestSuiteTest/tahoe1 instproc init topo {	$self instvar net_ defNet_ test_	set net_	$topo	;# topology variant to run test on	set defNet_	net0	;# default topology, used in 2 ways				 # 1.  topology used, if $topo == ""				 # 2.  to verify that variant is derived 				 #     from $defNet_	set test_	tahoe	;# identity of test.  really an				 # ns-1 compatibility artifact.	$self next}Test/tahoe1 instproc run {} {	$self instvar ns_	;# handle for the simulator	$self instvar node_	;# array of nodes, key = name, val = handle	$self instvar testName_	;# usually $test_:$net_	# various Transport configurations, elided for brevity.	# See actual test suites for details.	# Trace only the bottleneck link	#	# Actually, we now trace all activity at the node around the	# bottleneck link.  This allows us to track acks, as well	# packets taking any alternate paths around the bottleneck	# link.	#	$self traceQueues $node_(r1) [$self openTrace 5.0 $testName_]	$ns_ run}---------------------------------------------------------------------------STATUS OF THE CURRENT TEST SUITES:test-suite-routed.tcl	This suite is identical to the basic ns-2 test	suite.   This name is a very bad misnomer, as there is no	separate routed test suite.	The telnet test requires a TELNET source, therefore cannot	currently run.  Hence, it is X'd out.test-suite-red.tcl	This suite adds additional configuration to the	net2 topology.  Queue plotting is still untested in ns-2.	Unlike the finish routine, we have left the trace processing	routines in plotQueue in the suite.  This suite also redefines	the tcpDumpAll procedure for its use.	Tests red_twoway, red_twowaybytes require the TELNET source.	The flow tests have not even been converted into ns-2 format.	The tests themselves have been X'd out.test-suite-sack.tcl	The tests in this routing previously used a	different tracing routine, openTraces.  It looks like this was	done to gather traces of returning acks.  The new traceQueues	procedure should supercede this routine?	Tests delayedSack and timersSack are commented out.  Is this right?IV)	In addition, there are driver routines to run these tests, or processthe results.  1.  ktest-all <suite> [<test> ...]	Given a <suite>, ktest-all will run all the specified <test>s	from test-suite-<suite>.tcl, against all the topologies	defined in topologies in tcl.  If no test is specified, then	it will run all the tests defined in test-suite-<suite>.tcl.	The suite will compare the results of all.tr against a	previously computed result stored in test-output-raw (The result	is stored the first time the test is run). It will also plot	the results stored in out.tr.  If $DISPLAY is set, then xgraph	is used to show on the screen.  Otherwise, gnuplot is used to	generate a postscript file that is stored in ps-files.	The program also checks if a new result differs from the	previously computed result.  Core dumps are saved in the crash	subdirectory.2.  rt <suite> <test> [<topology>]	`rt' will run one <test> from test-suite-<suite>.tcl, for a	particular <topology>.  If the topology is unspecified, the	default topology applicable for that test will be used.The next set of programs are useful in processing trace files.1.  getrc [-b] [-o outfile] -s node1 [-d node2] [tracefile] 	Extract trace lines that match certain characteristics.	-s node1	extract all packets from node1.	-b -s node1	extract all packets to or from node1.	-s node1 -d node2	extract packets on link <node1 -> node2>	-b -s node1 -d node2	extract pkts. on link <node1 <-> node2>.2.  raw2xg [-a] [tracefile]	Translate the trace file into a format palatable to xgraph.	The -a option will extract acks in addition to tcp traffic.	The conversion algorithms used to be in the finish procedures	of the ns-1 test suite.3.  raw2gp [-a] [tracefile]	Translate the trace file into a format palatable to gnuplot.	The output data is placed into separate files called `packets',	`drops', `acks', `link-fails', and `link-recovery'.  The output	from raw2gp is a set of commands that can processed by gnuplot.	Other useful aliases are:	alias xg	'xgraph -bb -tk -nl -m -x time -y packets'	alias raw2nam	'awk -f tcl/nam-demo/nstonam.awk'	alias gvl	'ghostview -landscape -'As an example, 	% getrc -s 2 -d 3 test-output-raw/tahoe | raw2xg | xgwill generate the graph of tahoe1, similar to that produced by	% ./ns test-suite.tcl tahoe1in the ns-1 test suites.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -