\index{socket!definizione|(}
-\subsection{Cosa sono \textit{socket}}
+\subsection{Cosa sono i \textit{socket}}
\label{sec:sock_socket_def}
I \textit{socket} (una traduzione letterale potrebbe essere \textsl{presa}, ma
\label{tab:net_pf_names}
\end{table}
-% TODO aggiungere PF_CAN, vedi http://lwn.net/Articles/253425, dal 2.6.25
-
L'idea alla base della distinzione fra questi due insiemi di costanti era che
una famiglia di protocolli potesse supportare vari tipi di indirizzi, per cui
il prefisso \texttt{PF\_} si sarebbe dovuto usare nella creazione dei socket e
tab.~\ref{tab:net_pf_names}. L'elenco indica tutti i protocolli definiti; fra
questi però saranno utilizzabili solo quelli per i quali si è compilato il
supporto nel kernel (o si sono caricati gli opportuni moduli), viene definita
-anche una costante \constd{PF\_MAX} che indica il valore massimo associabile
+anche una costante \constd{AF\_MAX} che indica il valore massimo associabile
ad un dominio.
Si tenga presente che non tutte le famiglie di protocolli sono utilizzabili
&\const{SOCK\_STREAM} &\const{SOCK\_DGRAM} &\const{SOCK\_RAW}&
\const{SOCK\_RDM}&\const{SOCK\_SEQPACKET} \\
\hline
- \const{PF\_UNIX} & si & si & -- & -- & si\footnotemark \\
+ \const{AF\_UNIX} & si & si & -- & -- & si\footnotemark \\
\hline
- \const{PF\_LOCAL}&\multicolumn{5}{|c|}{sinonimo di \const{PF\_UNIX}}\\
+ \const{AF\_LOCAL}&\multicolumn{5}{|c|}{sinonimo di \const{AF\_UNIX}}\\
\hline
- \const{PF\_INET} & TCP & UDP & IPv4 & -- & -- \\
+ \const{AF\_INET} & TCP & UDP & IPv4 & -- & -- \\
\hline
- \const{PF\_INET6} & TCP & UDP & IPv6 & -- & -- \\
+ \const{AF\_INET6} & TCP & UDP & IPv6 & -- & -- \\
\hline
- \const{PF\_IPX} & -- & -- & -- & -- & -- \\
+ \const{AF\_IPX} & -- & -- & -- & -- & -- \\
\hline
- \const{PF\_NETLINK} & -- & si & si & -- & -- \\
+ \const{AF\_NETLINK} & -- & si & si & -- & -- \\
\hline
- \const{PF\_X25} & -- & -- & -- & -- & si \\
+ \const{AF\_X25} & -- & -- & -- & -- & si \\
\hline
- \const{PF\_AX25} & -- & -- & -- & -- & -- \\
+ \const{AF\_AX25} & -- & -- & -- & -- & -- \\
\hline
- \const{PF\_ATMPVC} & -- & -- & -- & -- & -- \\
+ \const{AF\_ATMPVC} & -- & -- & -- & -- & -- \\
\hline
- \const{PF\_APPLETALK} & -- & si & si & -- & -- \\
+ \const{AF\_APPLETALK} & -- & si & si & -- & -- \\
\hline
- \const{PF\_PACKET} & -- & si & si & -- & -- \\
+ \const{AF\_PACKET} & -- & si & si & -- & -- \\
\hline
\end{tabular}
\caption{Combinazioni valide di dominio e tipo di protocollo per la
\subsection{La struttura degli indirizzi IPv4}
\label{sec:sock_sa_ipv4}
-I socket di tipo \const{PF\_INET} vengono usati per la comunicazione
+I socket di tipo \const{AF\_INET} vengono usati per la comunicazione
attraverso Internet; la struttura per gli indirizzi per un socket Internet (se
si usa IPv4) è definita come \struct{sockaddr\_in} nell'header file
\headfiled{netinet/in.h} ed ha la forma mostrata in
\subsection{La struttura degli indirizzi IPv6}
\label{sec:sock_sa_ipv6}
-Essendo IPv6 un'estensione di IPv4, i socket di tipo \const{PF\_INET6} sono
+Essendo IPv6 un'estensione di IPv4, i socket di tipo \const{AF\_INET6} sono
sostanzialmente identici ai precedenti; la parte in cui si trovano
praticamente tutte le differenze fra i due socket è quella della struttura
degli indirizzi; la sua definizione, presa da \headfile{netinet/in.h}, è
\subsection{La struttura degli indirizzi locali}
\label{sec:sock_sa_local}
-I socket di tipo \const{PF\_UNIX} o \const{PF\_LOCAL} vengono usati per una
+I socket di tipo \const{AF\_UNIX} o \const{AF\_LOCAL} vengono usati per una
comunicazione fra processi che stanno sulla stessa macchina (per questo
vengono chiamati \textit{local domain} o anche \textit{Unix domain}); essi
hanno la caratteristica ulteriore di poter essere creati anche in maniera
\subsection{La struttura degli indirizzi AppleTalk}
\label{sec:sock_sa_appletalk}
-I socket di tipo \const{PF\_APPLETALK} sono usati dalla libreria
+I socket di tipo \const{AF\_APPLETALK} sono usati dalla libreria
\file{netatalk} per implementare la comunicazione secondo il protocollo
AppleTalk, uno dei primi protocolli di rete usato nel mondo dei personal
computer, usato dalla Apple per connettere fra loro computer e stampanti. Il
\subsection{La struttura degli indirizzi dei \textit{packet socket}}
\label{sec:sock_sa_packet}
-I \textit{packet socket}, identificati dal dominio \const{PF\_PACKET}, sono
+I \textit{packet socket}, identificati dal dominio \const{AF\_PACKET}, sono
un'interfaccia specifica di Linux per inviare e ricevere pacchetti
direttamente su un'interfaccia di rete, senza passare per le funzioni di
gestione dei protocolli di livello superiore. In questo modo è possibile
%% \subsection{La struttura degli indirizzi DECnet}
%% \label{sec:sock_sa_decnet}
-%% I socket di tipo \const{PF\_DECnet} usano il protocollo DECnet, usato dai VAX
+%% I socket di tipo \const{AF\_DECnet} usano il protocollo DECnet, usato dai VAX
%% Digital sotto VMS quando ancora il TCP/IP non era diventato lo standard di
%% fatto. Il protocollo è un protocollo chiuso, ed il suo uso attuale è limitato
%% alla comunicazione con macchine che stanno comunque scomparendo. Lo si riporta
%% solo come esempio
+% TODO aggiungere AF_CAN, vedi http://lwn.net/Articles/253425, dal 2.6.25 ?
+
% TODO: trattare i socket RDS, vedi documentazione del kernel, file
% Documentation/networking/rds.txt