X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=elemtcp.tex;h=812da04d6f9759d58d9f10d1da1a4a95cc4f1fd8;hp=270b9a585b2860879aa999d66bb2ec38c324663c;hb=d99b4995b23505a9afde30adf3a716aa7a55f0e9;hpb=4ff5f41266fec476e9a8d2d2d2cf4c58f8bb5590 diff --git a/elemtcp.tex b/elemtcp.tex index 270b9a5..812da04 100644 --- a/elemtcp.tex +++ b/elemtcp.tex @@ -13,7 +13,7 @@ connessione TCP. \label{sec:TCPel_connession} Prima di entrare nei dettagli delle funzioni usate nelle applicazioni che -utilizzano i socket TCP, è fondamentale spiegare alcune basi del funzionamento +utilizzano i sokcet 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. @@ -86,7 +86,7 @@ la connessione. \begin{figure}[htb] \centering - + \includegraphics[width=10cm]{img/three_way_handshake.eps} \caption{Il \textit{three way handshake} del TCP} \label{fig:TCPel_TWH} \end{figure} @@ -188,7 +188,6 @@ seguente: con un ACK. \end{enumerate} - Dato che in questo caso sono richiesti un FIN ed un ACK per ciascuna direzione normalmente i segmenti scambiati sono quattro; normalmente giacché in alcune situazioni il FIN del passo 1) è inviato insieme a dei dati. Comunque non è @@ -197,10 +196,10 @@ accorpati in un singolo segmento. In \nfig\ si sequenza di scambio dei segmenti che stabilisce la connessione. \begin{figure}[htb] - \centering - - \caption{Il \textit{three way handshake} del TCP} - \label{fig:TCPel_TWH} + \centering + \includegraphics[width=10cm]{img/tcp_close.eps} + \caption{La chiusura di una connessione TCP} + \label{fig:TCPel_close} \end{figure} Come per il SYN anche il FIN occupa un byte nel numero di sequenza, per cui @@ -221,9 +220,9 @@ in \figref{fig:net_cli_code}). Questo vuol dire ad esempio che se un processo viene terminato da un segnale tutte le connessioni aperte verranno chiuse. Infine è da sottolineare che, benché nella figura (e nell'esempio che vedremo -più avanti in \secref{sec:TCPsimp_echo_example}) sia il client ad eseguire la -chiusura attiva, nella realtà questa può essere eseguita da uno qualunque dei -due capi della comunicazione (come in fatto in precedenza da +più avanti in \secref{sec:TCPsimp_echo}) sia il client ad eseguire la chiusura +attiva, nella realtà questa può essere eseguita da uno qualunque dei due capi +della comunicazione (come in fatto in precedenza da \figref{fig:net_serv_code}), e benché quello del client sia il caso più comune ci sono alcuni servizi, il principale dei quali è l'HTTP, per i quali è il server ad effettuare la chiusura attiva. @@ -268,7 +267,7 @@ ad assumere per i due lati, server e client. \begin{figure}[htb] \centering - + \includegraphics[width=9cm]{img/tcp_connection.eps} \caption{Schema dello scambio di pacchetti per un esempio di connessione} \label{fig:TPCel_conn_example} \end{figure} @@ -474,7 +473,7 @@ disposizione del kernel per gestire le relative tabelle. \begin{figure}[!htb] \centering - + \includegraphics[width=10cm]{img/tcpip_overview.eps} \caption{Allocazione dei numeri di porta} \label{fig:TCPel_port_alloc} \end{figure} @@ -903,7 +902,7 @@ numero di connessioni per cui un tale valore non comunque una risposta univoca per la scelta del valore, per questo non conviene specificarlo con una costante (il cui cambiamento richiederebbe la ricompilazione del server) ma usare piuttosto una variabile di ambiente (vedi -\secref{sec:xxx_env_var}). +\secref{sec:proc_environ}). Lo Stevens tratta accuratamente questo argomento, con esempi presi da casi reali su web server, ed in particolare evidenzia come non sia più vero che il @@ -1138,7 +1137,7 @@ int main(int argc, char *argv[]) \end{lstlisting} \caption{Esempio di codice di un server concorrente elementare per il servizio daytime.} - \label{fig:TCPelem_serv_code} + \label{fig:TCPel_serv_code} \end{figure} Come si può vedere (alle linee \texttt{\small 21--25}) la funzione