Reading Assignments: 22C:178 & 055:134

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).

Linux Network Administrator's Guide

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.

Chapter 1

[Week 1 Reading ] This chapter starts with with some general historical comments and then describes UUCP Networks . The topic of UUCP networks is rapidly declining in interest as connection to the Internet has become more affordable. Yet UUCP illustrates an important theme called source routing that we shall encounter later in the course, so you should learn how UUCP networks function.

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.

Chapter 2

[Week 1 Reading ] Many important concepts appear in Chapter 2. These concepts will be amplified later by a number of online documents and by assignments: read the chapter carefully.

Chapter 3

You can skip Chapter 3 (unless you have a PC with Linux, in which case you may find some of it useful).

Chapter 4

We will skip Chapter 4 and most practical considerations of serial hardware used with Linux.

Chapter 5

[Week 2 Reading ] This is a how-to chapter, giving specific advice on how to set up a small network of Linux machines. It refers to several files in the Linux /etc directory. You might find it interesting to see what the etc directory contains on Linux. I have made a copy of the Linux /etc directory for you to explore via the course web page. You will need to read Chapter 5 carefully to prepare for the first project: in the first project, you will use the commands described in Chapter 5 to get a small network up and running.

Chapter 6

[Week 3 Reading ] This chapter is a good one to read, since you can use the nslookup tool to test some name server features. The chapter only scratches the surface in some areas, and you may find some concepts difficult without experimentation on your own.

Chapter 7

[Week 3 Reading ]

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.

Chapter 8

[Week 3 Reading ]

Again, read the first page and skim the rest.

Chapter 9

[Week 3 Reading ]

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.

Chapter 10

[Week 3 Reading ]

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

[Week 3 Reading ]

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.

Computer Networks Textbook

Chapter 1

[Week 5 Reading ]

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.

Chapter 2

[Week 6 Reading ]

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:

Chapter 3

[Week 7 Reading ]

Read Chapter 3 through Section 3.4, which is a discussion of error detection.

Chapter 3

[Week 8 Reading ]

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.

Chapter 3

[Week 9 Reading ]

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.

Chapter 4

[Week 10 Reading ]

Read Chapter 4 up to Section 4.2, which describes routing algorithms.

Chapter 4

[Week 11-12 Reading ]

Read the remainder of Chapter 4, including the description of ATM.

Chapter 5

[Week 12 Reading ]

Read Chapter 5 up to Section 5.2.

Chapter 5

[Week 13 Reading ]

Read Section 5.3.2 of the text, which describes how Internet backbones and intradomain routing is implemented.

Chapter 6

[Week 13 Reading ]

We will follow the textbook up to Section 6.3 (remote procedure call), concentrating on the logic of TCP.

Chapter 8

[Week 14 Reading ]

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).

Chapter 7

[Week 15 Reading ]

We close the semester with a quick look at security issues. Read Section 7.3 of Chapter 7.



Ted Herman
5/6/1998