regolare la connessione. Normalmente vengono usate le seguenti opzioni:
\begin{itemize}
-\item \textit{MSS option}, dove MMS sta per \textit{maximum segment size}, con
- questa opzione ciascun capo della connessione annuncia all'altro il massimo
- ammontare di dati che vorrebbe accettare per ciascun segmento nella
- connessione corrente. È possibile leggere e scrivere questo valore
- attraverso l'opzione del socket \const{TCP\_MAXSEG}.
+\item \textit{MSS option}, dove MMS sta per \itindex{Maximum~Segment~Size}
+ \textit{Maximum Segment Size}, con questa opzione ciascun capo della
+ connessione annuncia all'altro il massimo ammontare di dati che vorrebbe
+ accettare per ciascun segmento nella connessione corrente. È possibile
+ leggere e scrivere questo valore attraverso l'opzione del socket
+ \const{TCP\_MAXSEG}.
\item \textit{window scale
option}, %come spiegato in sez.~\ref{sec:tcp_protocol}
\end{itemize}
-La MSS è generalmente supportata da quasi tutte le implementazioni del
-protocollo, le ultime due opzioni (trattate
+La MSS \itindex{Maximum~Segment~Size} è generalmente supportata da quasi tutte
+le implementazioni del protocollo, le ultime due opzioni (trattate
nell'\href{http://www.ietf.org/rfc/rfc1323.txt}{RFC~1323}) sono meno comuni;
vengono anche dette \textit{long fat pipe options} dato che questo è il nome
che viene dato alle connessioni caratterizzate da alta velocità o da ritardi
\label{fig:TCP_conn_example}
\end{figure}
-La connessione viene iniziata dal client che annuncia un MSS di 1460, un
-valore tipico con Linux per IPv4 su Ethernet, il server risponde con lo stesso
-valore (ma potrebbe essere anche un valore diverso).
+La connessione viene iniziata dal client che annuncia una MSS
+\itindex{Maximum~Segment~Size} di 1460, un valore tipico con Linux per IPv4 su
+Ethernet, il server risponde con lo stesso valore (ma potrebbe essere anche un
+valore diverso).
Una volta che la connessione è stabilita il client scrive al server una
richiesta (che assumiamo stare in un singolo segmento, cioè essere minore dei
possono utilizzare questi valori per far si che \func{select} ritorni solo
quando c'è la certezza di avere dati a sufficienza.\footnote{questo tipo di
controllo è utile di norma solo per la lettura, in quanto in genere le
- operazioni di scrittura sono già controllate dall'applicazione, che sà
+ operazioni di scrittura sono già controllate dall'applicazione, che sa
sempre quanti dati invia, mentre non è detto possa conoscere la quantità di
dati in ricezione; per cui, nella situazione in cui si conosce almeno un
valore minimo, per evitare la penalizzazione dovuta alla ripetizione delle
% LocalWords: SNDLOWAT third fset maxfd fileno ISSET closed how SHUT RD WR eof
% LocalWords: RDWR fifo Trip ping fourth CLR sull'I SETSIZE nread break Denial
% LocalWords: Service poll POLLIN POLLRDNORM POLLPRI POLLRDBAND POLLOUT events
-% LocalWords: POLLHUP POLLERR revents pollfd
+% LocalWords: POLLHUP POLLERR revents pollfd Di
%%% Local Variables:
%%% mode: latex