CS 61C Machine Structures
University of California, Berkeley
Dept. of Electrical Engineering and Computer Sciences



Lab 10
Fall 1999
Due before the start of your discussion section

OBJECTIVE

The purpose of this lab is to give you an idea of how the Internet is connected together and what the typical delays are as a message (packet) goes from source to destination. You will start by familiarizing yourself with two network measurement tools - ping and traceroute (both of these were initially written in Berkeley!). You will then use these tools to:

Prelab

Read the man pages for ping and traceroute. (So there's nothing to turn in)
Also read the entire lab before coming to lab section.

Part 0: Using tools

Part 0 a - PING

Ping is a program that sends an echo request packet once a second to a target computer.  Upon receiving the echo request packet (also called a ping packet), the target computer returns the packet to the sender . Ping displays information about the packet sent and how long it took to receive the packet . This length of time is called the round trip time (RTT )and is representative of network latency.

First ssh to another instructional machine (other than quasar.cs or pulsar.cs). Then, try to Ping the computer you've ssh'd to. To do this run:
/usr/sbin/ping -s <local computer name>
Replace <local computer name> with the name of the computer you've connected to. For example, if I were on arapaho, I'd use:

/usr/sbin/ping -s arapaho.cs.berkeley.edu

Ping will continue sending packets until interrupted . To stop ping, press Control-C . Ping will provide a summary including the number of packets sent , received,and average round trip time (RTT).In the previous example , the results would have been displayed as:

PING arapaho.cs.berkeley.edu:64 byte packets
64 bytes from 128.32.42.83:icmp_seq= 0. time=1. ms
64 bytes from 128.32.42.83:icmp_seq= 1. time=0. ms
64 bytes from 128.32.42.83:icmp_seq= 2. time=0. ms
64 bytes from 128.32.42.83:icmp_seq= 3. time=0. ms
64 bytes from 128.32.42.83:icmp_seq= 4. time=0. ms
64 bytes from 128.32.42.83:icmp_seq= 5. time=0. ms
64 bytes from 128.32.42.83:icmp_seq= 6. time=0. ms
64 bytes from 128.32.42.83:icmp_seq= 7. time=0. ms
64 bytes from 128.32.42.83:icmp_seq= 8. time=0. ms
64 bytes from 128.32.42.83:icmp_seq= 9. time=0. ms
64 bytes from 128.32.42.83:icmp_seq= 10.time=0. ms
64 bytes from 128.32.42.83:icmp_seq= 11.time=5. ms
64 bytes from 128.32.42.83:icmp_seq= 12.time=0. ms
64 bytes from 128.32.42.83:icmp_seq= 13.time=0. ms
64 bytes from 128.32.42.83:icmp_seq= 14.time=0. ms

arapaho.cs.berkeley.edu PING Statistics--15 packets transmitted,15 packets received,0% packetloss round-trip(ms) min/avg/max = 0/0/50.

For more details about the various command line options, read the man pages.

Practice:
Try pinging various sites and see what round trip times you get. Try some sites

Is there a significant difference between the average ping times to these different sites?
(A good question here would be: "What is a "significant difference"- after all everything here seems to be measured in milliseconds!". For now, you can approach the above question by just looking at the ratios of the ping times to different sites. So a factor of two or more between ping times would be a significant difference)
 
 

PART 0 b - TRACEROUTE

Typically, on a local area network (LAN) every machine can directly contact every other machine.  A larger network, like the Internet is composed of many smaller networks, and it would be impossible for every machine to know how to reach every other machine. In order  to connect two networks together, we could dedicate a computer (called a gateway) to routing traffic from one network to another. Suppose that a computer on the network A wanted to send a packet to a computer on the network B.  Rather than storing the routing information for the network B, the computer onthe network A would simply forward the packet to the gateway, and the gateway would forward it to its destination. Traceroute is a program that displays the routers between your computer and a destination computer.  It also displays the RTTs from each router to the local computer. Read the man pages for more information on the command.

Practice:
Use traceroute on the above sites and see how the route varies. The third and fourth sites are outside UC Berkeley. How many hops do you think it takes to get out of the UC Berkeley Campus ?
 
 

PART 1 - Mapping the Campus Network:

The method we will adopt to try and build a partial map of the campus network is to traceroute to various machines and analyze those routes to understand the campus network. It is quite difficult to deduce a full topology of the network just from one starting point, since your network maps  will always end up being trees. However, at this point you are logged into quasar.cs and another instructional machine, which will prevent a tree from being formed.
This part of the lab has to be done from the instructional accounts.

For this part of the lab, "local machine" means quasar.cs AND the machine you've ssh'd to. This means you'll be doing the steps for this part TWICE: once from quasar.cs, and another time from some other instructional machine. This is so you don't get a tree topology.

Now, let's find the routes from the instructional machines to different machines within Berkeley. Run traceroute to the following machines: Now given all the data you have accumulated, try to come up with the approximate topology of the campus-network.
 

Question 1a:

Consider the routes from the local instructional machine to po.eecs.berkeley.edu and from po.eecs.berkeley.edu to your machine. How do they differ? To what networks does the instructional gateway (128.32.42.1) route packets directly, i.e. without an additional hop? What does that tell you about gateways?

Question 1b:

What is address of the network that routes packets between the various departments and schools on campus?

PART 2 - "Networks are getting faster all the time (??) "

In this part you will learn what the statement "Networks are getting faster all the time" actually means. You will also learn about fundamental limits (based on the physical laws of the universe) which Computer Science cannot overcome, and which every computer scientist should understand while designing systems.

Using traceroute from any instructional machine -

Find the route and the RTT to the following sites. The first two are in Argentina and the third is in Australia.
www.uba.ar
www.frba.utn.edu.ar
http://dove.net.au

Australia is much further away from here than Argentina. Why are the RTTs so much smaller for the Australian machine than the Argentinian ones? To answer this question, notice the pattern in the RTT for the various transit machines to the
sites in Argentina. Do you notice a sudden jump in the value? Can you guess the reason for this?
 

So now lets get back to the initial point of this excercise,(Networks are faster??) and lets relate it to this story (it is claimed to be a real one):
A manager of a leading company owning a significant portion of the physical networks making up the Internet Backbone announced that the next generation networks were going to have ping times from CA to the UK of 6ms. The technical employees (read Dilbert&co) tried to explain to him that this is impossible. He countered,"But aren't networks getting faster all the time?".

Question 2a
Assume you are one of the employees of the above mentioned company. And let your TA be the manager. As part of your email to him/her containing the answers to this week's lab, explain what "faster networks" really mean, and how even a network with infinite bandwidth, cannot achieve the ping times that he/she desires. Here is some useful information which will help you formulate your answer:

Diameter of the Earth: 12,800 KM
Velocity of Light : 300,000 KMs/sec
Time Difference between CA and UK = 7 hrs

Question 2b
Also, use the following numerical example to explain to your TA the above concept:
If the average ping time from A to B is 10 ms. Assuming infinite bandwidth, what is the time taken to transfer:
1) 100 GB from A to B
2) 1 Byte from A to B
 
 

REQUIREMENTS: