| 16 | |
| 17 | == Tools == |
| 18 | The two primary tools used in this assignment are: [[BR]] |
| 19 | '''1. Traffic Control (tc)'''[[BR]] |
| 20 | The tc command is available in the GNU Linux distributions on ProtoGENI nodes, found in the ''/sbin'' directory. |
| 21 | This command manipulates the Linux network forwarding tables, allowing for configuration of queuing disciplines, |
| 22 | which change the policies controlling which packets are forwarded in what order and which are dropped; and network |
| 23 | emulation, which allows the Linux kernel to emulate various network conditions such as delay or loss. |
| 24 | These two effects are provided by the qdisc and netem subcommands, respectively. |
| 25 | In these exercises, tc will be used to modify network conditions and enable different scheduling policies. |
| 26 | Example command lines will be provided. |
| 27 | |
| 28 | '''2. [http://iperf.sourceforge.net/ Iperf]'''[[BR]] |
| 29 | Iperf is available on the ProtoGENI nodes, located at ''/usr/local/etc/emulab/emulab-iperf''. |
| 30 | Iperf is used to measure the bandwidth performance of Internet links. In these exercises, |
| 31 | it is used to study the behavior of TCP in the face of changing link characteristics. |
| 32 | Iperf runs as both a server and a client. The server is started with the -s command line option, |
| 33 | and listens for connections from the client. The client is started with the ''-c <server>'' command line option, |
| 34 | and connects to the server and sends data at either the fastest possible rate (given the underlying network) |
| 35 | or a user-specified rate. The -u option causes the sender or receiver to use UDP instead of TCP. |
| 36 | Various other options will be required for these exercises, and provided in the appropriate sections. |
| 37 | All Iperf measurement data should be recorded from the TCP receiver (server) side. |