Mrežno programiranje

Opis predmeta

Osnovni koncepti mrežnog i distribuiranog programiranja. TCP i UDP "socket" sučelja. Dizajn klijenata i poslužitelja. Izrada mrežnih aplikacija temeljenih na UDP i TCP protokolu. Dizajn i implementacija aplikacija korištenjem višenitnih programa. Razašiljanje poruka svim računalima i grupi primatelja. SCTP "socket" sučelje. Problemi sigurnosti. Praktični primjeri mrežnih aplikacija u Unix okruženju korištenjem programskog jezika C. Primjeri mrežnog programiranja u Javi i skritpnim jezicima.

Opće kompetencije

Studenti će naučiti o mrežnom programiranju, mogućnostima i načinu korištenja mrežnih aplikacija te se osposobiti za njihovu izradu korištenjem aktualnih platformi.

Ishodi učenja

  1. Definirati tipove mrežnih “socket” sučelja i navesti njihova svojstva.
  2. Razlikovati konekcijski i beskonekcijski orijentirane aplikacije.
  3. Razlikovati postupak dizajna konkurentnog i iterativnog poslužitelja.
  4. Napisati jednostavne mrežne aplikacije temeljena na protokolima UDP i TCP korištenjem programskog jezika C u Unix okruženju.
  5. Analizirati rad i otkrivati pogreške u vlastitim mrežnim aplikacijama.
  6. Koristiti osnovne alate za kreiranje i testiranje mrežnih programa u Unix okruženju.

Oblici nastave

Predavanja

Predavanja, s materijalima i prezentacijom postavljenom unaprijed na web. Predavanja će se održavati u dva ciklusa (7 + 6 tjedana), 2 sata tjedno.

Provjere znanja

Međuispit će se održati nakon prvog ciklusa predavanja, završni ispit nakon drugog ciklusa predavanja. Studenti također mogu pristupiti redovnim ispitnim rokovima.

Laboratorijske vježbe

Samostalno programsko oblikovanje UDP i TCP poslužitelja i klijenata (u programskom jeziku C) te njihovo testiranje u okruženju mrežnog simulatora IMUNES. Laboratorijske vježbe će se održati u 3 ciklusa, svaki s opterećenjem od 5 sati.

Konzultacije

Redovite tjedne konzultacije.

Stjecanje vještina

Pretraživanje literature o komunikacijskim mrežama. Programiranje u C-u, traženje i ispravljanje pogrešaka u kodu.

Programske vježbe

kroz zadaće i lab. vježbe

Ostali oblici skupnog ili samostalnog učenja

Studenti samostalno rješavaju programske zadatke kao pripremu za laboratorijske vježbe.

Način ocjenjivanja

Kontinuirana nastava Ispitni rok
Vrsta provjere Prag Udio u ocjeni Prag Udio u ocjeni
Laboratorijske vježbe 0 % 15 % 0 % 15 %
Domaće zadaće 0 % 10 % 0 % 0 %
Sudjelovanje u nastavi 0 % 5 % 0 % 0 %
Međuispit: Pismeni 0 % 30 % 0 %
Završni ispit: Pismeni 0 % 40 %
Ispit: Pismeni 0 % 85 %

Tjedni plan nastave

  1. Uvod. Mrežne arhitekture, referentni mrežni modeli OSI i TCP/IP, protokoli. Modeli komunikacije klijent-poslužitelj i komunikacije dva ravnopravna entiteta.
  2. Pojam vrata ("port") i priključnice ("socket"). Aplikacijsko programsko sučelje za "socket". Naziv i adresa. Primjeri za "bind" i "getaddrinfo".
  3. UDP klijent i poslužitelj. Parsiranje argumenata. Testiranje programa.
  4. TCP klijent i poslužitelj. Iterativni i konkurentni i poslužitelji.
  5. Socket opcije.
  6. "Raw socket" sučelje.
  7. Demoni i super-server "inetd".
  8. Međuispit.
  9. Multipleksiranje ulazno/izlaznih operacija. Višenitni poslužitelji.
  10. Specifičnosti aplikacija koje koriste "broadcast" i "multicast" adresiranje.
  11. Primjeri aplikacijskih protokola temeljenih na korištenju protokola UDP. TFTP.
  12. Primjer aplikacijskih protokola temeljenih na korištenju protokola TCP. HTTP i FTP. Jednostavni HTTP poslužitelj.
  13. Pisanje sigurnog koda.
  14. Mrežno programiranje u Javi.
  15. Završni ispit.

Studijski programi

Sveučilišni preddiplomski
Programsko inženjerstvo i informacijski sustavi (modul)
Izborni predmeti (6. semestar)
Računalno inženjerstvo (modul)
Izborni predmeti (6. semestar)
Računarska znanost (modul)
Izborni predmeti (6. semestar)
Telekomunikacije i informatika (modul)
Izborni predmeti (6. semestar)

Za upis predmeta treba položiti predmete

Literatura

W. Richard Stevens, Bill Fenner, Andrew M. Rudoff Addison (2003.), Unix Network Programming, Vol. 1: The Sockets Networking API, Addison-Wesley Professional
Gary R. Wright, W. Richard Stevens (1995.), TCP/IP Illustrated: The Implementation, Vol. 2, Addison-Wesley Professional

Laboratorijske vježbe

Izvedba

ID 34335
  Ljetni semestar
4 ECTS
R1 Engleski jezik
R1 E-učenje
30 Predavanja
0 Auditorne vježbe
15 Laboratorijske vježbe

Ocjenjivanje

90 izvrstan
78 vrlo dobar
65 dobar
50 dovoljan