A Reading List in Computer Networking

Note: this is a list of
books and papers that I have collected for students who are interested in doing
networking research. These books and papers serve as background and overview. A
student should read more in order to become an expert of a special field. For
the books, I suggest you eventually collect the books listed
here, but I also suggest that you first loan a book from me to see if you like
it. As for the papers, you should know the basic papers very well.

Conference statistics (acceptance ratio does not say much, but the
acceptance ratios of the major networking conferences are just too low.)

Below is a list of
important papers in computer networking. Some are review papers but most are
papers that proposed important original ideas. When reading a paper below,
always ask yourself why the paper made a large impact.
Basic papers are in red.

Specification of the initial TCP protocol. Notice that
TCP and IP had not been separated at the time of writing. How did they
separate TCP into IP and TCP? Also, the address was 24 bits instead of the
current 32 bits. For the specification of current IP and TCP, see [RFC
791] for current IP, and [RFC
793] for current TCP.

The above paper discusses layered architecture, but a
fundamental problem is how to divide functionality among layers. End to end
argument is the answer from the Internet community.

End to end arguments is a class of system design principles that organize
and guide the placement of function within a system. These arguments and the
underlying principles have now been invoked in many contexts, becoming part
of the vocabulary of network protocol and operating system designers.

[Ree00] David Reed, "The End of
the End-to-End Argument", April 2000. (html)

"I would argue that we need more than ever to understand
[the end-to-end argument] and to apply it as we evolve the network... Future
potential is hard to visualize, but our inability to make out the details
should not justify locking the doors against new ways to use the
network."

[Cla00] D. Clark. "Rethinking
the Design of the Internet: end to end arguments vs. the brave new world".
Presented at TPRC 2000, Alexandria, Va., September 23-25th, 2000. (pdf)

Rethinking the end to end arguments. Consider the new
requirements for network support.

Present MGR, which has five innovations: 1) each
forwarding engine has a complete set of the forwarding table (used to have
only cache); 2) Use a switched backplane (used to use a shared bus); 3)
split forwarding engines from line cards; 4) line cards translate local link
layer headers to and from an abstract link layer header format so that
forward engines do not need to consider link layer; 5) include QoS; the
forwarding engines classify packets, scheduling on the output line cards, in
a specialized processor called the QoS
processor.

Explain LAN and WAN traffic through structral models and
show the relationship between self-similarity at the macroscopic level of
WANs with the heavy-tailed behavior at the microscopic level of individual
sources.

[RCJ88] K. Ramakrishnan, D.
Chiu, and R. Jain, "Congestion Avoidance in Computer Networks with a
Connectionless Network Layer". In Proceedings of ACM SIGCOMM '88, Sept. 1988,
pp. 303-313. (html)
(Note: This is a revised version of the original SIGCOMM'88
paper.)

Congestion control using control theory. The objective
is to control the number of outstanding packets at the bottleneck. Use
packet pair to estimate the service rate at the bottleneck. Assume
round-robin like service at the bottleneck. A different
perspective.

"The more academic literature has largely focused on
devising optimal pricing policies; achieving optimal welfare requires
charging marginal congestion costs for usage. In this paper we critique this
optimality paradigm ... we contend that the research agenda on pricing in
computer networks should shift away from the optimality paradigm and focus
more on structural and architectural issues." Here is a list
maintained by Richard Gibbens' on Pricing Internet
Resources (Last modified in 1998.)

Some important/influential papers selected by ACM and
IEEE. Note that most of these papers are also repeated above under specific
categories. Read the papers and think why they are considered to be
influential.