University of Helsinki - Department of Computer Science

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


Course Content (tentative)

The course is based on the text book Stevens: Unix Network Programming, Volume 1, 3rd Edition (Addison-Wesley, 2004), covering chapters 1-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.1 (Threads) of the course. Also man pages of various system/socket calls are important.
  1. Introduction (Ch. 1-2), Week 1
    1. Unix processes and TCP/IP Netwoking
    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 2

  3. Elementary Sockets (Ch. 3-11), Week 2-3
    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 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 6

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

Sivu luotu 14.1.2013
Viimeksi päivitetty 14.1.2013