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