Domande da passare a Kerrisk
[gapil.git] / network.tex
index 2e322c4af486f7f513de02a941ef13870e5cc1a8..e66fd25e33099f9d3750591fa9a9ab5e714ff361 100644 (file)
@@ -1,6 +1,6 @@
 %% network.tex
 %%
-%% Copyright (C) 2000-2011 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2015 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 "Un preambolo",
@@ -647,8 +647,8 @@ minuti.
 Inoltre, per tenere conto delle diverse condizioni in cui può trovarsi la
 linea di comunicazione, TCP comprende anche un algoritmo di calcolo dinamico
 del tempo di andata e ritorno dei pacchetti fra un client e un server (il
-cosiddetto RTT, \itindex{Round~Trip~Time} \textit{Round Trip Time}), che lo
-rende in grado di adattarsi alle condizioni della rete per non generare
+cosiddetto RTT, \itindex{Round~Trip~Time~(RTT)} \textit{Round Trip Time}), che
+lo rende in grado di adattarsi alle condizioni della rete per non generare
 inutili ritrasmissioni o cadere facilmente in timeout.
 
 Inoltre TCP è in grado di preservare l'ordine dei dati assegnando un numero di
@@ -662,12 +662,14 @@ più volte a causa di ritrasmissioni dovute alla perdita degli
 \textit{acknowlegment}, all'arrivo sarà comunque possibile riordinare i dati e
 scartare i duplicati.
 
+\itindbeg{advertised~window}
+
 Il protocollo provvede anche un controllo di flusso (\textit{flow control}),
 cioè specifica sempre all'altro capo della trasmissione quanti dati può
-ricevere tramite una \itindex{advertised~window} \textit{advertised window}
-(letteralmente ``\textsl{finestra annunciata}''), che indica lo spazio
-disponibile nel buffer di ricezione, cosicché nella trasmissione non vengano
-inviati più dati di quelli che possono essere ricevuti.
+ricevere tramite una \textit{advertised window} (letteralmente
+``\textsl{finestra annunciata}''), che indica lo spazio disponibile nel buffer
+di ricezione, cosicché nella trasmissione non vengano inviati più dati di
+quelli che possono essere ricevuti.
 
 Questa finestra cambia dinamicamente diminuendo con la ricezione dei dati dal
 socket ed aumentando con la lettura di quest'ultimo da parte
@@ -676,6 +678,8 @@ verranno accettati altri dati.  Si noti che UDP non provvede niente di tutto
 ciò per cui nulla impedisce che vengano trasmessi pacchetti ad un ritmo che il
 ricevente non può sostenere.
 
+\itindend{advertised~window}
+
 Infine attraverso TCP la trasmissione è sempre bidirezionale (in inglese si
 dice che è \textit{full-duplex}). È cioè possibile sia trasmettere che
 ricevere allo stesso tempo, il che comporta che quanto dicevamo a proposito
@@ -708,14 +712,14 @@ alle eventuali implicazioni che possono avere, è il seguente:
   dell'header è fissa e di 40 byte e non è compresa nel valore indicato dal
   suddetto campo. Inoltre IPv6 ha la possibilità di estendere la dimensione di
   un pacchetto usando la \textit{jumbo payload option}.
-\item Molte reti fisiche hanno una MTU \itindex{Maximum~Transfer~Unit}
+\item Molte reti fisiche hanno una MTU \itindex{Maximum~Transfer~Unit~(MTU)}
   (\textit{Maximum Transfer Unit}) che dipende dal protocollo specifico usato
   al livello di connessione fisica. Il più comune è quello di ethernet che è
   pari a 1500 byte, una serie di altri valori possibili sono riportati in
   tab.~\ref{tab:net_mtu_values}.
 \end{itemize}
 
-\itindbeg{Maximum~Transfer~Unit}
+\itindbeg{Maximum~Transfer~Unit~(MTU)}
 Quando un pacchetto IP viene inviato su una interfaccia di rete e le sue
 dimensioni eccedono la MTU viene eseguita la cosiddetta
 \textit{frammentazione}, i pacchetti cioè vengono suddivisi\footnote{questo
@@ -782,15 +786,15 @@ opzionale, mentre diventa obbligatorio per IPv6.  Per IPv6 infatti, non
 potendo i router frammentare i pacchetti, è necessario, per poter comunicare,
 conoscere da subito il \textit{path MTU}.
 
-Infine TCP definisce una \itindex{Maximum~Segment~Size} \textit{Maximum
-  Segment Size} (da qui in avanti abbreviata in MSS) che annuncia all'altro
-capo della connessione la dimensione massima dimensione del segmento di dati
-che può essere ricevuto, così da evitare la frammentazione. Di norma viene
-impostato alla dimensione della MTU dell'interfaccia meno la lunghezza delle
-intestazioni di IP e TCP, in Linux il default, mantenuto nella costante
-\const{TCP\_MSS} è 512.
+Infine il TCP definisce una \itindex{Maximum~Segment~Size~(MSS)}
+\textit{Maximum Segment Size} (da qui in avanti abbreviata in MSS) che
+annuncia all'altro capo della connessione la dimensione massima dimensione del
+segmento di dati che può essere ricevuto, così da evitare la
+frammentazione. Di norma viene impostato alla dimensione della MTU
+dell'interfaccia meno la lunghezza delle intestazioni di IP e TCP, in Linux il
+default, mantenuto nella costante \const{TCP\_MSS} è 512.
 
-\itindend{Maximum~Transfer~Unit}
+\itindend{Maximum~Transfer~Unit~(MTU)}
 
 
 %%% Local Variables: