Brandeis CS 146a

ASSIGNMENT 4:  September 30 through October 5, 2011

For Class Monday, October 3, 11

For Lecture Material:

We are delving into  new networking. In preparation read Section 7. A from the on-line Chapter 7 in S&K book.

For Class Discussion and for Assignment Part 1:

Read the paper by Metcalfe and Boggs, "Ethernet: distributed packet switching for local computer networks". An interesting sidenote: The paper describing Ethernet is "old": 1976.  In fact, it is so old that it describes the experimental Ethernet, which ran at 3 MB/second,  rather than increasingly standard 100 MB/second. If you already know a lot about the current Ethernet, you may notice a number of interesting differences as you read the paper.

Ethernet's scheme for packet routing requires  a  degree of cooperation among the stations to share the ether fairly.      Discuss how an uncooperative machine can reduce the efficiency of Ethernet to virtually zero.

For Background material:

Read pages 1 through 14 of RFC 791. The Internet protocols are defined by a series of numbered Request for Comments (RFCs). RFC 791 defines IP. Other RFCs specify other protocols (such as TCP and UDP) and implementation strategies. Most of the RFCs are on the web (see RFCs). You can find RFC 791 there too.

Assignment Part 2:

 The second part of todays assignment is different from previous assignments, in that you actually get to play with real networking tools! Please hand in this assignment on LATTE in addition to answering the reading question above.

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 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 in class. 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 COSI machines, 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-COSI workstation, please make sure you use ping from some machine connected to the Brandeis network.  Please also note that the TAs cannot guarantee tech support if you do not use a COSI workstation.

On the COSI Berry Patch workstations, the ping utility is located in /bin/ping. 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.cs.brandeis.edu
www.whitehouse.gov
www.stanford.edu
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.cs.brandeis.edu, www.whitehouse.gov, www.stanford.edu, 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.

The list of hosts:

www.cs.technion.ac.il (Technion, Prof. Shrira's alma mater)
www.pku.edu.cn    (Peking University)
isaac.taelgar.org
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 Discusion Class, Wed, October 5, 11

Read the paper by Saltzer, Reed and Clark, "End-to-End Arguments in System Design". Your reading report will address 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?

Your report should include the following visuals:

(a) Show how the Ethernet protocol, network protocol, and EFTP protocols fit the network layering modularity implemented using the mechanism of adding/removing headers (please show concrete details for the packet formats, data and header info, for each layer). If you are not entirely sure what goes where please consult Chapter 7 section on layering.

(b) Show where in these layers are the two checksums computed and where are they carried.

(c) Show  what the end-to-end argument means for (a) and how it is reflected in (b).

(d) Create a high-level explanation for the concepts you explained in (a)-(c) at a level fit for a non-specialist. Think about your uncle and aunt at the upcoming Thanksgiving gathering (or other family gathering if you are not into Thanksgiving). For this "from 5000 feet" view you may want to come up with a different example if your relatives are anything like mine... Your goal here is to make sure they understand the ideas and concepts rather than the specific details. Be creative!

You can create the visual with any software you are familiar with, from powerpoint (please do not forget to translate into pdf for submission) to a free hand drawing on a tablet. If you can find a cartoon illustrating the idea, that would work too (I have been searching for such a cartoon for a while).

For Lecture Material:

Read S&K Chapter 7.B and C. (end-to-end) layer.

System aphorism of the week
A complex system that works is invariably found to have evolved from a simple system that works. (J. Gall, Systemantics)

CS146a, Assignment 4, issued 9/29/2011