The assignment is due Friday, March 27, 5 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.
- (a) What is the output power in dBm of a 1200 W microwave oven? (b)
What is the signal-to-noise ratio when the input signal is 50 μW and
the noise level is 60 μW?
- Compute the number of cross points for a single matrix switch with
N=128 inputs, as well as a Clos switch with the smallest number of
- Find examples of specifications for current SRAMs and TCAM, in terms
of access speed and memory size. For a single-chip design, could you
come up with a design that provides 512,000 routing table entries? What
are the advantages and drawbacks of your design?
- We can use vinyl records as a retro data storage medium, soon to be
sold by Urban Outfitters. Compute the theoretical two-sided storage
capacity of a 22-minute per-side record.
Assume that such a record has a signal-to-noise ratio of 50 dB and a
frequency range of 20 Hz to 20 kHz. (Early personal computers such as
the TRS-80 and PET used cassette tapes for data storage, so this is not
- Estimate the relative symmetry of Internet traffic using
netstat. Retrieve a number of web pages and compare the
incoming vs. outgoing packet and byte counts. Can you draw conclusions
about the packet sizes? Perform the same test when running an interactive
video or audio session (e.g., Skype, FaceTime or a SIP client).
- Compute the approximate cost of purchasing Internet transit
services, measured in dollars per GB, as incurred by an ISP or large
enterprise or university. Compare to the "retail" cost using typical
(median) household usage. You will need to make a variety of
assumptions, e.g., on costs, so please name your sources and justify
- Using netalyzr,
determine what kind of Internet you have access to, either from your
home/dorm room, your mobile device (this only works on Android) or an
on-campus wired computer, using the classification found in the AIS
slides. Include characteristics such as IPv6, provider-indepdent
addresses, NAT, and port blocking.
- "Ping" two servers (e.g., at university) both close by (e.g., on the
east coast) and in another country and compare the round trip time
measured to how long it takes for light to traverse the geographic
distance from New York to that location. What fraction of the round
trip time is due to the speed of light?
- For this problem, we will take a look at
amplitude modulation, used for some cable modems and VDSL. Generate
a sample rectangular constellation in I and Q space for 16-QAM and
justify your answer. For the "southernmost" (most negative) code point
closest to the Q axis, show the wave form that would be generated during
that symbol. Show both the I and Q waveforms, as well as the sum.
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++, Java, or Python.
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, but can support any additional types. You can
_sip._udp.columbia.edu DNS SRV and
www.cs.columbia.edu CNAME records for testing.
Capture the DNS exchange using Ethereal or tcpdump. You can use an
output format similar to host, but feel free to create your
Include any libraries; provide a Makefile.