Sunteți pe pagina 1din 7

TCP vs UDP: caracteristici, utilizări și diferențe

TCP și UDP sunt două protocoale fundamentale pentru comunicațiile pe internet, deoarece
aceste două protocoale sunt localizate în stratul de transport al modelului TCP / IP , și este
primul strat în care originea și destinația comunică direct, deoarece straturile inferioare (strat de
rețea și strat de acces mijlociu) nu îndeplinesc această funcție. Astăzi vom explica principalele
caracteristici ale protocolului TCP si Protocol UDP , când se utilizează fiecare, diferențe și
utilizări principale.
Protocol TCP: ce este și cum funcționează?
Platforma TCP (Protocol de control al transmisiei) protocolul este unul dintre protocoalele
fundamentale de pe Internet, permite aplicațiilor să comunice cu garanții, indiferent de straturile
inferioare ale modelului TCP / IP. Acest lucru înseamnă că routerele (stratul de rețea din modelul
TCP / IP) trebuie să trimită doar segmentele (unitatea de măsură în TCP), fără să vă îngrijorați
dacă aceste date vor ajunge sau nu corect. TCP acceptă protocoale cu mai multe straturi de
aplicație , cum ar fi HTTP (web), HTTPS (web securizat), POP3 (poștă de intrare) și SMTP
(poștă de ieșire), precum și versiunile lor sigure folosind TLS. TCP este de asemenea utilizat în
protocoale importante precum FTP, FTPES și SFTP pentru a transfera fișiere de la o sursă la o
destinație și chiar protocolul SSH pentru a gestiona calculatoarele local și de la distanță în
siguranță folosește protocolul TCP.
Caracteristici principale.
Deoarece TCP servește un număr mare de protocoale de nivel de aplicație, acesta este esențial ca
datele (segmentele) să ajungă la destinatar corect , fără erori și, în ordine. Dacă în transmiterea
segmentelor, acestea sunt corupte sau pierdute, automat TCP protocol începe retransmisia , fără
intervenția stratului de aplicare. În acest fel, se garantează că datele ajung la destinatar fără erori,
deoarece acest protocol este responsabil pentru rezolvarea oricărui tip de problemă.
MSS (Dimensiunea maximă a segmentului) este dimensiunea maximă în octeți pe care TCP o
poate primi într-un singur segment, este similară cu MTU, dar MSS este la nivelul stratului de
transport. Pentru a obține cele mai bune performanțe, MSS trebuie să fie suficient de mic pentru
a evita fragmentarea IP. În mod normal, MSS este anunțat pe fiecare parte a canalului de
comunicare, prin antetul TCP în sine. În mod normal, dimensiunea MSS este MTU (1500 octeți
în mod normal) minus antetul TCP (care are o lungime variabilă de cel puțin 20 de octeți) minus
antetul IP (care are o lungime variabilă de cel puțin 20 de octeți). MSS = MTU (1,500 octeți) -
20 octeți Antet TCP - Antet IP de 20 octeți
TCP are un mecanism complex de control al erorilor, o tehnică de fereastră glisantă este utilizată
astfel încât toate segmentele să ajungă corect. Această caracteristică utilizează diferite metode
pentru a detecta posibile erori care apar:
[bloc de inserție = ”1 ″]

