Around the World in 80 ms

CIS 110 Lab Week 7

     author: Jonathan Lidbeck, 110 GTF, 07F

The goal of today's lab is to use traceroute to plot a route through the internet to go around the world-- or at least to cross a few oceans--and see how long it takes to send information around the globe.

1. Where you are

To get warmed up, let's find out your IP address.

To do this, first log onto shell. Use Secure Shell Client as usual, or your favorite shell program.

When you see the UNIX % prompt, enter the following:

hostname -i

... and hit enter. You should see the IP address 128.223.142.32. This is the address of shell.uoregon.edu, not the machine physically in front of you.

2. How to find others (optional)

It's generally just as easy to find other websites' IP address as it is to find their name. Just use the nslookup command. For example, to lookup the IP address for shell.uoregon.edu (yes, the same computer we just looked at), enter nslookup shell or nslookup shell.uoregon.edu. Here's what you should see:

% nslookup shell.uoregon.edu
Server:         128.223.32.35
Address:        128.223.32.35#53

Name:   shell.uoregon.edu
Address: 128.223.142.32
%

Now let's try a computer that's a little more separated.

% nslookup google.com
Server:         128.223.32.35
Address:        128.223.32.35#53

Non-authoritative answer:
Name:   google.com
Address: 64.233.187.99
Name:   google.com
Address: 64.233.167.99
Name:   google.com
Address: 72.14.207.99
%

We found not just one IP address, but three.

3. How did we get there?

Now let's use traceroute to see what other systems are helping us out when we talk to another computer through the Internet.

Remember that every message you send to a computer finds a route by hopping from server to server, starting with a few short hops moving up the chain to major ISP providers, then moving back down. We can usually see where the messages are going, and how fast they get there, using a tool called traceroute.

