UDP Protokol i portovi - za dodatno čitanje
UDP protokol
UDP protokol je jedan od ključnih protokola transportnog nivoa koji pruža usluge aplikacijama koje ne zahtevaju prethodno uspostavljanje veze, niti pouzdan prenos. U ovu klasu aplikacija ubraja se glasovna komunikacija preko Interneta (telefoniranje preko Interneta Skype, GoogleTalk, ili sličnim progrmom), skraćeno VoIP (eng. Voice over IP). Kod ovakvih aplikacija bitnije je da informacija stigne što pre, nego da stigne u redosledu i neoštećena. Princip prilikom projektovanja, na primer, VoIP aplikacija je da je bolje i umetnuti neki šum u vidu paketa koji stižu van redosleda, jer ovo neće toliko smetati učesnicima u razgovoru, koliko to da veze „secka“ i da se na izgovoreni slog čeka više minuta. Za prenos fajlova na primer, situacija je sasvim drugačija.
UDP protokol je razvio David Reed 1980. godine, a kasnije je ovaj protokol ušao u standard i opisan u dokumentu RFC 768. Za aplikacije koje komuniciraju preko mreže, ukoliko koriste usluge UDP-a, kaže se da razmenjuju datagrame. Od svih nabrojanih karakteristika protokola transportnog nivoa, UDP aplikacijama pruža jedino uslugu navedenu pod nazivom Portovi.
UDP koristi jednostavne mehanizme bez prethodnog uspostavljanja veze koji bi kasnije garantovali redosldnu dostavu paketa, kontrolu toka, i sl, a sve u cilju što brže dostave datagrama na odredište. Ovo znači da UDP, kao i IP, jeste protokol koji pruža nepouzdanu uslugu, datagrami mogu dolaziti na odredište van redosleda, duplicirani, ili se izgubiti i pri tome izvor neće imati informaciju o tome kako bi ponovo poslao datagram. Međutim, kao što je i rečeno, UDP se koristi za aplikacije kod kojih ove funkcionalnosti nisu potrebne.
Nekonekciona priroda UDP-a pogodna je takođe i za implementaciju servera kod kojih klijenti postavljaju upit i dobijaju kratke odgovore u jednom datagramu. Primer ovakvog servisa je domain name service o kome će biti reči u poglavlju koje se bavi protokolima aplikativnog nivoa. Pored ove, i već pomenutih alikacija Voice i Video preko IP-a, veliki broj online igara koristi usluge UDP protokola.
Portovi
Na aplikativnom nivou host može imati veliki broj aplikacija koje istovremeno pristupaju mreži i komuniciraju sa aplikacijama nekog drugog mrežnog hosta. Postavlja se pitanje: „s obzirom na to da IP paket sadrži IP adresu odredišta, odnosno odredišnog računara na kome se izvršava više aplikacija, na osnovu čega se odlučuje za koju je aplikaciju pristigli paket namenjen“? Odgovor je: „na osnovu porta“.
Port, odomćena u ovom kontekstu engleska reč port, ili u bukvalnom prevodu priključak, predstavlja, pojednostavljeno gledano, redni broj aplikacije koja koristi mrežu.
Port je zapravo 16-to bitni ceo broj koji se pridružuje svakoj aplikaciji koja komunicira preko mreže, bilo da se radi o TCP, ili UDP protokolu. Kako je port 16-to bitni broj, ukupan broj portova jednog računara je 216=65.535, što je i teoretski maksimum različitih aplikacija koje je moguće pokrenuti na jednom računaru koje pristupaju mreži. Naravno, ograničenje broja aplikacaja je pre do raspoložive RAM memorije računara nego do broja raspoloživih portova. Tako, ako se može reći da IP adresa jednoznačno predstavlja računar na mreži, tada par IP adresa i port jednoznačno određuju aplikaciju koja komunicira preko mreže. Prilikom predstavljanja ovaj par se obično razdvaja dvotačkom, pa tako, na primer, aplikacija WEB servera na računaru 123.1.1.1 komunicira na portu 80, odnosno kaže se da se aplikacija nalazi na 123.1.1.1:80. Na istom računaru mail server je na 123.1.1.1:25.
Portovi se implementiraju tako što se podaci koje aplikacija šalje preko mreže pakuju u datagrame čije zaglavlje sadrži port izvorne aplikacije i port odredišne aplikacije. Ovako „upakovan“ datagram se prosleđuje IP modulu koji „dolepljuje“ svoj heder u vidu IP adrese odredišta, naravno i izvorne strane, pa se takav paket prosleđuje Ethernet modulu, koji dodaje svoje zaglavlje. Ovo je prikazano na slici.
Slika 3.15. Komunikacija aplikacija preko portova transporrtnog nivoa
Ono šta nije napomenuto kod IP protokola, a potrebno je naglasiti ovde jeste to da zaglavlje IP paketa pored izvorne i odredišne IP adrese sadrži i informaciju o kom se protokolu višeg nivoa radi. Na slici, na odredišnom računaru je ova informacija iskorišćena kako bi se odredilo da li je paket datagram UDP protokola ili TCP.
Na sledećoj slici prizazan je izgled UDP datagrama upakovahog u IP paket. Zaglavlja IP paketa u UDP datagrama su prikazana detaljno.
Slika 3.16. Izgled hedera IP paketa upakovanog u UDP datagram