CS 441: Computer Networks and Distributed Processing
Department of Mathematics and Computer Science Hobart and William Smith Colleges Fall, 2002. Instructor: David J. Eck (eck@hws.edu) Monday, Wednesday, Friday, 3:00--3:55. Room Lansing 300. Course Handout: http://math.hws.edu/eck/courses/cpsc441_f02.html
Lab Worksheets
- Lab 1, September 6: Ping and Traceroute
- Lab 2, September 13: Client/Server and Application-level Protocols
- Lab 3, September 20: Socket Programming
- Lab 4, September 27: Web Server, Part I
- Lab 5, October 11: Web Server, Part II
- Lab 6, October 25: NAT Masquerading with Linux
- Lab 7, November 1: Web Server, Part III
- Lab 8, November 8 and 15: A Network of Real Computers
- Lab 9, November 22: Introduction to PVM
- Lab 10, December 2 and 9: Programming PVM
Some Useful Websites
- Information about your Linux account
- The Web site for the textbook
- A nice RFC Web site
- The Linux Network Administrator's Guide
- On-line Linux HOWTO's including the Masquerading HOWTO
- Home page for PVM (Parallel Virtual Machine)
- PVM User's Guide
Assignments and other information for CS 441
will be posted on this page as the course is taught
during the Fall term of 2002.
First Week: September 2, 4, and 6
For the first week, you should read Sections 1, 2, 3, 7, and 8 from Chapter 1. Section 7, on layered protocols, is probably the most important. Sections 4, 5, and 6 are really too technical to be in an introductory chapter, and we will cover the material in these sections when it comes up again in later chapters. However, I will talk about a few things from Section 1.4 in class. Section 1.9, on the history of the Internet, is optional. You are not responsible for knowing the material in Section 1.9, but you might want to read it for your own information.
We will spend Friday in lab (in Lansing 310), and there will be an assignment based on the lab.
Second Week: September 9, 11, and 12
We will begin Chapter 2 this week, and we'll be spending a few weeks on it. A significant part of the time will be devoted to programming with sockets. Eventually, you will be reading the entire chapter, except perhaps for some of the detailed programming examples. You should at least read Sections 2.1, 2.2, and 2.3 this week. You might want to look at Subsection 2.4.1 as well, since we will be doing some work with SMTP in lab.
On Monday, I will hand out a protocols assignment, which will be due next week as part of the work for Lab 2. For this assignment, each person in the class will investigate a different network protocol.
Third Week: September 16, 18, and 20
You should continue reading Chapter 2 of the text. We will discuss FTP, E-mail protocols, and DNS on Monday. On Wednesday, we will move on to network programming with sockets, and the lab this week will be about programming.
Fourth Week: September 23, 25, and 27
For this week, you should finish reading Chapter 2. Since we are using C++ for our programming, you are not responsible for the details of Socket programming in Java. Also, you should read the handout that contains the protocol description prepared by each student. In class this week, we will continue our discussion of socket programming. Your programs from Lab 3 are due on Friday. In lab on Friday, you will begin programming of a simple single-threaded Web server. Later in the term, you will upgrade this server to do multi-threading.
Fifth Week: September 30; October 2 and 4
We will begin Chapter 3 this week. It covers the transport layer in the networking protocol stack. On the Internet, this means TCP and UDP. The main topics are reliability and connections management in TCP. You should begin reading Chapter 3.
Sixth Week: October 7, 9, and 11
Your Web server program is due on Friday of this week. Don't forget that you also need to turn in two paragraphs describing two features of HTTP/1.0 that you would like to implement.
You should finish reading Chapter 3. The main topics for the week are flow control and congestion control in TCP.
There is a test coming up on Friday of next week.
Seventh Week: October 15 and 18
Because of the holiday, there is no class on Monday, October 13. There is a test on Friday. An information sheet is available for the test. We will spend Wednesday finishing up some material, talking about the Web server programming project, and preparing for the test. There is no reading for this week, although you might want to start reading ahead in Chapter 4.
Eighth Week: October 21, 23, and 25
We move on to the next internet protocol layer, the networking layer. This is covered in Chapter 4 of the textbook. We will concentrate on basic routing in IP. For this week and next, you should read the following sections in this chapter:
The introduction, Pages 271--271. Routing principles, Pages 280--282 in Section 42. All of Sections 4.2, 4.3, and 4.4, Pages 297--331.Although I do not require it, you might find Section 4.6 interesting if you are interested in computer hardware. In addition to the material in the reading, I talk a bit in class about routing algorithms and about IPv6.
Ninth Week: October 28 and 30; November 1
After discussing the lab on Monday, we will continue with Chapter 4. The lab this week will be on programming with threads, and we will spend some time on Wednesday preparing for the lab.
Tenth Week: November 4, 6, and 8
I will finish with Chapter 4 on Monday, and we will move on to Chapter 5 on Wednesday. We will concentrate on the material in Sections 5.4 to 5.7, pages 409 through 447. You should also read the introductory material and Section 5.1, pages 379 to 384.
A sheet of information about the final project is available.
Eleventh Week: November 11, 13, and 15
I hope to finish as much as I will have to say about Chapter 5 this week. We will also spend some time preparing for the lab on Friday. The next reading will be from Chapter 7; we will skip Chapter 6 entirely.
Twelfth and Thirteenth Weeks: November 18, 20, 22, and 25
Our last topic from the textbook is network security. You should read the short section on firewalls, Section 8.5, pages 653--657. You should also read Chapter 7, which deals mainly with cryptography, concentrating on the following material: pages 565--577, pages 588--602, and pages 608--612.
The topic for the remainder of the term will be PVM (Parallel Virtual Machine), a set of functions and command-line utilities for distributed programming. The PVM User's Guide is available on-line. The last two labs and the final programming assignment of the term will be based on PVM. We will begin talking about PVM on Wednesday, and the lab on Wednesday will be on PVM. Next Monday, we will probably spend some more time on security.
There is no class on Wednesday, November 27 or Friday, November 29 because of the Thanksgiving holiday.
Fourteenth Week: December 2, 4, and 6
There is a test on Friday, December 6. An information sheet is available.
Lab this week is on Monday. On Wednesday, we will discuss the lab, prepare for the test, and finish up a few loose ends related to Chapter 7.
Wrapping up the course: December 9, 11, 13, and 19
You'll be working on the PVM lab in class on Monday. On Wednesday, we will wrap up the course, do course evaluations, and then go to the lab, where you can continue to work on PVM if you want. The PVM lab is due on Friday. In class on Friday, we will have a general question-and-answer period on networking, computers, the universe, and everything.
Your final project for the course is due at the scheduled final exam period: 1:30 PM on Thursday, December 19. You can turn it in early if you like. Anyone who is still here on the 19-th will meet at 1:30 usual classroom. We will order pizza and talk about the final projects. Hopefully, everyone can take some time to say what they've done.