Funcțiile protocoalelor tcp și udp. Protocoale de transfer de date TCP și UDP. Ce este o adresă MAC

Toate schimburile de procese de rețea care au loc pe computere sunt descrise de către cei general acceptați sistem OSI. Modelul OSI include șapte niveluri de interacțiune a procesului:

  1. Fizic. Mediu de propagare a semnalului (semnale prin cablu sau radio);
  2. Conductă. Indică un format de date în care informațiile sunt convertite în cadre și guvernate de protocolul Ethernet comun;
  3. Reţea. Definește metode de rutare;
  4. Transport. Transmite date prin protocoale TCP, UDP etc.;
  5. Sesiune. Oferă suport în timpul unei sesiuni de comunicare;
  6. Executiv. Pregătește datele pentru transmiterea ulterioară prin rețea (conversie, decompresie, decriptare);
  7. Aplicat. Controlează interacțiunea diferitelor aplicații personalizate cu servicii de rețea.

Pentru a transfera date între două dispozitive din rețele Internet diferite, se utilizează suita de protocoale TCP/IP. Transportul de date în stiva TCP/IP poate fi efectuat prin diferite protocoale, inclusiv TCP și UDP.

Caracteristici TCP

Protocolul TCP este un flux de informații sub formă canal virtualîntre noduri cu o conexiune prestabilită obligatorie. Folosit pentru transmisie fiabilă volume mari informații între dispozitivele din rețea.

Pentru a asigura o conexiune fiabilă, TCP are o procedură în trei pași pentru pornirea unei sesiuni de comunicare. În acest caz, serverului și clientului li se solicită valoarea portului și valoarea ISN. Pachetul TCP trebuie să conțină o sumă de control, care determină corectitudinea transferului de informații.

Caracteristica UDP

Protocolul UDP este fluxul de informații între noduri sub formă de datagrame (pachete de date necontrolate). În acest caz, nu este nevoie să garantați primirea, nu este nevoie să eliminați pachetele duplicate și să controlați locația acestora.

Transmiterea datelor prin UDP este în general considerată nesigură, dar s-a dovedit a fi extrem de importantă și indispensabilă pentru aplicații în timp real, jocuri online, IPTV, VOIP. Capacitatea UDP de a evita verificarea inițială a conexiunii, menținerea ordinii și integrității permite renunțarea la datagramele pierdute, ceea ce duce la un transfer mai rapid de informații.

Diferențele fundamentale între TCP și UDP

Funcții UDP TCP
Procedura de configurare a conexiunii Nu este necesar Procedura obligatorie în trei etape pentru începerea unei sesiuni de comunicare
Schimb de trafic garantat Pachetele se pot pierde Confirmarea și retransmiterea elimină pierderea de date
Menținerea ordinii de livrare a mesajelor Datagrame neordonate Ordinea strictă a pachetelor transmise
Controlul și managementul fluxului Transmiterea pachetelor de date nu este controlată Monitorizează și gestionează fluxul de date
Notificări despre supraîncărcări Nu este protejat de suprasarcini Notificări despre supraîncărcări
Menține limitele mesajelor transmise Păstrează întotdeauna limitele datagramelor transmise Nu păstrează limitele mesajelor transmise, dar garantează integritatea acestora
Segmentarea și asamblarea pachetelor de informații Nu Sprijinit
Interacțiuni cu conexiuni pe jumătate deschise Resincronizarea nu are loc Conexiunea se face prin resincronizare
Verificarea accesibilității Nu da

protocoale TCPși UDP

TCP-Protocol de control al transmisiei

Comunicarea orientată spre conexiune poate folosi comunicare de încredere, pentru care protocolul de nivel 4 trimite confirmări de primire a datelor și solicitări retransmisie, dacă datele nu sunt primite sau sunt corupte. Protocolul TCP folosește o astfel de comunicare fiabilă. TCP este folosit în astfel de cazuri protocoale de aplicare precum HTTP, FTP, SMTP și Telnet.

Protocolul TCP necesită ca o conexiune să fie deschisă înainte de a putea fi trimis un mesaj. Aplicația server trebuie să facă ceea ce se numește deschis pasiv pentru a crea o conexiune la un număr de port cunoscut și, în loc să trimită apelul în rețea, serverul așteaptă cererile primite. Aplicație client trebuie să îndeplinească deschis activ prin a trimite aplicație server numărul de secvență de sincronizare (SYN) care identifică conexiunea. Aplicația client poate utiliza un număr de port dinamic ca port local.

Serverul trebuie să trimită o confirmare (ACK) clientului împreună cu număr de serie(SYN) server. La rândul său, clientul răspunde cu ACK, iar conexiunea este stabilită.

După aceasta, procesul de trimitere și primire a mesajelor poate începe. Când se primește un mesaj, un mesaj ACK este trimis întotdeauna ca răspuns. Dacă expirarea expiră înainte ca expeditorul să primească ACK, mesajul este pus în coadă pentru retransmitere.

Câmpurile antetului TCP sunt listate în următorul tabel:

Antet TCP
Camp Lungime Descriere
Port sursă 2 octeți Numărul portului sursă
Portul de destinație 2 octeți Numărul portului de destinație
Număr de serie 4 octeți Numărul de secvență este generat de sursă și utilizat de destinație pentru a reordona pachetele pentru a crea mesajul original și a trimite o confirmare către sursă.
Număr de confirmare 4 octeți Dacă bitul ACK al câmpului Control este setat, acest câmp conține următorul așteptat număr de serie.
Compensarea datelor 4 biți Informații despre începutul unui pachet de date.
rezervă 6 biți Rezervat pentru utilizare ulterioară.
Control 6 biți Biții de control conțin steaguri care indică dacă câmpurile de confirmare (ACK), urgență (URG), dacă conexiunea trebuie resetata (RST), dacă numărul de serie de sincronizare (SYN) a fost trimis etc.
Dimensiunea ferestrei 2 octeți Acest câmp specifică dimensiunea buffer-ului de recepție. Folosind mesaje de confirmare, destinatarul poate informa expeditorul despre dimensiune maximă datele pe care le poate trimite.
Verificați suma 2 octeți Antet și sumă de verificare a datelor; determină dacă pachetul a fost corupt.
Indicator de urgență 2 octeți În acest domeniu dispozitivul țintă primește informații despre urgența datelor.
Opțiuni variabil Valori opționale care sunt specificate dacă este necesar.
Plus variabil În câmpul de completare sunt adăugate suficiente zerouri, astfel încât antetul să se termine pe o limită de 32 de biți.

TCP este un protocol complex, consumator de timp, datorită mecanismului său de stabilire a conexiunii, dar se ocupă de livrarea garantată a pachetelor fără a fi necesar să-l activăm. funcţionalitateîn protocolul de aplicare.

Protocolul TCP are încorporate capabilități de livrare fiabile. Dacă mesajul nu este trimis corect, vom primi un mesaj de eroare. Protocolul TCP este definit în RFC 793.

UDP - User Datagram Protocol

Spre deosebire de TCP, UDP este un protocol foarte rapid, deoarece definește mecanismul minim necesar pentru transferul de date. Desigur, are unele dezavantaje. Mesajele sosesc în orice ordine, iar cel trimis primul poate fi primit ultimul. Livrarea mesajelor UDP nu este deloc garantată, mesajul poate fi pierdut și pot fi primite două copii ale aceluiași mesaj. Ultimul caz apare dacă sunt folosite două rute diferite pentru a trimite mesaje la o singură adresă.

UDP nu necesită deschiderea unei conexiuni, iar datele pot fi trimise imediat ce sunt pregătite. UDP nu trimite mesaje de confirmare, astfel încât datele pot fi primite sau pierdute. Dacă este necesar un transfer de date fiabil atunci când utilizați UDP, acesta ar trebui implementat într-un protocol de nivel superior.

Deci, care sunt avantajele UDP, de ce ar putea fi nevoie de un protocol atât de nesigur? Pentru a înțelege motivul utilizării UDP, trebuie să faceți distincția între transmisia unidirecțională, transmisia transmisă și transmisia multicast.

