TCP vs UDP: Demistifikacija debate o pouzdanosti naspram efikasnosti

Danas ćemo početi fokusiranjem na TCP. Ranije u poglavlju o slojevitosti spomenuli smo važnu stvar. Na mrežnom sloju i niže, više se radi o vezama između hostova, što znači da vaš računar treba znati gdje se nalazi drugi računar da bi se mogao povezati s njim. Međutim, komunikacija u mreži je često međuprocesna komunikacija, a ne međumašinski saobraćaj. Stoga, TCP protokol uvodi koncept porta. Port može biti zauzet samo jednim procesom, što omogućava direktnu komunikaciju između aplikacijskih procesa koji se izvršavaju na različitim hostovima.

Zadatak transportnog sloja je kako osigurati direktne komunikacijske usluge između aplikacijskih procesa koji se izvršavaju na različitim hostovima, pa je poznat i kao end-to-end protokol. Transportni sloj skriva ključne detalje mreže, omogućavajući aplikacijskom procesu da vidi kao da postoji logičan end-to-end komunikacijski kanal između dva entiteta transportnog sloja.

TCP je skraćenica za Transmission Control Protocol i poznat je kao protokol orijentisan na konekciju. To znači da prije nego što jedna aplikacija može početi slati podatke drugoj, dva procesa moraju izvršiti rukovanje (handshake). Rukovanje (handshake) je logički povezan proces koji osigurava pouzdan prijenos i uredan prijem podataka. Tokom rukovanja, veza se uspostavlja između izvornog i odredišnog hosta razmjenom niza kontrolnih paketa i dogovaranjem nekih parametara i pravila kako bi se osigurao uspješan prijenos podataka.

Šta je TCP? (Mylinking-aMrežni dodiriMrežni posrednik paketamože obraditi i TCP i UDP pakete)
TCP (Transmission Control Protocol) je pouzdani komunikacijski protokol transportnog sloja zasnovan na toku bajtova, orijentisan na konekciju.

Orijentisan na konekcijuOrijentisana na konekciju znači da je TCP komunikacija jedan-na-jedan, odnosno komunikacija od tačke do tačke od kraja do kraja, za razliku od UDP-a, koji može slati poruke više hostova istovremeno, tako da se komunikacija jedan-na-mnoge ne može postići.
PouzdanPouzdanost TCP-a osigurava da se paketi pouzdano dostavljaju primaocu bez obzira na promjene u mrežnoj vezi, što format paketa protokola TCP čini složenijim od formata UDP-a.
Zasnovano na toku bajtovaPriroda TCP-a zasnovana na toku bajtova omogućava prenos poruka bilo koje veličine i garantuje redoslijed poruka: čak i ako prethodna poruka nije u potpunosti primljena, pa čak i ako su primljeni sljedeći bajtovi, TCP ih neće dostaviti aplikacijskom sloju na obradu i automatski će odbaciti duplikatne pakete.
Nakon što host A i host B uspostave vezu, aplikacija samo treba koristiti virtualnu komunikacijsku liniju za slanje i primanje podataka, čime se osigurava prijenos podataka. TCP protokol je odgovoran za kontrolu zadataka kao što su uspostavljanje veze, prekid veze i zadržavanje veze. Treba napomenuti da ovdje kažemo da virtualna linija znači samo uspostavljanje veze, dok TCP protokol veze samo označava da dvije strane mogu započeti prijenos podataka i osigurati pouzdanost podataka. Čvorove usmjeravanja i transporta obrađuju mrežni uređaji; sam TCP protokol se ne bavi ovim detaljima.

TCP veza je full-duplex usluga, što znači da host A i host B mogu prenositi podatke u oba smjera u TCP vezi. To jest, podaci se mogu prenositi između hosta A i hosta B u dvosmjernom toku.

TCP privremeno pohranjuje podatke u bafer za slanje (seld buffer) veze. Ovaj bafer za slanje je jedan od kešova postavljenih tokom trostrukog rukovanja (handshake). Nakon toga, TCP će poslati podatke iz keša za slanje u keš za prijem odredišnog hosta u odgovarajuće vrijeme. U praksi, svaki peer će imati keš za slanje i keš za prijem, kao što je ovdje prikazano:

TCP-UDP

Bafer za slanje je područje memorije koje održava TCP implementacija na strani pošiljaoca, a koje se koristi za privremeno pohranjivanje podataka koji će se poslati. Kada se izvrši trostruko rukovanje radi uspostavljanja veze, keš za slanje se postavlja i koristi za pohranjivanje podataka. Bafer za slanje se dinamički podešava u skladu sa zagušenjem mreže i povratnim informacijama od primaoca.

Prijemni bafer je područje memorije koje održava TCP implementacija na prijemnoj strani i koje se koristi za privremeno pohranjivanje primljenih podataka. TCP pohranjuje primljene podatke u prijemni keš i čeka da ih viša aplikacija pročita.

Imajte na umu da je veličina keša za slanje i prijem ograničena. Kada je keš pun, TCP može usvojiti neke strategije, kao što su kontrola zagušenja, kontrola protoka itd., kako bi se osigurao pouzdan prijenos podataka i stabilnost mreže.

U računarskim mrežama, prenos podataka između hostova se vrši pomoću segmenata. Šta je onda segment paketa?

TCP kreira TCP segment, ili paketni segment, dijeljenjem dolaznog toka na dijelove i dodavanjem TCP zaglavlja svakom dijelu. Svaki segment se može prenositi samo ograničeno vrijeme i ne može premašiti maksimalnu veličinu segmenta (MSS). Na svom putu prema dolje, paketni segment prolazi kroz sloj veze. Sloj veze ima maksimalnu jedinicu prijenosa (MTU), što je maksimalna veličina paketa koji može proći kroz sloj podatkovne veze. Maksimalna jedinica prijenosa obično je povezana s komunikacijskim interfejsom.

Dakle, koja je razlika između MSS-a i MTU-a?

U računarskim mrežama, hijerarhijska arhitektura je veoma važna jer uzima u obzir razlike između različitih nivoa. Svaki sloj ima drugačiji naziv; u transportnom sloju, podaci se nazivaju segment, a u mrežnom sloju, podaci se nazivaju IP paket. Stoga se maksimalna jedinica prijenosa (MTU) može smatrati maksimalnom veličinom IP paketa koju mrežni sloj može prenijeti, dok je maksimalna veličina segmenta (MSS) koncept transportnog sloja koji se odnosi na maksimalnu količinu podataka koju TCP paket može prenijeti istovremeno.

Imajte na umu da kada je maksimalna veličina segmenta (MSS) veća od maksimalne jedinice prijenosa (MTU), IP fragmentacija će se izvršiti na mrežnom sloju i TCP neće podijeliti veće podatke na segmente pogodne za veličinu MTU-a. Na mrežnom sloju će postojati odjeljak posvećen IP sloju.

Struktura segmenta TCP paketa
Istražimo format i sadržaj TCP zaglavlja.

TCP segment

Redni broj: Slučajni broj koji generiše računar prilikom uspostavljanja veze kao svoju početnu vrijednost kada se uspostavi TCP veza, a redni broj se šalje prijemniku putem SYN paketa. Tokom prenosa podataka, pošiljalac povećava redni broj u skladu sa količinom poslanih podataka. Prijemnik procjenjuje redoslijed podataka na osnovu primljenog redoslijeda. Ako se utvrdi da su podaci nepravilni, prijemnik će ih ponovo poredati kako bi osigurao njihov redoslijed.

Broj potvrde: Ovo je redni broj koji se koristi u TCP-u za potvrdu prijema podataka. Označava redni broj sljedećih podataka koje pošiljalac očekuje da primi. U TCP vezi, prijemnik određuje koji su podaci uspješno primljeni na osnovu rednog broja primljenog segmenta paketa podataka. Kada prijemnik uspješno primi podatke, šalje ACK paket pošiljaocu, koji sadrži broj potvrde. Nakon prijema ACK paketa, pošiljalac može potvrditi da su podaci uspješno primljeni prije nego što potvrdi broj odgovora.

Kontrolni bitovi TCP segmenta uključuju sljedeće:

ACK bitKada je ovaj bit 1, to znači da je polje za odgovor potvrde važeće. TCP specificira da ovaj bit mora biti postavljen na 1, osim za SYN pakete kada se veza početno uspostavlja.
RST bitKada je ovaj bit 1, to ukazuje na to da postoji izuzetak u TCP vezi i da se veza mora prisilno prekinuti.
SYN bitKada je ovaj bit postavljen na 1, to znači da treba uspostaviti vezu i da je početna vrijednost sekvencijalnog broja postavljena u polje sekvencijalnog broja.
FIN bitKada je ovaj bit 1, to znači da se u budućnosti više neće slati podaci i da je veza željena.
Različite funkcije i karakteristike TCP-a su utjelovljene strukturom segmenata TCP paketa.

Šta je UDP? (MyLinking-ovMrežni dodiriMrežni posrednik paketamože obraditi i TCP ili UDP pakete)
Protokol korisničkih datagrama (UDP) je protokol za komunikaciju bez uspostavljanja konekcije. U poređenju sa TCP-om, UDP ne pruža složene mehanizme kontrole. UDP protokol omogućava aplikacijama da direktno šalju enkapsulirane IP pakete bez uspostavljanja veze. Kada programer odluči da koristi UDP umjesto TCP-a, aplikacija komunicira direktno sa IP adresom.

Puni naziv UDP protokola je User Datagram Protocol, a njegovo zaglavlje ima samo osam bajtova (64 bita), što je vrlo sažeto. Format UDP zaglavlja je sljedeći:

