Protokoli

Protokoli su pravila i procedure koje služe za komuniciranje. Izraz „protokol” se koristi u različitim kontekstima. Na primer, diplomate jedne zemlje pridržavaju se pravila proto­kola koja su napravljena kako bi pomogla lakšu saradnju sa diplomatama drugih zema­lja. Pravila protokola se na isti način primenjuju u računarskom okruženju. Kada je više računara umreženo, pravila i tehničke procedure, koje upravljaju njihovom komunikaci­jom i saradnjom, nazivaju se protokoli.

Kada razmišljamo o protokolima u mrežnom okruženju, treba da imamo u vidu tri stvari:

  • Postoji mnogo protokola. Mada svaki protokol omogućava osnovnu komunikaciju, svaki ima različitu namenu i izvršava različite poslove. Svaki protokol ima svoje pre­dnosti i ograničenja.
  • Neki protokoli rade samo na određenom OSI sloju. Sloj na kome protokol radi opisuje njegove funkcije. Na primer, protokol koji radi na fizičkom sloju obezbeđuje da paket podataka prođe kroz mrežnu karticu (NIC) do mrežnog kabla.
  • Protokoli, takođe, mogu zajednički da rade u steku ili nizu protokola. Kao što mreža na svakom sloju OSI modela ima nove funkcije, tako i različiti protokoli zajednički rade na različitim nivoima jednog steka protokola. Nivoi u steku protokola „preslika­vaju” izgled slojeva OSI modela. Na primer, sloj aplikacije TCP/IP protokola presli­kava se na sloj prezentacije OSI modela. Protokoli obezbeđuju sve funkcije i mogućnosti steka.

Protokoli precizno definišu format poruka (oblik i sadržaj) koje se razmenjuju.

Na aplikativnom sloju komuniciraju različite aplikacije koje koriste mrežne usluge (na primer, aplikacije za razmenu elektronske pošte, pregledači veba, igre koje koriste mrežu ili aplikacije za razmenu datoteka kakva je Bittorent). Svaka aplikacija poštuje određeni protokol koji je specifičan upravo za nju. Na primer, za preuzimanje dokumenata sa veba koriste se protokoli HTTP i HTTPS (engl. HyperText Transfer Protocol), za preuzimanje elektronske pošte protokoli POP3 (engl. Post Office Protocol) i IMAP (engl. Internet Message Access Protocol), za slanje elektronske pošte SMTP (engl. Simple Mail Transfer Protocol), za prenos datoteka FTP (engl. File Transfer Protocol) i slično.

Svaka poruka zapisana u formatu odgovarajućeg aplikativnog protokola prosleđuje se transportnom sloju koji vrši njenu pripremu za dalje slanje korišćenjem usluga nižih slojeva. Кomunikacija na transportnom sloju odvija se na osnovu transportnih protokola, od kojih su svakako najznačajniji protokoli TCP (engl. Transmission Control Protocol) i UDP (engl. User Datagram Protocol). Jedan od najznačajnijih zadataka transportnog sloja je da svaku poruku podeli na manje pakete i da svaki paket nezavisno pošalje primaocu.

TCP je zadužen za pouzdani prenos podataka od jednog do drugog čvora. Zasnovan je na konekciji (drugi nazivi su sesija, virtualno kolo ili veza) koju uspostavlja između dve mašine pre prenosa ijednog podatka. Da bi uspostavio pouzdanu konekciju, TCP koristi ono što se naziva „trostruko rukovanje”.

„Rukovanje” obuhvata tri koraka:

  1. Izdavalac zahteva šalje serveru paket u kome navodi broj porta koji namerava da koristi i svoj početni broj sekvence (engl. initial sequence number, ISN).
  2. Server potvrđuje prijem tako što šalje svoj ISN koji je za 1 veći od vrednosti ISN-a izdavaoca zahteva.

Izdavalac zahteva potvrđuje prijem porukom koja sadrži ISN servera plus

UDP, kao protokol bez uspostavljanja virtualne konekcije, zadužen je za prenos podata­ka od početka do kraja. Za razliku od TCP protokola, on ne uspostavlja konekciju. Pokušava da pošalje podatke i proveri da li ih je odredišni matični računar stvarno pri­mio. Najbolje je da se UDP koristi za slanje malog broja podataka za koje nije potrebna garancija o izvršenoj isporuci. Iako i UDP koristi portove, to nisu isti portovi kao za TCP, pa oba protokola mogu bez ikakvih problema da koriste potpuno istu IP adresu i broj porta.

Osnovni dodatak svakom paketu koji se šalje jesu adrese uređaja koji prima poruku i onog uređaja koji je šalje. Međutim, adrese se dodaju poruci tek na mrežnom sloju a ne na transportnom. Osnovni podaci koji se dodaju segmentima na transportnom sloju su portovi (engl. Port) i oni služe da identifikuju softver kome je paket namenjen. Naime, računar može istovremeno da učestvuje u više različitih mrežnih komunikacija. Na primer, dok se neka veb-strana učitava, može se poslati elektronska poruka, mogu se istovremeno preuzimati dve datoteke i slično. Adresa uređaja nije dovoljna da bi se odredilo kojem je softveru potrebno da se prosledi paket pristigao na taj uređaj. Zbog toga se na transportnom sloju kao dodatak adresi uređaja uvodi port, i on je taj koji određuje softver (aplikaciju) kome će pristigla poruka biti prosleđena. Port se zapisuje u obliku 16-bitnog broja (što daje mogućnost za 65536 različitih portova).

Napomena:

Portovi 80 i 443 koriste se za slanje zahteva veb-serveru (protokoli HTTP i HTTPS), portovi 20 i 21 za prenos datoteka (FTP), port 25 za slanje pošte (SMTP), portovi 110, 143 i 993 za slanje pošte (POP3, IMAP i IMAPS) i slično.

Osnovu komunikacije na mrežnom sloju danas predstavlja protokol IP (engl. Internet Protocol). Zajedno sa protokolom TCP, protokol IP predstavlja osnovu interneta (i skoro svih mreža današnjice). Кaže se da današnje mreže koriste skup protokola TCP/IP (engl. TCP/IP protocol suite). Postoji nekoliko verzija protokola IP, ali se i dalje najčešće koristi verzija IPv4, dok se nova verzija IPv6 uvodi relativno sporo..

Кada se paket (npr. TCP segment) prosledi sa transportnog sloja na mrežni, njemu se dodaje novo zaglavlje koje sadrži nekoliko informacija, od kojih su najznačajnije adresa primaoca i adresa pošiljaoca. Tako formirani paket naziva se obično IP datagram i on se prenosi od pošiljaoca do primaoca, često preko serije rutera.


TCP/IP stek protokola

Transmission Control Protocol/Internet Protocol (TCP/IP) je niz protokola prihvaćenih u industriji koji obezbeđuju komunikacije u heterogenim okruženjima (ona koja se sastoje od raznorodnih kompjuterskih sistema). Pored toga, TCP/IP obezbeđuje protokole za određivanje putanje (usmeravanje), pa je zato široko prihvaćen pre svega kao protokol umrežavanja velikih preduzeća i organizacija, kao i pristup Internetu i njegovim resursi­ma. Zbog svoje popularnosti, TCP/IP je postao standard za ono što je poznato kao međumrežni rad (engl. internetworking), tj. međusobnu komunikaciju u mreži koja se sastoji od manjih mreža.

Ostali protokoli napisani posebno za TCP/IP su:

  • Simple Mail Transfer Protocol (SMPT) – Elektronska pošta
  • File transfer Protocol (FTP) – Služi za razmenu datoteka između računara koji iz­vršavaju TCP/IP.
  • Simple Network Management Protocol (SNMP) – Služi za upravljanje mrežom.

Za instaliranje i konfigurisanje, TCP/IP zahteva od koris­nika mnogo znanja i iskustva. Korišćenje TCP/IP donosi više prednosti, a to su:

  • On je industrijski standard – Kao industrijski standard, on je otvoren protokol. To znači da ga ne kontroliše jedna kompanija i manje je podložan problemima sa kompatibilnošću. On je de facto protokol za Internet.
  • Sadrži skup pomoćnih programa koji služe za povezivanje različitih operativnih sistema. Povezivanje dva računara ne zavisi od mrežnih operativnih sistema koji su na njima.
  • Koristi skalabilnu klijentsko-serversku arhitekturu nezavisnu od platforme – Veličina TCP/IP može da se poveća (ili smanji) kako bi se zadovoljile buduće potrebe i okol­nosti. Koristi posebne programske interfejse (tzv. soket) kako bi operativne sisteme učinio jedne drugima transparentnim.

