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.
- Complete the project plan for your
project. Each project group should discuss the plan with the
- 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
- 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.)
- 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).
- 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.]
- 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.)
- Name three significant aspects where the IETF, ITU, W3C and IEEE
differ, e.g., presented as a table.
- 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