University of Helsinki - Department of Computer Science

582303 Network Programming (5 cp)
582303 Verkkosovellusten ohjelmointi (5 op)


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 Part 2 (Unix Programming) and Part 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 and Unix man pages)
    1. System Call Interface, Week 1
    2. Process Control, Week 1
    3. Unix IPC Basics, Week 1-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 3
    6. Multiplexing: select() usage (Ch. 6), Week 3-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

Sivu luotu 15.1.2017
Viimeksi päivitetty 15.1.2017