Helsingin yliopisto - Tietojenkäsittelytieteen laitos

582303 Verkkosovellusten toteuttaminen (7 op, 4 ov)
582303 Implementering av nätverksapplikationer (7 sp, 4 sv)
582303 Network Programming (7cp, 4 cu)


Kurssin sisältö (alustava) / Course Content

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 Stevens book (see below). In part 2 of the course, another book by Stevens: Unix Network Programming, Volume 2, 2nd Edition (Prentice-Hall, 1999) is very helpful. The exam area covers the chapters 1-17, 20-26 and 30 plus Appendixes A-D of the course book (Stevens: Unix Network Programming, Volume 1, 3rd Edition, Addison-Wesley, 2004).

  1. Johdanto / Introduction (Ch. 1-2)
    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 (UNP, Vol 2)
    1. Systeemikutsurajapinta / System Call Interface
    2. Prosessien hallinta / Process Control
    3. Prosessien välinen kommunikointi Unix-järjestelmissä / IPC in Unix

  3. Pistokkeiden käytön perusteet / Elementary Sockets (Ch. 3-11)
    1. Pistokerajapinta / Socket API
    2. Pistokkeet Internet-alueella / Sockets in Internet Domain
      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)
    4. Pistokevirhetilanteiden käsittelystä / Sockets and errors (Ch. 4-5)
    5. Pistokeoptiot / Socket Options (Ch. 7)
    6. I/O lomitus:select() ja sen käyttö / Multiplexing: select() usage (Ch. 6)

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

  5. Palvelijoiden ja asiakkaiden suunnittelusta / Client/Server Designing
    1. Demoniprosessit, Internet-demoni (inetd) / Daemon Processes, inetd (Ch. 13)
    2. Säikeiden käyttö / Threads Ch. 26)
    3. Palvelijoiden toteutusnäkökohtia / Server Design Alternatives (Ch. 30)
    4. Pistokkeet ja IPv6 / Sockets and IPv6 (Ch.12)
    5. [ SCTP-pistokkeet / SCTP Sockets (Ch. 9-10, 2) ]

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