Introduction to Unix Network Programming
Brief Course Description: this short course introduces basic elements
of network programming in C under a typical Unix operating system. Topics will
include, but not limited to, elementary BSD socket APIs, signal handling, for
network programming, non-blocking IO, concurrent server, and a brief introduction
to some advanced network programming aspects such as raw sockets, broadcasting
and multicasting, and daemon processes. Students are expected to have some rudimentary
knowledge of computer networking in general, and a working knowledge of system
programming in C/C++ under Unix/Linux (file I/O, processes, signal handling,
make files, etc.). At the end of the course, students are expected to know how
to do network programming in C under Unix: TCP/UDP sockets, network I/O multiplexing,
design a fairly complex network program following a specified protocol.
References:
- W. Richard Stevens, "UNIX Network Programming : Networking APIs : Sockets
and XTI : Volume 1, Second Edition", Prentice Hall, Oct 1997, ISBN: 013490012X.
- James F. F. Kurose and Keith W. Ross, "Computer Networking: A Top-Down
Approach Featuring the Internet", 3nd edition, Addison Wesley, May 2004,
ISBN: 0321227352. 848pp.
- W. Richard Stevens Gary R. Wright, "The TCP/IP Illustrated, Volume
1: The Protocols", Addison Wesley Longman, Dec 1993, ISBN: 0201633469
- W. Richard Stevens Gary R. Wright, "The TCP/IP Illustrated, Volume
2: The Implementation", Addison Wesley Longman, Jan 1995, ISBN: 020163354
- W. Richard Stevens, Advanced Programming in the UNIX Environment, Addison-Wesley,
1992.
- William Stallings, Data and Computer Communications, 6/E, ISBN: 0-13-084370-9,
Prentice Hall PTR, Nov 1999.
- Andrew Tannenbaum, Computer Networks, 4/E, ISBN: 0-13-038488-7, Prentice
Hall PTR, Aug 2002
- Plus other online materials.