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.
General Class Information
Professor
- Mike Parsa, Email: meparsa@ucsc.edu
- Office: TBD
- Office Hours: Monday, 6:00 PM – 6:45 PM
Teaching Assistant
Class Meeting Times
- Lecture: Monday and Wednesday 7:00 PM – 8:45 PM, Social Sciences 1, Room 161
- Labs: Tuesday and Thursday, Noon – 2:00 PM, Baskin Engineering 301A
Other Dates
- Begins: Monday, January 4
- Midterm: February 22, 2016, covers topics through Lecture 11.
- Holidays: Monday, January 18 and Monday, February 15
- Ends: Friday, March 11
- Final Exam: Wednesday, March 16, 7:30 PM – 10:30 PM
Prerequsites
Books
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.
Evaluation Criteria
Programming Assignments |
30% |
Midterm |
25% |
Final Project |
30% |
Final Quiz |
10% |
Class Participation |
5% |
Academic Integrity
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 Academic Misconduct Policy for Undergraduates for details).
Topics By Week
Tentative schedule:
- Week 1: (1/4–1/6) Introduction and Review, Transport Layer (TCP and UDP), Sockets.
- Weeks 2 and 3: (1/11, 1/13, 1/20) 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
- Week 7: Network security: Authentication and encryption, Secure Socket Layer (SSL)
- Weeks 8-10: Final project
Lecture Notes And References
Programming Assignments
Final Project
Topic: RIP router (see references). The Final Project PDF. Due March 16, 11:59 PM.
References