Assignment 1

The assignment is due Sunday, June 13, 11.59 pm EDT. Submission Guidelines.

Some of the questions below are research questions, where you are asked to find information about a particular issue. You may use the Engineering Library, any text books you have, one of the paper from the class readings, or the web to come up with answers. Be sure to cite your sources. Generally, a paragraph or two should be sufficient to answer the question. There is no need to write a tutorial. Many of the answers can be found at web sites mentioned in class.

Java Makefile hints.

  1. Compute how much data is 'in flight' on a 2,500 mile fiber optic cable. Hint: The speed of light depends on the medium. The bandwidth of the fiber is B, i.e., your solution should be expressed in terms of the nominal fiber bandwidth.
  2. Determine how many IPv4 addresses are available overall for use to identify network interfaces in a globally unique manner. How many are still available, i.e., have not been assigned yet? Justify your answer.
  3. What is the current maximum distance from a central office to a DSL subscriber?
  4. How much power (in milliwatts) does a typical single-mode-fiber laser use? How does this compare to a typical laser pointer used for presentations? To convert from dBm to milliwatts, see this conversion table or a larger one.
  5. What port number and protocol does tftp (not ftp) use? Describe, in one sentence, what the protocol does and where it is standardized.
  6. What is the standardization status of SLP?
  7. What is a transport relay? What are its problems?
  8. What is the total packet header overhead for Ethernet, IP and UDP?
  9. Programming problem: This is the first part of the semester project of building an audio client application. Build an application that uses threads, select() or poll() to receive UDP packets sent to port 5000. The application should act as both a sender and receiver of data. The sender part of the application sends a UDP packet containing a text string containing the time of day every second. The format of the time stamp is left up to you. The receiver simply prints out the time of arrival, with millisecond precision, and the text string.

    The destination address for the packets is specified as a commandline argument -d, as in

      transceiver -d erlang.cs.columbia.edu
    

    The application can be written in C(++) or Java. You may choose either Linux, Solaris or Windows (XP). The programming style guidelines apply. You should omit the Columbia copyright, since assignments belong to the author, not the university.