| 21 | == Tools == |
| 22 | The two tools you will be using in this assignment are ''Traffic Control (tc'' and ''iperf''. These tools will already be installed on the GENI nodes you use in your experiment. You do not need them on your computer. [[BR]] |
| 23 | '''1. [http://linux.die.net/man/8/tc Traffic Control (tc)'''[[BR]] |
| 24 | You will find the tc command in the ''/sbin'' directory of the GENI nodes. |
| 25 | This command manipulates the Linux network forwarding tables, allowing for configuration of queuing disciplines, |
| 26 | which change the policies controlling which packets are forwarded in what order and which are dropped; and network |
| 27 | emulation, which allows the Linux kernel to emulate various network conditions such as delay or loss. |
| 28 | These two effects are provided by the qdisc and netem subcommands, respectively. |
| 29 | In these exercises, tc will be used to modify network conditions and enable different scheduling policies. |
| 30 | Example command lines will be provided. |
| 31 | |
| 32 | '''2. [http://iperf.sourceforge.net/ Iperf]'''[[BR]] |
| 33 | Iperf is available on the GENI nodes, located at ''/usr/local/etc/emulab/emulab-iperf''. |
| 34 | Iperf is used to measure the bandwidth performance of Internet links. In these exercises, |
| 35 | it is used to study the behavior of TCP in the face of changing link characteristics. |
| 36 | Iperf runs as both a server and a client. The server is started with the -s command line option, |
| 37 | and listens for connections from the client. The client is started with the ''-c <server>'' command line option, |
| 38 | and connects to the server and sends data at either the fastest possible rate (given the underlying network) |
| 39 | or a user-specified rate. The -u option causes the sender or receiver to use UDP instead of TCP. |
| 40 | Various other options will be required for these exercises, and provided in the appropriate sections. |
| 41 | All Iperf measurement data should be recorded from the TCP receiver (server) side. |
| 42 | |
| 43 | == Tutorial Instructions == |
| 44 | {{{ |
| 45 | #!html |
| 46 | |
| 47 | |
| 48 | <table id="Table_01" height="409" border="0" cellpadding="0" cellspacing="0"> |
| 49 | <tr> |
| 50 | <td> |
| 51 | <a href="http://groups.geni.net/geni/wiki/GENIEducation/SampleAssignments/TcpAssignment/ExerciseLayout/DesignSetup"><img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/design.png?format=raw" width="152" height="152" alt="Design/Setup"></a> |
| 52 | </td> |
| 53 | <td> |
| 54 | <ul> |
| 55 | <li><a href="http://groups.geni.net/geni/wiki/GENIEducation/SampleAssignments/TcpAssignment/ExerciseLayout/DesignSetup">Part I: Design/Setup</a></li> |
| 56 | <ul> |
| 57 | <li> Lists of steps for setting up the exercise </li> |
| 58 | </ul></ul> |
| 59 | </td> |
| 60 | </tr> |
| 61 | <tr> |
| 62 | <td> |
| 63 | <a href="http://groups.geni.net/geni/wiki/GENIEducation/SampleAssignments/TcpAssignment/ExerciseLayout/Execute"><img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/execute.png?format=raw" width="152" height="143" alt="Execute"></a> |
| 64 | </td> |
| 65 | <td> |
| 66 | <ul> |
| 67 | <li><a href="http://groups.geni.net/geni/wiki/GENIEducation/SampleAssignments/TcpAssignment/ExerciseLayout/Execute">Part II: Execute</a></li> |
| 68 | <ul> |
| 69 | <li> Lists of steps for executing the exercise</li> |
| 70 | </ul></ul> |
| 71 | </td> |
| 72 | </tr> |
| 73 | <tr> |
| 74 | <td> |
| 75 | <a href="http://groups.geni.net/geni/wiki/GENIEducation/SampleAssignments/TcpAssignment/ExerciseLayout/Finish"><img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/finish.png?format=raw" width="152" height="114" alt="Finish"></a> |
| 76 | </td> |
| 77 | |
| 78 | <td> |
| 79 | <ul> |
| 80 | <li><a href="http://groups.geni.net/geni/wiki/GENIEducation/SampleAssignments/TcpAssignment/ExerciseLayout/Finish">Part III: Finish</a></li> |
| 81 | <ul> |
| 82 | <li> Lists of steps for tearing down the exercise</li> |
| 83 | </ul></ul> |
| 84 | </td> |
| 85 | |
| 86 | </tr> |
| 87 | </table> |
| 88 | |
| 89 | }}} |
| 90 | |
| 91 | == Credits == |
| 92 | This assignment was originally designed by [http://www.cs.purdue.edu/homes/fahmy/ Prof. Sonia Fahmy] and Ethan Blanton of Purdue University. |
| 93 | |
| 94 | --------------------- |
73 | | == Tutorial Instructions == |
74 | | {{{ |
75 | | #!html |
76 | | |
77 | | |
78 | | <table id="Table_01" height="409" border="0" cellpadding="0" cellspacing="0"> |
79 | | <tr> |
80 | | <td> |
81 | | <a href="http://groups.geni.net/geni/wiki/GENIEducation/SampleAssignments/TcpAssignment/ExerciseLayout/DesignSetup"><img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/design.png?format=raw" width="152" height="152" alt="Design/Setup"></a> |
82 | | </td> |
83 | | <td> |
84 | | <ul> |
85 | | <li><a href="http://groups.geni.net/geni/wiki/GENIEducation/SampleAssignments/TcpAssignment/ExerciseLayout/DesignSetup">Part I: Design/Setup</a></li> |
86 | | <ul> |
87 | | <li> Lists of steps for setting up the exercise </li> |
88 | | </ul></ul> |
89 | | </td> |
90 | | </tr> |
91 | | <tr> |
92 | | <td> |
93 | | <a href="http://groups.geni.net/geni/wiki/GENIEducation/SampleAssignments/TcpAssignment/ExerciseLayout/Execute"><img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/execute.png?format=raw" width="152" height="143" alt="Execute"></a> |
94 | | </td> |
95 | | <td> |
96 | | <ul> |
97 | | <li><a href="http://groups.geni.net/geni/wiki/GENIEducation/SampleAssignments/TcpAssignment/ExerciseLayout/Execute">Part II: Execute</a></li> |
98 | | <ul> |
99 | | <li> Lists of steps for executing the exercise</li> |
100 | | </ul></ul> |
101 | | </td> |
102 | | </tr> |
103 | | <tr> |
104 | | <td> |
105 | | <a href="http://groups.geni.net/geni/wiki/GENIEducation/SampleAssignments/TcpAssignment/ExerciseLayout/Finish"><img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/finish.png?format=raw" width="152" height="114" alt="Finish"></a> |
106 | | </td> |
107 | | |
108 | | <td> |
109 | | <ul> |
110 | | <li><a href="http://groups.geni.net/geni/wiki/GENIEducation/SampleAssignments/TcpAssignment/ExerciseLayout/Finish">Part III: Finish</a></li> |
111 | | <ul> |
112 | | <li> Lists of steps for tearing down the exercise</li> |
113 | | </ul></ul> |
114 | | </td> |
115 | | |
116 | | </tr> |
117 | | </table> |
118 | | |
119 | | }}} |
120 | | |
121 | | == Credits == |
122 | | This assignment was originally designed by [http://www.cs.purdue.edu/homes/fahmy/ Prof. Sonia Fahmy] and Ethan Blanton of Purdue University. |