96 | | * Log into your delay node as you do with any other node. Then, on your delay node, use this command: |
| 96 | There are three link characteristics we'll manipulate in this experiment: ''bandwidth'', ''delay'', and ''packet loss rate''. |
| 97 | |
| 98 | It is possible to adjust the parameters of the two directions of your link separately, to emulate asymmetric links. |
| 99 | In this experiment, however, we are looking at symmetric links, so we'll always change the settings on both directions together. |
| 100 | |
| 101 | Here are the command sequences you'll need to change your link parameters. |
| 102 | In each case, you'll need to provide the correct data plane interface (usually `eth1`), if they're different from the example. |
| 103 | |
| 104 | * To change bandwidth (100mbit means 100Mbits/s) do the following on both `PC1` and `PC2`: |
103 | | 60111: 100.000 Mbit/s 1 ms 50 sl. 1 queues (1 buckets) droptail |
104 | | mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000 |
105 | | BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp |
106 | | 0 ip 207.167.175.72/0 195.123.216.8/6 7 1060 0 0 0 |
107 | | 60121: 100.000 Mbit/s 1 ms 50 sl. 1 queues (1 buckets) droptail |
108 | | mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000 |
109 | | BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp |
110 | | 0 ip 207.167.176.224/0 195.124.8.8/6 8 1138 0 0 0 |
| 111 | sudo /sbin/tc qdisc del dev eth1 root |
113 | | This information shows the internal configuration of the "pipes" used to emulate network characteristics. |
114 | | (Your output may look different, depending on the version of ipfw installed on your delay node. |
115 | | In any case, the information you need is on the first line of output for each pipe.) |
116 | | |
117 | | You'll want to make note of the two pipe numbers, one for each direction of traffic along your link. |
118 | | In the example above, they are 60111 and 60121. |
119 | | |
120 | | There are three link characteristics we'll manipulate in this experiment: ''bandwidth'', ''delay'', and ''packet loss rate''. |
121 | | You'll find their values listed in the `ipfw` output above. |
122 | | The link bandwidth appears on the first line immediately after the pipe number. It's 100Mbps in the example shown above. |
123 | | The next value shown is the delay, 1 ms in the example above. |
124 | | The packet loss rate (PLR) is omitted if it's zero, as shown above. If non-zero, you'll see something like '''plr 0.000100''' |
125 | | immediately after the "50 sl." on the first output line. |
126 | | |
127 | | It is possible to adjust the parameters of the two directions of your link separately, to emulate asymmetric links. |
128 | | In this experiment, however, we are looking at symmetric links, so we'll always change the settings on both pipes together. |
129 | | |
130 | | Here are the command sequences you'll need to change your link parameters. |
131 | | In each case, you'll need to provide the correct pipe numbers, if they're different from the example. |
132 | | |
133 | | * To change bandwidth (100M means 100Mbits/s): |
| 114 | * To change link delay (delays are measured in ms) do the following on both `PC1` and `PC2`: |
145 | | * To change link delay (delays are measured in ms): |
146 | | {{{ |
147 | | sudo ipfw pipe 60111 config delay 10 |
148 | | sudo ipfw pipe 60121 config delay 10 |
149 | | }}} |
150 | | |
151 | | * To change packet loss rate (rate is a probability, so 0.001 means 0.1% packet loss): |
152 | | {{{ |
153 | | sudo ipfw pipe 60111 config plr .0001 |
154 | | sudo ipfw pipe 60121 config plr .0001 |
155 | | }}} |
156 | | |
157 | | * You can combine settings for bandwidth, delay, and loss by specifying more than one in a single ipfw command. We'll use this form in the procedure below. |
| 124 | * You can combine settings for bandwidth, delay, and loss by specifying more than one in a single command. We'll use this form in the procedure below. |
164 | | sudo ipfw pipe 60111 config bw 0 delay 0 plr 0 |
165 | | sudo ipfw pipe 60121 config bw 0 delay 0 plr 0 |
166 | | }}} |
167 | | |
168 | | * Verify with |
169 | | |
170 | | {{{ |
171 | | sudo ipfw pipe show |
172 | | 60111: unlimited 0 ms 50 sl. 1 queues (1 buckets) droptail |
173 | | mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000 |
174 | | BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp |
175 | | 0 ip 207.167.175.72/0 195.123.216.8/6 7 1060 0 0 0 |
176 | | 60121: unlimited 0 ms 50 sl. 1 queues (1 buckets) droptail |
177 | | mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000 |
178 | | BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp |
179 | | 0 ip 207.167.176.224/0 195.124.8.8/6 8 1138 0 0 0 |
180 | | }}} |
181 | | |
182 | | Note that bandwidth is set to ''unlimited'', delay to ''0 ms'', and no PLR is shown. |
183 | | |
184 | | * Using this initial setting, try a few UDT transfers, including the larger files. Now try FTP transfers. Record the transfer sizes and rates. |
185 | | |
186 | | * Now change the link parameters to reduce the available bandwidth to 10Mbps: |
187 | | |
188 | | {{{ |
189 | | sudo ipfw pipe 60111 config bw 10M delay 0 plr 0 |
190 | | sudo ipfw pipe 60121 config bw 10M delay 0 plr 0 |
| 132 | sudo /sbin/tc qdisc add dev eth1 root handle 1:0 tbf limit 1000000 burst 1000000 rate 10mbit |