Ancora message queues
[gapil.git] / ipprot.tex
index c366d89cbdd1c1f9ac1fd0b618354894f86f51f1..110fcb5c88893ddf81109fad07329b834f5f478d 100644 (file)
@@ -1,3 +1,13 @@
+%% ipprot.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
+%% Documentation License, Version 1.1 or any later version published by the
+%% Free Software Foundation; with the Invariant Sections being "Prefazione",
+%% 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 IP}
 \label{cha:ip_protocol}
 
@@ -41,8 +51,8 @@ quest'ultime assegnare i numeri dei singoli host.
 
 Per venire incontro alle diverse esigenze gli indirizzi di rete sono stati
 originariamente organizzati in \textit{classi}, (rappresentate in
-Tab.~\ref{tab:IP_ipv4class}), per consentire dispiegamenti di reti di
-dimensioni diverse.
+\tabref{tab:IP_ipv4class}), per consentire dispiegamenti di reti di dimensioni
+diverse.
 
 
 \begin{table}[htb]
@@ -157,12 +167,12 @@ di questi ultimi ed inefficienza nel trasporto.
 \end{table}
 
 Per questo nel 1992 è stato introdotto un indirizzamento senza classi (il
-CIDR) in cui il limite fra i bit destinati a indicare il numero di rete e
-quello destinati a indicare l'host finale può essere piazzato in qualunque
-punto (vedi Tab.~\tabref{tab:IP_ipv4cidr}), permettendo di accorpare più
-classi A su un'unica rete o suddividere una classe B e diminuendo al contempo
-il numero di indirizzi di rete da inserire nelle tabelle di instradamento dei
-router.
+CIDR, \textit{Classless Inter-Domain Routing}) in cui il limite fra i bit
+destinati a indicare il numero di rete e quello destinati a indicare l'host
+finale può essere piazzato in qualunque punto (vedi \tabref{tab:IP_ipv4cidr}),
+permettendo di accorpare più classi A su un'unica rete o suddividere una
+classe B e diminuendo al contempo il numero di indirizzi di rete da inserire
+nelle tabelle di instradamento dei router.
 
 
 \section{I motivi della transizione}
@@ -213,7 +223,7 @@ dimostrate valide, eliminando quelle inutili e aggiungendone poche altre
 ponendo al contempo una grande attenzione a mantenere il protocollo il più
 snello e veloce possibile.
 
-I cambiamenti apportati sono comunque notevoli e si possono essere riassunti a
+I cambiamenti apportati sono comunque notevoli e possono essere riassunti a
 grandi linee nei seguenti punti:
 \begin{itemize}
 \item l'espansione delle capacità di indirizzamento e instradamento, per
@@ -221,7 +231,7 @@ grandi linee nei seguenti punti:
   nodi indirizzabili molto maggiore e una autoconfigurazione degli indirizzi
 \item l'introduzione un nuovo tipo di indirizzamento, l'\textit{anycast} che
   si aggiungono agli usuali \textit{unycast} e \textit{multicast}
-\item la semplificazione del formato della testata, eliminando o rendendo
+\item la semplificazione del formato dell'intestazione, eliminando o rendendo
   opzionali alcuni dei campi di IPv4, per eliminare la necessità di
   riprocessamento della stessa da parte dei router e contenere l'aumento di
   dimensione dovuto ai nuovi indirizzi
@@ -236,53 +246,61 @@ grandi linee nei seguenti punti:
 \end{itemize}
 
 
