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 hill.cs.ucr.edu
 (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  www.google.com 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
 
 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)

APPENDIX:

A sample of ping:
 ping -c 5 hill.cs.ucr.edu
PING hill (138.23.169.9) from 138.23.169.209 : 56(84) bytes of data.
64 bytes from hill (138.23.169.9): icmp_seq=0 ttl=252 time=1.806 msec
64 bytes from hill (138.23.169.9): icmp_seq=1 ttl=252 time=1.690 msec
64 bytes from hill (138.23.169.9): icmp_seq=2 ttl=252 time=2.776 msec
64 bytes from hill (138.23.169.9): icmp_seq=3 ttl=252 time=1.813 msec
64 bytes from hill (138.23.169.9): 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 hill.cs.ucr.edu (138.23.169.9) from malasada.lava.net (64.65.64.17), 40 hops max, 40 byte packets
 1  iiwi-fe-0-0-0.lava.net (64.65.64.30)  0.551 ms  0.464 ms  0.447 ms
 2  noio-fe-0-0-0.lava.net (64.65.64.74)  0.545 ms  0.555 ms  0.598 ms
 3  500.Serial2-2.GW1.HNL2.ALTER.NET (157.130.236.217)  4.362 ms  0.609 ms  0.504 ms
 4  165.at-6-0-0.XR1.HNL2.ALTER.NET (152.63.51.6)  2.985 ms  0.681 ms  1.612 ms
 5  282.at-2-0-0.XR1.SAC1.ALTER.NET (152.63.49.174)  53.895 ms 282.at-1-0-0.XR1.SAC1.ALTER.NET (152.63.49.170)  53.589 ms  53.751 ms
 6  185.ATM6-0.BR3.SAC1.ALTER.NET (152.63.50.193)  54.242 ms  57.775 ms 185.ATM7-0.BR3.SAC1.ALTER.NET (152.63.50.185)  53.466 ms
 7  sjo-brdr-04.inet.qwest.net (205.171.4.97)  56.640 ms  57.864 ms  56.353 ms
 8  sjo-core-03.inet.qwest.net (205.171.22.122)  57.097 ms  56.475 ms  56.958 ms
 9  lax-core-01.inet.qwest.net (205.171.5.153)  57.777 ms  57.346 ms  63.843 ms
10  bur-core-01.inet.qwest.net (205.171.8.43)  57.997 ms  58.024 ms  58.091 ms
11  bur-edge-01.inet.qwest.net (205.171.13.14)  57.539 ms  57.337 ms  58.243 ms
12  65.119.29.94 (65.119.29.94)  59.655 ms  59.970 ms  60.230 ms
13  138.23.2.249 (138.23.2.249)  100.667 ms  62.417 ms  62.863 ms
14  138.23.6.3 (138.23.6.3)  62.483 ms  62.939 ms  62.546 ms
15  bourns-hall.ucr.edu (138.23.179.1)  62.324 ms  62.878 ms  64.378 ms
16  138.23.210.57 (138.23.210.57)  64.477 ms  63.723 ms  64.112 ms
17  hill.ucr.edu (138.23.169.9)  63.196 ms  65.431 ms  63.752 ms