OSI referentni model
OSI referentni model (eng. Open Systems Interconnection Basic Reference Model) je apstraktni opis arhitekture mreže. OSI referentni model se sastoji od sedam različitih nivoa apstrakcije.
Slojevi | Jedinica | Protokoli |
---|---|---|
Aplikacija Mrežni procesi vezani za aplikaciju |
Podatak | HTTP, HTTPS, FTP, SSH, DNS, SMTP |
Prezentacija Enkripcija i kodiranje podataka |
Podatak | MIME SSL TLS |
Sesija Uspostavljanje sesije krajnjih korisnika |
Podatak | RPC, PAP, SCP |
Transport Veza, pouzdanost, transport |
Segment Datagram |
TCP, UDP |
Mreža Logičko adresiranje i rutiranje |
Paket | IP, ICMP, ARP, RARP |
Sloj veze Fizičko adresiranje, pristup medijumu |
Frejm (Okvir) | PPP, HDLC, Frame Relay |
Fizički sloj Transmisija signala |
Bit | Token Ring IEEE 802.11 |
Transportni protokoli u aplikcijskom sloju
Sloj aplikacije (engl. Application layer) opisuje rad aplikacija u mreži i njihovu interakciju sa servisima i protokolima nižih slojeva. Protokoli sloja aplikacije imaju funkciju da razmene podatke između pokrenutih programa. Ti programi u aplikaciskom sloju izmedju kojih se vrši razmena podataka su:
- programi za upravljanje bazama podataka
- programi za elektronsku poštu
- programi poslužitelja datoteka
- poslužitelja ispisa
- naredbe operativnih sistema
Transportni protokoli u aplikaciskom sloju poznatiji kao Web protokoli su ustanovljeni načini komunikacije izmedju web pregledača i aplikacije na serveru (web server) pri transportu podataka izmedju browsera i servera. Poznati web protokoli su:
- HTTP
- HTTPS
- FTP (File Transfer Protocol)
- IMAP
- IRC (Internet Realy Chat)
- SMTP (Simple Mail Transfer Protocol
- POP3 (Post Office Protocol 3)
- SSH (Secure Shell Protocol)
- BitTorrent
HTTP protokol
HTTP (engl. HyperText Transfer Protocol) je mrežni protokol koji predstavlja glavni i najčešći metod prenosa informacija na Web-u. Osnovna namena ovog protokola je isporučivanje HTML dokumenata, tj. veb stranica. HTTP je protokol za komunikaciju između servera i klijenta, koji funkcioniše po principu zahtev/odgovor. HTTP klijent, koji je najčešće veb pregledač, inicira prenos podataka nakon što uspostavi TCP/IP vezu s udaljenim veb-serverom na određenom portu.
Http server je aplikacija koja konstantno osluškuje zahteve na određenom mrežnom komunikacijskom portu (tipično port 80), čekajući da se klijent poveže i pošalje svoj zahtev.
Komunikacija je zapravo ne-konekcinog tipa bez postojanja stanja. Nakon odgovora HTTP servera na zahtev od klijenta, konekcija se prekida sve do sledećeg zahteva.
Zahtev
Zahtev se sastoji od osnovne HTTP komande čija se sintaksa sastoji od naziva:
- ZAGLAVLJE koje se sastoji od teksta koji pobliže određuju aspekte zahteva
- komande (GET ili POST )
- imena traženog dokumenta
- verzije podržanog HTTP-a
- ….
- Prazna linija služi da razdvoji zaglavlje i telo
- TELO
Primer
1 2 3 4 5 6 7 |
GET /index.html HTTP/1.1 Host: www.example.com User-Agent: Firefox/12.0 Content-Lenght: 350 Accept: text/plain, text/html, text/csv TELO |
Odgovor servera
Odgovor servera se sastoji od:
- izveštaja o statusu zahteva koji se sastoji od trocifrenog statusnog koda i kratkog deskriptivnog teksta:
- 1XX – Informacije
- 2XX – Uspeh
- 3XX – Redirekcija
- 4XX – Greška na klijentskoj strani
- 5XX – Greška na serveru
- konkretnog odgovora koji se sastoji od:
- zaglavlja (koje je iste sintakse kao i zaglavlje zahteva i daje osnovne podatke o prirodi
odgovora) - od eventualnog konkretnog sadržaja koji se tražio u zahtevu
- zaglavlja (koje je iste sintakse kao i zaglavlje zahteva i daje osnovne podatke o prirodi
Primer
1 2 3 4 5 6 7 8 9 10 |
HTTP/1.1 200 OK Date: Mon, 23 May 2005 22:38:34 GMT Server: Apache/1.3.27 (Unix) (Red-Hat/Linux) Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT Etag: "3f80f-1b6-3e1cb03b" Accept-Ranges: bytes Content-Length: 438 Connection: close Content-Type: text/html; charset=UTF-8 EVENTUALNI SADRŽAJ |
HTTPS protokol
HTTPS (engl. Hypertext Transfer Protocol Secure) je kombinacija HTTP-a sa SSL/TSL protokolom da bi se obezbedila enkripcija i sigurna identifikacija servera, koristi port 443.
HTTPS konekcija se često koristi za novčane transakcije preko Interneta i za prenos osetljivih informacija. HTTPS ne treba mešati sa Secure HTTP (S-HTTP). Glavna ideja HTTPS protokola je da se kreira bezbedni kanal preko nezaštićene mreže. Ovo obezbeđuje zaštitu od napada, pod uslovom da je sertifikat izdat od strane proverenog i poverljivog izdavača (Certificate Authority). Poverenje u HTTPS je zasnovano na velikim sertifikacionim telima čiji sertifikati dolaze sa instalacijom Web browser-a.
Prilikom pristupanja na veb-sajt sa neispravnim sertifikatom, noviji brauzeri prikazuju pitanje preko celog prozora. Noviji brauzeri takođe pokazuju u polju sa adresom (address bar) informaciju o sigurnosti sajta. Produžena validacija (engl. Extended Validation) sertifikata uključuje da u novijim brauzerima polje sa adresom (address bar) bude zelene boje. Takvi sertifikati su skuplji od običnih. Većina brauzera takođe prikazuje upozorenje ukoliko sajt koristi sadržaj sa neke druge adrese koji nije verifikovan digitalnim sertifikatom.
FTP protokol
FTP (engl. File transfer protocol) je najčešće korišćen protokol za prenos podataka između dva računara na mreži i odličan je za prenos velikih dokumenata.
FTP koristi TCP/IP za mrežnu komunikaciju, što omogućava da bude pouzdan i sesijski orijentisan. FTP veza se uspostavlja na zahtev klijentskog računara prema serverskom računaru. Klijentski računar mora da poseduje program koji implementira FTP protokol (tzv. FTP klijent), a serverski računar mora da poseduje program koji prihvata konekcije na standardnom FTP portu i takođe razume komande protokola FTP (tzv. FTP server ili FTP demon). Kada FTP klijent uputi komandu FTP serveru, FTP server odgovara trocifrenim brojem, koji predstavlja kod odgovora.
Kodovi su određeni FTP standardom i koriste se radi brže razmjene podataka, a klijentski programi najčešće interpretiraju ovu poruku za korisnika na jezik razumljiv ljudima. Na osnovu odgovora korisnik zna da li se komanda izvršila uspješno i kako da nastavi rad.
Mane FTP protokola su:
- I lozinke i sadržaji datoteka se prenose bez šifrovanja, bajt po bajt, te mogu biti presretnuti i iskorišćeni za neovlašćen pristup serveru i samom prenešenom sadržaju. Razna proširenja FTP-a rješavaju ovaj problem ubacivajući međuslojeve za šifrovanje koristeći algoritme poput SSL-a ili TLS-a.
- Protokol koristi više konekcija u jednoj transakciji, jednu za kontrolnu sesiju, po jednu za svaki zahtjev. Ovo otežava rad administratorima zaduženim za kontrolu zaštitnog zida.
- U aktivnom režimu rada, klijent odabira proizvoljan port za komunikaciju sa serverom, što takođe otežava rad zaštitnog zida koji propušta sadržaj samo na određenim portovima. Ovaj problem se najčešće rješava koristeći pasivni režim rada.
- Moguće su zloupotrebe u FTP ugrađenih mogućnosti za preusmjeravanje sadržaja da bi se sadržaj
preusmjerio na neki drugi računar. - FTP ima velike zastoje u radu zbog velikog broja komandi potrebnih za početak transakcije.
- Ne postoji kontrola integriteta podataka – ako se transakcija prekine iz nekog razloga, primalac nema način da provjeri da li je primljeni sadržaj kompletan.
- Pri prenosu datoteka, ne prenose se i dodatni podaci poput datuma kreiranja, poslednje izmjene i sl. Po prijemu, datoteci se dodjeljuju trenutni datum i vrijeme. Proširenja FTP-a, poput SFTP-a, dozvoljavaju i prenos ovakvih atributa. Trenutno je u planu da se proširenjem standarda FTP-a uključe i ovakve mogućnosti, ali većina popularnih klijenata i servera za FTP to još uvijek ne podržava.
BitTorrent protokol
BitTorrent je naziv peer to peer protokola za deljenje i razmenu datoteka. Svaka datoteka koja se želi deliti mora se indeksirati (tj. datoteka se deli na jednake dijelove, od 16kB pa sve do 4MB, radi se checksum svih delova, i rezultujuća datoteka se snima na server torrent datoteka).
Potom se osoba koja deli datoteku prijavljuje na tracker server i tad je moguće da svi oni koji su našli torrent na indeks-serveru počnu deliti datoteku, prvo od izvora, a posle i međusobno.
Transportni protokoli u transportnom sloju
Transportni sloj je zadužen za segmentaciju podataka sa viših nivoa, odnosno za njihovo ponovno spajanje. Zatim za identifikaciju, praćenje i kontrolu komunikacije između pojedinih aplikacija. Jedinice informacije na ovom sloju je „segment“.
TCP (Transmision Control Protocol)
TCP ima za ulogu da obezbedi pouzdan transfer podataka u IP okruženju. TCP vrši transfer podataka kao nestrukturisan niz bajtova koji se identifikuju sekvencom. Ovaj protokol olakšava trasnfer fajlova tako što grupiše bajtove u segmente dodeli im broj sekvence, aplikacijama dodeli broj porta i prosledi ih IP protokolu.
UDP (User Datagram Protocol)
Ne radi na principu veza, već na principu da stvara nespojive pakete. Koristi se kad se podaci trebaju poslati brzo, kad je reakcija brzine važna, kad redoslijed dolaska paketa nije važan i kad nije veliki problem kad su podaci uništeni. Najčešća upotreba su videokonferencije, DNS i multiplayer (online) video igre.
Protokoli za adresiranje u mrežnom sloj
IP (internet protokol)
IP je primarni protokol mrežnog sloja u Internet protokolnom paketu. Internet protocol (IP) sadrži adresne informacije i nekekontrolne informacije koje omogućuju paketima da budu usmereni. Sadrži informacije o adresiranju, čime se postiže da svaki mrežni uređaj ( računar, server, radna stanica, interfejs rutera) koji je povezan na internet ima jedinstvenu adresu i može se lako identifikovati u celoj internet mreži, a isto tako sadrži kontrolne informacije koje omogućuju paketima da budu prosleđeni (rutirani) na osnovu poznatih IP adresa.
IP ne zahteva prethodno upostavljanje veze u trenutku slanja podatka, već računar koji šalje podatke pokušava sve dok ne prosledi poruku (best effort) model, prenos podataka je relativno nepouzdan, što znači da nema gotovo nikave garancije da će poslati paket zaista i doći do odredišta nakon što je poslat.