The course described on this page ended December 15, 2004
CS 441: Computer Networks and Distributed Processing
Department of Mathematics and Computer Science Hobart and William Smith Colleges Fall, 2004. Instructor: David J. Eck (eck@hws.edu) Monday, Wednesday, Friday, 9:05 to 10:00. Room Lansing 300 (except Eaton 116 on most Fridays). Course Handout: http://math.hws.edu/eck/courses/cpsc441_f04.html Course Web Page from Fall 220: http://math.hws.edu/eck/cs441/index_f02.html Office Hours for Fall 2004: Monday and Wednesday, 1:00-- 1:50 Tuesday through Friday, 10:30--11:30
Lab Worksheets September 3
Introduction to NetworkingSeptember 10
Ethereal and HTTPSeptember 17
Programming with SocketsSeptember 24
Writing a Web ServerOctober 8
NFS and NISOctober 15
Ethereal and TCPOctober 22
MasqueradingOctober 29
RoutingNovember 12
The Link LayerNovember 19
Running MPINovember 22
Programming MPI
Assignments and other information for CS 441
will be posted on this page as the course is taught
during the Fall term of 2004.
End of Term: December 15
The final exam for this course is scheduled for Wednesday, December 15, at 10:00 AM in our regular classroom. An information sheet for the final is available. Final project papers are also due on Wednesday, no later than 4:00 PM.
Fifteenth Week: December 6, 8, and 10
This is the last week of classes. On Monday, we will cover a few last topics from the textbook. On Wednesday and Thursday, there will be student presentations. The schedule for presentations is:
- Wednesday
- Walter Bennet: Cellular Technology
- Emily Herzfeld: Broadband Technologies
- Mark Treilman: SSH
- Friday
- Janelle Hall: Firewalls
- A. J. Konchar: Grid Computing
Fourteenth Week: November 29; December 1 and 3
We will continue to work on MPI for at least the first two classes of the week. You should be sure to finish reading the MIP handout.
Remember that the MPI homework (Labs 10 and 11) is due in class next Monday.
Thirteenth Week: November 22
There is only one class this week, because of Thanksgiving break. We will continue talking about MPI on Monday, and we will spend part of the class in the lab.
If you plan to do a final project, you need to tell me what the topic will be.
Twelfth Week: November 15, 17, and 19
After finishing up Chapter 5, we will be departing from the original plan for this course. Instead of covering distributed processing during the last two weeks of the course, we will start in on it this week. Then, at the end of the course, we will return to other selected topics from the textbook and to final projects.
During the distributed processing part of the course, you will be working on MPI, an API for multiprocessing with message passing. A reading on background material and the fundamental aspects of MPI was handed out in class. A second handout will cover a few of the more advanced functions of MPI and will explain how to use it in our computer lab.
The lab on Friday of this week will be in the Math/CS computer lab, Lansing 310. It will be an introduction to using MPI.
Eleventh Week: November 8, 10, and 12
We will cover Chapter 5 this week. This chapter deals with the Link Layer. We will cover this material rather quickly and will concentrate on Ethernet. The reading is Sections 5.1, 5.3, 5.4, 5.5, and 5.6. In these sections, we will not cover ALOHA and DHCP at all, and there will be very little detail from Section 5.6.
Information on an optional final project is available.
Tenth Week: November 1, 3, and 5
We will finish Chapter 4 this week. The reading for the week is Chapter 4, Sections 5 and 6. There is a test on Friday, November 5. An information sheet is available for the test.
Because of the test, there is no lab this week.
Ninth Week: October 25, 27, and 29
We will be covering Chapter 4 this week. The reading is Chapter 4, Sections 1, 2, and 4. Section 3 is not required, but you are encouraged to read it for your own information.
Remember that there is a test coming up on Friday of next week.
Eighth Week: October 18, 20, and 22
We will finish Chapter 3 this week. You should finish reading that chapter. Note that we will not cover Section 3.7.2 at all and that Sections 3.4 and 3.6 are not as relevant as other sections of the chapter, since we are mainly interested in how things work in TCP.
We will begin Chapter 4 on Wednesday.
Seventh Week: October 13 and 15
There is no class on Monday of this week, because of Fall Break.
On Wednesday, we will continue with our study of the transport layer, Chapter 3 in the textbook. The lab on Friday this week will be in Eaton 116.
I did not collect the Web browser project last Friday. It is due this Friday instead.
Sixth Week: October 4, 6, and 8
We will begin looking at the Transport Layer this week and at the TCP protocol in particular this week. You should read Sections 3.1 to 3.5, but we will not finish Section 3.5 until next week.
By Friday of this week, you should have finished the threaded Web server that was begun in Lab 4.
Fifth Week: September 27 and 29; October 1
There is a test on Friday, October 1. An information sheet about the test is available.
The new reading for the week in Section 2.6. This section is part of what you should know for the test.
The threaded Web server for lab 4 is due next week, on October 8. You can work on the server individually or in a group. There are a few requirements that are not mentioned in the lab. If you are working as an individual, you should implement the following features:
- Record the referrer (from the "Referrer" request header) in the log file, if one is given in the request.
- Implement the "Last-Modified" response header and the "If-Modified-Since" request header.
- If the client requests a directory, send a list of the files in that directory. (Suggestion: Write a sendDirectory() function.)
If you are working in a group, you should also implement the following features:
- When you send a directory listing to the client, format the output nicely and make each file name a link to the file.
- When sending an error message to the client, such as "404 Not Found", also send along some HTML describing the error. (Suggesting: Write an error-reporting function.)
- Improve the log file format, and make sure that the response to every request is logged, even if it's an error response.
The sample program TestDate.java demonstrates some of the Java programming techniques that you need to complete the assignment.
Fourth Week: September 20, 22, and 24
We will continue to discuss some sample application-level protocols this week. The reading for the week is Chapter 2, sections 2.3, 2.4, and 2.5. The lab on Friday will once again be in the math/cs computer lab. Remember that you should try to have a simple, working web server when you come to lab.
Third Week: September 13, 15, and 17
After finishing up our discussion of the HTTP protocol, we will turn to the "socket" API for network programming. The reading for this material is Sections 2.7 and 2.9. Starting in this week's lab, you will be writing a threaded Web server in Java. This will be one of the major assignments for the course.
For the Java network programming assignments, you will need to refer to the Java API documentation. Here is a link to a local copy of the Java 1.4 API:
http://math.hws.edu/local/j2sdk-1_4_1-docs/api/index.html
And here are some direct links to the documentation for some of the classes that you might need to use:
Socket ServerSocket InetAddress Thread InputStream OutputStream DataOutputStream BufferedReader PrintWriter File FileReader FileWriter You can also read about files and networking in Chapter 10 of my on-line Java programming textbook, which can be found at
http://math.hws.edu/javanotes/c10/
There is a Department Picnic this Thursday. It starts at 5:30 on the north side of Eaton Hall -- rain location Albright Lobby.
Second Week: September 6, 8, and 10
The reading for the Week is Chapter 2, Sections 1 and 2. This is a general introduction to application-layer protocols, plus a more detailed description of HTTP. In Friday's lab, you will use the network packet sniffer ethereal to investigate the HTTP protocol.
I would also like you to take a look at RFC Number 2616, which defines HTTP Version 1.1.
Advance notice: There is a department picnic on Thursday of next week, September 16, at 5:30 near Eaton Hall.
First Week: August 30 and September 1 and 3
The reading for the week is Chapter 1, Sections 1, 2, 3, 4, and 7. Sections 5 and 8 are interesting, but won't be covered in class. Section 6 is pretty technical and covers the material too fast to be really appreciated. I will go over some of the stuff in Section 6 in class, but we will not cover it in detail until later in the course when it comes up again in other chapters.
On Friday, September 3, class will meet in Eaton 116 for lab. We will meet in Eaton 116 every Friday except for two Fridays when exams will be given.