M.I.T. DEPARTMENT OF EECS

6.033 - Computer System Engineering Handout 11 - February 29, 2000

Assignment 4: March 6 through March 10

For Lecture: Monday, March 6

Today's lecture will be on the link and network layer.

For Recitation: Tuesday, March 7

Read David B. Johnson's "Scalable support for transparent mobile host internetworking," Reading #12. This paper surveys the routing problems and solutions when the endpoints are mobile computers that are traveling around; it has become a very hot topic. There is quite a bit of research now in mobile routing and committees have been formed to try and standardize protocols. Think about how cellular networks are addressing similar issues with mobile phones. Are the issues really the same?

Today's assignment is your fourth hands-on exercise, instead of a one-pager writing assignment. (For this week, there won't be a one-pager due because you should be concentrating your writing skills on Design Project 1. You'll have two hands-on assignments this week instead.) For this assignment, you need to do the following exercises and hand in your results during recitation.

Understanding Internet routes using traceroute

This assignment is intended to expose you to some of the interesting quirks of Internet routing. In the process, you will also learn to use another very useful diagnostic tool in networks. This tool is called traceroute, and as the name implies, it essentially allows you to trace the entire route from your machine to a remote machine. The remote machine can be specified either as a name or as an IP address.

We include a sample output of an execution of traceroute and explain the salient features. The command:

   % traceroute www1.yahoo.com
tries to determine the path from the source machine (raptor.lcs.mit.edu) to www1.yahoo.com. The machine encountered on the path after the first hop is anacreon.lcs.mit.edu the next is radole.lcs.mit.edu, and so on. In all, it takes 16 hops to reach www1.yahoo.com. The explanation of the remaining fields on each of the lines can be understood by typing:
   % man traceroute
at the command prompt of any Athena workstation running some flavor of Unix.
% traceroute www1.yahoo.com
traceroute to www1.yahoo.com (204.71.200.66), 30 hops max, 38 byte packets
 1  anacreon (18.26.4.1)  0.599 ms  0.454 ms  0.425 ms
 2  radole (18.24.10.3)  0.919 ms  0.896 ms  0.815 ms
 3  B24-RTR-LCS-LINK.MIT.EDU (18.201.1.1)  1.873 ms  1.341 ms  1.717 ms
 4  EXTERNAL-RTR-FDDI.MIT.EDU (18.168.0.12)  1.775 ms  2.629 ms  2.253 ms
 5  f1-0.cambridge2-br2.bbnplanet.net (192.233.33.6)  195.167 ms  6.539 ms  6.898 ms
 6  s11-0-1.cambridge1-br1.bbnplanet.net (4.0.1.201)  4.565 ms  7.125 ms  4.209 ms
 7  p1-0.cambridge1-nbr2.bbnplanet.net (4.0.1.45)  3.589 ms  3.543 ms  5.218 ms
 8  p4-2.bstnma1-ba1.bbnplanet.net (4.0.2.174)  12.561 ms  10.128 ms  10.257 ms
 9  p0-0-0.bstnma1-cr5.bbnplanet.net (4.24.4.202)  7.325 ms  7.361 ms  8.225 ms
10  4.24.89.2 (4.24.89.2)  8.181 ms  10.091 ms  14.714 ms
11  pos2-0-155M.cr1.BOS1.gblx.net (206.132.247.49)  19.779 ms  20.991 ms  18.909 ms
12  pos2-1-155M.cr2.ROC1.gblx.net (206.132.119.189)  23.861 ms  19.161 ms  17.307 ms
13  pos6-0-622M.cr2.SNV.gblx.net (206.132.151.14)  75.357 ms  77.610 ms  76.937 ms
14  pos1-0-2488M.hr8.SNV.gblx.net (206.132.254.41)  74.483 ms  75.584 ms  95.913 ms
15  bas1r-ge3-0-hr8.snv.yahoo.com (208.178.103.62)  83.410 ms  76.266 ms  80.387 ms
16  www1.yahoo.com (204.71.200.66)  81.844 ms  91.313 ms  73.344 ms

Exercises:

Please record your answers to the three exercises below on a sheet of paper and turn it in at recitation. Please also include the amount of time that the assignment took to complete.

1. Warmup:

In at most 50 words, explain how traceroute discovers a path to a remote host. The man page might be helpful in answering this question.

2. Routing asymmetries:

For this exercise, you need to use the traceroute server at http://www.getnet.com/cgi-bin/trace. Enter the name or IP address of your machine where it says "Enter search keywords:" and press return. The traceroute server will execute traceroute on the machine running the webserver (trojan.neta.com, in this case) to your machine. Now run

   % traceroute trojan.neta.com
on your machine.

a) Show the output of traceroute in each of the above two cases.

b) Describe anything unusual about the output. Are the same machines traversed in both directions? Give one reason why this could be happening.

3. Blackholes:

At the command prompt, type

   % traceroute 18.31.0.200

a) Show the output of the above command.

b) Describe what is strange about the observed output, and why traceroute gives you such an output. The man page has useful hints to help you understand the output better.

For Lecture: Wednesday, March 8

Today's lecture will be based on the end-to-end layer.

For Recitation: Thursday, March 9

Read Saltzer, Reed and Clark, "End-to-End Arguments in System Design" (Reading #13). For fun, think about the following question. A file transfer done using the EFTP protocol described in the Ethernet paper will encounter two error-checking mechanisms. The first is a CRC calculated on the data for purposes of catching errors in the Ether (i.e., errors that occur in transit), and is performed in the Ethernet hardware. The second is another checksum provided as a backup to the (hardware) CRC, as well as for catching errors that occur at the host or destination (but still within the network layer). This check is done as part of the EFTP protocol. Note that the second checksum does not have to be computed, though some value must always be sent. What is the use of these error-checking mechanisms on the basis of the End-to-End argument? Consider the usefulness of each individual checksum as well as the combination of the two. Do you need both checksums?

Today's assignment is your fifth hands-on assignment. For this assignment, you need to do the following exercises and hand in your results during recitation.

Measuring Round Trip Times With Ping

The ping utility is one of the more useful utilities for testing a network. The ping utility works by sending a short message of type echo-request to a host using a network protocol called ICMP, the Internet Control Message Protocol. A host that supports ICMP (and most do) and receives an echo-request message simply replies by sending a short ICMP message of type echo-response back to the originating host.

For more information, look at the man page on ping and the specifications for ICMP, located in RFC 792. To get to RFC 792 on Athena, type

    % attach rfc
    % more /mit/rfc/rfc792.txt

To get to the man page on ping, type

    % man ping

Exercises

Please record your answers to the two exercises below on a sheet of paper and turn it in at recitation. Please also include the amount of time that the assignment took to complete.

In this exercise, you will use the ping utility to send echo requests to a number of different hosts. To use the ping command on Athena, simply type the letters ping on the command line. A list of possible options will appear.

You may use any other form of the ping utility so long as it sends ICMP echo-request packets and can report the number of echo-response packets and the round trip time per packet. If you do use a non-Athena workstation, please make sure you use ping from some machine connected to the MIT network. Please also note that the TAs cannot guarantee tech support if you do not use an Athena Sun workstation.

On the Sun workstations on Athena, the ping utility is located in /usr/sbin/ping. On the SGI workstations on Athena, the ping utility is located in /usr/etc/ping. If you use the ping from a Sun workstation, you may have to use the -s option to get it to display the results that you want. Type machtype to determine the type of machine you are using. If you have any more questions, see the man pages for more details on how to use ping.

Exercise #1

a) For the following hosts, send 20 packets, each with a length of 56 data bytes. Indicate what percent of the packets resulted in a successful response. For the packets from which you received a response, write down the minimum, average, and maximum round trip times in milliseconds. Note that ping reports these times to you if you tell it how many packets to send on the command line.

The list of hosts are:

   www.lcs.mit.edu       
   www.stanford.edu 
   www.cca.vu.nl           (Vrije Univeristy, Prof. Kaashoek's alma mater)
   www.kyoto-u.ac.jp       (Kyoto University)

Note: You may find that the packet responses are 64 bytes instead of 56 bytes. Look at RFC 792 to find out the reason.

b) For 56-byte packets, what can you say about the differences in the minimum round-trip times for pings of www.lcs.mit.edu, www.stanford.edu, www.cca.vu.nl and www.kyoto-u.ac.jp? What reason can you give to explain why these differences occur?

c) For same hosts listed above, send 20 packets that have lengths of 512 data bytes and 1024 data bytes. Write down the minimum, average, and maximum round trip times in milliseconds.

d) When comparing 56-byte packets, 512-byte packets, and 1024-byte packets, what can you say about the difference in minimum round-trip times to the same host?

Exercise #2

a) For the following hosts, send 20 packets that have a length of 56 data bytes. Indicate what percent of the packets resulted in a successful response. For the packets that you received a response, write down the minimum, average, and maximum round trip times in milliseconds.

   www.pku.edu.cn          (Peking University)
   www.wits.ac.za          (University of the Witwatersrand, Johannesburg)
   pastwatch.lcs.mit.edu   (TA's machine modified for this exercise)
   www.microsoft.com 

b) For some of the hosts, you may not have gotten responses for all the packets you sent. Can you think of a few reasons as to why you might have not gotten a response?

For Lecture: Friday, March 10

Today's lecture will be from the writing program.

System aphorism of the week

A system takes longer to debug than you expect, even when you take this fact into account.
Go to 6.033 Home Page Questions or Comments: 6.033-tas@mit.edu