-\section{La testata di IPv6}
+\section{L'intestazione di IPv6}
 \label{sec:IP_ipv6head}
 
 Per capire le caratteristiche di IPv6 partiamo dall'intestazione usata dal
 protocollo per gestire la trasmissione dei pacchetti; in
-\tabref{tab:IP_ipv6head} è riportato il formato della testata di IPv6 da
-confrontare con quella di IPv4 in \tabref{tab:IP_ipv4head}. La spiegazione del
-significato dei vari campi delle due testate è riportato rispettivamente in
-\tabref{tab:IP_ipv6field} e \tabref{tab:IP_ipv4field})
+\figref{fig:IP_ipv6head} è riportato il formato dell'intestazione di IPv6 da
+confrontare con quella di IPv4 in \figref{fig:IP_ipv4_head}. La spiegazione del
+significato dei vari campi delle due intestazioni è riportato rispettivamente
+in \tabref{tab:IP_ipv6field} e \tabref{tab:IP_ipv4field})
+
+% \begin{table}[htb]
+%   \footnotesize
+%   \begin{center}
+%     \begin{tabular}{@{\vrule}p{16mm}@{\vrule}p{16mm}@{\vrule}p{16mm}
+%         @{\vrule}p{16mm}@{\vrule}p{16mm}@{\vrule}p{16mm}
+%         @{\vrule}p{16mm}@{\vrule}p{16mm}@{\vrule} }
+%     \multicolumn{8}{@{}c@{}}{0\hfill 15 16\hfill 31}\\
+%     \hline
+%     \centering version&\centering priority& 
+%     \multicolumn{6}{@{}p{96mm}@{\vrule}}{\centering flow label} \\
+%     \hline
+%     \multicolumn{4}{@{\vrule}p{64mm}@{\vrule}}{\centering payload length} & 
+%     \multicolumn{2}{@{}p{32mm}@{\vrule}}{\centering next header} & 
+%     \multicolumn{2}{@{}p{32mm}@{\vrule}}{\centering hop limit}\\
+%     \hline
+%     \multicolumn{8}{@{\vrule}c@{\vrule}}{} \\
+%     \multicolumn{8}{@{\vrule}c@{\vrule}}{
+%       source} \\
+%     \multicolumn{8}{@{\vrule}c@{\vrule}}{
+%       IP address} \\
+%     \multicolumn{8}{@{\vrule}c@{\vrule}}{} \\
+%     \hline
+%     \multicolumn{8}{@{\vrule}c@{\vrule}}{} \\
+%     \multicolumn{8}{@{\vrule}c@{\vrule}}{
+%       destination} \\
+%     \multicolumn{8}{@{\vrule}c@{\vrule}}{
+%      IP address} \\
+%     \multicolumn{8}{@{\vrule}c@{\vrule}}{} \\
+%     \hline
+%     \end{tabular}
+%     \caption{L'intestazione o \textit{header} di IPv6}
+%     \label{tab:IP_ipv6head}
+%   \end{center}
+% \end{table}
+
+\begin{figure}[htb]
+  \centering
+  \includegraphics[width=10cm]{img/ipv6_head}
+  \caption{L'intestazione o \textit{header} di IPv6.}
+  \label{fig:IP_ipv6head}
+\end{figure}
 
-\begin{table}[htb]
-  \footnotesize
-  \begin{center}
-    \begin{tabular}{@{\vrule}p{16mm}@{\vrule}p{16mm}@{\vrule}p{16mm}
-        @{\vrule}p{16mm}@{\vrule}p{16mm}@{\vrule}p{16mm}
-        @{\vrule}p{16mm}@{\vrule}p{16mm}@{\vrule} }
-    \multicolumn{8}{@{}c@{}}{0\hfill 15 16\hfill 31}\\
-    \hline
-    \centering version&\centering priority& 
-    \multicolumn{6}{@{}p{96mm}@{\vrule}}{\centering flow label} \\
-    \hline
-    \multicolumn{4}{@{\vrule}p{64mm}@{\vrule}}{\centering payload lenght} & 
-    \multicolumn{2}{@{}p{32mm}@{\vrule}}{\centering next header} & 
-    \multicolumn{2}{@{}p{32mm}@{\vrule}}{\centering hop limit}\\
-    \hline
-    \multicolumn{8}{@{\vrule}c@{\vrule}}{} \\
-    \multicolumn{8}{@{\vrule}c@{\vrule}}{
-      source} \\
-    \multicolumn{8}{@{\vrule}c@{\vrule}}{
-      IP address} \\
-    \multicolumn{8}{@{\vrule}c@{\vrule}}{} \\
-    \hline
-    \multicolumn{8}{@{\vrule}c@{\vrule}}{} \\
-    \multicolumn{8}{@{\vrule}c@{\vrule}}{
-      destination} \\
-    \multicolumn{8}{@{\vrule}c@{\vrule}}{
-     IP address} \\
-    \multicolumn{8}{@{\vrule}c@{\vrule}}{} \\
-    \hline
-    \end{tabular}
-    \caption{La testata o \textit{header} di IPv6}
-    \label{tab:IP_ipv6head}
-  \end{center}
-\end{table}
 
-Come si può notare la testata di IPv6 diventa di dimensione fissa, pari a 40
-byte, contro una dimensione (minima, in assenza di opzioni) di 20 byte per
+Come si può notare l'intestazione di IPv6 diventa di dimensione fissa, pari a
+40 byte, contro una dimensione (minima, in assenza di opzioni) di 20 byte per
 IPv4; un semplice raddoppio nonostante lo spazio destinato agli indirizzi sia
 quadruplicato, questo grazie a una notevole semplificazione che ha ridotto il
 numero dei campi da 12 a 8.
@@ -290,28 +308,30 @@ numero dei campi da 12 a 8.
 \begin{table}[htb]
   \begin{center}
   \footnotesize
-    \begin{tabular}{ l c p{8cm}}
+    \begin{tabular}{|l|c|p{8cm}|}
+      \hline
       \textbf{Nome} & \textbf{Lunghezza} & \textbf{Significato} \\
-      \toprule
+      \hline
+      \hline
       \textit{version}       &  4 bit & 
       \textsl{versione}, nel caso specifico vale sempre 6\\
       \textit{priority}      &  4 bit & 
       \textsl{priorità}, vedi Sez.~\ref{sec:prio} \\
       \textit{flow label}    & 24 bit & 
       \textsl{etichetta di flusso}, vedi Sez.~\ref{sec:IP_ipv6_flow}\\
-      \textit{payload leght} & 16 bit & 
+      \textit{payload length} & 16 bit & 
       \textsl{lunghezza del carico}, cioè del corpo dei dati che segue 
       l'intestazione, in byte. \\
-      \textit{next header}   &  8 bit & \textsl{testata successiva}, 
-      identifica il tipo di pacchetto che segue la testata di IPv6, usa gli 
-      stessi valori del campo protocollo nella testata di IPv4\\
+      \textit{next header}   &  8 bit & \textsl{intestazione successiva}, 
+      identifica il tipo di pacchetto che segue l'intestazione di IPv6, usa 
+      gli stessi valori del campo protocollo nell'intestazione di IPv4\\
       \textit{hop limit}     &  8 bit & \textsl{limite di salti},
-      stesso significato del \textit{time to live} nella testata di IPv4, 
+      stesso significato del \textit{time to live} nell'intestazione di IPv4, 
       è decrementato di uno ogni volta che un nodo ritrasmette il
       pacchetto, se arriva a zero il pacchetto viene scartato \\
       \textit{source IP}     & 128 bit & \textsl{indirizzo di origine} \\
       \textit{destination IP}& 128 bit & \textsl{indirizzo di destinazione}\\
-      \bottomrule
+      \hline
     \end{tabular}
     \caption{Legenda per il significato dei campi dell'intestazione di IPv6}
     \label{tab:IP_ipv6field}
@@ -319,17 +339,18 @@ numero dei campi da 12 a 8.
 \end{table}
 
 Abbiamo già anticipato in \secref{sec:IP_ipv6over} uno dei criteri principali
-nella progettazione di IPv6 è stato quello di ridurre al massimo il tempo di
-processamento dei pacchetti da parte dei router, un confronto con la testata
-di IPv4 (vedi \secref{tab:IP_ipv4head}) mostra le seguenti differenze:
+nella progettazione di IPv6 è stato quello di ridurre al minimo il tempo di
+processamento dei pacchetti da parte dei router, un confronto con
+l'intestazione di IPv4 (vedi \figref{fig:IP_ipv4_head}) mostra le seguenti
+differenze:
 
 \begin{itemize}
-\item è stato eliminato il campo \textit{header lenght} in quanto le opzioni
-  sono state tolte dalla testata che ha così dimensione fissa; ci possono
-  essere più testate opzionali (\textsl{testate di estensione}, vedi
+\item è stato eliminato il campo \textit{header length} in quanto le opzioni
+  sono state tolte dall'intestazione che ha così dimensione fissa; ci possono
+  essere più intestazioni opzionali (\textsl{intestazioni di estensione}, vedi
   \secref{sec:IP_ipv6_extens}), ciascuna delle quali avrà un suo campo di
   lunghezza all'interno.
-\item la testata e gli indirizzi sono allineati a 64 bit, questo rende più
+\item l'intestazione e gli indirizzi sono allineati a 64 bit, questo rende più
   veloce il processo da parte di computer con processori a 64 bit.
 \item i campi per gestire la frammentazione (\textit{identification},
   \textit{flag} e \textit{fragment offset}) sono stati eliminati; questo
@@ -337,8 +358,8 @@ di IPv4 (vedi \secref{tab:IP_ipv4head}) mostra le seguenti differenze:
   processo dei pacchetti nel caso normale.
 \item è stato eliminato il campo \textit{checksum} in quanto tutti i
   protocolli di livello superiore (TCP, UDP e ICMPv6) hanno un campo di
-  checksum che include, oltre alla loro testata e ai dati, pure i campi
-  \textit{payload lenght}, \textit{next header}, e gli indirizzi di origine e
+  checksum che include, oltre alla loro intestazione e ai dati, pure i campi
+  \textit{payload length}, \textit{next header}, e gli indirizzi di origine e
   di destinazione; una checksum esiste anche per la gran parte protocolli di
   livello inferiore (anche se quelli che non lo hanno, come SLIP, non possono
   essere usati con grande affidabilità); con questa scelta si è ridotto di
@@ -352,92 +373,65 @@ di IPv4 (vedi \secref{tab:IP_ipv4head}) mostra le seguenti differenze:
 \item è stato introdotto un nuovo campo \textit{flow label}, che viene usato,
   insieme al campo \textit{priority} (che recupera i bit di precedenza del
   campo \textit{type of service}) per implementare la gestione di una
-  ``qualità di servizio'' (vedi Sez.~\ref{sec:IP_ipv6_qos}) che permette di
-  identificare i pacchetti appartenenti a un ``flusso'' di dati per i quali si
-  può provvedere un trattamento speciale.
+  ``\textsl{qualità di servizio}'' (vedi \secref{sec:IP_ipv6_qos}) che
+  permette di identificare i pacchetti appartenenti a un ``\textsl{flusso}''
+  di dati per i quali si può provvedere un trattamento speciale.
 \end{itemize}
 
-\begin{table}[htb]
-  \footnotesize
+
+\begin{figure}[htb]
   \centering
-  \begin{tabular}{@{\vrule}p{16mm}@{\vrule}p{16mm}@{\vrule}p{16mm}
-        @{\vrule}p{16mm}@{\vrule}p{16mm}@{\vrule}p{16mm}
-        @{\vrule}p{16mm}@{\vrule}p{16mm}@{\vrule} }
-    \multicolumn{8}{@{}c@{}}{0\hfill 15 16\hfill 31}\\
-    \hline
-    \centering version&
-    \centering head lenght&
-    \multicolumn{2}{@{}p{32mm}@{\vrule}}{\centering type of service} &  
-    \multicolumn{4}{@{}p{64mm}@{\vrule}}{\centering total lenght} \\
-    \hline
-    \multicolumn{4}{@{\vrule}p{64mm}@{\vrule}}{\centering identification} &
-    \multicolumn{4}{@{}p{64mm}@{\vrule}}{\parbox{11mm}{\centering flag} \vrule
-        \parbox{52mm}{\centering fragment offset}}\\
-    \hline
-    \multicolumn{2}{@{\vrule}p{32mm}@{\vrule}}{\centering TTL}& 
-    \multicolumn{2}{@{}p{32mm}@{\vrule}}{\centering protocol}&    
-    \multicolumn{4}{@{}p{64mm}@{\vrule}}{\centering header checksum} \\
-    \hline
-    \multicolumn{8}{@{\vrule}c@{\vrule}}{
-      source IP address} \\
-    \hline
-    \multicolumn{8}{@{\vrule}c@{\vrule}}{
-      destination IP address} \\
-    \hline
-    \multicolumn{8}{@{\vrule}c@{\vrule}}{} \\    
-    \multicolumn{8}{@{}p{128mm}@{}}{
-      \centering options (if any)} \\
-    \multicolumn{8}{@{\vrule}c@{\vrule}}{} \\    
-    \hline
-  \end{tabular}
-  \caption{L'intestazione o \textit{header} di IPv4}
-\label{tab:IP_ipv4head}
-\end{table}
+  \includegraphics[width=10cm]{img/ipv4_head}
+  \caption{L'intestazione o \textit{header} di IPv4.}
+  \label{fig:IP_ipv4_head}
+\end{figure}
 
 \begin{table}[htb]
   \footnotesize
   \begin{center}
-    \begin{tabular}{l c p{9cm}}
+    \begin{tabular}{|l|c|p{9cm}|}
+      \hline
       \textbf{Nome} & \textbf{Lunghezza} & \textbf{Significato} \\
-      \toprule
+      \hline
+      \hline
       \textit{version}          &  4 bit & \textsl{versione}, nel caso 
       specifico vale sempre 4\\
-      \textit{head lenght}      &  4 bit & \textsl{lunghezza della testata}, 
+      \textit{head length}      &  4 bit &\textsl{lunghezza dell'intestazione},
       in multipli di 32 bit\\
       \textit{type of service}  &  8 bit & \textsl{tipo di servizio}, 
       consiste in: 3 bit di precedenza, 
       correntemente ignorati; un bit non usato a 0;  4 bit che identificano
       il tipo di servizio richiesto, uno solo dei quali può essere 1\\
-      \textit{total lenght}     & 16 bit & \textsl{lunghezza totale}, indica 
+      \textit{total length}     & 16 bit & \textsl{lunghezza totale}, indica 
       la dimensione del pacchetto IP in byte\\
       \textit{identification}   & 16 bit & \textsl{identificazione}, 
-      assegnato alla creazione, è aumentato di uno all'origine alla 
+      assegnato alla creazione, è aumentato di uno all'origine della 
       trasmissione di ciascun pacchetto, ma resta lo stesso per i 
       pacchetti frammentati\\
       \textit{flag}             &  3 bit & 
       \textsl{flag} bit di frammentazione, uno indica se un
       pacchetto è frammentato, un'altro se ci sono ulteriori frammenti, e 
       un'altro se il pacchetto non può essere frammentato. \\
-      \textit{fragmentation offset} & 13 bit& \textsl{offset di frammento},
+      \textit{fragmentation offset} & 13 bit & \textsl{offset di frammento},
       indica la posizione del frammento rispetto al pacchetto originale\\
       \textit{time to live}    & 16 bit & \textsl{tempo di vita},
       ha lo stesso significato di
       \textit{hop limit}, vedi Tab.~\ref{tab:IP_ipv6field}\\
       \textit{protocol}        &  8 bit & \textsl{protocollo} 
       identifica il tipo di pacchetto che segue
-      la testata di IPv4\\
-      \textit{header checksum} & 16 bit & \textsl{checksum di testata}, somma
-      di controllo per la testata\\
+      l'intestazione di IPv4\\
+      \textit{header checksum} & 16 bit & \textsl{checksum di intestazione}, 
+      somma di controllo per l'intestazione\\
       \textit{source IP}       & 32 bit & \textsl{indirizzo di origine}\\
       \textit{destination IP}  & 32 bit & \textsl{indirizzo di destinazione}\\
-      \bottomrule
+      \hline
     \end{tabular}
     \caption{Legenda per il significato dei campi dell'intestazione di IPv4}
     \label{tab:IP_ipv4field}
   \end{center}
 \end{table}
 
-Oltre alle differenze precedenti, relative ai singoli campi nella testata,
+Oltre alle differenze precedenti, relative ai singoli campi nell'intestazione,
 ulteriori caratteristiche che diversificano il comportamento di IPv4 da
 quello di IPv6 sono le seguenti:
 
@@ -559,7 +553,7 @@ IPv4, un terzo tipo, gli indirizzi \textit{anycast} 
 In IPv6 non esistono più gli indirizzi \textit{broadcast}, la funzione di
 questi ultimi deve essere reimplementata con gli indirizzi \textit{multicast}.
 
-Gli indirizzi \textit{unicast} identificano una singola interfaccia i
+Gli indirizzi \textit{unicast} identificano una singola interfaccia: i
 pacchetti mandati ad un tale indirizzo verranno inviati a quella interfaccia,
 gli indirizzi \textit{anycast} identificano un gruppo di interfacce tale che
 un pacchetto mandato a uno di questi indirizzi viene inviato alla più vicina
@@ -629,14 +623,16 @@ i seguenti possibili valori per il \textsl{Registry Id};
 gli altri valori restano riservati per la IANA.
 \begin{table}[htb]
   \begin{center}
-    \begin{tabular}{l l l}
+    \begin{tabular}{|l|l|l|}
+      \hline
       \textbf{Regione} & \textbf{Registro} & \textbf{Id} \\
-      \toprule
+      \hline
+      \hline
       Nord America &INTERNIC & \texttt{11000} \\
       Europa & RIPE NCC & \texttt{01000} \\
       Asia & APNIC & \texttt{00100} \\
       Multi-regionale & IANA &\texttt{10000} \\
-      \bottomrule
+      \hline
     \end{tabular}
     \caption{Valori dell'identificativo dei 
       Regional Register allocati ad oggi.}
@@ -649,7 +645,7 @@ suddivisione fra \textit{Provider Id}, che identifica i grandi fornitori di
 servizi, e \textit{Subscriber Id}, che identifica i fruitori, sia gestita dai
 singoli registri regionali. Questi ultimi dovranno definire come dividere lo
 spazio di indirizzi assegnato a questi due campi (che ammonta a un totale di
-58~bit), definendo lo spazio da assegnare al \textit{Provider Id} e
+56~bit), definendo lo spazio da assegnare al \textit{Provider Id} e
 al \textit{Subscriber Id}, ad essi spetterà inoltre anche l'allocazione dei
 numeri di \textit{Provider Id} ai singoli fornitori, ai quali sarà delegata
 l'autorità di allocare i \textit{Subscriber Id} al loro interno.
@@ -693,8 +689,8 @@ degli indirizzi, allocando dei blocchi per i quali delegare l'autorit
 registri nazionali, quest'ultimi poi avranno il compito di gestire la
 attribuzione degli indirizzi per i fornitori di servizi nell'ambito del/i
 paese coperto dal registro nazionale con le modalità viste in precedenza.
-Una tale ripartizione andrà effettuata all'interno dei soliti 58~bit come
-mostrato in \ntab.
+Una tale ripartizione andrà effettuata all'interno dei soliti 56~bit come
+mostrato in \tabref{tab:IP_ipv6_uninaz}.
 
 \begin{table}[htb]
   \centering
@@ -752,22 +748,22 @@ prima di avere un indirizzo globale.
 \end{table}
 
 Ci sono due tipi di indirizzi, \textit{link-local} e \textit{site-local}. Il
-primo è usato per un singolo link; la struttura è mostrata in \curtab, questi
-indirizzi iniziano sempre per \texttt{FE80} e vengono in genere usati per la
-configurazione automatica dell'indirizzo al bootstrap e per la ricerca dei
-vicini (vedi \ref{sec:IP_ipv6_autoconf}); un pacchetto che abbia tale
-indirizzo come sorgente o destinazione non deve venire ritrasmesso dai router.
+primo è usato per un singolo link; la struttura è mostrata in
+\tabref{tab:IP_ipv6_linklocal}, questi indirizzi iniziano sempre per
+\texttt{FE80} e vengono in genere usati per la configurazione automatica
+dell'indirizzo al bootstrap e per la ricerca dei vicini (vedi
+\ref{sec:IP_ipv6_autoconf}); un pacchetto che abbia tale indirizzo come
+sorgente o destinazione non deve venire ritrasmesso dai router.
 
 Un indirizzo \textit{site-local} invece è usato per l'indirizzamento
 all'interno di un sito che non necessita di un prefisso globale; la struttura
-è mostrata in \ntab, questi indirizzi iniziano sempre per
-\texttt{FEC0} e non devono venire ritrasmessi dai router all'esterno del sito
-stesso; sono in sostanza gli equivalenti degli indirizzi riservati per reti
-private definiti su IPv4.
-Per entrambi gli indirizzi il campo \textit{Interface Id} è un
-identificatore che deve essere unico nel dominio in cui viene usato, un modo
-immediato per costruirlo è quello di usare il MAC-address delle schede di
-rete.
+è mostrata in \tabref{tab:IP_ipv6_sitelocal}, questi indirizzi iniziano sempre
+per \texttt{FEC0} e non devono venire ritrasmessi dai router all'esterno del
+sito stesso; sono in sostanza gli equivalenti degli indirizzi riservati per
+reti private definiti su IPv4.  Per entrambi gli indirizzi il campo
+\textit{Interface Id} è un identificatore che deve essere unico nel dominio in
+cui viene usato, un modo immediato per costruirlo è quello di usare il
+MAC-address delle schede di rete.
  
 \begin{table}[!h]
   \centering
@@ -803,12 +799,12 @@ Alcuni indirizzi sono riservati per scopi speciali, in particolare per scopi
 di compatibilità.
 
 Un primo tipo sono gli indirizzi \textit{IPv4 mappati su IPv6} (mostrati in
-\ntab), questo sono indirizzi unicast che vengono usati per consentire ad
-applicazioni IPv6 di comunicare con host capaci solo di IPv4; questi sono ad
-esempio gli indirizzi generati da un DNS quando l'host richiesto supporta solo
-IPv4; l'uso di un tale indirizzo in un socket IPv6 comporta la generazione di
-un pacchetto IPv4 (ovviamente occorre che sia IPv4 che IPv6 siano supportate
-sull'host di origine).
+\tabref{tab:IP_ipv6_map}), questo sono indirizzi unicast che vengono usati per
+consentire ad applicazioni IPv6 di comunicare con host capaci solo di IPv4;
+questi sono ad esempio gli indirizzi generati da un DNS quando l'host
+richiesto supporta solo IPv4; l'uso di un tale indirizzo in un socket IPv6
+comporta la generazione di un pacchetto IPv4 (ovviamente occorre che sia IPv4
+che IPv6 siano supportati sull'host di origine).
 
 \begin{table}[!htb]
   \centering
@@ -830,10 +826,10 @@ sull'host di origine).
 \end{table}
 
 Un secondo tipo di indirizzi di compatibilità sono gli \textit{IPv4
-  compatibili IPv6} (vedi \ntab) usati nella transizione da IPv4 a IPv6,
-quando un host che supporta sia IPv6 che IPv4 non ha un router IPv6 deve usare
-nel DNS un indirizzo di questo tipo, ogni pacchetto IPv6 inviato a un tale
-indirizzo verrà automaticamente incapsulato in IPv4.
+  compatibili IPv6} (vedi \tabref{tab:IP_ipv6_comp}) usati nella transizione
+da IPv4 a IPv6: quando un nodo che supporta sia IPv6 che IPv4 non ha un router
+IPv6 deve usare nel DNS un indirizzo di questo tipo, ogni pacchetto IPv6
+inviato a un tale indirizzo verrà automaticamente incapsulato in IPv4.
 
 \begin{table}[htb]
   \centering
@@ -864,11 +860,11 @@ l'accettazione di una connessione da qualunque host.
 \label{sec:IP_ipv6_multicast}
 
 Gli indirizzi \textit{multicast} sono usati per inviare un pacchetto a un
-gruppo di interfacce; l'indirizzo identifica uno specifico gruppo di
-multicast e il pacchetto viene inviato a tutte le interfacce di detto gruppo.
+gruppo di interfacce; l'indirizzo identifica uno specifico gruppo di multicast
+e il pacchetto viene inviato a tutte le interfacce di detto gruppo.
 Un'interfaccia può appartenere ad un numero qualunque numero di gruppi di
 multicast. Il formato degli indirizzi \textit{multicast} è riportato in
-\ntab:
+\tabref{tab:IP_ipv6_multicast}:
 
 \begin{table}[htb]
   \centering
@@ -900,18 +896,19 @@ Il prefisso di formato per tutti gli indirizzi \textit{multicast} 
   transitorio.
 \item \textsl{scop} è un numero di quattro bit che indica il raggio di
   validità dell'indirizzo, i valori assegnati per ora sono riportati in
-  \ntab.
+  \tabref{tab:IP_ipv6_multiscope}.
 \end{itemize}
 
-Infine l'ultimo campo identifica il gruppo di multicast, sia permanente che
-transitorio, all'interno del raggio di validità del medesimo.
+
 
 \begin{table}[!htb]
   \centering 
   \footnotesize
-  \begin{tabular}[c]{c l c l}
-    \multicolumn{4}{c}{\bf Gruppi di multicast} \\
-    \toprule 
+  \begin{tabular}[c]{|c|l|c|l|}
+    \hline
+    \multicolumn{4}{|c|}{\bf Gruppi di multicast} \\
+    \hline
+    \hline
     0 & riservato & 8 & organizzazione locale \\
     1 & nodo locale & 9 & non assegnato \\
     2 & collegamento locale & A & non assegnato \\
@@ -920,19 +917,54 @@ transitorio, all'interno del raggio di validit
     5 & sito locale & D & non assegnato \\
     6 & non assegnato & E & globale \\
     7 & non assegnato & F & riservato \\
-    \bottomrule
+    \hline
   \end{tabular}
 \caption{Possibili valori del campo \textsl{scop} di un indirizzo multicast.}
 \label{tab:IP_ipv6_multiscope}
 \end{table}
 
+Infine l'ultimo campo identifica il gruppo di multicast, sia permanente che
+transitorio, all'interno del raggio di validità del medesimo. Alcuni
+indirizzi multicast, riportati in \tabref{tab:multiadd} sono già riservati
+per il funzionamento della rete.
+
+\begin{table}[!htb]
+  \centering 
+  \footnotesize
+  \begin{tabular}[c]{l l r}
+    \hline
+    \textbf{Uso}& \textbf{Indirizzi riservati} & \textbf{Definizione}\\
+    \hline 
+    \hline 
+    all-nodes & \texttt{FFxx:0:0:0:0:0:0:1} & RFC 1970\\
+    all-routers & \texttt{FFxx:0:0:0:0:0:0:2} & RFC 1970\\
+    all-rip-routers & \texttt{FFxx:0:0:0:0:0:0:9} & RFC 2080\\
+    all-cbt-routers & \texttt{FFxx:0:0:0:0:0:0:10} &\\
+    reserved &  \texttt{FFxx:0:0:0:0:0:1:0} & IANA \\
+    link-name &  \texttt{FFxx:0:0:0:0:0:1:1} &  \\
+    all-dhcp-agents & \texttt{FFxx:0:0:0:0:0:1:2} & \\
+    all-dhcp-servers & \texttt{FFxx:0:0:0:0:0:1:3} & \\
+    all-dhcp-relays & \texttt{FFxx:0:0:0:0:0:1:4} & \\
+    solicited-nodes &  \texttt{FFxx:0:0:0:0:1:0:0} & RFC 1970\\
+    \hline
+  \end{tabular}
+\caption{Gruppi multicast predefiniti.}
+\label{tab:multiadd}
+\end{table}
+
+L'utilizzo del campo di \textit{scope} e di questi indirizzi predefiniti serve
+a recuperare le funzionalità del broadcasting (ad esempio inviando un
+pacchetto all'indirizzo \texttt{FF02:0:0:0:0:0:0:1} si raggiungono tutti i
+nodi locali).
+
+
 \subsection{Indirizzi \textit{anycast}}
 \label{sec:IP_anycast}
 
 Gli indirizzi \textit{anycast} sono indirizzi che vengono assegnati ad un
-gruppo di interfacce per quali un pacchetto indirizzato a questo tipo di
-indirizzo viene inviato al componente del gruppo più ``vicino'' secondo la
-distanza di instradamento calcolata dai router.
+gruppo di interfacce: un pacchetto indirizzato a questo tipo di indirizzo
+viene inviato al componente del gruppo più ``\textsl{vicino}'' secondo la distanza di
+instradamento calcolata dai router.
 
 Questi indirizzi sono allocati nello stesso spazio degli indirizzi unicast,
 usando uno dei formati disponibili, e per questo, sono da essi assolutamente
@@ -942,9 +974,9 @@ configurato per tener conto del fatto.
 
 Gli indirizzi anycast consentono a un nodo sorgente di inviare pacchetti a una
 destinazione su un gruppo di possibili interfacce selezionate. La sorgente non
-deve curarsi di come scegliere l'interfaccia più vicina, compito che tocca
-al sistema di instradamento, (in sostanza la sorgente non ha nessun controllo
-sulla selezione). 
+deve curarsi di come scegliere l'interfaccia più vicina, compito che tocca al
+sistema di instradamento (in sostanza la sorgente non ha nessun controllo
+sulla selezione).
 
 Gli indirizzi anycast, quando vengono usati come parte di una sequenza di
 instradamento, consentono ad esempio ad un nodo di scegliere quale fornitore
@@ -952,8 +984,9 @@ vuole usare (configurando gli indirizzi anycast per identificare i router di
 uno stesso provider).
 
 Questi indirizzi pertanto possono essere usati come indirizzi intermedi in una
-testata di instradamento o per identificare insiemi di router connessi a una
-particolare sottorete, o che forniscono l'accesso a un certo sotto dominio.
+intestazione di instradamento o per identificare insiemi di router connessi a
+una particolare sottorete, o che forniscono l'accesso a un certo sotto
+dominio.
 
 L'idea alla base degli indirizzi anycast è perciò quella di utilizzarli per
 poter raggiungere il fornitore di servizio più vicino; ma restano aperte tutta
@@ -969,14 +1002,15 @@ La materia 
 \label{sec:IP_ipv6_extens}
 
 Come già detto in precedenza IPv6 ha completamente cambiato il trattamento
-delle opzioni; queste ultime infatti sono state tolte dalla testata del
-pacchetto, e poste in apposite \textsl{testate di estensione} (o
-\textit{extension header}) poste fra la testata di IPv6 e la testata del
-protocollo di trasporto.
+delle opzioni; queste ultime infatti sono state tolte dall'intestazione del
+pacchetto, e poste in apposite \textsl{intestazioni di estensione} (o
+\textit{extension header}) poste fra l'intestazione di IPv6 e l'intestazione
+del protocollo di trasporto.
 
 Per aumentare la velocità di processo, sia dei dati del livello seguente che
 di ulteriori opzioni, ciascuna estensione deve avere una lunghezza multipla di
-8 byte per mantenere l'allineamento a 64~bit di tutti le testate seguenti.
+8 byte per mantenere l'allineamento a 64~bit di tutti le intestazioni
+seguenti.
 
 Dato che la maggior parte di queste estensioni non sono esaminate dai router
 durante l'instradamento e la trasmissione dei pacchetti, ma solo all'arrivo
@@ -991,10 +1025,11 @@ sicurezza, improponibili con IPv4.
 
 Le estensioni definite al momento sono le seguenti:
 \begin{itemize}
-\item \textbf{Hop by hop} devono seguire immediatamente la testata principale;
-  indicano le opzioni che devono venire processate ad ogni passaggio da un
-  router, fra di esse è da menzionare la \textit{jumbo payload} che segnala
-  la presenza di un pacchetto di dati di dimensione superiore a 64Kb.
+\item \textbf{Hop by hop} devono seguire immediatamente l'intestazione
+  principale; indicano le opzioni che devono venire processate ad ogni
+  passaggio da un router, fra di esse è da menzionare la \textit{jumbo
+    payload} che segnala la presenza di un pacchetto di dati di dimensione
+  superiore a 65535 byte.
 \item \textbf{Destination options} opzioni che devono venire esaminate al nodo
   di ricevimento, nessuna di esse è tuttora definita.
 \item \textbf{Routing} definisce una \textit{source route} (come la analoga
@@ -1010,16 +1045,17 @@ Le estensioni definite al momento sono le seguenti:
 \end{itemize}
 
 La presenza di opzioni è rilevata dal valore del campo \textit{next header}
-che indica qual'è la testata successiva a quella di IPv6; in assenza di
-opzioni questa sarà la testata di un protocollo di trasporto del livello
+che indica qual'è l'intestazione successiva a quella di IPv6; in assenza di
+opzioni questa sarà l'intestazione di un protocollo di trasporto del livello
 superiore, per cui il campo assumerà lo stesso valore del campo
 \textit{protocol} di IPv4, altrimenti assumerà il valore dell'opzione
-presente; i valori possibili sono riportati in \ntab.
+presente; i valori possibili sono riportati in \tabref{tab:IP_ipv6_nexthead}.
 
 \begin{table}[htb]
   \begin{center}
     \footnotesize
-    \begin{tabular}{c l l}
+    \begin{tabular}{|c|l|l|}
+      \hline
       \textbf{Valore} & \textbf{Keyword} & \textbf{Tipo di protocollo} \\
       \hline
       \hline
@@ -1035,14 +1071,15 @@ presente; i valori possibili sono riportati in \ntab.
       43 & RH   & Routing Header (IPv6) \\
       44 & FH   & Fragment Header (IPv6) \\
       45 & IDRP & Inter Domain Routing \\
-      51 & AH   & Autentication Header (IPv6) \\
+      51 & AH   & Authentication Header (IPv6) \\
       52 & ESP  & Encrypted Security Payload (IPv6) \\
       59 & Null & No next header (IPv6) \\
       88 & IGRP & Internet Group Routing \\
       89 & OSPF & Open Short Path First \\
       255&      & riservato \\
+    \hline
     \end{tabular}
-    \caption{Tipi di protocolli e testate di estensione}
+    \caption{Tipi di protocolli e intestazioni di estensione}
     \label{tab:IP_ipv6_nexthead}
   \end{center}
 \end{table}
@@ -1112,18 +1149,18 @@ valori di priorit
 \begin{table}[htb]
   \centering
   \footnotesize
-  \begin{tabular} {c l}
-    Valore & tipo di traffico \\
-    \toprule
+  \begin{tabular}{|c|l|}
+    \hline
+    \textbf{Valore} & \textbf{Tipo di traffico} \\
+    \hline
+    \hline
     0 & traffico generico \\
     1 & traffico di riempimento (es. news) \\
     2 & trasferimento dati non interattivo (es. e-mail)\\
     3 & riservato \\
     4 & trasferimento dati interattivo (es. FTP, HTTP, NFS) \\
     5 & riservato \\
-    6 & traffico interattivo (telnet, X)\\
-    7 & traffico di controllo (routing, SNMP) \\
-    \bottomrule
+    \hline
 \end{tabular}
 \caption{Formato di un indirizzo \textit{site-local}.}
 \label{tab:priority}
@@ -1138,23 +1175,23 @@ pi
 \label{sec:security}
 
 La attuale implementazione di Internet presenta numerosi problemi di
-sicurezza, in particolare i dati presenti nelle testate dei vari protocolli
-sono assunti essere corretti, il che da adito alla possibilità di varie
-tipologie di attacco forgiando pacchetti false, inoltre tutti questi dati
-passano in chiaro sulla rete e sono esposti all'osservazione di chiunque si
-trovi in mezzo.
+sicurezza, in particolare i dati presenti nelle intestazioni dei vari
+protocolli sono assunti essere corretti, il che da adito alla possibilità di
+varie tipologie di attacco forgiando pacchetti false, inoltre tutti questi
+dati passano in chiaro sulla rete e sono esposti all'osservazione di chiunque
+si trovi in mezzo.
 
 Con IPv4 non è possibile realizzare un meccanismo di autenticazione e
 riservatezza a un livello inferiore al primo (quello di applicazione), con
-IPv6 è stato progettata la possibilità di intervenire al livello del
-collegamento (il terzo) prevedendo due apposite estensioni che possono essere
-usate per fornire livelli di sicurezza a seconda degli utenti. La codifica
-generale di questa architettura è riportata nell'RFC 2401.
+IPv6 è stato progettata la possibilità di intervenire al livello di rete (il
+terzo) prevedendo due apposite estensioni che possono essere usate per fornire
+livelli di sicurezza a seconda degli utenti. La codifica generale di questa
+architettura è riportata nell'RFC 2401.
 
 Il meccanismo in sostanza si basa su due estensioni:
 \begin{itemize}
-\item una testata di sicurezza (\textit{autentication header}) che garantisce
-  al destinatario l'autenticità del pacchetto
+\item una intestazione di sicurezza (\textit{authentication header}) che
+  garantisce al destinatario l'autenticità del pacchetto
 \item un carico di sicurezza (\textit{Encrypted Security Payload}) che
   assicura che solo il legittimo ricevente può leggere il pacchetto.
 \end{itemize}
@@ -1170,23 +1207,25 @@ di ogni comunicazione ed 
 multicast dovrà essere lo stesso per tutte le stazioni del gruppo.
 
 \subsection{Autenticazione}
-Il primo meccanismo di sicurezza è quello della testata di autenticazione
-(\textit{autentication header}) che fornisce l'autenticazione e il controllo
+\label{sec:auth} 
+
+Il primo meccanismo di sicurezza è quello dell'intestazione di autenticazione
+(\textit{authentication header}) che fornisce l'autenticazione e il controllo
 di integrità (ma senza riservatezza) dei pacchetti IP.
 
-La testata di autenticazione ha il formato descritto in
-Tab.~\ref{tab:autent_head} il campo \textit{Next Header} indica la testata
-successiva, con gli stessi valori del campo omonimo nella testata principale
-di IPv6, il campo \textit{Lengh} indica la lunghezza della testata di
-autenticazione in numero di parole a 32 bit, il campo riservato deve essere
-posto a zero, seguono poi l'indice di sicurezza, stabilito nella associazione
-di sicurezza, e un numero di sequenza che la stazione sorgente deve
-incrementare di pacchetto in pacchetto.
+L'intestazione di autenticazione ha il formato descritto in
+\tabref{tab:autent_head}: il campo \textit{Next Header} indica l'intestazione
+successiva, con gli stessi valori del campo omonimo nell'intestazione
+principale di IPv6, il campo \textit{Length} indica la lunghezza
+dell'intestazione di autenticazione in numero di parole a 32 bit, il campo
+riservato deve essere posto a zero, seguono poi l'indice di sicurezza,
+stabilito nella associazione di sicurezza, e un numero di sequenza che la
+stazione sorgente deve incrementare di pacchetto in pacchetto.
 
-Completano la testata i dati di autenticazione che contengono un valore di
+Completano l'intestazione i dati di autenticazione che contengono un valore di
 controllo di integrità (ICV, \textit{Integrity Check Value}), che deve essere
 di dimensione pari a un multiplo intero di 32 bit e può contenere un padding
-per allineare la testata a 64 bit. Tutti gli algoritmi di autenticazione
+per allineare l'intestazione a 64 bit. Tutti gli algoritmi di autenticazione
 devono provvedere questa capacità.
 
 \renewcommand\arraystretch{1.2}
@@ -1197,7 +1236,7 @@ devono provvedere questa capacit
         @{\vrule}p{48mm}@{\vrule} }
     \multicolumn{3}{@{}c@{}}{0\hfill 15 16\hfill 31}\\
     \hline
-    \centering Next Header&\centering Lenght&
+    \centering Next Header&\centering Length&
     \centering Reserved \tabularnewline
     \hline
     \multicolumn{3}{@{\vrule}c@{\vrule}}
@@ -1207,26 +1246,25 @@ devono provvedere questa capacit
     {\centering Sequence Number}\\  
     \hline
     \multicolumn{3}{@{\vrule}c@{\vrule}}{} \\
-    \multicolumn{3}{@{\vrule}c@{\vrule}}{Autentication Data} \\
+    \multicolumn{3}{@{\vrule}c@{\vrule}}{Authentication Data} \\
     \multicolumn{3}{@{\vrule}c@{\vrule}}
     {\centering ... } \\
     \multicolumn{3}{@{\vrule}c@{\vrule}}{} \\
     \hline
     \end{tabular}
-    \caption{Formato della testata dell'estensione di autenticazione}
+    \caption{Formato dell'intestazione dell'estensione di autenticazione}
     \label{tab:autent_estens}
   \end{center}
 \end{table}
 \renewcommand\arraystretch{1} %default
 
 
-
-La testata di autenticazione può essere impiegata in due modi diverse
+L'intestazione di autenticazione può essere impiegata in due modi diverse
 modalità: modalità trasporto e modalità tunnel.
 
 La modalità trasporto è utilizzabile solo per comunicazioni fra stazioni
-singole che supportino l'autenticazione. In questo caso la testata di
-autenticazione è inserita dopo tutte le altre testate di estensione
+singole che supportino l'autenticazione. In questo caso l'intestazione di
+autenticazione è inserita dopo tutte le altre intestazioni di estensione
 eccezion fatta per la \textit{Destination Option} che può comparire sia
 prima che dopo. 
 
@@ -1243,7 +1281,7 @@ prima che dopo.
     & & & & & \\
     \hline
     \end{tabular*}
-    \caption{Formato della testata dell'estensione di autenticazione}
+    \caption{Formato dell'intestazione dell'estensione di autenticazione}
     \label{tab:autent_head}
   \end{center}
 \end{table}
@@ -1259,25 +1297,22 @@ La modalit
 singole che con un gateway di sicurezza; in questa modalità 
 
 
-La testata di autenticazione è una testata di estensione inserita dopo la
-testata principale e prima del carico dei dati. La sua presenza non ha
-perciò alcuna influenza sui livelli superiori dei protocolli di trasmissione
-come il TCP.
-
-
-
+L'intestazione di autenticazione è una intestazione di estensione inserita
+dopo l'intestazione principale e prima del carico dei dati. La sua presenza
+non ha perciò alcuna influenza sui livelli superiori dei protocolli di
+trasmissione come il TCP.
 
 
-La procedura di autenticazione cerca di garantire l'autenticità del
-pacchetto nella massima estensione possibile, ma dato che alcuni campi della
-testata di IP possono variare in maniera impredicibile alla sorgente, il loro
-valore non può essere protetto dall'autenticazione. 
+La procedura di autenticazione cerca di garantire l'autenticità del pacchetto
+nella massima estensione possibile, ma dato che alcuni campi dell'intestazione
+di IP possono variare in maniera impredicibile alla sorgente, il loro valore
+non può essere protetto dall'autenticazione.
 
 Il calcolo dei dati di autenticazione viene effettuato alla sorgente su una
-versione speciale del pacchetto in cui il numero di salti nella testata
-principale è settato a zero, così come le opzioni che possono essere
-modificate nella trasmissione, e la testata di routing (se usata) è posta ai
-valori che deve avere all'arrivo.
+versione speciale del pacchetto in cui il numero di salti nell'intestazione
+principale è impostato a zero, così come le opzioni che possono essere
+modificate nella trasmissione, e l'intestazione di routing (se usata) è posta
+ai valori che deve avere all'arrivo.
 
 L'estensione è indipendente dall'algoritmo particolare, e il protocollo è
 ancora in fase di definizione; attualmente è stato suggerito l'uso di una
@@ -1291,8 +1326,8 @@ una chiave che viene inserita all'inizio e alla fine degli altri campi.
 Per garantire una trasmissione riservata dei dati, è stata previsto la
 possibilità di trasmettere pacchetti con i dati criptati: il cosiddetto ESP,
 \textit{Encripted Security Payload}. Questo viene realizzato usando con una
-apposita opzione che deve essere sempre l'ultima delle testate di estensione;
-ad essa segue il carico del pacchetto che viene criptato.
+apposita opzione che deve essere sempre l'ultima delle intestazioni di
+estensione; ad essa segue il carico del pacchetto che viene criptato.
 
 Un pacchetto crittografato pertanto viene ad avere una struttura del tipo di
 quella mostrata in Tab~.\ref{tab:criptopack}, tutti i campi sono in chiaro
@@ -1307,12 +1342,12 @@ fino al vettore di inizializzazione, il resto 
     \multicolumn{4}{@{}c@{}}{0\hfill 15 16\hfill 31}\\
     \hline
     \multicolumn{4}{@{\vrule}c@{\vrule}}{}\\
-    \multicolumn{4}{@{\vrule}c@{\vrule}}{Testata Principale}\\
+    \multicolumn{4}{@{\vrule}c@{\vrule}}{Intestazione Principale}\\
     \multicolumn{4}{@{\vrule}c@{\vrule}}{...}\\
     \multicolumn{4}{@{\vrule}c@{\vrule}}{}\\
     \hline
     \multicolumn{4}{@{\vrule}c@{\vrule}}{}\\
-    \multicolumn{4}{@{\vrule}c@{\vrule}}{Testate di estensione}\\
+    \multicolumn{4}{@{\vrule}c@{\vrule}}{Intestazioni di estensione}\\
     \multicolumn{4}{@{\vrule}c@{\vrule}}{...}\\
     \multicolumn{4}{@{\vrule}c@{\vrule}}{}\\
     \hline
@@ -1346,3 +1381,77 @@ fino al vettore di inizializzazione, il resto 
 \section{Autoconfigurazione}
 \label{sec:IP_ipv6_autoconf}
 
+Una delle caratteristiche salienti di IPv6 è quella dell'autoconfigurazione,
+il protocollo infatti fornisce la possibilità ad un nodo di scoprire
+automaticamente il suo indirizzo acquisendo i parametri necessari per potersi
+connettere a internet. 
+
+L'autoconfigurazione sfrutta gli indirizzi link-local; qualora sul nodo sia
+presente una scheda di rete che supporta lo standard IEEE802 (ethernet) questo
+garantisce la presenza di un indirizzo fisico a 48 bit unico; pertanto il nodo
+può assumere automaticamente senza pericoli di collisione l'indirizzo
+link-local \texttt{FE80::xxxx:xxxx:xxxx} dove \texttt{xxxx:xxxx:xxxx} è
+l'indirizzo hardware della scheda di rete. 
+
+Nel caso in cui non sia presente una scheda che supporta lo standard IEEE802
+allora il nodo assumerà ugualmente un indirizzo link-local della forma
+precedente, ma il valore di \texttt{xxxx:xxxx:xxxx} sarà generato
+casualmente; in questo caso la probabilità di collisione è di 1 su 300
+milioni. In ogni caso per prevenire questo rischio il nodo invierà un
+messaggio ICMP \textit{Solicitation} all'indirizzo scelto attendendo un certo
+lasso di tempo; in caso di risposta l'indirizzo è duplicato e il
+procedimento dovrà essere ripetuto con un nuovo indirizzo (o interrotto
+richiedendo assistenza).
+
+Una volta ottenuto un indirizzo locale valido diventa possibile per il nodo
+comunicare con la rete locale; sono pertanto previste due modalità di
+autoconfigurazione, descritte nelle seguenti sezioni. In ogni caso
+l'indirizzo link-local resta valido.
+
+\subsection{Autoconfigurazione stateless}
+\label{sec:stateless}
+
+Questa è la forma più semplice di autoconfigurazione, possibile quando
+l'indirizzo globale può essere ricavato dall'indirizzo link-local cambiando
+semplicemente il prefisso a quello assegnato dal provider per ottenere un
+indirizzo globale.
+
+La procedura di configurazione è la seguente: all'avvio tutti i nodi IPv6
+iniziano si devono aggregare al gruppo multicast \textit{all-nodes}
+programmando la propria interfaccia per ricevere i messaggi dall'indirizzo
+multicast \texttt{FF02::1} (vedi \secref{sec:IP_ipv6_multicast}); a questo
+punto devono inviare un messaggio ICMP \textit{Router solicitation} a tutti i
+router locali usando l'indirizzo multicast \texttt{FF02::2} usando come
+sorgente il proprio indirizzo link-local.
+
+Il router risponderà con un messaggio ICMP \textit{Router Advertisement} che
+fornisce il prefisso e la validità nel tempo del medesimo, questo tipo di
+messaggio può essere trasmesso anche a intervalli regolari. Il messaggio
+contiene anche l'informazione che autorizza un nodo a autocostruire
+l'indirizzo, nel qual caso, se il prefisso unito all'indirizzo link-local non
+supera i 128 bit, la stazione ottiene automaticamente il suo indirizzo
+globale.
+
+\subsection{Autoconfigurazione stateful}
+\label{sec:stateful}
+
+Benché estremamente semplice l'autoconfigurazione stateless presenta alcuni
+problemi; il primo è che l'uso degli indirizzi delle schede di rete è
+molto inefficiente; nel caso in cui ci siano esigenze di creare una gerarchia
+strutturata su parecchi livelli possono non restare 48~bit per l'indirizzo
+della singola stazione; il secondo problema è di sicurezza, dato che basta
+introdurre in una rete una stazione autoconfigurante per ottenere un accesso
+legale.
+
+Per questi motivi è previsto anche un protocollo stateful basato su un
+server che offra una versione IPv6 del DHCP; un apposito gruppo di multicast
+\texttt{FF02::1:0} è stato riservato per questi server; in questo caso il
+nodo interrogherà il server su questo indirizzo di multicast con l'indirizzo
+link-local e riceverà un indirizzo unicast globale.
+
+
+
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: "gapil"
+%%% End: