TCP/IP model
Ako naučite samo jedan model umrežavanja, naučite TCP/IP. Sedmoslojni OSI model se uči u udžbenicima; četveroslojni TCP/IP model ono je na čemu radi Internet. Razumijevanje toga koji sloj radi što je temelj za razumijevanje svega ostalog — VPN-ova, proxyja, NAT-a, vatrozida, latencije.
Cjeloviti članak nalazi se u nastavku na engleskom jeziku.
Dizajn interneta potječe iz dokumenta Vinta Cerfa i Boba Kahna iz 1974. koji predlaže slojevitu arhitekturu: svaki sloj radi jedan posao, razgovara samo sa slojevima neposredno iznad i ispod, i implementiran je neovisno o drugima. Model ima četiri sloja; sve što stavite na žicu (ili bežično) prolazi kroz njih.
Sloj 1: sloj veze
Donji sloj je fizička veza između susjednih uređaja: Ethernet, Wi-Fi, optička mreža, mobilna mreža. Njegov zadatak je staviti komadiće na medij i ponovno ih skinuti s druge strane. Svaka tehnologija povezivanja ima vlastito uokvirivanje, vlastito adresiranje (MAC adrese na Ethernet/Wi-Fi) i vlastito rukovanje pogreškama.
Ovaj sloj je jedini koji se razlikuje ovisno o fizičkom mediju. Ostatak skupa je isti bez obzira na to koristite li mobilnu mrežu, Wi-Fi ili optičku mrežu.
Sloj 2: Internetski sloj
Internetski sloj je sloj globalnog usmjeravanja. Protokol mu je IP (u verziji 4 ili v6), a posao mu je primiti paket s bilo koje IP adrese na bilo koju drugu IP adresu, po mogućnosti preko mnogih srednjih skokova. Svaki skok je usmjerivač koji gleda odredišnu adresu, konzultira svoju tablicu usmjeravanja i prosljeđuje paket na odgovarajuću vezu.
Internetski sloj je najbolji: paketi se mogu ispustiti, promijeniti redoslijed ili duplicirati. Ne reemitira se. To je problem sljedećeg sloja.
Sloj 3: Prijenosni sloj
Prijenosni sloj pretvara najbolju IP uslugu u nešto što mogu koristiti aplikacije. Dva protokola dominiraju:
- TCP (Transmission Control Protocol) pruža pouzdan, uređen tok bajtova. Ponovno odašilje izgubljene pakete, preuređuje pakete koji nisu u redu, kontrolira zagušenje i osigurava da obje krajnje točke ostanu približno sinkronizirane. Cijena je latencija — TCP rukovanje traje jedno povratno putovanje prije bilo kakvog protoka podataka.
- UDP (Protokol za korisnički datagram) pruža datagrame bez jamstava pouzdanosti. Aplikacija dobiva istu najbolju uslugu koju pruža IP, plus brojeve portova za multipleksiranje tokova. Koristi se za DNS, audio/video u stvarnom vremenu, igranje, QUIC.
Oba protokola transportnog sloja koriste 16-bitne brojeve portova (0–65535) za multipleksiranje mnogih tokova preko jedne IP adrese.
Sloj 4: Aplikacijski sloj
Aplikacijski sloj je sve što zapravo koristite: HTTP, HTTPS, SMTP, DNS, SSH, FTP, BitTorrent. Svaki protokol definira vlastiti format poruke, semantiku i ponašanje, na temelju TCP-a ili UDP-a.
Ovo je sloj na kojem većina programera softvera provodi svoje vrijeme. To je također mjesto gdje žive gotovo sve složene moderne aplikacije — TLS, HTTP/3, QUIC, GraphQL, gRPC, WebSocket — iako se niža tri sloja nisu promijenila u desetljeća.
Kako paket zapravo teče
Kliknete vezu. Vaš preglednik otvara TCP vezu na example.com:443. Ovdje je slojevita raščlamba:
- Aplikacijski sloj: preglednik konstruira HTTPS zahtjev.
- Prijenosni sloj: TCP ga omotava u segment s izvornim/odredišnim priključcima, sekvencijskim brojem, kontrolni zbroj.
- IInternetski sloj: IP omotava TCP segment s izvornim/odredišnim IP-om, TTL-om itd.
- Sloj veze: Ethernet (ili Wi-Fi) omotava IP paket s MAC adresama za sljedeći skok.
paket pogodi vaš usmjerivač, koji skida okvir sloja veze, gleda IP zaglavlje, odlučuje kamo će proslijediti, omotava ga u novi okvir sloja veze za sljedeći skok i šalje dalje. Ovo se ponavlja na svakom usmjerivaču dok paket ne dođe do poslužitelja example.com, gdje se slojevi odvijaju obrnutim redom.
TCP/IP naspram OSI
OSI model ima sedam slojeva — fizički, podatkovna veza, mreža, transport, sesija, prezentacija, aplikacija — i podučava se u učionicama. TCP/IP model sažima donja dva OSI sloja u jedan "vezni sloj" i gornja tri OSI sloja u jedan "aplikacijski sloj". Razlike OSI sesija/prezentacija postoje u stvarnim sustavima (TLS je tu negdje), ali TCP/IP četveroslojni prikaz jasnije odgovara stvarnim implementacijama.
Zašto je ovo važno za VPN-ove
A VPN tunel radi kapsuliranjem jednog paketa u drugi. Vaš HTTP zahtjev aplikacijskog sloja vozi se na TCP-u, koji se kreće na IP-u, koji se šifrira i ubacuje u another IP paket namijenjen VPN poslužitelju. VPN poslužitelj dekapsulira i prosljeđuje. Unutarnji paket je vaš stvarni promet; vanjski paket ga skriva od lokalne mreže. Razumijevanje na kojem se sloju događa enkapsulacija (obično IP-in-IP za IPsec/WireGuard, TCP/UDP-in-TLS za OpenVPN) razlika je između VPN-a koji radi i neispravnog.
Često postavljana pitanja
- Je li OSI model pogrešan?
- Nije pogrešno, ali uglavnom akademski. Stvarne implementacije više odgovaraju TCP/IP četveroslojnom modelu. Slojevi sesije i prezentacije u OSI-ju mapiraju se u knjižnični kod unutar aplikacijskih protokola, a ne u diskretne mrežne komponente.
- Koja je razlika između TCP-a i UDP-a na razini protokola?
- TCP ima postavku veze (trosmjerno rukovanje), sekvencijske brojeve po bajtu, ponovni prijenos, kontrolu protoka i kontrolu zagušenja. UDP nema ništa od toga — samo "baci ovaj datagram na taj IP:port i nadaj se da će stići." UDP je brži, ali se aplikacija mora nositi s gubitkom.
- Gdje rade vatrozidi u ovom modelu?
- Većina vatrozida radi na internetskom i transportnom sloju — oni provjeravaju IP adrese, brojeve portova i TCP oznake. "Aplikacijski vatrozidi" (također zvani aplikacijski gatewayi) provjeravaju sadržaj sloja 4 kako bi primijenili pravila temeljena na HTTP metodama, URL-ovima ili drugom sadržaju aplikacije.
- Zašto VPN usporava stvari?
- Tri razloga: dodatna IP enkapsulacija dodaje 20-60 bajtova po paketu, enkripcija/dešifriranje koristi CPU, a VPN izlazni poslužitelj može biti fizički dalje od vašeg odredišta od vaše stvarne ISP rute. Moderni protokoli poput WireGuarda minimiziraju prva dva; obilaznica je neizbježna.
- Primjenjuje li se TCP/IP model i dalje s HTTP/3?
- Da — HTTP/3 radi preko QUIC-a, koji radi preko UDP-a na transportnom sloju, koji radi preko IP-a na internetskom sloju. Slojevi se nisu promijenili; učinio je samo izbor protokola transportnog sloja. QUIC povlači neke funkcionalnosti (šifriranje, kontrola zagušenja) u čvršći paket.