This course teaches the methods and tools used for network programming. Topics include: Operating System support for network protocols; inter-process communication facilities such as pipes, Remote Procedure Calls (RPC) and sockets; design of client and server sides of network protocols; and network security.
Mike Parsa, Email: parsa@ucsc.edu
Office: E2 Room 339B
Office Hours: Monday 6:00 – 6:45 pm
Kerry Veenstra, Email: veenstra@soe.ucsc.edu
Office Hours: during lab sessions
Lecture: Monday, Wednesday 7:00 – 8:45 pm, Social Sciences 2, Room 159
Lab: Monday 2–4 and Wednesday 8–10, BE 301A
Begins: January 5
Midterm: February 9
Holidays: January 19 and February 16
Ends: March 16
Unix Network Programming, Volume 1, The Sockets Networking API, 3rd ed.
By W. Richard Stevens, Bill Fenner, and M. Rudoff
ISBN-10: 0131411551, ISBN-13: 9780131411555
© 2004 Addison-Wesley Professional
Published November 14, 2003
It is worth the investment to have a personal copy of this book. You will use it for years!
The book's web site has a link to let you download all of its source code examples.
Programming Assignments | 40% |
Midterm | 20% |
Final Project | 30% |
Class Participation and Attendance | 10% |
All programs submitted must be your own. Any unauthorized collaboration will be treated as a violation of academic integrity and handled according to University policies (see Student Guide to Academic Integrity for details).
Week 1: (1/5 – 1/7) Introduction and Review, Transport Layer (TCP and UDP), Sockets.
Weeks 2 and 3: (1/12, 1/14, 1/21) Operating System support for network protocols (process management, memory management, mutual exclusion). Inter-process communication mechanisms: sockets, forks.
Week 4: UDP sockets, SCTP.
Week 5: DNS, HTTP.
Week 6: Design of client and server sides of network applications.
Week 6: Case study: Apache Web Server
Week 7: Multicast and broadcast
Weeks 8–10: Final project
Networking Review & Transport Layer
See also Chapter 26 of the textbook
Concurrent Servers (forks & signals)
See also Chapters 4 & 5 of the textbook
See also Chapters 6, 7, & 8 of the textbook
Programming Assignment 1 (due Friday, Jan 23)
Programming Assignment 2 (due Wednesday, Feb 4)
Programming Assignment 3 (due Monday, Feb 16)
Programming Assignment 4 (due Monday, Mar 2)
Final Programming Assignment (Due Monday, March 16)