Assignment 2

The assignment is due Thursday, October 6, 6.59 pm EDT, to be submitted via CourseWorks.

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.

Readings

Problems

  1. Complete the project plan for your project. Each project group should discuss the plan with the instructor.
  2. We discussed the end-to-end principle in class. (a) What common network functions are described in the paper? (b) Are there other common end system or network functions that the paper did not anticipate? (c) From your knowledge of wireless (802.11/WiFi or cellular) networks, which of these functions are provided at the link layer and how does this agree with or contradict the end-to-end arguments?
  3. Find the current (rough) wholesale price for commercial Internet access, e.g., for 1 Gb/s connection. (a) Compute how much a typical 5 MB YouTube video costs Google to transmit. (b) How about sending a 7 GB DVD by Internet instead of postal mail? (Cite sources as needed.)
  4. In the on-line version of the Code of Federal Regulation (CFR), find the text that requires cellular operators to provide 9-1-1 (emergency calling) services and determine how accurate a location they have to deliver to the public safety answering point (the 911 call center).
  5. Should the Open Internet prohibition against discrimination apply to wireless systems? Cite one argument in favor and one against. [Topic will be discussed on Monday.]
  6. Explain how natural monopolies and economies of scale are related. Give two examples, one from the telecommunications area and one outside the computing area. (Also explain each term briefly.)
  7. Name three significant aspects where the IETF, ITU, W3C and IEEE differ, e.g., presented as a table.
  8. Programming problem (DNS): Some of the protocols that we will be discussing will use specialized DNS records. To allow you to become more familiar with those newer uses of DNS, you are asked to program a simple "stub resolver", in either C/C++ or Java.

    For C/C++, you can use adns and the GNU web site. RULI is another option; a synchronous library supporting SRV is a modified version of resparse.

    Java libraries include dnsjava and the Java Naming and Directory Interface (JNDI).

    You should build an application that allows to retrieve DNS records from a commandline tool, specified as adns type domain, where type is the resource record (RR) type and domain is the domain name to be resolved. You only need to support A, CNAME and SRV (RFC 2782) records. You can use the _sip._udp.columbia.edu DNS SRV and www.cs.columbia.edu CNAME records for testing.

    Capture the DNS exchange using Ethereal or tcpdump. (If you have difficulty uses tcpdump in CLIC, you should arrange to use the CS INTEREST lab.)