Assignment:   Measure the end-to-end behavior of the Internet.

Version 1.0

Fall 2002, Michalis Faloutsos

Measure the end-to-end behavior of the Internet using traceroute and ping.

What is ping: a tool to measure the end to end delay anc checking if a machine
 is alive. Try:
  ping -c 5
 (see APPENDIX below)

What is traceroute: a tool that explores the path from the initiating host
to some other point in  the network:
 try:   traceroute for an example
 Read the manual:   man traceroute for information
  Good site: google: traceroute tutorial:
  One site that looked pretty good
 (see APPENDIX below)

Minimum requirements.

Pick one destination outside the campus (your previous school probably).
 Do the same measurements twice in different times of the day.
Scripts must be in python.
Plotting can be done by gnuplot in linux or excel if you prefer. Gnuplot is a very neat tool
 that is used widely for plotting in a linux environonment. Excel has various built in statistical
 functions, I want you to built your own with python scripts.

a. Measure (min, max, average, 5 and 95 percentile) for a thousands of measurements:
     1. end to end delay (round trip)     (ping   - hundreds of thousands of measurements)
     2. end to end packet loss                  (ping)
     3. Path length                                     (traceroute - 1h worth of measurements)

     Ping provides statistics, you should use them to verify yours.
      5-95 percentile: X1 and X2 values such that 5% of values are less than X1 and 95% of values
      are less than X2. Intuitively:  90% of the observed values are within X1-X2.

b. Plot the  above in time  at user-specified level of granularity. The user will provide
      the number of observations that will averaged before plotting.
      I.e. for a parameter 5, you will find the average of every five ping measurements
      an plot these averages in time.
     You should plot for 1,10, 100.  Do they look similar? Plot

 Additional Bonus Requirements:
 a. Measure how many times the path between the end-nodes change. By how much,
      how frequently.
 b. Use you imagination to examine different statistical properties.

 The report should read like a technical report. You do not need to provide motivation or previous work,
  since the task is well specified and required. But you should provide a brief explanation of how the tools
  work (1-2 paragraphs per tool).
  You should explain how your measurements was done.
  It should "read" well. A third person that will read the report should understand what you
  are showing.
  At the end of the report, you should provide a discussion of what you observe: any susprising or
  counter-intuitive results, or wether you were expecting the results, intuitive arguments of the observed variability.
  Expected lenght 2-4 pages of text, not counting the plots.
  You should append your python scripts with reasonable documentation that one could understand how
  they work. ( one phrase per function may be enough)


A sample of ping:
 ping -c 5
PING hill ( from : 56(84) bytes of data.
64 bytes from hill ( icmp_seq=0 ttl=252 time=1.806 msec
64 bytes from hill ( icmp_seq=1 ttl=252 time=1.690 msec
64 bytes from hill ( icmp_seq=2 ttl=252 time=2.776 msec
64 bytes from hill ( icmp_seq=3 ttl=252 time=1.813 msec
64 bytes from hill ( icmp_seq=4 ttl=252 time=1.687 msec
--- hill ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/mdev = 1.687/1.954/2.776/0.416 ms

A sample of traceroute:
traceroute to ( from (, 40 hops max, 40 byte packets
 1 (  0.551 ms  0.464 ms  0.447 ms
 2 (  0.545 ms  0.555 ms  0.598 ms
 3  500.Serial2-2.GW1.HNL2.ALTER.NET (  4.362 ms  0.609 ms  0.504 ms
 4 (  2.985 ms  0.681 ms  1.612 ms
 5 (  53.895 ms (  53.589 ms  53.751 ms
 6  185.ATM6-0.BR3.SAC1.ALTER.NET (  54.242 ms  57.775 ms 185.ATM7-0.BR3.SAC1.ALTER.NET (  53.466 ms
 7 (  56.640 ms  57.864 ms  56.353 ms
 8 (  57.097 ms  56.475 ms  56.958 ms
 9 (  57.777 ms  57.346 ms  63.843 ms
10 (  57.997 ms  58.024 ms  58.091 ms
11 (  57.539 ms  57.337 ms  58.243 ms
12 (  59.655 ms  59.970 ms  60.230 ms
13 (  100.667 ms  62.417 ms  62.863 ms
14 (  62.483 ms  62.939 ms  62.546 ms
15 (  62.324 ms  62.878 ms  64.378 ms
16 (  64.477 ms  63.723 ms  64.112 ms
17 (  63.196 ms  65.431 ms  63.752 ms