User Datagram Protocol
User Datagram Protocol (sau UDP, în traducere liberă din engleză Protocolul Datagramelor Utilizator[1]) este un protocol de comunicație pentru calculatoare ce aparține nivelului Transport (nivelul 4 ) al modelului standard OSI.
Împreună cu Internet Protocol (IP), acesta face posibilă livrarea mesajelor într-o rețea. Spre deosebire de protocolul TCP, UDP constituie modul de comunicație fără conexiune. Este similar cu sistemul poștal, în sensul că pachetele de informații (corespondența) sunt trimise în general fără confirmare de primire, în speranța că ele vor ajunge, fără a exista o legătură efectivă între expeditor și destinatar.[2] Practic, UDP este un protocol ce nu oferă siguranța sosirii datelor la destinație (nu dispune de mecanisme de confirmare); totodată nu dispune nici de mecanisme de verificare a ordinii de sosire a datagramelor sau a datagramelor duplicate. UDP dispune, totusi, în formatul datagramelor, de sume de control pentru verificarea integrității datelor sau de informații privind numărul portului pentru adresarea diferitelor funcții la sursa/destinație.
Caracteristicile de baza ale UDP îl fac util pentru diferite aplicații.
- orientat către tranzacții - util în aplicații simple de tip întrebare-răspuns cum ar fi DNS.
- este simplu foarte util în aplicații de configurări, precum DHCP sau TFTP (Trivial FTP).
- lipsa întârzierilor de retransmisie îl pretează pentru aplicații în timp real ca VoIP, jocuri online.
- lucrează excelent în medii de comunicații unidirecționale precum furnizarea de informații broadcast, în servicii de descoperire (discovery services), sau în partajarea de informații către alte noduri (RIP).
Formatul pachetului
[modificare | modificare sursă]Antetul UDP este alcătuit din 4 câmpuri fiecare având lungimea de 2 octeți.
Biti | 0 - 15 | 16 - 32 |
---|---|---|
0 | Portul sursa | Portul destinație |
32 | Lungime | Suma de control |
64 | Date |
- Portul sursa - în adresarea bazata pe IPv4 acest câmp este opțional. Daca nu este utilizat acest câmp, are valoarea zero; când reprezinta informație semnificativa, el va indica portul inițiator al procesului de transmisie a datagramelor.
- Portul destinație - spre deosebire de portul sursa, câmpul este obligatoriu și indica portul de recepție
- Lungime - acest câmp indica lungimea în octeți a datagramei: antet plus secțiune de date (valoarea minima a lungimii este 8).
- Suma de control - asigura imunitatea la erori; se calculează ca fiind complementul fata de 1 (pe 16 biți) a pseudo-antetului cu informații extrase din antetul IP, antetului UDP și a câmpului de date, eventual se completează cu zerouri pentru a atinge lungimea stabilita.
Pseudo-anteturi
[modificare | modificare sursă]Pseudo-antetul prefixează antetul UDP și va conține, printre altele, adresele sursa, destinație, lungimea pachetului UDP.
Pseudo-antetul IPv4
[modificare | modificare sursă]Atunci când UDP rulează sub IPv4, pseudo-antetul este utilizat în calcularea sumei de control; formatul acestuia va arata astfel (s-a prezentat situatia reala cu antetul UDP în continuarea pseudo-antetului).
Biți | 0 - 7 | 8 - 15 | 16 - 23 | 24 - 31 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Adresa sursa | |||||||||||||||||||||||||||||||
32 | Adresa destinație | |||||||||||||||||||||||||||||||
64 | Zero | Protocol | Lungime UDP | |||||||||||||||||||||||||||||
96 | Portul sursa | Portul destinație | ||||||||||||||||||||||||||||||
128 | Lungime | Suma de control | ||||||||||||||||||||||||||||||
160 | Date |
Campul Protocol are valoarea 17 (hexazecimal 0x11) specifica protocolului UDP.
Pseudo-antetul IPv6
[modificare | modificare sursă]Atunci cand UDP ruleaza sub IPv6, suma de control este obligatorie. Metoda de calcul este descrisa in RFC 2460.
Biți | 0 - 7 | 8 - 15 | 16 - 23 | 24 - 31 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Adresa sursa | |||||||||||||||||||||||||||||||
32 | ||||||||||||||||||||||||||||||||
64 | ||||||||||||||||||||||||||||||||
96 | ||||||||||||||||||||||||||||||||
128 | Adresa destinație | |||||||||||||||||||||||||||||||
160 | ||||||||||||||||||||||||||||||||
192 | ||||||||||||||||||||||||||||||||
224 | ||||||||||||||||||||||||||||||||
256 | Lungime UDP | |||||||||||||||||||||||||||||||
288 | Zero | Antetul următor | ||||||||||||||||||||||||||||||
320 | Portul sursa | Portul destinație | ||||||||||||||||||||||||||||||
352 | Lungime | Suma de control | ||||||||||||||||||||||||||||||
384 | Date |
Note
[modificare | modificare sursă]- ^ Andrew S. Tannenbaum (). „Rețele de calculatoare”. Editura Byblos. p. 39.
- ^ Veaceslav Soltan. „Suport de curs pentru modulul Tehnologii informaționale”. Institutul Național al Justiției, Chișinău. p. 23. Arhivat din original la . Accesat în .
Vezi și
[modificare | modificare sursă]Legături externe
[modificare | modificare sursă]