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:
- What countries did you visit? What cities?
- How far did you travel? How many hops? Can you estimate the land distance you covered (in miles or km)?
- How many milliseconds would the trip take (assuming that each part of the trip happened in sequence)?
- What's the average speed that your information traveled (in miles or kilometers per hour)?