(Notice that we don't have to type the numerical IP address: traceroute knows how to lookup the address using our local nameserver.)

% traceroute google.com
traceroute: Warning: google.com has multiple addresses; using 64.233.167.99
traceroute to google.com (64.233.167.99), 30 hops max, 46 byte packets
 1  vl-142.uonet2-gw.uoregon.edu (128.223.142.3)  67.235 ms  0.445 ms  5.924 ms
 2  ge-0-2-0.uonet9-gw.uoregon.edu (128.223.3.9)  19.672 ms  18.762 ms  18.962 ms
 3  ge-4-0.core0.eug.oregon-gigapop.net (198.32.163.161)  0.261 ms  0.170 ms  0.168 ms
 4  200.ge-2-0-7.core0-gw.pdx.oregon-gigapop.net (198.32.163.10)  2.599 ms  2.539 ms  2.535 ms
 5  vl-201.xe.pdx-losa.oregon-gigapop.net (198.32.165.194)  24.498 ms  25.429 ms  24.633 ms
Icmp checksum is wrong
 6  so-0-0-0.0.rtr.hous.net.internet2.edu (64.57.28.45)  64.843 msIcmp checksum is wrong
  66.557 msIcmp checksum is wrong
  56.688 ms
Icmp checksum is wrong
 7  64.57.28.56 (64.57.28.56)  75.818 msIcmp checksum is wrong
  73.507 msIcmp checksum is wrong
  74.984 ms
Icmp checksum is wrong
 8  so-5-0-0.0.rtr.chic.net.internet2.edu (64.57.28.17)  81.192 msIcmp checksum is wrong
  81.233 msIcmp checksum is wrong
  81.218 ms
 9  core1-2-2-0.ord.net.google.com (206.223.119.21)  81.590 ms  81.377 ms  81.528 ms
10  216.239.48.154 (216.239.48.154)  81.721 ms  99.535 ms 209.85.250.237 (209.85.250.237)  81.546 ms
Icmp checksum is wrong
11  66.249.95.120 (66.249.95.120)  81.815 msIcmp checksum is wrong
  81.930 msIcmp checksum is wrong
  81.900 ms
12  72.14.232.53 (72.14.232.53)  82.527 ms  82.507 ms 72.14.232.70 (72.14.232.70)  *
13  py-in-f99.google.com (64.233.167.99)  82.727 ms 64.233.175.26 93.771 ms 72.14.232.70 (72.14.232.70)  90.465 ms

There's a lot of information here.

The first thing to notice is the last line: this shows us that the packet arrived at the destination--some computer at google.com--and that it got there in 13 hops.

That seems like a lot. You might try running traceroute again (just hit the up arrow to repeat the previous command). Do you get the same number of hops each time?

The next thing to notice is the timing information on each line. Notice that traceroute makes 3 attempts, and prints timing information from all 3 attempts. In the example above, the three attempts took 82.727, 93.771, and 90.465 milliseconds to reach a server at Google.

Notice that the information is incomplete. The asterisk (*) indicates that no return packet was received from a particular router. Sometimes packets get lost, or a server simply doesn't respond to traceroute requests.

Try using traceroute with your favorite website.

4. Tracing Routes From Other Places

So far, all of the routes we're tracing start right here at the University. If we want to connect a path around the globe, we'll need to run traceroute starting from computers at other locations. Fortunately, some other institutions around the world are kind enough to let us use their computers to do just that.

There is an index of such traceroute servers sorted by country at:

http://traceroute.org/

Choose a traceroute server from the list. Some of them may not be operational; don't worry about it, just find a different one.

Now it's likely you'll get a warning. Sending out traceroutes is risky, because traceroute requests sometimes look like malicious (or just annoying) attempts to probe a network, and not all servers will allow it. Go ahead anyway, and with some luck, you'll find a screen that is actually a simple Web interface for the traceroute program we've just been running. Only now you'll be running it from a computer somewhere else in the world.

You can copy the name of one traceroute website and paste it as a destination in another traceroute website. You'll need to do this trick at least once to make an interesting roundtrip.

For example, I found a traceroute server in Austria at http://www.hotze.com/cgi-bin/tracert.pl and a traceroute server in Australia at http://mirror.sptel.com.au/cgi-bin/trace . I copied just the computer names (hotze.com and mirror.sptel.com.au) to do traces from one to the other.

Here's a trace from the server in Austria to the server in Australia:

...and a trace from the Australia server back to the same server in Austria:

Notice that the trip takes the same number of hops and about the same amount of time either way, but the routes are not exactly the same.

5. Tracing Routes Graphically (optional)

A few sites around the world offer a visual traceroute service. The content is basically the same, but the graphical presentation can be more informative.

You can find an index of a few of these sites at:

http://www.linkwan.com/en/vr.asp?location=hk

6. Planning Your Trip

To plan your virtual world tour, choose at least 2 servers around the world. Use servers from the traceroute.org list (link above) or the VisualRoute Server list (link above).

Before you start, open an Excel sheet or a text document to record the names and locations of computers you visit. This will make copying and pasting the system addresses a little bit easier. If you want, use this simple form:


traceroute.xls

Your trip should include at least 3 parts:

  1. From shell.uoregon.edu to some remote server #2;
  2. From server #2 to another remote server #3;
  3. From server #3 back to shell.uoregon.edu.

Here's a tip: because not every server is cooperative, to avoid getting stuck in a dead-end, you might find it easier to plan your trip in reverse.

For part 1, find out how long it takes for shell.uoregon.edu to contact the first server. Use the UNIX shell command as described above to run a traceroute to your first destination. Copy down the number of hops and the total time (in ms).

For part 2, go to the traceroute Web service at the first location. Use their service to trace a route to the next location. Copy down the information.

Continue this for all destinations. For part 3, at the last remote traceroute server, enter shell.uoregon.edu and copy down the information.

This concludes your virtual round trip.

Helpful Links

Estimating the distance

Here are some helpful links for calculating the distance between two cities.

http://www.timeanddate.com/worldclock/distance.html

http://geobytes.com/CityDistanceTool.htm

Calculating the speed

Did you know you can use Google to do math, convert units, even do both at the same time?

For example, try doing a Google search for (10000 km / 980 ms) in meters/s . Go ahead, try it now!

Submitting

Alternatively, you can email it to me ( jlidbeck@cs.uoregon.edu).