Internet je zasnovan na klijent-server arhitekturi mreže. To znači da se na Internetu suštinski mogu pronaći samo dve vrste računara – klijenti i serveri. Serveri su oni kompjuteri koji sačinjavaju Internet onako kako ga većina ljudi zamišlja. Uloga servera je da „osluškuje“ zahteve koje dobija preko mreže i da ih izvršava. Klijenti su računari običnih korisnika koji se povezuju na Internet i koriste njegove servise. Komunikacija na Internetu funkcioniše kao razmena pitanja (zahteva) i odgovora, koju iniciraju klijenti.
Međutim, osim klasičnog povezivanja „jedan server – više klijenata“, postoji i alternativni način kojim se korisnici Interneta povezuju u svoju internu mrežu. Ovakve mreže slobodnih čvorova (P2P – peer-to-peer) funkcionišu tako što su korisnici povezani „svaki sa svakim“ preko svojih IP adresa, što je omogućeno programima koji su specijalizovani za neku namenu kojoj ovakav način povezivanja odgovara. Suštinski, takav program predstavlja istovremeno i klijent i server za druge korisnike. Da bi se neko priključio na P2P mrežu, dovoljno je da pronađe jednog korisnika koji je već povezan. Preko ovakvih sistema funkcioniše npr. sistem za on-line komunikaciju Skype, kao i veliki broj programa za razmenu fajlova – npr. BitTorrent klijenti.
Da bi komunikacija između različitih mreža, računara, operativnih sistema i aplikacija uopšte bila moguća, bilo je potrebno uvesti standarde za prenos podataka, koji tačno definišu način na koji se zahtevi upućuju serveru i u kom obliku mogu biti njegovi odgovori. Ovi standardi nazivaju se protokolima. Postoje protokoli nižih (npr. način na koji se paketi prenose od računara do računara kako bi stigli na odredište – IP, TCP, UDP) ili viših nivoa (komunikacija web čitača i servera prilikom posete nekoj prezentaciji – HTTP, razmena elektronske pošte – POP3, SMTP i sl).
Primer komunikacije klijenta i servera
U sledećem primeru je dat deo komunikacije između klijenta i servera putem FTP protokola (File Transfer Protocol), koji se koristi za prenos fajlova.
Connect ok!
Sa leve strane prikazane su komande koje klijent upućuje serveru, a sa desne odgovori servera.
Slojni model TCP/IP mreže
TCP/IP u suštini predstavlja čitav skup protokola koji obezbeđuju funkcionisanje Interneta kao mreže. Mnoštvo komunikacionih uređaja, operativnih sistema i mrežnih servisa koji počivaju na različitim protokolima, zahtevaju fleksibilnost u implementaciji mrežnih mogućnosti računara. Naime, mrežna aplikacija mora biti u mogućnosti da obavlja svoj zadatak bez obzira na način na koji je realizovana mrežna podrška. Sa druge strane, na nižem nivou, deljenje podataka na pakete i njihova distribucija kroz mrežu ne zavisi od uređaja kojim je računar fizički povezan na mrežu.
Za razliku od OSI (Open Systems Interconnection) mrežnog modela, koji se sastoji od sedam slojeva (aplikacije, prezentacije, sesije, transporta, mrežnog, veze podataka i fizičkog), TCP/IP model se sastoji iz samo četiri sloja, kojima su u suštini obuhvaćeni svih sedam slojeva OSI modela. Ti slojevi su: aplikacija, transport, internet i mreža.
Mrežni sloj je najnižeg nivoa. To je nivo koji obezbeđuje funkcionisanje mreže, odnosno povezivanje računara kao fizičkih entiteta. Ovo je nivo komunikacionih uređaja (modema, mrežnih kartica i sl.) i drajvera operativnog sistema koji obezbeđuju vezu softverskog sistema računara i komunikacionog uređaja.
Svaki mrežni uređaj mora imati jedinstvenu MAC adresu (što je obezbeđeno posebnim standardima koje mora da zadovolji svaki proizvođač mrežne opreme), a ako je nema, kao što je slučaj sa modemima, dodeljuje im se logička MAC adresa. Na najnižem nivou se samo ove adrese koriste za adresiranje, što omogućava da se na istim uređajima sprovede bilo kakva mrežna struktura, odnosno bilo kakav model prenosa podataka. U suštini ovaj nivo se brine samo da paket podataka stigne od jednog fizičkog uređaja do drugog.
Internet sloj vrši funkcije adresiranja, pakovanja i rutiranja. Na ovom nivou funkcioniše nekoliko protokola – ARP (prevođenje IP adresa u MAC adrese), ICMP (pronalaženje grešaka sistemom kontrolnih poruka) i IGMP (multicast – slanje poruka na više računara). Ipak, noseću snagu ovog sloja predstavlja sam IP (Internet Protocol) protokol.
Paketi moraju biti usmereni najboljim mogućim putem kroz mrežu (rutiranje), do tačno određenog računara (adresiranje) i podeljeni na pakete odgovarajuće veličine za svaki segment mreže (pakovanje).
Internet sloj podržava vezu bezkonekcionog tipa. To znači da se na ovom nivou vrši provera ispravnosti paketa, ali ne i provera da li su paketi stigli odgovarajućim redosledom, niti da li su svi paketi stigli. Prispeli paketi se samo prosleđuju višem hijerarhijskom nivou, odnosno transportnom sloju.
Na ovom mestu je vredno napomenuti da je svaki pojedinačni uređaj povezan na TCP/IP mrežu (dakle Internet ili intranet) jedinstveno identifikovan sopstvenom IP adresom. Za razliku od MAC adresa, IP adrese su logičke adrese uređaja. To je u suštini jedan 32-bitni podatak, odnosno celi neoznačeni broj, što istovremeno govori da je Internet teorijski ograničen na 4 294 967 295 uređaja koji mogu biti istovremeno povezani (ovaj broj je naravno veći, pošto računari u lokalnim mrežama imaju posebne adrese i nisu direktno vidljivi na Internetu). Ova četiri bajta se zbog lakšeg predstavljanja razdvajaju tačkom i tako se dobija IP adresa oblika aaa.bbb.ccc.ddd, pri čemu svaki od ova četiri broja ima raspon jednog bajta, odnosno dekadne vrednosti od 0 do 255. Svaki državni domen, svaki provajder (ISP – Internet Service Provider) imaju svoje unapred određene adrese i adrese koje može dodeljivati svojim korisnicima (tzv. „IP Pool“). Danas se radi na proširenju mogućnosti IP adresiranja i uvođenju novog, IPv6 standarda.
Transportni sloj obezbeđuje komunkaciju između računara. Ovaj sloj je na višem hijerarhijskom nivou od Internet sloja. To znači da iz aplikativnog sloja prima kompletne podatke koje treba poslati na određenu logičku adresu. Tu adresu pomoću DNS (Domain Name Space) servisa, prevodi u IP adresu, a same podatke deli na pakete koje prosleđuje Internet sloju.
Na nivou transportnog sloja se uvodi i pojam „port“. Portovi omogućavaju razlučivanje kom servisu je namenjen koji podatak. Neki od rezervisanih i poznatih portova su 21 (FTP), 80 (HTTP), 25 (SMTP), 110 (POP3).
Funkcionisanje transportnog sloja omogućeno je preko dva protokola: TCP (Transmission Control Protocol) i UDP (User Datagram Protocol). TCP protokol obezbeđuje siguran protok podataka kroz mrežu, pošto se vrši provera da li su svi paketi pristigli, kao i ponovno slanje paketa koji nisu. Pouzdanost komunikacije između računara na mreži, plaćena je slabijim performansama, pošto je potrebno uspostaviti sesiju između dva računara i vršiti stalnu razmenu kontrolnih informacija o prispeću paketa. UDP protokol je sa stanovišta brzine prenosa bolji izbor, ali kako uspostavlja saobraćaj bezkonekcionog tipa, nije zagarantovano prispeće svakog paketa podataka. Ipak i ovaj protokol ima svoju primenu, kada su u pitanju podaci koji ne zahtevaju obavezno svaki detalj, a brzina je od najvećeg značaja (igre, video, audio…).
Konačno, sloj aplikacije, predstavlja naviši hijerarhijski nivo u TCP/IP slojnom modelu. Korisnik preko mrežne aplikacije stupa u kontakt preko Interneta. Aplikacija može biti namenjena pregledu web prezentacija, slanju e-mail poruka, čitanju i učestvovanju u news grupama (usenet) i slično. Ovi protokoli obezbeđuju dovođenje korisnikovih podataka u odgovarajuću formu za slanje. Tako formatirani podaci se dalje prosleđuju transportnom sloju koji se brine o deljenju na pakete i njihovo dalje slanje.