.\" -*- coding: UTF-8 -*- .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-1-para .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH udp 7 "17 mai 2025" "Pagini de manual de Linux 6.15" .SH NUME udp \- protocolul de datagramă\-utilizator pentru IPv4 .SH SINOPSIS .nf \fB#include \fP \fB#include \fP \fB#include \fP .P \fIudp_socket\fP\fB = socket(AF_INET, SOCK_DGRAM, 0);\fP .fi .SH DESCRIERE Aceasta este o implementare a protocolului de dategramă de utilizator descris în RFC 768. Acesta implementează un serviciu de pachete de date fără conexiune, nesigur. Pachetele pot fi reordonate sau duplicate înainte de a ajunge la destinație. UDP generează și verifică sumele de control pentru a detecta erorile de transmisie. .P Atunci când se creează un soclu UDP, adresele sale locale și la distanță nu sunt specificate. Datagramele pot fi trimise imediat folosind \fBsendto\fP(2) sau \fBsendmsg\fP(2) cu o adresă de destinație validă ca argument. Atunci când \fBconnect\fP(2) este apelat pe soclu, adresa de destinație implicită este definită, iar datagramele pot fi acum trimise utilizând \fBsend\fP(2) sau \fBwrite\fP(2) fără a specifica o adresă de destinație. Este în continuare posibilă trimiterea către alte destinații prin transmiterea unei adrese către \fBsendto\fP(2) sau \fBsendmsg\fP(2). Pentru a primi pachete, soclul poate fi legat mai întâi la o adresă locală utilizând \fBbind\fP(2). În caz contrar, stratul de soclu va atribui automat un port local liber din intervalul definit de \fI/proc/sys/net/ipv4/ip_local_port_range\fP și va lega soclul la \fBINADDR_ANY\fP. .P Toate operațiile de recepție returnează un singur pachet. Atunci când pachetul este mai mic decât tamponul transmis, se returnează doar acea cantitate de date; atunci când este mai mare, pachetul este trunchiat și se activează fanionul \fBMSG_TRUNC\fP. \fBMSG_WAITALL\fP nu este acceptat. .P Opțiunile IP pot fi trimise sau primite utilizând opțiunile de soclu descrise în \fBip\fP(7). Acestea sunt prelucrate de nucleu numai atunci când parametrul \fI/proc\fP corespunzător este activat (dar sunt transmise utilizatorului chiar și atunci când acesta este dezactivat). A se vedea \fBip\fP(7). .P Atunci când fanionul \fBMSG_DONTROUTE\fP este activat la trimitere, adresa de destinație trebuie să se refere la adresa unei interfețe locale, iar pachetul este trimis numai către acea interfață. .P În mod implicit, Linux UDP face descoperirea traseului MTU (Maximum Transmission Unit). Aceasta înseamnă că nucleul va ține evidența MTU către o anumită adresă IP țintă și va returna \fBEMSGSIZE\fP atunci când scrierea unui pachet UDP îl depășește. Atunci când se întâmplă acest lucru, aplicația ar trebui să reducă dimensiunea pachetului. Descoperirea MTU a rutei poate fi, de asemenea, dezactivată utilizând opțiunea de soclu \fBIP_MTU_DISCOVER\fP sau fișierul \fI/proc/sys/net/ipv4/ip_no_pmtu_disc\fP; consultați \fBip\fP(7) pentru detalii. Atunci când este dezactivat, UDP va fragmenta pachetele UDP ieșite care depășesc MTU\-ul interfeței. Cu toate acestea, dezactivarea nu este recomandată din motive de performanță și fiabilitate. .SS "Formatul adreselor" UDP utilizează formatul de adresă IPv4 \fIsockaddr_in\fP descris în \fBip\fP(7). .SS "Gestionarea erorilor" Toate erorile fatale vor fi transmise utilizatorului ca răspuns la eroare, chiar și atunci când soclul nu este conectat. Aceasta include erorile asincrone primite din rețea. Puteți primi o eroare pentru un pachet anterior care a fost trimis pe același soclu. Acest comportament diferă de multe alte implementări de soclu BSD care nu transmit nicio eroare decât dacă soclul este conectat. Comportamentul Linux este impus de \fBRFC 1122\fP. .P Pentru compatibilitate cu codul vechi, în Linux 2.0 și 2.2 a fost posibilă definirea opțiunii \fBSO_BSDCOMPAT\fP \fBSOL_SOCKET\fP pentru a primi erori la distanță numai atunci când soclul a fost conectat (cu excepția \fBEPROTO\fP și \fBEMSGSIZE\fP). Erorile generate la nivel local sunt întotdeauna transmise. Suportul pentru această opțiune de soclu a fost eliminat în nucleele ulterioare; consultați \fBsocket\fP(7) pentru informații suplimentare. .P Atunci când opțiunea \fBIP_RECVERR\fP este activată, toate erorile sunt stocate în coada de erori a soclului și pot fi primite de \fBrecvmsg\fP(2) cu fanionul \fBMSG_ERRQUEUE\fP activat. .SS "Interfețe „/proc”" Reglajele parametrilor UDP la nivelul întregului sistem pot fi accesate de fișierele din directorul \fI/proc/sys/net/ipv4/\fP. .TP \fIudp_mem\fP (începând cu Linux 2.6.25) Acesta este un vector format din trei numere întregi care guvernează numărul de pagini permise pentru coada de așteptare de către toate soclurile UDP. .RS .TP \fImin\fP Sub acest număr de pagini, UDP nu este preocupat de apetitul său pentru memorie. Atunci când cantitatea de memorie alocată de UDP depășește acest număr, UDP începe să modereze utilizarea memoriei. .TP \fIpressure\fP Această valoare a fost introdusă pentru a respecta formatul \fItcp_mem\fP (a se vedea \fBtcp\fP(7)). .TP \fImax\fP Numărul de pagini admise în coada de așteptare de către toate soclurile UDP. .RE .IP Valorile implicite pentru aceste trei elemente sunt calculate la pornire din cantitatea de memorie disponibilă. .TP \fIudp_rmem_min\fP (număr întreg; valoare implicită: PAGE_SIZE; începând cu Linux 2.6.25) Dimensiunea minimă, în octeți, a tampoanelor de recepție utilizate de soclurile UDP în mod moderat. Fiecare soclu UDP este capabil să utilizeze dimensiunea pentru primirea datelor, chiar dacă paginile totale ale soclurilor UDP depășesc pragul \fIudp_mem\fP. .TP \fIudp_wmem_min\fP (număr întreg; valoare implicită: PAGE_SIZE; începând cu Linux 2.6.25) Dimensiunea minimă, în octeți, a tamponului de trimitere utilizat de soclurile UDP în mod moderat. Fiecare soclu UDP este capabil să utilizeze dimensiunea pentru trimiterea de date, chiar dacă numărul total de pagini ale soclurilor UDP depășește pragul \fIudp_mem\fP. .SS "Opțiuni de soclu" Pentru a defini sau a obține o opțiune de soclu UDP, apelați \fBgetsockopt\fP(2) pentru a citi sau \fBsetsockopt\fP(2) pentru a scrie opțiunea cu argumentul de nivel al opțiunii stabilit la \fBIPPROTO_UDP\fP. Dacă nu se specifică altfel, \fIoptval\fP este un indicator către un \fIint\fP. .P În continuare este prezentată o listă a opțiunilor de soclu specifice UDP. Pentru detalii despre alte opțiuni de soclu care sunt de asemenea aplicabile soclurilor UDP, consultați \fBsocket\fP(7). .TP \fBUDP_CORK\fP (începând cu Linux 2.5.44) .\" FIXME document UDP_ENCAP (new in Linux 2.5.67) .\" From include/linux/udp.h: .\" UDP_ENCAP_ESPINUDP_NON_IKE draft-ietf-ipsec-nat-t-ike-00/01 .\" UDP_ENCAP_ESPINUDP draft-ietf-ipsec-udp-encaps-06 .\" UDP_ENCAP_L2TPINUDP rfc2661 .\" FIXME Document UDP_NO_CHECK6_TX and UDP_NO_CHECK6_RX, added in Linux 3.16 Dacă această opțiune este activată, atunci toate datele transmise pe acest soclu sunt acumulate într\-o singură datagramă care este transmisă atunci când opțiunea este dezactivată. Această opțiune nu ar trebui utilizată în codul destinat să fie portabil. .TP \fBUDP_SEGMENT\fP (începând cu Linux 4.18) Activează descărcarea de segmentare UDP. Descărcarea de segmentare reduce costul \fBsend\fP(2) prin transferul mai multor datagrame de date sub forma unui singur pachet mare prin ruta de transmisie a nucleului, chiar și atunci când aceasta depășește MTU. Cât mai târziu posibil, pachetul mare este împărțit în funcție de dimensiunea segmentului într\-o serie de datagrame. Această etapă de descărcare a segmentării este amânată la hardware dacă este acceptată, în caz contrar fiind efectuată în software. Această opțiune ia o valoare în intervalul [\fB0\fP,\ \fBUSHRT_MAX\fP] care stabilește dimensiunea segmentului: dimensiunea sarcinii utile a datagramelor, excluzând antetul UDP. Dimensiunea segmentului trebuie aleasă astfel încât cel mult 64 de datagrame să fie trimise într\-un singur apel și ca datagramele după segmentare să respecte aceleași reguli MTU care se aplică datagramelor trimise fără această opțiune. Descărcarea segmentării depinde de descărcarea sumelor de control, deoarece sumele de control ale datagramelor sunt calculate după segmentare. Opțiunea poate fi, de asemenea, definită pentru apelurile individuale \fBsendmsg\fP(2) prin transmiterea acesteia ca \fBcmsg\fP(3). O valoare de zero dezactivează caracteristica. Această opțiune nu ar trebui utilizată în codul destinat să fie portabil. .TP \fBUDP_GRO\fP (începând cu Linux 5.0) Activează descărcarea recepției UDP. Dacă este activată, soclul poate primi mai multe datagrame de date ca un singur tampon mare, împreună cu un \fBcmsg\fP(3) care conține dimensiunea segmentului. Această opțiune este inversă descărcării de segmentare. Aceasta reduce costurile de recepție prin gestionarea mai multor datagrame de date ca un singur pachet mare în ruta de recepție a nucleului, chiar și atunci când aceasta depășește MTU. Această opțiune nu ar trebui utilizată în codul destinat să fie portabil. .SS Ioctl\-uri Aceste ioctl\-uri pot fi accesate folosind \fBioctl\fP(2). Sintaxa corectă este: .P .RS .nf \fBint\fP\fI value\fP\fB;\fP \fIerror\fP\fB = ioctl(\fP\fIudp_socket\fP\fB, \fP\fIioctl_type\fP\fB, &\fP\fIvalue\fP\fB);\fP .fi .RE .TP \fBFIONREAD\fP (\fBSIOCINQ\fP) .\" See http://www.securiteam.com/unixfocus/5KP0I15IKO.html .\" "GNUnet DoS (UDP Socket Unreachable)", 14 May 2006 Obține un indicator la un număr întreg ca argument. Returnează dimensiunea următoarei datagrame în așteptare în număr întreg, în octeți, sau 0 atunci când nu există nicio datagramă în așteptare. \fBAvertisment:\fP Utilizând \fBFIONREAD\fP, este imposibil să se distingă cazul în care nu există nicio datagramă în așteptare de cazul în care următoarea datagramă în așteptare conține zero octeți de date. Este mai sigur să utilizați \fBselect\fP(2), \fBpoll\fP(2) sau \fBepoll\fP(7) pentru a distinge aceste cazuri. .TP \fBTIOCOUTQ\fP (\fBSIOCOUTQ\fP) Returnează numărul de octeți de date din coada de expediere locală. Compatibil numai cu Linux 2.4 și versiunile ulterioare. .P În plus, sunt acceptate toate ioctl\-urile documentate în \fBip\fP(7) și \fBsocket\fP(7). .SH ERORI\-IEȘIRE Toate erorile documentate pentru \fBsocket\fP(7) sau \fBip\fP(7) pot fi returnate de o trimitere sau o primire pe un soclu UDP. .TP \fBECONNREFUSED\fP Niciun receptor nu a fost asociat cu adresa de destinație. Acest lucru ar putea fi cauzat de un pachet anterior trimis prin soclu. .SH VERSIUNI .\" .SH CREDITS .\" This man page was written by Andi Kleen. \fBIP_RECVERR\fP a apărut ca o caracteristică nouă în Linux 2.2. .SH "CONSULTAȚI ȘI" \fBip\fP(7), \fBraw\fP(7), \fBsocket\fP(7), \fBudplite\fP(7) .P Fișierul sursă al nucleului \fIDocumentation/networking/ip\-sysctl.txt\fP. .P RFC 768 pentru Protocolul Datagramă Utilizator\- UDP. .br RFC 1122 pentru cerințele privind gazdele. .br RFC 1191 pentru o descriere a descoperirii MTU a rutei. .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .