M.I.T. DEPARTMENT OF EECS

6.033 - Computer System Engineering Handout 7 - March 6, 2001

Assignment 4: March 12 through March 23 (Revised on 3/28/01)

Note: handout updated on 3/28; the reading suggestions for NATs have been updated.

Note: this handout covers TWO weeks

For Lecture: Monday, March 12

Read Chapter 4, sections C and D of the class notes. Today's lecture will be on the link and network layers.

For Recitation: Tuesday, March 13

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.

In our increasingly wireless and mobile world, Mobile IP seems to be an obviously beneficial technology. However, in the time since the paper was written, Mobile IP has not gained wide use on the Internet. What aspects of the system itself might act as impediments to its deployment and use? In particular, what is the specific functionality that Mobile IP enables and how useful is that to most users? (Think about how mobile computing is described in the paper and how that differs from most of the portable computing you see today).

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. We recommend, but do not require, that you perform this assignment on Athena. Please note that the TAs cannot guarantee tech support if you do not use an Athena workstation.
% 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 useful in answering this question. You also might find some helpful information in chapter 4 of the lecture notes.

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.

(Note: routers have a number of different ports which are connected to different links; these ports have distinct IP addresses but are still part of the same machine. For example, it is possible that the address 4.0.1.158 that you see on one of the traces represents the same router as the address 4.0.1.180 that you see on the traceroute output for the reverse direction. For this reason, it is sometimes difficult to be certain whether or not two IP addresses that share a common prefix are on the same machine. But if the first component of the IP address is different, those addresses almost certainly are for different routers.)

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 14

Read section E of Chapter 4 in the class notes. Today's lecture will be based on the end-to-end layer.

For Recitation: Thursday, March 15

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.cs.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)
   herrera.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 16

Yes, we will be having a lecture on Friday this week. A special lecture will be given by the writing program on the subject of writing up your design project. They will present the recommended format for the writeup and give you some tips about how to write a technical paper like the ones we have been reading in class. If you are planning on using your report to pass the Phase 2 requirement, you might find this lecture helpful.



For Lecture: Monday, March 19

Read Chapter 4, section F of the lecture notes. Today's lecture will be on Congestion and Flow Control.

For Recitation: Tuesday, March 20

Read the paper "The Click Modular Router" by Eddie Kohler, et al.
There is no one-pager due today. Instead, keep working on Design Project 1.

For Lecture: Wednesday, March 21

Read sections A and B of Chapter 5 in the lecture notes. Today's lecture will begin our discussion of naming.

For Recitation: Thursday, March 22

Recitation discussion today will be on Network Address Translation. Please read the following papers:

These are documents discussing the problems with NAT. For background, you may wish to read

Design project 1 is due today in recitation.

For March 26 through March 30:

Have a great Spring Break!

System aphorisms of the week

A system takes longer to debug than you expect, even when you take this fact into account.

Engineering is the art of modeling materials we do not wholly understand, into shapes we cannot precisely analyse so as to withstand forces we cannot properly assess, in such a way that the public has no reason to suspect the extent of our ignorance. (A. R. Dykes, Scottish Branch, Institution of Structural Engineers, 1946)


Go to 6.033 Home Page Questions or Comments: 6.033-tas@mit.edu