Mesaj unicast trimis de la un nod la un singur alt nod. Aceasta se mai numește și comunicare punct la punct. Protocolul TCP acceptă numai comunicații unidirecționale. Dacă un server trebuie să comunice cu mai mulți clienți folosind TCP, fiecare client trebuie să stabilească o conexiune, deoarece mesajele pot fi trimise doar către o singură gazdă.

Difuzareînseamnă că mesajul este trimis către toate nodurile din rețea. Distribuție în grup (multicast) este un mecanism intermediar: mesajele sunt trimise către grupuri selectate de noduri.

UDP poate fi utilizat pentru comunicare unidirecțională, dacă este necesar transfer rapid, de exemplu, pentru furnizarea de date multimedia, dar principalele avantaje ale UDP se referă la difuzare și multidifuzare.

Protocoalele de nivel de transport, următorii în ierarhie după IP, sunt folosite pentru a transfera date între procesele de aplicație care rulează pe nodurile de rețea. Un pachet de date primit de la un computer la altul prin intermediul internetului trebuie transferat într-un proces de gestionare și tocmai pentru un anumit scop. Stratul de transport își asumă responsabilitatea pentru acest lucru. La acest nivel există două protocoale principale – TCP și UDP.

Ce înseamnă TCP și UDP?

TCPprotocol de transport transmisie de date în rețele TCP/IP, care stabilește în prealabil o conexiune la rețea.
UDP– un protocol de transport care transmite mesaje datagrame fără a fi nevoie să se stabilească o conexiune într-o rețea IP.

Diferența dintre protocoalele TCP și UDP

Diferența dintre protocoalele TCP și UDP este așa-numita „garanție de livrare”. TCP necesită un răspuns de la clientul căruia i-a fost livrat pachetul de date, confirmarea livrării, iar pentru aceasta are nevoie de o conexiune prestabilită. De asemenea, protocolul TCP este considerat de încredere, în timp ce UDP a primit chiar numele de „protocol de datagramă nefiabil”. TCP elimină pierderea de date, duplicarea și amestecarea pachetelor și întârzierile. UDP permite toate acestea și nu necesită o conexiune pentru a funcționa. Procesele care primesc date prin UDP trebuie să se descurce cu ceea ce primesc, chiar și cu pierderi. TCP controlează congestionarea conexiunii, UDP nu controlează nimic altceva decât integritatea datagramelor primite.
Pe de altă parte, din cauza acestei nediscriminare și lipsă de control, UDP livrează pachete de date (datagrame) mult mai rapid, deci pentru aplicații care sunt concepute pentru o gamă largă de debituluiȘi schimb rapid,UDP poate fi considerat protocolul optim. Acestea includ jocuri de rețea și browser, precum și programe de vizionare video în flux și aplicații pentru comunicare video (sau voce): pierderea unui pachet, complet sau parțial, nu schimbă nimic, nu este necesară repetarea cererii, dar descărcarea este mult mai rapidă. Protocolul TCP, fiind mai fiabil, este folosit cu succes chiar și în programe de mail, permițându-vă să controlați nu numai traficul, ci și lungimea mesajului și viteza schimbului de trafic.

TheDifference.ru a stabilit că diferența dintre TCP și UDP este următoarea:

TCP garantează livrarea pachetelor de date într-o formă, secvență neschimbată și fără pierderi, UDP nu garantează nimic.
TCP necesită în avans conexiunea stabilită, nu este necesară conexiunea UDP.
UDP oferă mai mult de mare viteză transmiterea datelor.
TCP este mai fiabil și controlează procesul de schimb de date.
UDP este preferat pentru programele care rulează streaming video, videofonie și telefonie, jocuri de rețea.

8 răspunsuri

TCP este un flux orientat spre conexiune printr-o rețea IP. Se asigură că toate pachetele trimise ajung la destinație în În ordinea corectă. Aceasta implică utilizarea pachetelor de confirmare trimise înapoi către expeditor și retransmiterea automată, provocând întârzieri suplimentare și, în general, mai puține transfer eficient decât UDP.

UDP este un protocol fără conexiune. Comunicarea este orientată pe datagramă. Integritatea este garantată pe o singură datagramă. Datagramele ajung la destinație și pot eșua sau să nu ajungă deloc. Este mai eficient decât TCP deoarece nu folosește ACK. Este folosit de obicei pentru comunicații în timp real, unde un mic procent de pierdere de pachete este mai bun decât supraîncărcarea unei conexiuni TCP.

În anumite situații, se folosește UDP deoarece permite transmiterea transmisie de pachete. Acest lucru este uneori fundamental în cazuri precum protocol DHCP deoarece computerul client nu a primit încă o adresă IP (acesta este un protocol de protocol t26) și nu va exista nicio modalitate de a stabili un flux TCP fără o adresă IP.

UDP (User Datagram Protocol) este un protocol comun, utilizat pe scară largă pe Internet. Cu toate acestea, UDP nu este niciodată folosit pentru a trimite date sensibile, cum ar fi pagini web, informații de bază de date etc.; UDP este folosit în mod obișnuit pentru streaming audio și video. Streaming media, cum ar fi fișiere audio Windows Media(.WMA), Real Player (.RM) și altele folosesc UDP pentru că oferă viteză! Motivul pentru care UDP este mai rapid decât TCP este că nu există controlul fluxului sau corectarea erorilor. Datele trimise pe internet sunt afectate de coliziuni și vor fi prezente erori. Amintiți-vă că UDP este doar despre viteză. Acesta este motivul principal pentru care streaming media nu sunt de înaltă calitate.

1) TCP este orientat spre conexiune și de încredere, unde UDP este conexiune mai puțin și nesigur.

2) TCP necesită procesare suplimentară la nivel interfata retea, unde, ca și în UDP, nr.

3) TCP utilizează strângere de mână în trei căi, controlul congestiei, controlul fluxului și alte mecanisme pentru a asigura o transmisie fiabilă.

4) UDP este utilizat în principal în cazurile în care întârzierea pachetelor este mai gravă decât pierderea pachetului.

Gândiți-vă la TCP ca la pachete UPS/FedEx care programează între două locații, în timp ce UDP este echivalentul cu trimiterea unei cărți poștale la o cutie poștală.

UPS/FedEx va face tot posibilul pentru a se asigura că pachetul pe care îl trimiteți ajunge acolo și este primit la timp. Cu o carte poștală, ești norocos dacă ajunge și poate eșua sau întârzia (de câte ori ai primit o carte poștală de la cineva DUPĂ ce a ajuns acasă din vacanță?)

TCP este la fel de aproape de un protocol de livrare garantată pe cât puteți obține cu UDP - este pur și simplu „cel mai bun efort”.

Motivele pentru care UDP este utilizat pentru DNS și DHCP:

DNS - TCP necesită mai multe resurse de la server (care ascultă conexiuni) decât de la client. Mai exact, atunci când o conexiune TCP este închisă, serverul trebuie să-și amintească datele conexiunii (ținându-le în memorie) timp de două minute în timpul unei stări cunoscute sub numele de TIME_WAIT_2. Aceasta este o caracteristică care protejează împotriva pachetelor duplicate în mod eronat de la o conexiune anterioară care sunt interpretate ca parte a conexiunii curente. Menținerea TIME_WAIT_2 folosește memoria kernel pe server. Interogări DNS mici și adesea provenind de la clienți diferiți. Acest model de utilizare pune mai mult stres pe server în comparație cu clienții. Se credea că folosind UDP, care nu are conexiuni și nu menține starea pe client sau server, va îmbunătăți această problemă.

DHCP - DHCP este o extensie a BOOTP. BOOTP este un protocol care calculatoare client folosit pentru a obține informații de configurare de la server în timp ce clientul pornește. Pentru a găsi un server, o difuzare este trimisă cu o solicitare către serverele BOOTP (sau DHCP). Difuzarea poate fi trimisă numai printr-un protocol fără conexiune, cum ar fi UDP. Prin urmare, BOOTP a necesitat cel puțin un pachet UDP pentru a fi difuzat către server. De asemenea, deoarece BOOTP rulează în timp ce clientul... pornește și aceasta este o perioadă de timp în care clientul poate să nu aibă întreaga stivă TCP/IP încărcată și rulată, UDP poate fi singurul protocol pe care clientul este dispus să îl gestioneze în timpul acel timp. În cele din urmă, unii clienți DHCP/BOOTP au doar UDP la bord. De exemplu, unele termostate IP implementează doar UDP. Motivul este că sunt construite cu procesoare atât de mici și memorie mică încât nu pot face TCP, dar totuși trebuie să obțină o adresă IP atunci când pornesc.

După cum am menționat, UDP este util și pentru streaming media, în special audio. Conversațiile sună mai bine pe baza întârzierii rețelei dacă pur și simplu aruncați pachete întârziate. Puteți face acest lucru cu UDP, dar cu TCP tot ce obțineți în timpul întârzierii este o pauză urmată de sunet, care va fi întotdeauna întârziat atâta timp cât a fost deja întrerupt. Pentru fata-verso convorbiri telefonice este inacceptabil.

Una dintre diferențe este reducerea

UDP. Trimiteți un mesaj și nu vă uitați înapoi dacă atinge scopul, protocol fără conexiune
TCP: trimiteți un mesaj și asigurați-vă că ajungeți la destinație, protocol orientat spre conexiune

Protocoalele de nivel de transport, următorii în ierarhie după IP, sunt folosite pentru a transfera date între procesele de aplicație care rulează pe nodurile de rețea. Un pachet de date primit de la un computer la altul prin intermediul internetului trebuie transferat într-un proces de gestionare și tocmai pentru un anumit scop. Stratul de transport își asumă responsabilitatea pentru acest lucru. Există două protocoale principale la acest nivel - TCP și UDP.

Definiție

TCP— protocol de transport pentru transferul de date în rețelele TCP/IP, care stabilește în prealabil o conexiune la rețea.

UDP- un protocol de transport care transmite mesaje datagrame fără a fi nevoie să se stabilească o conexiune într-o rețea IP.

Comparaţie

Diferența dintre protocoalele TCP și UDP este așa-numita „garanție de livrare”. TCP necesită un răspuns de la clientul căruia i se livrează pachetul de date, confirmarea livrării, iar pentru aceasta are nevoie de o conexiune prestabilită. De asemenea, protocolul TCP este considerat de încredere, în timp ce UDP a primit chiar numele de „protocol de datagramă nesigur”. TCP elimină pierderea de date, duplicarea și amestecarea pachetelor și întârzierile. UDP permite toate acestea și nu necesită o conexiune pentru a funcționa. Procesele care primesc date prin UDP trebuie să se descurce cu ceea ce primesc, chiar și cu pierderi. TCP controlează congestionarea conexiunii, UDP nu controlează nimic altceva decât integritatea datagramelor primite.

Pe de altă parte, din cauza unei astfel de nediscriminare și lipsă de control, UDP livrează pachete de date (datagrame) mult mai rapid, prin urmare, pentru aplicațiile care sunt proiectate pentru debit mare și schimb rapid, UDP poate fi considerat protocolul optim. Acestea includ jocuri de rețea și browser, precum și programe de vizionare video în flux și aplicații pentru comunicare video (sau voce): pierderea unui pachet, complet sau parțial, nu schimbă nimic, nu este necesară repetarea cererii, dar descărcarea este mult mai rapidă. Protocolul TCP, fiind mai fiabil, este folosit cu succes chiar și în programele de e-mail, permițându-vă să controlați nu numai traficul, ci și lungimea mesajului și viteza schimbului de trafic.

Site-ul de concluzii

  1. TCP garantează livrarea pachetelor de date într-o formă, secvență neschimbată și fără pierderi, UDP nu garantează nimic.
  2. TCP necesită o conexiune prestabilită, UDP nu necesită o conexiune.
  3. UDP oferă rate de transfer de date mai mari.
  4. TCP este mai fiabil și controlează procesul de schimb de date.
  5. UDP este de preferat pentru programele care redă streaming video, videofonie și telefonie și jocuri de rețea.