We shall explore the issues for networked communication from local area networks up to the global Internet and shall study a range of solutions to the associated problems. The course will focus on the TCP/IP protocol suite, but will also touch on other protocols. If time permits, we shall also discuss one or two current topics in network research.
The course will involve a significant amount of Unix-based network programming using the C language. This programming experience is intended to provide you with a solid understanding of the services provided by the TCP/IP protocol suite used on the Internet. If you are not already familiar with ANSI C, you will need to learn it quickly.
In addition to our emphasis on network protocols and algorithms, we shall also touch on performance measurement and apply some basic notions of probability and statistics to performance prediction.
Prof. Matthew Caesar
Office: 3118 Siebel Center
Phone: 244-0537
Email:
caesar@cs.illinois.edu
Office Hours: TBA
TA: Brian Cho
Email: cho2@illinois.edu
Office Hours: TBA
TA: Virajith Jalaparti
Email: jalapar1@illinois.edu
Office Hours: TBA
http://www.cs.illinois.edu/class/sp10/cs438/
class.cs438 on news.cs.uiuc.edu. Visit http://news.cs.uiuc.edu/ for instructions on how to read this newsgroup. Please post all general questions about lectures, homeworks, or programming projects on the newsgroup rather than emailing the instructor or the TA so that others get the benefit of your questions. (Exception: do not post your homework or programming project solution to the newsgroup. If in doubt, contact the TA or instructor first.) You should also monitor this newsgroup for answers to your classmates' questions and other clarifications and announcements. We will monitor the newsgroup and try to respond to questions within 24 hours (outside of weekends).
Homeworks (7) | 15% |
---|---|
Mid-term Exam | 20% |
Programming Projects (3) | 35% |
Final Exam | 30% |
Homeworks will be due on Wednesdays at the beginning of class. If you need an extension, you may have an automatic extension until the beginning of class on Fridays. However, you may not ask questions of the instructor, TA, or on the newsgroup after Wednesday's class, so try not to use the extension unless you really need it. At the beginning of Friday's class the solutions will be handed out, so if you do not have the homework in before then, you will receive a zero grade.
Late programming projects will be penalized 2% per hour late.
The primary textbook used for this course is:
The following book is recommended (not required) for the Unix network programming portion of the course:
After the 1990 edition, UNIX Network Programming was expanded to a three volume set in 1999, and a third edition was published in 2003. While the three volume set includes much more material and is more up-to-date, it also leaves out some of the essential preliminary material on UNIX programming that was in the 1990 edition. If you have very little experience with Unix network programming you are advised to read chapters 1, 2, 3 and 6 of the first edition. You would then be prepared to take advantage of Volume 1 of the second or third edition. If you have previous Unix programming experience you may prefer to begin with the latest edition.
Finally, you will need to have (or quickly acquire) a good knowledge of the ANSI C programming language, including the use of pointers, structures, typedef, and header files. Thus, you should have a basic book on ANSI C (such as the one by Kernighan and Ritchie, but there are many nice books on ANSI C), unless you are experienced enough in C programming to just use the man pages on the workstations for help.
"It's a thick book, and it starts right at the very basic beginning. But I thought it was very well written, providing more than just the basics but also relevant programming tips and warnings. It covers the standard library, but not really UNIX-specific stuff. Since then, I've found it to be a really good reference."