TCP si UDP, ce sunt si care sunt diferentele

iNoob | Stefanescu Mihai | 2022-12-02

Daca acum incepi sa inveti despre retelistica sau deja te-ai jucat putin in acest domeniu sigur ai intalnit acesti termeni, TC si UDP.

TCP vine de la Transmission Control Protocol, iar UDP care vinede la User Datagram Protocol sunt parte din suita de protocoale Internet Protocol. TCP si UDP sunt 2 metode diferite de a transmite informatii in retea.

Baze ale retelisticii

Inainte sa povestim cum functioneaza cele 2, TCP si UDP ar trebui sa trecem putin in revista modul in care functioneaza internetul.

Vorbind la modul general, internetul este o retea de dispozitive conectate unul la celalalt. Fiecare dispozitiv, fie ca este un telefon sau un server, comunica cu ajutorul suitei Internet Protocol.

Suita Internet Protocol este o colectie de diverse protocoale, sau metode, folosite de dispozitive pentru a comunica intre ele.

Legenda imagine:
FTP: File Transfer Protocol
SMTP: Simple Mail Transport Protocol
HTTP: Hyper Text Transfer Protocol
PPP: Point-to-point Protocol
ARP: Adress resolution protocol
ICMP: Internet control message protocol
UDP: User datagram protocol
TCP: Transmission Control Protocol

Fiecare dispozitiv ce este conectat la internet are o adresa unica (IP). Cand 2 dispozitive comunica prin internet mai mult ca sigur folosesc fie TCP fie UDP.

Iata o imagine care explica cat se poate de succint cele 2:

Pentru mai multe detalii legat de modul in care functioneaza internet-ul am sa va recomand acest video:

 

Ce este TCP?

TCP, sau Transmission Control Protocol cred ca este cel mai comun protocol. TCP este foarte stabil si este folosit pentru a naviga pe internet (HTTP), pentru trimis mailuri (SMTP), pentru transferul de fisiere (FTP) si altele.

TCP este folosit in situatiile in care este necesar ca datele trimise de un device sa fie primite de celalalt device in mod complet.

De exemplu, cand intri pe un website, TCP este folosit pentru a garanta ca totul, cod, text, imagini, etc, ajunge la client. Fara TCP, imaginile sau textul ar putea lipsi, sau ar putea ajunge in ordinea gresita si sa strice modul in care este afisat site-ul.

TCP este connection-oriented, asta inseamna ca stabileste o conexiune intre device-uri inainte de a transfera informatiile si mentine conexiunea pe intreaga durata a procesului de transfer.

Pentru a stabili o conexiune intre device-uri TCP foloseste o metoda numita three-way handshake:

De exemplu, pentru a citi acest articol, prima data dispozitivul tau a trimis un mesaj de tip SYN (Syncronize Sequence Number) catre serverul invata-programare.
Apoi, serverul invata-programare a trimis inapoi un mesaj de acknowledgement (SYN-ACK).
Cand dispozitivul tau a primit mesajuld e tip SYN-ACK de la server a trimis inapoi un mesaj de tip ACK care a stabilit conexiunea.

O data ce o conexiune TCP a fost creata intre dispozitive, acest protocol garanteaza ca toate datele sunt transmise.

Intorcandu-ma la exemplul de mai sus, o data ce s-a terminat procesul de three-way handshake, serverul invata-programare a input sa trimita toate datele necesare ca tu sa poti citi acest articol.

Toate device-urile impart datele trimise in pachete mici inainte de a le trimite prin internet, apoi urmand sa fie "asamblate" la loc.

Asadar, cand serverul invata-programare trimite HTML, CSS, JavaScript, imagini si alte lucruri necesare afisari articolului, imparte totul in pachete mici inainte de a le trimite catre dispozitivul tau. Apoi, dispozitivul tau compune tot mesajul din packetele trimise.

TCP asigura ca toate aceste pachete ajung pe dispozitivul tau, iar daca vre-un pachet se pierde dispozitivul poate determina ce pachet lipseste su il poate cere din nou de la server.

O data ce toate pachetele au fost trimise pe dispozitiv, conexiunea TCP se inchide folosind o metoda similara three-way handshake, dar de aceasta data foloseste mesaje de tip FIN si ACK.

Ce este UDP?

UDP, sau User Datagram Protocol, este un alt protocol din suita Internet Protocol. UDP nu este atat de "sigur" cand vorbim de integritatea transmisiei datelor ca TCP, dar este mult mai simplu.

UDP este folosit in momentele in care pierderea unor date este acceptabila, precum live audio/video streaming, sau situatiile in care viteza este un fatcor critic, de exemplu in cazul jocurilor online.

In timp ce UDP este similar cu TCP in ceea ce priveste obiectivul, acela de a trimite date prin internet, exista cateva diferente intre ele.

In primul rand UDP este un protocol connectionless, adica nu stabileste o conexiunea inte de trimiterea datelor cum face TCP acel three-way handshake.

UDP nu garanteaza ca toate datele au fost transferate cu success. UDP trimite datele oricarui dispozitiv care asculta, dar nu tine cont daca o parte dintrre pachete s-au pierdut pe drum. De asta acest protocol mai este stiut si ca protocolul "fire-and-forget".

Concluzii

Daca vorbim de viteza, am putea spune ca UDP este mai rapid, dar acest lucru nu inseamna ca este un protocol mai bun ca TCP.
Pur si simplu sunt diferite si au intrebuintari diferite.

UDP este mult mai simplu pentru ca nu incearca sa stabileasca o conexiune inainte de a trimite datele si de asemenea, nici nu verifica integritatea datelor.

TCP, de asemenea, permite si buffering, adica browser-ul tau poate cere mai multe date pe masura ce le consumi pe cele existente (de exemplu cat timp vezi o parte din video, browser-ul cere continuarea inainte de a ajunge acolo ca sa vezi fara ca video-ul sa se opreasca).

UDP este ideal pentru live video/audo si online gaming pentru ca acolo ai nevoie de viteza.

Fin

Sper ca acest articol te-a ajutat sa intelegi mai bine aceste 2 protocoale (TCP si UDP).

 

 

 

 


Imi place ce faci aici
Daca iti place ce fac aici imi poti cumpara o cafea Buy Me a Coffee at ko-fi.com

Stefanescu Mihai
Programator de ~8 ani, am lucrat la proiecte din mai multe industrstrii, de la eCommerce la telecomunicatii la automatizari. In acest timp am folosi diferite tehnologii, de la PHP, MySQL, PostgreSql, RabbitMq, Redis, Memcached si altele.
       

Get in touch
Pentru nelamuriri, dubii, comentarii si chestii de pe suflet ne putem auzi pe Discord, Reddit sau poti deschide o discutie noua pe forum.

Posteaza un comentariu

Comentarii

Inca nu au fost postate comentarii, fii primul care posteaza un comentariu!

Club-ul este dedicat membrilor si ofera access la mai multe zone ale website-ului.

🗝ïļ Login 🌟 Register

🔖 Bookmarks ⊞
âœĻ Pentru a sustine aceasta comunitate am sa te rog sa te autentifici sau sa te inregistrezi!

🌊ïļ Discord ⊞

Folosim cookie-uri pentru a oferi functionalitatile critice ale aplicatiei Invata-Programare. Folosim cookie-uri si pentru a analiza traficul, pentru care e nevoie de consimtamantul dvs. explicit.

⮆ïļ