128 | | |
129 | | In this experiment, you'll be changing the characteristics of the link and measuring how they affect UDT and TCP performance. |
130 | | |
131 | | * Log into your delay node as you do with any other node. Then, on your delay node, use this command: |
132 | | {{{ |
133 | | %sudo ipfw pipe show |
134 | | }}} |
135 | | |
136 | | You'll get something like this: |
137 | | {{{ |
138 | | 60111: 100.000 Mbit/s 1 ms 50 sl. 1 queues (1 buckets) droptail |
139 | | mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000 |
140 | | BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp |
141 | | 0 ip 207.167.175.72/0 195.123.216.8/6 7 1060 0 0 0 |
142 | | 60121: 100.000 Mbit/s 1 ms 50 sl. 1 queues (1 buckets) droptail |
143 | | mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000 |
144 | | BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp |
145 | | 0 ip 207.167.176.224/0 195.124.8.8/6 8 1138 0 0 0 |
146 | | }}} |
147 | | |
148 | | This information shows the internal configuration of the "pipes" used to emulate network characteristics. |
149 | | (Your output may look different, depending on the version of ipfw installed on your delay node. |
150 | | In any case, the information you need is on the first line of output for each pipe.) |
151 | | |
152 | | You'll want to make note of the two pipe numbers, one for each direction of traffic along your link. |
153 | | In the example above, they are 60111 and 60121. |
154 | | |
155 | | There are three link characteristics we'll manipulate in this experiment: bandwidth, delay, and packet loss rate. |
156 | | You'll find their values listed in the ipfw output above. |
157 | | The link bandwidth appears on the first line immediately after the pipe number. It's 100Mbps in the example shown above. |
158 | | The next value shown is the delay, 1 ms in the example above. |
159 | | 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''' |
160 | | immediately after the "50 sl." on the first output line. |
161 | | |
162 | | It is possible to adjust the parameters of the two directions of your link separately, to emulate asymmetric links. |
163 | | In this experiment, however, we are looking at symmetric links, so we'll always change the settings on both pipes together. |
164 | | |
165 | | Here are the command sequences you'll need to change your link parameters. |
166 | | In each case, you'll need to provide the correct pipe numbers, if they're different from the example. |
167 | | |
168 | | * To change bandwidth (100M means 100Mbits/s): |
169 | | {{{ |
170 | | sudo ipfw pipe 60111 config bw 100M |
171 | | sudo ipfw pipe 60121 config bw 100M |
172 | | }}} |
173 | | |
174 | | * Request a bandwidth of zero to use the full capacity of the link (unlimited): |
175 | | {{{ |
176 | | sudo ipfw pipe 60111 config bw 0 |
177 | | sudo ipfw pipe 60121 config bw 0 |
178 | | }}} |
179 | | |
180 | | * To change link delay (delays are measured in ms): |
181 | | {{{ |
182 | | sudo ipfw pipe 60111 config delay 10 |
183 | | sudo ipfw pipe 60121 config delay 10 |
184 | | }}} |
185 | | |
186 | | * To change packet loss rate (rate is a probability, so 0.001 means 0.1% packet loss): |
187 | | {{{ |
188 | | sudo ipfw pipe 60111 config plr .0001 |
189 | | sudo ipfw pipe 60121 config plr .0001 |
190 | | }}} |
191 | | |
192 | | * 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. |
193 | | |
194 | | == Experiment Procedure == |
195 | | |
196 | | * Set your link parameters to use maximum bandwidth, no delay, no packet loss: |
197 | | |
198 | | {{{ |
199 | | sudo ipfw pipe 60111 config bw 0 delay 0 plr 0 |
200 | | sudo ipfw pipe 60121 config bw 0 delay 0 plr 0 |
201 | | }}} |
202 | | |
203 | | * Verify with |
204 | | |
205 | | {{{ |
206 | | sudo ipfw pipe show |
207 | | 60111: unlimited 0 ms 50 sl. 1 queues (1 buckets) droptail |
208 | | mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000 |
209 | | BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp |
210 | | 0 ip 207.167.175.72/0 195.123.216.8/6 7 1060 0 0 0 |
211 | | 60121: unlimited 0 ms 50 sl. 1 queues (1 buckets) droptail |
212 | | mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000 |
213 | | BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp |
214 | | 0 ip 207.167.176.224/0 195.124.8.8/6 8 1138 0 0 0 |
215 | | }}} |
216 | | |
217 | | Note that bandwidth is set to ''unlimited'', delay to ''0 ms'', and no PLR is shown. |
218 | | |
219 | | * Using this initial setting, try a few UDT transfers, including the larger files. Now try FTP transfers. Record the transfer sizes and rates. |
220 | | |
221 | | * Now change the link parameters to reduce the available bandwidth to 10Mbps: |
222 | | |
223 | | {{{ |
224 | | sudo ipfw pipe 60111 config bw 10M delay 0 plr 0 |
225 | | sudo ipfw pipe 60121 config bw 10M delay 0 plr 0 |
226 | | }}} |
227 | | |
228 | | * Repeat your file transfers with the new settings. As before, note the transfer sizes and rates, as well as the link settings. |
229 | | |
230 | | * Continue with additional trials, varying each of the three link parameters over a range sufficient to observe meaningful performance differences. Record your data. |
231 | | |
232 | | == What to hand in == |
233 | | |
234 | | 1. Your raw data and appropriate graphs illustrating changes in performance for the two transfer protocols with differing link parameters. |
235 | | 1. Your analysis. Here are some questions to consider. |
236 | | a. Does one protocol outperform the other? |
237 | | b. Under what conditions are performance differences most clearly seen? Why? |
238 | | c. What shortcomings in the experiment design may affect your results? How might you improve the experiment design? |
239 | | d. What interesting characteristics of the transfer protocols are not measured in this experiment? How might you design an experiment to investigate these? |