TCP/IP i OSI

TCP/IP protokol se u potpunosti ne slaže sa OSI modelom. UTCP/IP se obično ubraja u paket Internet protokola (Internet Protocol Suite) i, umesto u sedam (kao kod OSI modela), podeljen je u sledeća četiri sloja:

  • Sloj mrežnog interfejsa
  • Internet sloj
  • Sloj transporta
  • Sloj aplikacije

Svakom sloju odgovara jedan ili više slojeva OSI modela.

Sloj mrežnog interfejsa

Sloj mrežnog interfejsa se slaže sa slojem veze i fizičkim slojem OSI modela i komunicira direktno sa mrežom. Obezbeđuje interfejs između arhitekture mreže (kao što su TokenRing i Ethernet) i Internet sloja.

Internet sloj

Internet sloj se slaže sa slojem mreže OSI modela, koristi više protokola za određivanje putanje paketa i njihovu isporuku. Ruteri rade u ovom sloju modela i koriste se za prosleđivanje paketa iz jedne mreže ili segmenta u drugu. Unutar Internet sloja radi internet protokol (IP).

Internet protokol (IP) je protokol za prosleđivanje paketa koji vrši adresiranje i izbor pu­tanje. Prilikom slanja paketa, ovaj protokol mu dodaje zaglavlje tako da paket može da se preusmerava kroz mrežu koristeći dinamičku tabelu za određivanje putanje. IP je pro­tokol koji ne ostvaruje posebnu konekciju između računara koji šalje i računara koji pri­ma, tj., šalje pakete, a ne očekuje da prijemni matični računar potvrdi prijem. Uz to, IP je zadužen za sastavljanje i rastavljanje paketa, isto kao što se zahteva i od sloja veze i fizi­čkog sloja OSI modela.

Svaki IP paket se sastoji od izvorne i odredišne adrese, identifikatora protokola, zbira za proveru greške (izračunata vrednost, CRC broj) i TTL-a (što je skraćeni­ca od „životni vek” – time to live). TTL saopštava svakom ruteru na mreži, koji se nalazi između izvora i odredišta, koliko dugo paket mora da ostane u mreži. Radi slično kao brojač koji broji unazad ili kao sat. Pri prolasku paketa kroz ruter, on mu oduzima veću jedinicu (jednu sekundu) ili vreme koje je proveo u redu čekanja za isporuku. Na primer, ako paket ima TTL vrednost 128, on može da ostane na mreži 128 sekundi, ili 128 puta može da prede sa rutera na ruter u mreži, ili se tu zaustavite. Svrha TTL vrednosti je da spreči da izgubljeni ili oštećeni paketi sa podacima (npr. izgubljene poruke elektronske pošte) lutaju u beskraj po mreži. Kada se TTL vrednost odbroji do nule, paket se uklanja iz mreže.

Transportni sloj

Transportni sloj se slaže sa transportnim slojem OSI modela i zadužen je za uspostavlja­nje i održavanje komunikacije „od početka do kraja” između dva matična računara. Obe­zbeđuje potvrdu prijema paketa, upravljanje tokom i sekvenciranje paketa. Takođe, pona­vlja prenos paketa u slučaju pojave greške u prenosu. Sloj transporta može da koristi TCP ili User Datagram Protocol (UDP) u zavisnosti od zahteva prenosa.

Sloj aplikacije

Aplikacioni sloj odgovara slojevima sesije, prezentacije i aplikacije OSI modela i vrši konekciju aplikacije sa mrežom. Dva programska interfejsa aplikacije (API) obezbeđuju pristup TCP/IP transportnim protokolima – Windows Sockets i NetBIOS.

Windows Sockets (WinSock), “Windows programska ležišta” su API-ji (engl. Application programming interface, programski interfejs) za umrežavanje, projektovani da olakšaju komunikaciju između različitih TCP/IP aplikacija i stekova protokola. Postavljena su tako da aplikacije koje koriste TCP/IP mogu da upotrebe jedan standardizovani interfejs. WinSock potiče od origina­lnog programskog interfejsa (API) koji je napravljen za BSD Unix operativni sistem. WinSock obezbeđuje zajednički interfejs za aplikacije i protokole koji postoje u vrhu TCP/IP referentnog modela. Svaka aplikacija ili program koji koristi WinSock API, može da komunicira sa bilo kojim TCP/IP protokolom i obrnuto.