TCP vs UDP: Demistifikacija rasprave o pouzdanosti vs. učinkovitosti

Danas ćemo započeti s fokusom na TCP. Ranije u poglavlju o slojevitosti spomenuli smo važnu točku. Na mrežnom sloju i niže, više se radi o vezama između hostova, što znači da vaše računalo treba znati gdje se nalazi drugo računalo kako bi se moglo povezati s njim. Međutim, komunikacija u mreži često je međuprocesna komunikacija, a ne međustrojna komunikacija. Stoga TCP protokol uvodi koncept porta. Port može zauzimati samo jedan proces, što omogućuje izravnu komunikaciju između aplikacijskih procesa koji se izvode na različitim hostovima.

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

TCP je kratica za Transmission Control Protocol i poznat je kao protokol orijentiran na konekciju. To znači da prije nego što jedna aplikacija može početi slati podatke drugoj, dva procesa moraju izvršiti rukovanje. Rukovanje je logički povezan proces koji osigurava pouzdan prijenos i uredan prijem podataka. Tijekom rukovanja uspostavlja se veza 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.

Što je TCP? (MylinkingMrežni dodiriMrežni posrednik paketamože obraditi i TCP i UDP pakete)
TCP (Transmission Control Protocol) je pouzdani komunikacijski protokol transportnog sloja temeljen na toku bajtova, orijentiran na povezivanje.

Usmjeren na povezivanjeOrijentirana na vezu znači da je TCP komunikacija jedan-na-jedan, odnosno komunikacija od točke do točke od kraja do kraja, za razliku od UDP-a, koji može slati poruke više hostova istovremeno, pa se komunikacija jedan-na-mnoge ne može postići.
PouzdanPouzdanost TCP-a osigurava da se paketi pouzdano dostavljaju primatelju bez obzira na promjene u mrežnoj vezi, što format paketa protokola TCP čini složenijim od formata UDP-a.
Na temelju toka bajtovaPriroda TCP-a temeljena na bajtnom toku omogućuje prijenos poruka bilo koje veličine i jamči redoslijed poruka: čak i ako prethodna poruka nije u potpunosti primljena, pa čak i ako su sljedeći bajtovi primljeni, TCP ih neće dostaviti aplikacijskom sloju na obradu i automatski će odbaciti duplicirane pakete.
Nakon što host A i host B uspostave vezu, aplikacija treba samo 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 tim 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 međuspremnik za slanje veze. Ovaj međuspremnik za slanje je jedan od predmemorija postavljenih tijekom trostrukog rukovanja. Nakon toga, TCP će poslati podatke iz predmemorije za slanje u predmemoriju za primanje odredišnog hosta u odgovarajuće vrijeme. U praksi, svaki peer će imati predmemoriju za slanje i predmemoriju za primanje, kao što je ovdje prikazano:

TCP-UDP

Međuspremnik za slanje je područje memorije koje održava TCP implementacija na strani pošiljatelja, a koristi se za privremeno pohranjivanje podataka koji će se poslati. Kada se izvrši trostruko rukovanje radi uspostavljanja veze, postavlja se predmemorija slanja i koristi se za pohranjivanje podataka. Međuspremnik za slanje dinamički se prilagođava prema zagušenju mreže i povratnim informacijama od primatelja.

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

Imajte na umu da je veličina predmemorije za slanje i primanje ograničena. Kada je predmemorija puna, TCP može usvojiti neke strategije, poput kontrole zagušenja, kontrole protoka itd., kako bi osigurao pouzdan prijenos podataka i stabilnost mreže.

U računalnim mrežama prijenos podataka između hostova provodi se pomoću segmenata. Što je dakle segment paketa?

TCP stvara TCP segment ili paketni segment dijeljenjem dolaznog toka na dijelove i dodavanjem TCP zaglavlja svakom dijelu. Svaki segment može se prenositi samo ograničeno vrijeme i ne smije 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 sučeljem.

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

U računalnim mrežama, hijerarhijska arhitektura je vrlo važna jer uzima u obzir razlike između različitih razina. 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, a TCP neće podijeliti veće podatke u segmente prikladne 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 računalo generira prilikom uspostavljanja veze kao svoju početnu vrijednost kada se uspostavi TCP veza, a redni broj se šalje primatelju putem SYN paketa. Tijekom prijenosa podataka, pošiljatelj povećava redni broj prema količini poslanih podataka. Primatelj procjenjuje redoslijed podataka prema primljenom redoslijedu. Ako se utvrdi da su podaci nepravilni, primatelj će ih promijeniti kako bi osigurao njihov redoslijed.

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

Kontrolni bitovi TCP segmenta uključuju sljedeće:

ACK bit: Kada je ovaj bit 1, to znači da je polje odgovora potvrde valjano. 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 znači da postoji iznimka u TCP vezi i da se veza mora prisilno prekinuti.
SYN bit: Kada je ovaj bit postavljen na 1, to znači da se veza treba uspostaviti i da se početna vrijednost sekvencijalnog broja postavlja 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 utjelovljene su strukturom segmenata TCP paketa.

Što je UDP? (MyLinkingovMrežni dodiriMrežni posrednik paketamogao je obraditi i TCP ili UDP pakete)
Protokol korisničkih datagrama (UDP) je komunikacijski protokol bez uspostave konekcije. U usporedbi s TCP-om, UDP ne pruža složene mehanizme kontrole. UDP protokol omogućuje aplikacijama izravno slanje enkapsuliranih IP paketa bez uspostavljanja veze. Kada programer odluči koristiti UDP umjesto TCP-a, aplikacija komunicira izravno s IP-om.

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 naznačiti kojem procesu UDP treba slati pakete.
Veličina paketaPolje veličine paketa sadrži veličinu UDP zaglavlja i veličinu podataka.
Kontrolni zbrojDizajniran za osiguranje pouzdane dostave UDP zaglavlja i podataka. Uloga kontrolne sume je otkriti je li došlo do pogreške ili oštećenja tijekom prijenosa UDP paketa kako bi se osigurala cjelovitost 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 vs. UDP

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

Objekt uslugeTCP je usluga jedan-na-jedan s dvije točke, odnosno veza ima samo dvije krajnje točke za međusobnu komunikaciju. Međutim, UDP podržava interaktivnu komunikaciju jedan-na-jedan, jedan-na-mnoge i mnogo-na-mnoge, 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 jamči pouzdanu isporuku. UDP može patiti od gubitka podataka i drugih situacija tijekom prijenosa.

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

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

TCP vs. 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 povezivanje, 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 ne oštete tijekom prijenosa.
HTTP/HTTPSTCP osigurava integritet i ispravnost web sadržaja.
Budući da je UDP protokol bez spajanja, ne pruža jamstvo pouzdanosti, ali ima karakteristike učinkovitosti i rada u stvarnom vremenu. UDP je prikladan za sljedeće scenarije:

Promet s niskim paketima, kao što je DNS (Domain Name System)DNS upiti su obično kratki paketi, a UDP ih može brže dovršiti.
Multimedijska komunikacija kao što su video i audioZa multimedijski 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-mnoge i više-na-mnoge te se može koristiti za prijenos broadcast poruka.

Sažetak
Danas smo učili o TCP-u. TCP je pouzdani komunikacijski protokol transportnog sloja orijentiran na povezivanje, temeljen 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 izravne komunikacijske usluge za aplikacijske procese koji se izvode na različitim hostovima. TCP veze su full-duplex, što omogućuje istovremeni dvosmjerni prijenos podataka. Nasuprot tome, UDP je komunikacijski protokol orijentiran bez povezivanja, koji ne pruža jamstva pouzdanosti i prikladan je za neke scenarije s visokim zahtjevima u stvarnom vremenu. TCP i UDP razlikuju se po načinu povezivanja, objektu usluge, pouzdanosti, kontroli zagušenja, kontroli protoka i drugim aspektima, a njihovi scenariji primjene također su različiti.


Vrijeme objave: 03.12.2024.