• checksum
• Numerotarea tuturor segmentelor pentru a controla corect
• Confirmări selective ACK, deși vă permite, de asemenea, să „acumulați” segmente, astfel
încât cu un singur ACK puteți confirma mai multe.
• Temporizatoare: dacă trece mult timp, TCP retransmite automat segmentul care a fost
„pierdut”.
• Segmentele duplicate sunt aruncate: în cazul în care ajunge un segment duplicat
(deoarece unul a durat mai mult decât normal și a fost retrimis) îl șterge.
Desigur, dacă TCP detectează o eroare, va începe retransmiterea automat, fără ca stratul de
aplicație să fie nevoit să facă nimic deloc.
O altă caracteristică foarte importantă a informațiilor care călătorește de la o origine la o
destinație este aceea că datele ajung în ordine , adică în aceeași ordine în care au fost emise,
întrucât protocolul IP este un protocol cu cel mai bun efort, face tot posibilul, astfel încât
pachetele să ajungă în ordine și să fie corecte, dar nu este fiabil, deoarece nu garantează nimic .
TCP are o fereastră glisantă pe expeditor și receptor, astfel încât, dacă primim un segment care
nu este în ordine, acesta va „automat aștepta” până când va sosi segmentul care lipsește, sau
altfel, va solicita o retransmisie numai a segmentului care lipsește. Cu fiecare segment primit de
receptor, va fi trimis un ACK indicând expeditorului că totul ajunge corect, însă, în realitate,
implementările TCP permit trimiterii unui ACK pentru a confirma recepția mai multor segmente
simultan, cu obiectivul de a nu saturați rețeaua cu atâtea confirmări.
Protocolul TCP permite Controlul debitului , adică este capabil să atenueze saturația posibilă a
rețelei sau a gazdei la distanță. În cazul în care un dispozitiv transmite la o viteză de 500Mbps,
iar dispozitivul de destinație poate primi informații doar la 100Mbps, protocolul TCP este
adaptat dinamic. În acest fel, protocolul TCP va încerca întotdeauna să maximizeze lățimea de
bandă disponibilă între sursă și destinație. Funcționarea acestei ferestre glisante este complexă,
dar practic funcționează prin faptul că receptorul are o fereastră TCP disponibilă cu un număr de
octeți care poate fi stocat într-un tampon, expeditorul poate trimite date până când această
cantitate este completată. Pentru ca expeditorul să poată trimite mai multe date, este necesar ca
receptorul să trimită un ACK care să indice că totul este corect și că procedează la „încărcarea”
acestuia în stratul de aplicație.
[bloc de inserție = ”1 ″]
TCP are și el controlul congestiei , acest lucru ne permite să nu pierdem pachetele de pe Internet,
deoarece există congestii pe routere. Dacă routerul nu este capabil să proceseze sau să
redirecționeze pachetele la rata pe care le primește, routerul însuși le va arunca și va fi pierdut,
deoarece bufferul său va fi completat. Nu trebuie să confundăm controlul debitului (pe care l-am
explicat mai sus) cu controlul congestiei. Fereastra de congestie (este complementară cu fereastra
de recepție) este ceea ce este utilizat pentru a gestiona controlul congestiei în TCP. În situații de
non-congestionare, avantajul congestiei este același cu fereastra de recepție, dacă apare
congestia, dimensiunea avantajului de congestie este redusă, iar dacă aceasta dispare, crește.
Numărul maxim de octeți pe care expeditorul îl poate trimite este minimul ambelor dimensiuni
ale ferestrei (dacă fereastra de congestionare este de 1500 de octeți, iar fereastra de recepție este
de 2000 de octeți, atunci sunt trimise 1500 de octeți, cel mai mic).
Pentru a evita congestia și pentru a putea strânge lățimea de bandă maximă disponibilă între
origine și destinație, există un total de trei faze. încet începe faza (pornire lentă) este responsabilă
de creșterea exponențială (deci nu se poate considera cu adevărat început lent) fereastra de
congestionare, apoi congestia evitare faza care este responsabilă de creșterea liniară a ferestrei de
congestie și, în sfârșit, de faza constantă unde fereastra de recepție este aceeași cu fereastra de
congestionare.
TCP are în prezent algoritmi diferiți pentru a gestiona eficient congestia, primii au fost TCP
Tahoe și Reno, deși avem și alți, cum ar fi TCP Vegas, dar, de-a lungul anilor, cu noile rețele de
date TCP / IP, au apărut alți algoritmi care sunt mai eficient. De exemplu, avem TCP BRR care
ne permite să trimitem informații cât mai repede posibil, deoarece este mult mai eficient decât
protocolul TCP original (vom avea o viteză mai mare). Avem, de asemenea, TCP Cubic, care
este controlul congestiei utilizat de Linux și sisteme de operare Unix.
[bloc de inserție = ”1 ″]

În cele din urmă, o altă caracteristică interesantă a TCP este că ne permite date multiplex , astfel
încât să putem primi informații de la diferite gazde simultan. De asemenea, permite Full-Duplex,
deoarece putem trimite și primi date simultan prin același canal de comunicare.

Stabilirea conexiunii între client și server și deconectare în TCP


Principala caracteristică a protocolului TCP este că acesta este un protocol orientat pe
conexiune , pentru a stabili o conexiune între client și server, este absolut necesar să se
stabilească o conexiune anterioară cu respectivul server.
Această conexiune anterioară se numește Strângere de mână cu 3 căi , și constă practic în faptul
că clientul (cel care inițiază conexiunea) trimite un mesaj SYN către server (cel care primește
conexiunea). Ulterior, serverul va trimite un mesaj de tip SYN-ACK, indicând că poate începe să
trimită informații, în cele din urmă, clientul trimite un ACK indicând că a primit-o corect și că
toate informațiile dintre client și server sunt deja trimise. mod bidirecțional. Un detaliu foarte
important al TCP este acela că generează numere de ordine pe fiecare parte, ajutând la faptul că
nu pot fi stabilite conexiuni false între ele, deși dacă atacatorul este „la mijloc”, atunci un ARM
Atacul MitM de tip ar putea fi făcut Spoofing sau similar, dar nu prin Internet.
[bloc de inserție = ”1 ″]
Una dintre vulnerabilitățile TCP constă în trimiterea unui număr mare de segmente TCP SYN, cu
scopul de a „satura” conexiunile cu receptorul. Unele soluții posibile pentru atenuarea acestui
atac de refuz de serviciu sunt:
• Limitați numărul de conexiuni, fie global, fie conexiuni IP.
• Acceptați numai conexiunile la adresele IP de încredere.
• Întârziați alocarea resurselor folosind „cookie-uri” sau, de asemenea, numite Cookie
SYN.
La încheiați conexiunea , cel care dorește să încheie conexiunea trimite un mesaj FIN, iar gazda
care o primește va trimite un mesaj ACK împreună cu un alt mesaj FIN, astfel încât echipa care a
inițiat terminarea conexiunii îi trimite un ultim ACK și priza deschisă închide. Un detaliu
important este faptul că putem avea o conexiune „pe jumătate deschisă”, dacă o gazdă încheie
conexiunea, iar cealaltă nu, partea care a încheiat conexiunea nu va putea trimite mai multe date,
dar cea care nu are închis, poate continua să trimită informații.
[bloc de inserție = ”1 ″]
Antet TCP
Adaugă TCP cel puțin 20 octeți de antet în fiecare segment, deoarece avem un câmp „opțional”.
În acest antet TCP vom găsi portul sursă și portul de destinație al conexiunii (soclu), vom găsi și
numărul de secvență, numărul ACK și diferitele FLAG-uri TCP precum SYN, ACK, RST, FIN,
URG și altele. În acest antet avem și o parte foarte importantă pentru funcționarea ferestrei
glisante și vom avea un câmp de 16 biți care indică dimensiunea ferestrei de recepție pe care am
explicat-o anterior.
Platforma ports (port sursă și port destinație) sunt esențiale pentru buna funcționare a TCP. TCP
folosește aceste numere de port pentru a identifica o priză, adică o aplicație care emite date sau
primește date. Porturile TCP variază de la 0 la 65535, dar avem trei tipuri diferite de porturi:
• Porturi cunoscute : de la 0 la 1023. Aceste porturi sunt rezervate de IANA pentru
anumite aplicații, cum ar fi serverul HTTP, FTP, SSH și multe alte porturi cunoscute.
• Porturi înregistrate : De la 1024 la 49151. Aceste porturi sunt rezervate aplicațiilor
specifice, cum ar fi sistemele de gestionare a bazelor de date, BitTorrent și multe alte
aplicații.
• Porturi private : de la 49152 la 65535. Aceste porturi nu sunt rezervate de nicio
aplicație și le puteți utiliza în mod liber fără a afecta niciun alt protocol.

Protocol UDP: ce este și cum funcționează?
Platforma Protocol UDP (User Datagram Protocol) este unul dintre protocoalele fundamentale de
pe internet, permite aplicațiilor să comunice cu garanții, indiferent de straturile inferioare ale
modelului TCP / IP. Aceasta înseamnă că routerele (stratul de rețea în modelul TCP / IP) trebuie
să trimită doar datagramele (unitatea de măsură în UDP). UDP acceptă mai multe protocoale de
nivel de aplicație, cum ar fi popularul DNS și chiar protocolul DHCP pentru a obține (și furniza)
adresarea IP în mod automat.
Caracteristici principale
Protocolul UDP permite trimiterea de dateagrame fără a fi necesară stabilirea unei conexiuni, este necesar
doar să aveți o priză deschisă la destinație pentru a accepta datagramele sursei. UDP este un protocol care
nu este conectat, adică nu se întâmplă ca în TCP unde există o fază de stabilire a conexiunii, aici sunt
trimise direct fără „avertizare” de stabilire prealabilă.
Acest protocol nu oferă niciun tip de control al debitului , dacă un dispozitiv este mai rapid decât altul și
trimite informații, este foarte posibil ca informațiile să se piardă, deoarece acestea se vor prăbuși cel mai
lent și va trebui să procedăm la transmiterea informațiilor. Un detaliu important este faptul că gestionarea
de expediere a datagramelor este realizată de stratul de transport, deoarece UDP este foarte simplu și nu
are mecanisme de control pentru redirecționarea datagramelor, deoarece s-a pierdut.
UDP nu oferă, de asemenea orice tip de control al congestie , în cazul în care există o congestie în rețea,
pachetele ar putea fi pierdute și, desigur, nu va fi responsabil de trimiterea lor, așa cum se întâmplă cu
TCP. Prin urmare, UDP nu are controlul congestiei, controlul fluxului sau controlul erorilor, s-ar putea
spune că UDP este un protocol nesigur. În plus, nu furnizează ordine în datagramele trimise și nici
informații dacă un datagrama a ajuns corect, deoarece nu există nicio confirmare de livrare sau de
primire. Orice tip de garanții pentru transmiterea informațiilor trebuie implementate în straturi superioare.
[bloc de inserție = ”1 ″]
Acest protocol este utilizat în principal în DHCP și DNS, unde viteza este mai importantă decât
fiabilitatea. UDP este utilizat pe scară largă în sarcinile de control al transmisiilor audio și video printr-o
rețea. UDP adaugă numai multiplexare și sumă de control al aplicației la antet și sarcină utilă.

Antetul UDP
UDP adaugă antetul de 8 octeți în fiecare datagramă. În acest antet UDP vom găsi portul sursă și
portul de destinație al conexiunii (socket), lungimea datagramei și checkum-ul datagramei
menționate pentru a verifica dacă acesta nu are erori, nici antetul, nici datele datagramei. ports
(port sursă și port destinație) sunt esențiale pentru buna funcționare a UDP. UDP folosește aceste
numere de port pentru a identifica o priză, adică o aplicație care emite date sau primește date.
TCP vs UDP în diferite protocoale VPN, cum ar fi OpenVPN
OpenVPN este un protocol pentru crearea rețelelor private virtuale care ne permit să asigurăm o
comunicare punct la punct, deoarece întregul trafic de tunel este criptat și autentificat.
OpenVPN ne permite să utilizăm atât protocolul TCP cât și UDP pentru tunelul de date, așa cum
ați văzut, TCP și UDP sunt foarte diferite și este întotdeauna recomandabil să utilizați TCP,
deoarece are controlul fluxului, controlul congestiei, controlul erorilor și multe alte funcții care
fac o conexiune fiabilă. Dacă doriți să utilizați OpenVPN, în mod implicit este utilizat UDP,
aceasta se datorează faptului că, dacă există probleme, protocoalele stratului de aplicație, cum ar
fi HTTP (care utilizează TCP de mai jos) vor fi responsabile pentru efectuarea retransmisiilor,
dacă a fost necesar, deci conexiunea ar fi fiabil (controlul fluxului, congestie, erori etc.) chiar
dacă tunelul criptat punct la punct folosește UDP.
Un aspect foarte important este faptul că un server OpenVPN cu UDP, va putea accepta mai
multe conexiuni primite simultan dacă utilizați UDP decât dacă utilizați TCP, în plus, vom avea
și o lățime de bandă mai mare, deoarece nu este adăugată o „încărcare” suplimentară. , pentru că
UDP este mult mai „ușor”.
După cum ați văzut, atât TCP, cât și UDP sunt două protocoale fundamentale de internet și
fiecare dintre acestea gestionează protocoale diferite ale stratului de aplicație.

S-ar putea să vă placă și