Computer Communications Spring 1998
Reading assignments are an important component of this course. There is an enormous body of recent literature covering computer communications at all levels, so one difficulty is to be selective and efficient in reading. The sections below not only provide pointers to sources, but provide advice on which material should be carefully read and which material can be briefly skimmed for purposes of this course.
The three sources of reading material consist of the Linux Network Administrator's Guide, the Computer Networks textbook, and online documents (including web pages, manual pages, and program comments).
This book, an outgrowth of a Linux guide available online some years ago, is already outdated in some respects (an online, web-readable version of the book can be found here ). It remains, however, one of the more readable introductions to networking and contains many concrete instructions and examples on how to set up a small network.
We will skip over or treat lightly some topics discussed in the book because they are outdated or less frequently used in current practice. Other topics, such as how to set up serial hardware, could be useful to you personally but we skim because they do not illustrate mainstream Internet principles. The general plan will be to cover chapters 1-11, but skip most of chapters 3 & 4.
The chapter's introduction to TCP/IP probably won't tell you much you don't already know. You should also read this online document, also an introduction on TCP/IP, which provides many useful details on the internal structure of TCP/IP, Ethernets, and associated topics.
Read the first page, and skim the rest. By now there are so many variations on SLIP, PPP, SLiRP, etc, that one chapter can hardly describe all the possibilities.
Again, read the first page and skim the rest.
Chapter 9's material need not be understood deeply. It is worthwhile reading the introduction to each section, but the command options and file syntax is not important for our purposes.
Since the computer science department uses NIS, and the yp commands are supported, you should read at least the first two pages of Chapter 10 and try some of the commands on departmental machines.
Chapter 11 describes NFS, which the departmental machines use. NFS was also used to install Linux on our PC machines in the 311 MLH laboratory, so you should read Chapter 11. The mount commands require superuser status, so you can only try these on the lab PCs.
Some of Chapter 1 is a review of material we have already covered in the first part of the course. Here, however, some terms (such as hosts ) are given more precise definitions. The chapter introduces the basic types of multiplexing, error types, delay and bandwidth measurements, and layered architecture. Read this chapter thoroughly.
We skip Chapter 2, because it describes the x-Kernel, which we will not use in this version of the course. For those of you with network programming ambitions, there are several paragraphs worth looking at. These are:
Read Chapter 3 through Section 3.4, which is a discussion of error detection.
Section 3.5 describes several link protocols (stop & wait, sliding window, go-back-N, and SRP). Here you need to read carefully, perhaps even ``between the lines'' to make sure you understand how these protocols function. However you can skip the implementation in terms of the x-kernel, on pages 117-120, since we do not use the x-kernel.
This week we cover LAN protocols in Sections 3.6 and 3.7. We will not cover Section 3.8, which discusses how network adaptors and device drivers implement LAN interfaces in operating systems. You should, however at least skim this section and understand Figure 3.28, to see the significance of a buffer description list, and know what scatter-read and gather-write mean.
Read Chapter 4 up to Section 4.2, which describes routing algorithms.
Read the remainder of Chapter 4, including the description of ATM.
Read Chapter 5 up to Section 5.2.
Read Section 5.3.2 of the text, which describes how Internet backbones and intradomain routing is implemented.
We will follow the textbook up to Section 6.3 (remote procedure call), concentrating on the logic of TCP.
We skip to Chapter 8 to follow up the description of TCP with congestion management techniques. In addition to reading the chapter, you may also want to find some material on the Nagle Algorithm and the Silly Window Syndrome using a search engine (if you are curious about the details).
We close the semester with a quick look at security issues. Read Section 7.3 of Chapter 7.