Varie correzioni, completata revisione capitolo sull'I/O su file
[gapil.git] / trasplayer.tex
1 %% tcpprot.tex
2 %%
3 %% Copyright (C) 2002-2019 Simone Piccardi.  Permission is granted to copy,
4 %% distribute and/or modify this document under the terms of the GNU Free
5 %% Documentation License, Version 1.1 or any later version published by the
6 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
7 %% with no Front-Cover Texts, and with no Back-Cover Texts.  A copy of the
8 %% license is included in the section entitled "GNU Free Documentation
9 %% License".
10 %%
11
12 \chapter{Il livello di trasporto}
13 \label{cha:transport_layer}
14
15 In questa appendice tratteremo i vari protocolli relativi al livello di
16 trasporto.\footnote{al solito per la definizione dei livelli si faccia
17   riferimento alle spiegazioni fornite in sez.~\ref{sec:net_protocols}.} In
18 particolare gran parte del capitolo sarà dedicato al più importante di questi,
19 il TCP, che è pure il più complesso ed utilizzato su internet.
20
21
22 \section{Il protocollo TCP}
23 \label{sec:tcp_protocol}
24
25 In questa sezione prenderemo in esame i vari aspetti del protocollo TCP, il
26 protocollo più comunemente usato dalle applicazioni di rete.
27
28
29 \subsection{Gli stati del TCP}
30 \label{sec:TCP_states}
31
32 In sez.~\ref{sec:TCP_connession} abbiamo descritto in dettaglio le modalità con
33 cui il protocollo TCP avvia e conclude una connessione, ed abbiamo accennato
34 alla presenza dei vari stati del protocollo. In generale infatti il
35 funzionamento del protocollo segue una serie di regole, che possono essere
36 riassunte nel comportamento di una macchina a stati, il cui diagramma di
37 transizione è riportato in fig.~\ref{fig:TCP_state_diag}.
38
39 \begin{figure}[!htb]
40   \centering \includegraphics[width=10cm]{img/tcp_state_diagram}  
41   \caption{Il diagramma degli stati del TCP.}
42   \label{fig:TCP_state_diag}
43 \end{figure}
44
45 Il protocollo prevede l'esistenza di 11 diversi stati per una connessione ed
46 un insieme di regole per le transizioni da uno stato all'altro basate sullo
47 stato corrente, sull'operazione effettuata dall'applicazione o sul tipo di
48 segmento ricevuto; i nomi degli stati mostrati in
49 fig.~\ref{fig:TCP_state_diag} sono gli stessi che vengono riportati del
50 comando \cmd{netstat} nel campo \textit{State}.
51
52 \begin{figure}[!htb]
53   \centering \includegraphics[width=10cm]{img/tcp_head}  
54   \caption{L'intestazione del protocollo TCP.}
55   \label{fig:TCP_header}
56 \end{figure}
57
58
59 \itindbeg{Maximum~Segment~Size~(MSS)}
60 % TODO trattare la MSS
61 \itindend{Maximum~Segment~Size~(MSS)}
62
63 \itindbeg{advertised~window}
64 % TODO trattare la advertised window
65 \itindend{advertised~window}
66
67 \index{algoritmo~di~Nagle|(}
68 % TODO trattare l'algoritmo di Nagle
69 \index{algoritmo~di~Nagle|)}
70
71
72 \section{Il protocollo UDP}
73 \label{sec:udp_protocol}
74
75 In questa sezione prenderemo in esame i vari aspetti del protocollo UDP, che
76 dopo il TCP è il protocollo più usato dalle applicazioni di rete. 
77
78
79 \begin{figure}[!htb]
80   \centering \includegraphics[width=10cm]{img/udp_head}  
81   \caption{L'intestazione del protocollo UDP.}
82   \label{fig:UDP_header}
83 \end{figure}
84
85
86
87 % LocalWords:  sez TCP fig netstat UDP Segment Size advertised window
88
89
90 %%% Local Variables: 
91 %%% mode: latex
92 %%% TeX-master: "gapil"
93 %%% End: