X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=blobdiff_plain;f=network.tex;h=495e02f69f8da6991840f1eca27114e26b0ae366;hb=83e1332031e23f0760030f317652976d487f613c;hp=788d554a4c3b609e541fd4b9731183a7b61858f6;hpb=6f8e0ca42d3d0b97b5e5747798a1eaffb44e8521;p=gapil.git diff --git a/network.tex b/network.tex index 788d554..495e02f 100644 --- a/network.tex +++ b/network.tex @@ -456,15 +456,16 @@ seguenti: venire usato direttamente da alcuni programmi come \cmd{ping}. A volte ci si riferisce ad esso come ICPMv4 per distinguerlo da ICMPv6. \item[\textsl{IGMP}] \textit{Internet Group Management Protocol}. É un - protocollo di livello 2 usato per il \textit{multicasting} (vedi - sez.~\ref{sec:xxx_multicast}). Permette alle stazioni remote di notificare - ai router che supportano questa comunicazione a quale gruppo esse - appartengono. Come ICMP viene implementato direttamente sopra IP. + protocollo di livello 2 usato per il \itindex{multicast} + \textit{multicast} (vedi sez.~\ref{sec:xxx_multicast}). Permette + alle stazioni remote di notificare ai router che supportano questa + comunicazione a quale gruppo esse appartengono. Come ICMP viene + implementato direttamente sopra IP. \item[\textsl{ARP}] \textit{Address Resolution Protocol}. È il protocollo che mappa un indirizzo IP in un indirizzo hardware sulla rete locale. È usato in - reti di tipo broadcast come Ethernet, Token Ring o FDDI che hanno associato - un indirizzo fisico (il \textit{MAC address}) alla interfaccia, ma non serve - in connessioni punto-punto. + reti di tipo \itindex{broadcast} \textit{broadcast} come Ethernet, Token + Ring o FDDI che hanno associato un indirizzo fisico (il \textit{MAC + address}) alla interfaccia, ma non serve in connessioni punto-punto. \item[\textsl{RARP}] \textit{Reverse Address Resolution Protocol}. È il protocollo che esegue l'operazione inversa rispetto ad ARP (da cui il nome) mappando un indirizzo hardware in un indirizzo IP. Viene usato a volte per @@ -551,7 +552,8 @@ grandi linee nei seguenti punti: supportare una gerarchia con più livelli di indirizzamento, un numero di nodi indirizzabili molto maggiore e una autoconfigurazione degli indirizzi. \item l'introduzione un nuovo tipo di indirizzamento, l'\textit{anycast} che - si aggiunge agli usuali \textit{unycast} e \textit{multicast}. + si aggiunge agli usuali \textit{unicast} e \itindex{multicast} + \textit{multicast}. \item la semplificazione del formato dell'intestazione (\textit{header}) dei pacchetti, eliminando o rendendo opzionali alcuni dei campi di IPv4, per eliminare la necessità di riprocessamento della stessa da parte dei router e @@ -616,7 +618,7 @@ grande pregio della velocit presta bene per le applicazioni in cui la connessione non è necessaria, e costituirebbe solo un peso in termini di prestazioni, mentre una perdita di pacchetti può essere tollerata, ad esempio le applicazioni di streaming e -quelle che usano il multicasting. +quelle che usano il \textit{multicast}. \itindex{multicast} \subsection{Transport Control Protocol (TCP)} \label{sec:net_tcp} @@ -688,10 +690,11 @@ effettuato per entrambe le direzioni di comunicazione. \label{sec:net_lim_dim} Un aspetto di cui bisogna tenere conto nella programmazione di rete, e che -ritornerà anche più avanti, è che ci sono una serie di limiti a cui la -trasmissione dei dati attraverso i vari livelli del protocollo deve -sottostare, limiti che è opportuno tenere presente perché in certi casi si -possono avere delle conseguenze sul comportamento delle applicazioni. +ritornerà in seguito, quando tratteremo gli aspetti più avanzti, è che ci sono +una serie di limiti a cui la trasmissione dei dati attraverso i vari livelli +del protocollo deve sottostare; limiti che è opportuno tenere presente perché +in certi casi si possono avere delle conseguenze sul comportamento delle +applicazioni. Un elenco di questi limiti, insieme ad un breve accenno alle loro origini ed alle eventuali implicazioni che possono avere, è il seguente: @@ -705,12 +708,14 @@ alle eventuali implicazioni che possono avere, 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 un 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}. +\item Molte reti fisiche hanno una MTU \itindex{Maximum~Transfer~Unit} + (\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} 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 @@ -734,8 +739,8 @@ piccoli che possono essere trasmessi attraverso l'interfaccia. X.25 & 576 \\ \hline \end{tabular} - \caption{Valori della MTU (\textit{maximum transfer unit}) per una serie di - reti diverse.} + \caption{Valori della MTU (\textit{Maximum Transfer Unit}) per una serie di + diverse tecnologie di rete.} \label{tab:net_mtu_values} \end{table} @@ -776,6 +781,9 @@ Il TCP usa sempre questo meccanismo, che per le implementazioni di IPv4 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}. +\itindend{Maximum~Transfer~Unit} + + Infine TCP definisce una MSS \textit{Maximum Segment Size} che annuncia all'altro capo della connessione la dimensione massima dimensione del segmento