| ddp(7) | Miscellaneous Information Manual | ddp(7) |
ddp - implementarea protocolului Linux AppleTalk
#include <sys/socket.h> #include <netatalk/at.h>
ddp_socket = socket(AF_APPLETALK, SOCK_DGRAM, 0); raw_socket = socket(AF_APPLETALK, SOCK_RAW, protocol);
Linux implementează protocoalele AppleTalk descrise în Inside AppleTalk. Doar stratul DDP și AARP sunt prezente în nucleu. Acestea sunt concepute pentru a fi utilizate prin intermediul bibliotecilor de protocol netatalk. Această pagină documentează interfața pentru cei care doresc sau trebuie să utilizeze direct stratul DDP.
Comunicarea dintre AppleTalk și programul utilizatorului funcționează folosind o interfață de soclu compatibilă cu BSD. Pentru mai multe informații despre socluri, consultați socket(7).
Un soclu AppleTalk este creat prin apelarea funcției socket(2) cu un argument al familiei de socluri AF_APPLETALK. Tipurile de soclu valide sunt SOCK_DGRAM pentru a deschide un soclu ddp sau SOCK_RAW pentru a deschide un soclu raw. protocol este protocolul AppleTalk care urmează să fie primit sau trimis. Pentru SOCK_RAW trebuie să specificați ATPROTO_DDP.
Soclurile raw (brute) pot fi deschise numai de un proces cu ID utilizator efectiv 0 sau atunci când procesul are capacitatea CAP_NET_RAW.
O adresă de soclu AppleTalk este definită ca o combinație a unui număr de rețea, a unui număr de nod și a unui număr de port.
struct at_addr {
unsigned short s_net;
unsigned char s_node;
};
struct sockaddr_atalk {
sa_family_t sat_family; /* familia de adrese */
unsigned char sat_port; /* port */
struct at_addr sat_addr; /* rețea / nod */
};
sat_family este întotdeauna definit la AF_APPLETALK. sat_port conține portul. Numerele de porturi sub 129 sunt cunoscute ca porturi rezervate. Numai procesele cu ID utilizator efectiv 0 sau cu capacitatea CAP_NET_BIND_SERVICE pot efectua bind(2) la aceste socluri. sat_addr este adresa gazdei. Membrul net al struct at_addr conține rețeaua gazdă în ordinea octeților de rețea. Membrul node al struct at_addr conține numărul nodului gazdei, iar valoarea lui AT_ANYNET este un caracter joker și implică, de asemenea, „această rețea”. Valoarea lui AT_ANYNODE este un caracter joker și implică, de asemenea, „acest nod”. Valoarea lui ATADDR_BCAST este o adresă de difuzare locală a legăturii.
Nu sunt acceptate opțiuni de soclu specifice protocolului.
IP acceptă un set de interfețe /proc pentru a configura anumiți parametri AppleTalk globali. Parametrii pot fi accesați prin citirea sau scrierea de fișiere în directorul /proc/sys/net/atalk/.
Valorile implicite corespund specificațiilor și nu ar trebui să fie modificate niciodată.
Toate ioctl-urile descrise în socket(7) se aplică la DDP.
AppleTalk este acceptat de Linux 2.0 sau o versiune ulterioară. Interfețele /proc există începând cu Linux 2.2.
Fiți foarte atenți cu opțiunea SO_BROADCAST; aceasta nu este privilegiată în Linux. Este ușor să supraîncărcați rețeaua prin trimiterea neglijentă la adrese de difuzare.
Interfața de bază pentru soclu AppleTalk este compatibilă cu netatalk pe sistemele derivate din BSD. Multe sisteme BSD nu verifică SO_BROADCAST atunci când trimit cadre de difuzare; acest lucru poate duce la probleme de compatibilitate.
Modul de soclu brut este unic pentru Linux și există pentru a oferi suport mai ușor pachetului alternativ CAP și instrumentelor de monitorizare AppleTalk.
Există prea multe valori de eroare inconsecvente.
Ioctl-urile utilizate pentru a configura tabelele de rutare, dispozitivele, tabelele AARP și alte dispozitive nu sunt încă descrise.
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.
| 2 mai 2024 | Pagini de manual de Linux 6.9.1 |