Aggiornamenti del copyright all'anno nuovo, e risistemazione delle
[gapil.git] / othersock.tex
index f905efbb9c237637d28c2ed94e48606edb2208ba..9ffb653055bd8489538494dc8e588405d0ca2ff8 100644 (file)
@@ -1,6 +1,6 @@
 %% othersock.tex
 %%
-%% Copyright (C) 2004-2005 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2004-2007 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
@@ -8,12 +8,13 @@
 %% license is included in the section entitled "GNU Free Documentation
 %% License".
 %%
+
 \chapter{Gli altri tipi di socket}
 \label{cha:other_socket}
 
-Dopo aver trattato in cap.~\ref{cha:TCP_socket} i socket TCP, che costituiscono
-l'esempio più comune dell'interfaccia dei socket, esamineremo in questo
-capitolo gli altri tipi di socket, a partire dai socket UDP, e i socket
+Dopo aver trattato in cap.~\ref{cha:TCP_socket} i socket TCP, che
+costituiscono l'esempio più comune dell'interfaccia dei socket, esamineremo in
+questo capitolo gli altri tipi di socket, a partire dai socket UDP, e i socket
 \textit{Unix domain} già incontrati in sez.~\ref{sec:ipc_socketpair}.
 
 
@@ -54,7 +55,7 @@ utilizzando per il tipo di socket il valore \const{SOCK\_DGRAM}.
 Questa differenza comporta ovviamente che anche le modalità con cui si usano i
 socket UDP sono completamente diverse rispetto ai socket TCP, ed in
 particolare non esistendo il concetto di connessione non esiste il meccanismo
-del \itindex{three~way~handshake}\textit{three way handshake} né quello degli
+del \itindex{three~way~handshake} \textit{three way handshake} né quello degli
 stati del protocollo. In realtà tutto quello che avviene nella comunicazione
 attraverso dei socket UDP è la trasmissione di un pacchetto da un client ad un
 server o viceversa, secondo lo schema illustrato in
@@ -266,7 +267,7 @@ l'indirizzo del mittente del pacchetto che 
 opportunamente inizializzati con i puntatori alle variabili dove la struttura
 contenente quest'ultimo e la relativa lunghezza saranno scritti (si noti che
 \param{fromlen} è un valore intero ottenuto come
-\itindex{value~result~argument}\textit{value result argument}).  Se non si è
+\itindex{value~result~argument} \textit{value result argument}).  Se non si è
 interessati a questa informazione, entrambi gli argomenti devono essere
 inizializzati al valore \const{NULL}.
 
@@ -738,12 +739,15 @@ risolvere questo problema l'unico modo sarebbe quello di impostare un
 
 
 
+\index{socket!locali|(}
+
+
 \section{I socket \textit{Unix domain}}
 \label{sec:unix_socket}
 
 Benché i socket Unix domain, come meccanismo di comunicazione fra processi che
 girano sulla stessa macchina, non siano strettamente attinenti alla rete, li
-tratteremo comunque in questa sezione. Nonstante le loro peculiarità infatti,
+tratteremo comunque in questa sezione. Nonostante le loro peculiarità infatti,
 l'interfaccia di programmazione che serve ad utilizzarli resta sempre quella
 dei socket.
 
@@ -754,22 +758,32 @@ dei socket.
 
 
 
+\index{socket!locali|)}
+
+
+\section{Altri socket}
+\label{sec:socket_other}
+
+Tratteremo in questa sezione gli altri tipi particolari di socket supportati
+da Linux, come quelli relativi a particolare protocolli di trasmissione, i
+socket \textit{netlink} che definiscono una interfaccia di comunicazione con
+il kernel, ed i \textit{packet socket} che consentono di inviare pacchetti
+direttamente a livello delle interfacce di rete. 
 
-\section{I socket \textit{raw}}
+\subsection{I socket \textit{raw}}
 \label{sec:socket_raw}
 
 Tratteremo in questa sezione i cosiddetti \textit{raw socket}, con i quali si
 possono \textsl{forgiare} direttamente i pacchetti a tutti i livelli dello
 stack dei protocolli. 
 
+\subsection{I socket \textit{netlink}}
+\label{sec:socket_netlink}
 
-\section{Altri socket}
-\label{sec:socket_other}
 
-Tratteremo in questa sezione gli altri tipi particolari di socket supportati
-da Linux, come quelli relativi a particolare protocolli di trasmissione ed i
-socket \textit{netlink} che definiscono una interfaccia di comunicazione con
-il kernel.
+\subsection{I \textit{packet socket}}
+\label{sec:packet_socket}
+
 
 
 
@@ -778,3 +792,16 @@ il kernel.
 %%% mode: latex
 %%% TeX-master: "gapil"
 %%% End: 
+
+% LocalWords:  socket cap TCP UDP domain sez NFS DNS stream datagram PF INET to
+% LocalWords:  IPv tab SOCK DGRAM three way handshake client fig bind listen AF
+% LocalWords:  accept recvfrom sendto connect netstat named DHCP kernel ICMP CR
+% LocalWords:  port unreachable read write glibc Specification flags int BSD LF
+% LocalWords:  libc unsigned len size tolen sys ssize sockfd const void buf MSG
+% LocalWords:  struct sockaddr socklen errno EAGAIN ECONNRESET EDESTADDRREQ RFC
+% LocalWords:  EISCONN EMSGSIZE ENOBUFS ENOTCONN EOPNOTSUPP EPIPE SIGPIPE EBADF
+% LocalWords:  NOSIGNAL EFAULT EINVAL EINTR ENOMEM ENOTSOCK NULL fromlen from
+% LocalWords:  ECONNREFUSED value result argument close shutdown daytime nell'
+% LocalWords:  memset inet pton nread NUL superdemone inetd sniffer daytimed
+% LocalWords:  INADDR ANY addr echo ClientEcho sendbuff serv VPN tcpdump l'I
+% LocalWords:  Stevens destination descriptor raw stack netlink