UDP segment

Odredišni i izvorni portoviNjihova glavna svrha je da ukažu kojem procesu UDP treba slati pakete.
Veličina paketaPolje veličine paketa sadrži veličinu UDP zaglavlja plus veličinu podataka.
Kontrolni zbirDizajniran da osigura pouzdanu dostavu UDP zaglavlja i podataka. Uloga kontrolne sume je da otkrije da li je došlo do greške ili oštećenja tokom prenosa UDP paketa kako bi se osigurao integritet podataka.

Razlike između TCP-a i UDP-a u MyLinkinguMrežni dodiriMrežni posrednik paketamože obraditi i TCP i UDP pakete
TCP i UDP se razlikuju u sljedećim aspektima:

TCP u odnosu na UDP

VezaTCP je transportni protokol orijentiran na konekcije koji zahtijeva uspostavljanje veze prije nego što se podaci mogu prenijeti. UDP, s druge strane, ne zahtijeva vezu i može odmah prenijeti podatke.

Servisni objektTCP je usluga tipa jedan-na-jedan s dvije tačke, odnosno veza ima samo dvije krajnje tačke za međusobnu komunikaciju. Međutim, UDP podržava interaktivnu komunikaciju jedan-na-jedan, jedan-na-mnogo i više-na-mnogo, koja može komunicirati s više hostova istovremeno.

PouzdanostTCP pruža uslugu pouzdane isporuke podataka, osiguravajući da su podaci bez grešaka, bez gubitaka, bez duplikata i da stižu na zahtjev. S druge strane, UDP se trudi maksimalno i ne garantuje pouzdanu isporuku. UDP može patiti od gubitka podataka i drugih situacija tokom prenosa.

Kontrola zagušenja, kontrola protokaTCP ima mehanizme za kontrolu zagušenja i kontrolu protoka, koji mogu prilagoditi brzinu prijenosa podataka prema uvjetima mreže kako bi se osigurala sigurnost i stabilnost prijenosa podataka. UDP nema mehanizme za kontrolu zagušenja i kontrolu protoka, čak i ako je mreža jako zagušena, neće prilagođavati brzinu slanja UDP-a.

Zaglavlje iznad glaveTCP ima dugu dužinu zaglavlja, obično 20 bajtova, koja se povećava kada se koriste opcionalna polja. UDP, s druge strane, ima fiksno zaglavlje od samo 8 bajtova, tako da UDP ima niže opterećenje zaglavlja.

TCP u odnosu na UDP

Scenariji TCP i UDP aplikacija:
TCP i UDP su dva različita protokola transportnog sloja i imaju neke razlike u scenarijima primjene.

Budući da je TCP protokol orijentiran na konekciju, prvenstveno se koristi u scenarijima gdje je potrebna pouzdana isporuka podataka. Neki uobičajeni slučajevi upotrebe uključuju:

Prijenos datoteka putem FTP-aTCP može osigurati da se datoteke ne izgube i oštete tokom prenosa.
HTTP/HTTPSTCP osigurava integritet i ispravnost web sadržaja.
Budući da je UDP protokol bez uspostavljanja konekcije, ne pruža garanciju pouzdanosti, ali ima karakteristike efikasnosti i rada u realnom vremenu. UDP je pogodan za sljedeće scenarije:

Promet niskih paketa, kao što je DNS (sistem imena domena)DNS upiti su obično kratki paketi, a UDP ih može brže završiti.
Multimedijalna komunikacija kao što su video i audioZa multimedijalni prijenos s visokim zahtjevima u stvarnom vremenu, UDP može osigurati nižu latenciju kako bi se osiguralo da se podaci mogu prenijeti pravovremeno.
Komunikacija putem emitiranjaUDP podržava komunikaciju jedan-na-mnogo i više-na-mnogo i može se koristiti za prijenos broadcast poruka.

Sažetak
Danas smo učili o TCP-u. TCP je pouzdani komunikacijski protokol transportnog sloja orijentiran na konekcije, zasnovan na toku bajtova. Osigurava pouzdan prijenos i uredan prijem podataka uspostavljanjem veze, rukovanjem i potvrdom. TCP protokol koristi portove za ostvarivanje komunikacije između procesa i pruža direktne komunikacijske usluge za aplikacijske procese koji se izvršavaju na različitim hostovima. TCP veze su full-duplex, što omogućava istovremeni dvosmjerni prijenos podataka. Nasuprot tome, UDP je komunikacijski protokol orijentiran bez konekcije, koji ne pruža garancije pouzdanosti i pogodan je za neke scenarije s visokim zahtjevima u realnom vremenu. TCP i UDP se razlikuju po načinu povezivanja, objektu usluge, pouzdanosti, kontroli zagušenja, kontroli protoka i drugim aspektima, a njihovi scenariji primjene su također različiti.


Vrijeme objave: 03.12.2024.