Riorganizzate varie parti, rimetto in linea la nuova versione
[gapil.git] / elemtcp.tex
index 812da04d6f9759d58d9f10d1da1a4a95cc4f1fd8..3c4b2169d1637903a2e7feefd4e2d8ec852e7d0b 100644 (file)
@@ -13,7 +13,7 @@ connessione TCP.
 \label{sec:TCPel_connession}
 
 Prima di entrare nei dettagli delle funzioni usate nelle applicazioni che
-utilizzano i sokcet TCP, è fondamentale spiegare alcune basi del funzionamento
+utilizzano i socket TCP, è fondamentale spiegare alcune basi del funzionamento
 del TCP; la conoscenza del funzionamento del protocollo è infatti essenziale
 per capire il modello di programmazione ed il funzionamento delle API.
 
@@ -327,8 +327,8 @@ La MSL 
 sulla rete; questo tempo è limitato perché ogni pacchetto IP può essere
 ritrasmesso dai router un numero massimo di volte (detto \textit{hop limit}).
 Il numero di ritrasmissioni consentito è indicato dal campo TTL dell'header di
-IP (per maggiori dettagli vedi \secref{sec:appA_xxx}), e viene decrementato ad
-ogni passaggio da un router; quando si annulla il pacchetto viene scartato.
+IP (per maggiori dettagli vedi \secref{sec:IP_xxx}), e viene decrementato
+ad ogni passaggio da un router; quando si annulla il pacchetto viene scartato.
 Siccome il numero è ad 8 bit il numero massimo di ``salti'' è di 255, pertanto
 anche se il TTL (da \textit{time to live}) non è propriamente un limite sul
 tempo di vita, si stima che un pacchetto IP non possa restare nella rete per
@@ -681,18 +681,21 @@ indirizzo di origine l'indirizzo di destinazione specificato dal SYN del
 client. 
 
 Per specificare un indirizzo generico con IPv4 si usa il valore
-\texttt{INADDR\_ANY}, il cui valore, come visto anche negli esempi precedenti
+\macro{INADDR\_ANY}, il cui valore, come visto anche negli esempi precedenti
 è pari a zero, nell'esempio \figref{fig:net_serv_code} si è usata
 un'assegnazione immediata del tipo:
-\begin{verbatim}
-   serv_add.sin_addr.s_addr = htonl(INADDR_ANY);   /* connect from anywhere */
-\end{verbatim}
 
-Si noti che si è usato \texttt{htonl} per assegnare il valore
-\texttt{INADDR\_ANY}; benché essendo questo pari a zero il riordinamento sia
-inutile; ma dato che tutte le costanti \texttt{INADDR\_} sono definite
+\footnotesize
+\begin{lstlisting}[labelstep=0,frame=,indent=1cm]{}
+  serv_add.sin_addr.s_addr = htonl(INADDR_ANY);   /* connect from anywhere */
+\end{lstlisting}
+\normalsize
+
+Si noti che si è usato \func{htonl} per assegnare il valore
+\macro{INADDR\_ANY}; benché essendo questo pari a zero il riordinamento sia
+inutile; ma dato che tutte le costanti \macro{INADDR\_} sono definite
 secondo l'ordinamento della macchina è buona norma usare sempre la funzione
-\texttt{htonl}.
+\macro{htonl}.
 
 L'esempio precedete funziona con IPv4 dato che l'indirizzo è rappresentabile
 anche con un intero a 32 bit; non si può usare lo stesso metodo con IPv6,
@@ -702,12 +705,14 @@ assegnazione.  Per questo nell'header \texttt{netinet/in.h} 
 variabile \texttt{in6addr\_any} (dichiarata come \texttt{extern}, ed
 inizializzata dal sistema al valore \texttt{IN6ADRR\_ANY\_INIT}) che permette
 di effettuare una assegnazione del tipo:
-\begin{verbatim}
+\footnotesize
+\begin{lstlisting}[labelstep=0,frame=,indent=1cm]{}
    serv_add.sin6_addr = in6addr_any;   /* connect from anywhere */
-\end{verbatim}
+\end{lstlisting}
+\normalsize
 
 
-\subsection{La funzione \texttt{connect}}
+\subsection{La funzione \func{connect}}
 \label{sec:TCPel_func_connect}
 
 La funzione \texttt{connect} è usata da un client TCP per stabilire la
@@ -797,7 +802,7 @@ da errori o problemi nella chiamata della funzione sono le seguenti:
 \end{enumerate}
 
 Se si fa riferimento al diagramma degli stati del TCP riportato in
-\figref{fig:appB:tcp_state_diag} la funzione \texttt{connect} porta un socket
+\figref{fig:TCP_state_diag} la funzione \texttt{connect} porta un socket
 dallo stato \texttt{CLOSED} (lo stato iniziale in cui si trova un socket
 appena creato) prima allo stato \texttt{SYN\_SENT} e poi, al ricevimento del
 ACK, nello stato \texttt{ESTABLISHED}. Se invece la connessione fallisce il
@@ -1024,8 +1029,8 @@ l'invio dei dati.
 \subsection{La funzione \texttt{close}}
 \label{sec:TCPel_func_close}
 
-La funzione standard unix \texttt{close} (vedi \secref{sec:fileunix_close})
-che si usa sui file può essere usata con lo stesso effetto anche sui socket
+La funzione standard unix \texttt{close} (vedi \secref{sec:file_close}) che si
+usa sui file può essere usata con lo stesso effetto anche sui socket
 descriptor.
 
 L'azione standard di questa funzione quando applicata a socket è di marcarlo