Varie correzioni, completata revisione capitolo sull'I/O su file
[gapil.git] / trasplayer.tex
index 12c66cd0c999feffc81aae3ca60ebe5120cf63ad..97b0efb7eaf28755b8d2ed3d428fbaed5100b823 100644 (file)
@@ -1,15 +1,90 @@
 %% tcpprot.tex
 %%
-%% Copyright (C) 2000-2002 Simone Piccardi.  Permission is granted to
-%% copy, distribute and/or modify this document under the terms of the GNU Free
+%% Copyright (C) 2002-2019 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 "Prefazione",
+%% Free Software Foundation; with the Invariant Sections being "Un preambolo",
 %% with no Front-Cover Texts, and with no Back-Cover Texts.  A copy of the
 %% license is included in the section entitled "GNU Free Documentation
 %% License".
 %%
-\chapter{Il protocollo TCP}
-\label{cha:tcp_protocol}
+
+\chapter{Il livello di trasporto}
+\label{cha:transport_layer}
+
+In questa appendice tratteremo i vari protocolli relativi al livello di
+trasporto.\footnote{al solito per la definizione dei livelli si faccia
+  riferimento alle spiegazioni fornite in sez.~\ref{sec:net_protocols}.} In
+particolare gran parte del capitolo sarà dedicato al più importante di questi,
+il TCP, che è pure il più complesso ed utilizzato su internet.
+
+
+\section{Il protocollo TCP}
+\label{sec:tcp_protocol}
+
+In questa sezione prenderemo in esame i vari aspetti del protocollo TCP, il
+protocollo più comunemente usato dalle applicazioni di rete.
+
+
+\subsection{Gli stati del TCP}
+\label{sec:TCP_states}
+
+In sez.~\ref{sec:TCP_connession} abbiamo descritto in dettaglio le modalità con
+cui il protocollo TCP avvia e conclude una connessione, ed abbiamo accennato
+alla presenza dei vari stati del protocollo. In generale infatti il
+funzionamento del protocollo segue una serie di regole, che possono essere
+riassunte nel comportamento di una macchina a stati, il cui diagramma di
+transizione è riportato in fig.~\ref{fig:TCP_state_diag}.
+
+\begin{figure}[!htb]
+  \centering \includegraphics[width=10cm]{img/tcp_state_diagram}  
+  \caption{Il diagramma degli stati del TCP.}
+  \label{fig:TCP_state_diag}
+\end{figure}
+
+Il protocollo prevede l'esistenza di 11 diversi stati per una connessione ed
+un insieme di regole per le transizioni da uno stato all'altro basate sullo
+stato corrente, sull'operazione effettuata dall'applicazione o sul tipo di
+segmento ricevuto; i nomi degli stati mostrati in
+fig.~\ref{fig:TCP_state_diag} sono gli stessi che vengono riportati del
+comando \cmd{netstat} nel campo \textit{State}.
+
+\begin{figure}[!htb]
+  \centering \includegraphics[width=10cm]{img/tcp_head}  
+  \caption{L'intestazione del protocollo TCP.}
+  \label{fig:TCP_header}
+\end{figure}
+
+
+\itindbeg{Maximum~Segment~Size~(MSS)}
+% TODO trattare la MSS
+\itindend{Maximum~Segment~Size~(MSS)}
+
+\itindbeg{advertised~window}
+% TODO trattare la advertised window
+\itindend{advertised~window}
+
+\index{algoritmo~di~Nagle|(}
+% TODO trattare l'algoritmo di Nagle
+\index{algoritmo~di~Nagle|)}
+
+
+\section{Il protocollo UDP}
+\label{sec:udp_protocol}
+
+In questa sezione prenderemo in esame i vari aspetti del protocollo UDP, che
+dopo il TCP è il protocollo più usato dalle applicazioni di rete. 
+
+
+\begin{figure}[!htb]
+  \centering \includegraphics[width=10cm]{img/udp_head}  
+  \caption{L'intestazione del protocollo UDP.}
+  \label{fig:UDP_header}
+\end{figure}
+
+
+
+% LocalWords:  sez TCP fig netstat UDP Segment Size advertised window
 
 
 %%% Local Variables: