.\" -*- coding: UTF-8 -*- '\" t .\" SPDX-License-Identifier: Linux-man-pages-1-para .\" .\" This man page is Copyright (C) 1999 Andi Kleen . .\" .\" $Id: raw.7,v 1.6 1999/06/05 10:32:08 freitag Exp $ .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH raw 7 "2 mai 2024" "Pagini de manual de Linux 6.12" .SH NUME raw \- socluri Linux IPv4 raw (brute) .SH SINOPSIS .nf \fB#include \fP \fB#include \fP \fBraw_socket = socket(AF_INET, SOCK_RAW, int \fP\fIprotocol\fP\fB);\fP .fi .SH DESCRIERE Soclurile brute permit implementarea noilor protocoale IPv4 în spațiul utilizatorului. Un soclu brut primește sau trimite diagrama de date brută, fără a include antetele nivelului/stratului de legătură(conexiune). .P Stratul IPv4 generează un antet IP atunci când trimite un pachet, cu excepția cazului în care opțiunea de soclu \fBIP_HDRINCL\fP este activată pe soclu. Atunci când aceasta este activată, pachetul trebuie să conțină un antet IP. Pentru recepție, antetul IP este întotdeauna inclus în pachet. .P Pentru a crea un soclu brut, un proces trebuie să aibă capacitatea \fBCAP_NET_RAW\fP în spațiul de nume al utilizatorului care guvernează spațiul său de nume de rețea. .P Toate pachetele sau erorile care corespund numărului \fIprotocol\fP specificat pentru soclul brut sunt transmise către acest soclu. Pentru o listă a protocoalelor permise, consultați lista IANA de numere de protocol atribuite la .UR http://www.iana.org/assignments/protocol\-numbers/ .UE și \fBgetprotobyname\fP(3). .P Un protocol \fBIPPROTO_RAW\fP implică activarea \fBIP_HDRINCL\fP și poate trimite orice protocol IP care este specificat în antetul transmis. Primirea tuturor protocoalelor IP prin \fBIPPROTO_RAW\fP nu este posibilă utilizând socluri brute. .RS .TS tab(:) allbox; c s l l. Câmpurile antetului IP modificate la trimiterea prin \fBIP_HDRINCL\fP IP Checksum:Întotdeauna completat Source Address:Completat când este zero Packet ID:Completat când este zero Lungimea totală:Întotdeauna completat .TE .RE .P Dacă \fBIP_HDRINCL\fP este specificat și antetul IP are o adresă de destinație diferită de zero, atunci adresa de destinație a soclului este utilizată pentru direcționarea pachetului. Atunci când se specifică \fBMSG_DONTROUTE\fP, adresa de destinație trebuie să se refere la o interfață locală, altfel se efectuează oricum o căutare în tabela de direcționare, dar rutele gateway (prin poartă de acces) sunt ignorate. .P Dacă \fBIP_HDRINCL\fP nu este activat, atunci opțiunile antetului IP pot fi activate pe socluri brute cu \fBsetsockopt\fP(2); consultați \fBip\fP(7) pentru mai multe informații. .P Începând cu Linux 2.2, toate câmpurile și opțiunile antetului IP pot fi configurate utilizând opțiunile soclului IP. Aceasta înseamnă că soclurile brute sunt de obicei necesare doar pentru protocoalele noi sau pentru protocoalele fără interfață utilizator (cum ar fi ICMP). .P Atunci când se primește un pachet, acesta este transmis tuturor soclurilor brute care au fost asociate protocolului său înainte de a fi transmis altor gestionari de protocol (de exemplu, modulele de protocol ale nucleului). .SS "Formatul adreselor" .\" commit f59fc7f30b710d45aadf715460b3e60dbe9d3418 Pentru trimiterea și primirea de diagrame de date (\fBsendto\fP(2), \fBrecvfrom\fP(2) și altele similare), soclurile brute utilizează structura de adrese standard \fIsockaddr_in\fP definită în \fBip\fP(7). Câmpul \fIsin_port\fP ar putea fi utilizat pentru a specifica numărul protocolului IP, dar este ignorat pentru trimitere în Linux 2.2 și ulterior și ar trebui să fie întotdeauna stabilit la 0 (a se vedea secțiunea ERORI). Pentru pachetele primite, \fIsin_port\fP este setat la zero. .SS "Opțiuni de soclu" .\" Or SOL_RAW on Linux Opțiunile soclului brut pot fi stabilite cu \fBsetsockopt\fP(2) și citite cu \fBgetsockopt\fP(2) prin trecerea fanionului familiei \fBIPPROTO_RAW\fP. .TP \fBICMP_FILTER\fP Activează un filtru special pentru socluri brute asociate protocolului \fBIPPROTO_ICMP\fP. Valoarea are un bit activat pentru fiecare tip de mesaj ICMP care ar trebui să fie filtrat. Valoarea implicită este de a nu filtra niciun mesaj ICMP. .P În plus, sunt acceptate toate opțiunile de soclu \fBip\fP(7) \fBIPPROTO_IP\fP valabile pentru socluri de diagrame de date. .SS "Gestionarea erorilor" Erorile provenite din rețea sunt transmise utilizatorului numai atunci când soclul este conectat sau fanionul \fBIP_RECVERR\fP este activat. Pentru soclurile conectate, numai \fBEMSGSIZE\fP și \fBEPROTO\fP sunt transmise pentru compatibilitate. Cu \fBIP_RECVERR\fP, toate erorile de rețea sunt salvate în coada de erori. .SH ERORI\-IEȘIRE .TP \fBEACCES\fP Utilizatorul a încercat să trimită la o adresă de difuzare fără a avea fanionul de difuzare activat pe soclu. .TP \fBEFAULT\fP A fost furnizată o adresă de memorie nevalidă. .TP \fBEINVAL\fP Argument nevalid. .TP \fBEMSGSIZE\fP Pachet prea mare. Fie Descoperirea MTU a rutei este activată (fanionul de soclu \fBIP_MTU_DISCOVER\fP), fie dimensiunea pachetului depășește dimensiunea maximă permisă a pachetului IPv4 de 64 ko. .TP \fBEOPNOTSUPP\fP Un fanion nevalid a fost pasat unui apel de soclu (cum ar fi \fBMSG_OOB\fP). .TP \fBEPERM\fP Utilizatorul nu are permisiunea de a deschide socluri brute. Numai procesele cu un ID utilizator efectiv de 0 sau atributul \fBCAP_NET_RAW\fP pot face acest lucru. .TP \fBEPROTO\fP A sosit o eroare ICMP care raportează o problemă de parametru. .SH VERSIUNI \fBIP_RECVERR\fP și \fBICMP_FILTER\fP sunt introduse nou în Linux 2.2. Acestea sunt extensii Linux și nu ar trebui să fie utilizate în programe portabile. .P Linux 2.0 a activat o anumită compatibilitate bug\-to\-bug cu BSD în codul de soclu brut atunci când opțiunea de soclu \fBSO_BSDCOMPAT\fP a fost activată; începând cu Linux 2.2, această opțiune nu mai are acest efect. .SH NOTE În mod implicit, soclurile brute descoperă ruta 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 brut o 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 sunt dezactivate, soclurile brute vor fragmenta pachetele de ieșire care depășesc MTU\-ul interfeței. Cu toate acestea, dezactivarea nu este recomandată din motive de performanță și fiabilitate. .P Un soclu brut poate fi legat la o anumită adresă locală utilizând apelul \fBbind\fP(2). Dacă nu este legată, sunt primite toate pachetele cu protocolul IP specificat. În plus, un soclu brut poate fi legat la un anumit dispozitiv de rețea utilizând \fBSO_BINDTODEVICE\fP; consultați \fBsocket\fP(7). .P Un soclu \fBIPPROTO_RAW\fP este numai de trimitere. Dacă doriți cu adevărat să primiți toate pachetele IP, utilizați un soclu \fBpacket\fP(7) cu protocolul \fBETH_P_IP\fP. Rețineți că soclurile de pachete nu reasamblează fragmentele IP, spre deosebire de soclurile brute. .P Dacă doriți să primiți toate pachetele ICMP pentru un soclu de diagrame de date, este adesea mai bine să utilizați \fBIP_RECVERR\fP pe acel soclu; consultați \fBip\fP(7). .P Soclurile brute pot atinge toate protocoalele IP în Linux, chiar și protocoale precum ICMP sau TCP, care au un modul de protocol în nucleu. În acest caz, pachetele sunt transmise atât modulului din nucleu, cât și soclului (soclurilor) brut(e). Nu ar trebui să vă bazați pe acest lucru în programele portabile, multe alte implementări de soclu BSD au limitări aici. .P Linux nu modifică niciodată antetele transmise de utilizator (cu excepția completării unor câmpuri cu zero, așa cum este descris pentru \fBIP_HDRINCL\fP). Acest lucru diferă de multe alte implementări ale soclurilor brute. .P Soclurile brute sunt, în general, destul de neportabile și ar trebui evitate în programele destinate să fie portabile. .P Trimiterea pe socluri brute ar trebui să preia protocolul IP din \fIsin_port\fP; această capacitate a fost pierdută în Linux 2.2. Soluția este de a utiliza \fBIP_HDRINCL\fP. .SH ERORI Extensiile proxy transparente nu sunt descrise. .P Atunci când opțiunea \fBIP_HDRINCL\fP este activată, diagramele de date nu vor fi fragmentate și sunt limitate la MTU\-ul interfeței. .P .\" .SH AUTHORS .\" This man page was written by Andi Kleen. Definirea protocolului IP pentru trimitere în \fIsin_port\fP s\-a pierdut în Linux 2.2. Protocolul la care a fost asociat soclul sau care a fost specificat în apelul inițial \fBsocket\fP(2) este întotdeauna utilizat. .SH "CONSULTAȚI ȘI" \fBrecvmsg\fP(2), \fBsendmsg\fP(2), \fBcapabilities\fP(7), \fBip\fP(7), \fBsocket\fP(7) .P \fBRFC\ 1191\fP pentru descoperirea MTU a rutei. \fBRFC\ 791\fP și fișierul de antet \fI\fP pentru protocolul IP. .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 .