Helsingin yliopisto - Tietojenkäsittelytieteen laitos

582303 Verkkosovellusten toteuttaminen (7 op)
582303 Implementering av nätverksapplikationer (7 sp)
582303 Network Programming (7cp)


Kurssin sisältö (alustava) / Course Content (tentative)

Kurssi perustuu Stevensin kirjan Unix Network Programming, Volume 1, 3rd Edition (Addison-Wesley, 2004) lukuihin 1-17, 20-26 aj 30. Lisälukemistona Stevensin kirjan toinen osa Unix Network Programming, Volume 2, 2nd Edition (Prentice-Hall, 1999) on hyödyllinen, erityisesti kurssin osassa 2 (Unix sovellusalustana) ja 5.1 (Säikeet) käsiteltävien asioiden kohdalla.
Alla oleva asioiden käsittelyjärjestys on viitteellinen, mutta se kattaa kurssilla käsitellyt asiat.
Koealue: kurssin kokeeseen tulee luennoilla ja harjoituksissa käsitellyt asiat. Alue kattaa kirjan luvut 1-17, 20-26 ja 30 sekä liitteet A-D. SCTP-pistokkeisiin liittyviä asioita ei vaadita.
The course is based on the text book Stevens: Unix Network Programming, Volume 1, 3rd Edition, Addison-Wesley, 2004). In part 2 of the course, another book by Stevens: Unix Network Programming, Volume 2, 2nd Edition (Prentice-Hall, 1999) is very helpful, especially to coverPart 2 (Unix Programming) and Part 5.1 (Threads) of the course. Also man pages of various system/socket calls are important. The exam area covers the chapters 1-17, 20-26 and 30 plus Appendixes A-D of the course book.

  1. Johdanto / Introduction (Ch. 1-2), Week 1
    1. Unix-prosessit ja TCP/IP-tietoliikenne / Unix processes and TCP/IP Netwoking
    2. Asiakas-palvelija -malli / Client-Server Model

  2. Unix sovellusalustana / Unix Programming (Ch. 4.7, 5.8-5.10 and UNP, Vol 2: Ch. 1, 4 and Unix man pages)
    1. Systeemikutsurajapinta / System Call Interface, Week 1
    2. Prosessien hallinta / Process Control (Ch. 4.7, 5.8-10 and UNP, Vol 2: Ch. 1), Week 1
    3. Prosessien välinen kommunikointi Unix-järjestelmissä / Unix IPC Basics, Week 2

  3. Pistokkeiden käytön perusteet / Elementary Sockets (Ch. 3-11), Week 2-3
    1. Pistokerajapinta / Socket API, Week 2
    2. Pistokkeet Internet-alueella / Sockets in Internet Domain, Week 2-3
      TCP-pistokkeet (tavuvirtapistokkeet) / TCP Sockets (Stream Sockets) (Ch. 4-5, 2)
      UDP-pistokkeet (tietosähkepistokkeet) / UDP Sockets (Datagram Sockets) (Ch. 8, 2)
    3. Nimi- ja osoitemuunnokset / Name and Address Conversions (Ch. 11.1-5), Week 3
    4. Pistokevirhetilanteiden käsittelystä / Sockets and errors (Ch. 4-5), Week 3
    5. Pistokeoptiot / Socket Options (Ch. 7), Week 4
    6. I/O lomitus:select() ja sen käyttö / Multiplexing: select() usage (Ch. 6), Week 4

  4. Pistokkeiden monipuolisempi käyttö / Advanced Socket (Ch. 12-25)
    1. Monipuolisempi I/O / Advanced I/O Functions (Ch.14), Week 4
    2. Pistokkeet Unix-alueella / Sockets in Unix Domain (Ch. 15), Week 4
    3. Estymätön I/O / Nonblocking I/O (Ch. 16), Week 5
    4. Pistokkeiden käytön erityispiirteitä: lipukkeet, ioctl-operatioita, OOB-data, I/O signaalit / Sockets: Special Features (Ch. 17, 22-25), Week 5
    5. Pistokkeet ja IPv6 / Sockets and IPv6 (Ch. 1.3, 4.1-4, 11.6-22, 12), Week 5
    6. Yleislähetys, monilähetys / Broadcasting, Multicasting, Ch. 20-21), Week 6

  5. Palvelijoiden ja asiakkaiden suunnittelusta / Client/Server Designing
    1. Demoniprosessit, Internet-demoni (inetd) / Daemon Processes, inetd (Ch. 13), Week 6
    2. Säikeiden käyttö / Threads Ch. 26), Week 6
    3. Palvelijoiden toteutusnäkökohtia / Server Design Alternatives (Ch. 30), Week 6-7

Sivu luotu 17.1.2011, Markku.Kojo@cs.Helsinki.FI
Viimeksi päivitetty 17.1.2011