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 plot a route around the world.

1. Where you are

First you need to find out your own IP address. This is the address of shell.uoregon.edu, not the machine physically in front of you.

To do this, log onto shell.

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

% hostname -i

... and hit enter. You should see the IP address.

2. How to find others

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 see what goes into the process of actually talking to another computer through the Internet.

Every message you send to that 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 that the information sent to google.com from shell.uoregon.edu went through 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, it took almost 100 milliseconds to contact 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.

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 to traces from computers at other locations. Fortunately, some other institutions are kind enough to let us use their computers to do just that.

There is an index of traceroute servers at: http://traceroute.org/

These are sorted by geographic location, though you can't always tell by the name.

Choose 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.

Here's a trace from a server in Austria to a 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

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 3 servers around the world. Use servers from the traceroute.org list (link above) or the VisualRoute Server list (link above).

First, 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).

Next, 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. At the last remote traceroute server, enter shell.uoregon.edu and copy down the information.

This concludes your virtual round trip. Some questions: