-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME.txt
91 lines (63 loc) · 3.74 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
---- CS 143 Project ----
December 8, 2011
Authors:
Mikhail Sushkov
Eric Gomez
Ben Weitz
Judy Mou
Kevin Lo
====================================================================================================================
The simulator can be configured during runtime by following the instructions
presented on your terminal. The default parameter values can only be changed
by editing Global.py. The configuration parameters are:
PACKET_SIZE: packet size in bits
(integer)
INIT_WINDOW_SIZE: initial source window size in packets
(integer)
THRESHOLD: initial slow start threshold in packets
(integer)
ACK_TIMEOUT: acknowledgement timeout in milliseconds
(float or integer)
DYNAMIC_ROUTING: whether or not to use dynamic routing
(boolean)
PROBE_DROP_DELAY: packet delay in milliseconds recorded for a link when a
router probe is dropped
(float or integer)
PROBE_SAMPLE_SIZE: number of delay data points to collect for a single link
before rerouting
(integer)
PROBE_RATE: time in milliseconds to wait between sending router probes
(float or integer)
DEFAULT_ALPHA: the value of the parameter alpha used in TCP VEGAS; in units
of packets/millisecond
(float or integer)
NUM_PACKETS_TO_TRACK_FOR_RTT: number of packets whose RTT is averaged to
determined how to adjust the window size in TCP VEGAS
(integer)
AVERAGE_INTERVAL: The number of packets whose receiving times are averaged over to
determine the throughput and packet delay.
(integer)
CONGESTION_CONTROL_ALGORITHM: "AIMD" or "VEGAS"
TEST_CASE: 1 or 2 for the required test cases, or 'CUSTOM' to use the default values for
NODES and TOPOLOGY defined in Global.py
*** NODES and TOPOLOGY can not be changed from the terminal; to change them, edit Global.py ***
NODES: This is an array holding the data for the flows and routers. Each elemet of NODES is an array containing
the data, [ID, isSource, isDestination, isRouter, isMonitored, sourceID, destID, bitsToSend, startTime].
If the device is a source, it contains all these fields. If it is a Destination, it contains only the
fields [ID, isSource, isDestination, isRouter, isMonitored, sourceID, destID], and if it is a Router,
it contains only [ID, isSource, isDestination, isRouter].
TOPOLOGY: This is a matrix that stores the data for the links. If there are n nodes, then topology will be an
n x n matrix. The (i,j)-th entry of TOPOLOGY is [-1] if there is no link between devices with ids
i and j, and [isMonitored, rate, propogationTime bufferCapacity] if there is a link between devices
i and j.
====================================================================================================================
To run the simulation, run Simulation.py and follow the instructions presented on your terminal.
====================================================================================================================
Graphs are produced in the working directory for:
- buffer occupancies and dropped packets at monitored links
- send rates and window sizes at each source
- throughputs and packet delays at each destination
Each graph is saved as a .png image with a name indicating which test case was used, whether
dynamic routing was used, which congestion control algorithm was used, and what is shown on
the graph.
---- END README ----