University of Helsinki - Department of Computer Science

TKT21026 Network Programming (5 cr)


Course Content (tentative)

The course is based on the text book Stevens W. R., Fenner B., Rudolf A.M: Unix Network Programming, Volume 1, 3rd Edition (Addison-Wesley, 2004), covering chapters 1-8, 11-17, 20-26 and 30 plus Appendixes A-D of the book.
Another book by Stevens: Unix Network Programming, Volume 2, 2nd Edition (Prentice-Hall, 1999) is very helpful, especially to cover Section 2 (Unix Programming) and Section 5.2 (Threads) of the course. Also Unix man pages for various system/socket calls are important.

  1. Introduction (Ch. 1-2), Week 1
    1. Unix processes and TCP/IP Networking
    2. Client-Server Model

  2. Unix Programming (Ch. 4.7, 5.8-5.10 and UNP, Vol 2: Ch. 1, 4, 8, 9, 12 and Unix man pages)
    1. System Call Interface, Week 1
    2. Process Control, Week 1
    3. Unix IPC Basics, Week 2

  3. Elementary Sockets (Ch. 3-11)
    1. Socket API, Week 2
    2. Sockets in Internet Domain, Week 2-3
      TCP Sockets (Stream Sockets) (Ch. 4-5, 2)
      UDP Sockets (Datagram Sockets) (Ch. 8, 2)
    3. Name and Address Conversions (Ch. 11.1-5), Week 3
    4. Sockets and Error handling (Ch. 4-5), Week 3
    5. Socket Options (Ch. 7), Week 4
    6. Multiplexing: select() usage (Ch. 6), Week 4

  4. Advanced Socket (Ch. 12-25)
    1. Advanced I/O Functions (Ch.14), Week 4
    2. Sockets in Unix Domain (Ch. 15), Week 4
    3. Nonblocking I/O (Ch. 16), Week 4-5
    4. Sockets: Special Features (Ch. 17, 22-25), Week 5
    5. Sockets and IPv6 (Ch. 1.3, 4.1-4, 11.6-22, 12), Week 5
    6. Broadcasting, Multicasting, Ch. 20-21), Week 5-6

  5. Client/Server Designing
    1. Daemon Processes, inetd (Ch. 13), Week 5-6
    2. Threads (Ch. 26), Week 6
    3. Alternatives (Ch. 30), Week 6-7

Page created 15.1.2024
Last modified 18.1.2024