Merge branch 'master' of ssh://gapil.gnulinux.it/srv/git/gapil
[gapil.git] / netlayer.tex
index 9e8d27c41e45d906351e20ae0752356ba68b82d1..4ed5260559a9e947dcdc98a597731c35566238cc 100644 (file)
@@ -1,6 +1,6 @@
 %% netlayer.tex
 %%
 %% netlayer.tex
 %%
-%% Copyright (C) 2000-2015 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2019 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",
 %% 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",
@@ -148,8 +148,8 @@ dispiegamenti di reti di varie dimensioni a seconda delle diverse esigenze.
 
 Le classi di indirizzi usate per il dispiegamento delle reti su quella che
 comunemente viene chiamata \textit{Internet} sono le prime tre; la classe D è
 
 Le classi di indirizzi usate per il dispiegamento delle reti su quella che
 comunemente viene chiamata \textit{Internet} sono le prime tre; la classe D è
-destinata al \itindex{multicast} \textit{multicast} mentre la classe E è
-riservata per usi sperimentali e non viene impiegata.
+destinata al \textit{multicast} mentre la classe E è riservata per usi
+sperimentali e non viene impiegata.
 
 Come si può notare però la suddivisione riportata in
 tab.~\ref{tab:IP_ipv4class} è largamente inefficiente in quanto se ad un
 
 Come si può notare però la suddivisione riportata in
 tab.~\ref{tab:IP_ipv4class} è largamente inefficiente in quanto se ad un
@@ -158,8 +158,8 @@ classe A occorre passare a una classe B, che ne prevede 65536,\footnote{in
   realtà i valori esatti sarebbero 254 e 65534, una rete con a disposizione
   $N$ bit dell'indirizzo IP, ha disponibili per le singole macchine soltanto
   $@^N-2$ numeri, dato che uno deve essere utilizzato come indirizzo di rete e
   realtà i valori esatti sarebbero 254 e 65534, una rete con a disposizione
   $N$ bit dell'indirizzo IP, ha disponibili per le singole macchine soltanto
   $@^N-2$ numeri, dato che uno deve essere utilizzato come indirizzo di rete e
-  uno per l'indirizzo di \itindex{broadcast} \textit{broadcast}.} con un
-conseguente spreco di numeri.
+  uno per l'indirizzo di \textit{broadcast}.} con un conseguente spreco di
+numeri.
 
 Inoltre, in particolare per le reti di classe C, la presenza di tanti
 indirizzi di rete diversi comporta una crescita enorme delle tabelle di
 
 Inoltre, in particolare per le reti di classe C, la presenza di tanti
 indirizzi di rete diversi comporta una crescita enorme delle tabelle di
@@ -304,24 +304,24 @@ priorità e politiche di distribuzione degli stessi.
     \multicolumn{2}{|c|}{\textbf{Valore}}&\textbf{Significato}\\
     \hline
     \hline
     \multicolumn{2}{|c|}{\textbf{Valore}}&\textbf{Significato}\\
     \hline
     \hline
-    \const{IPTOS\_LOWDELAY}     &\texttt{0x10}& Minimizza i ritardi
+    \constd{IPTOS\_LOWDELAY}    &\texttt{0x10}& Minimizza i ritardi
                                                 per rendere più veloce
                                                 possibile la ritrasmissione
                                                 dei pacchetti (usato per
                                                 traffico interattivo di
                                                 controllo come SSH).\\
                                                 per rendere più veloce
                                                 possibile la ritrasmissione
                                                 dei pacchetti (usato per
                                                 traffico interattivo di
                                                 controllo come SSH).\\
-    \const{IPTOS\_THROUGHPUT}   &\texttt{0x8} & Ottimizza la trasmissione
+    \constd{IPTOS\_THROUGHPUT}  &\texttt{0x8} & Ottimizza la trasmissione
                                                 per rendere il più elevato
                                                 possibile il flusso netto di
                                                 dati (usato su traffico dati,
                                                 come quello di FTP).\\ 
                                                 per rendere il più elevato
                                                 possibile il flusso netto di
                                                 dati (usato su traffico dati,
                                                 come quello di FTP).\\ 
-    \const{IPTOS\_RELIABILITY}  &\texttt{0x4} & Ottimizza la trasmissione
+    \constd{IPTOS\_RELIABILITY} &\texttt{0x4} & Ottimizza la trasmissione
                                                 per ridurre al massimo le
                                                 perdite di pacchetti (usato su
                                                 traffico soggetto a rischio di
                                                 perdita di pacchetti come TFTP
                                                 o DHCP).\\
                                                 per ridurre al massimo le
                                                 perdite di pacchetti (usato su
                                                 traffico soggetto a rischio di
                                                 perdita di pacchetti come TFTP
                                                 o DHCP).\\
-   \const{IPTOS\_MINCOST}       &\texttt{0x2} & Indica i dati di riempimento,
+    \constd{IPTOS\_MINCOST}     &\texttt{0x2} & Indica i dati di riempimento,
                                                 dove non interessa se si ha
                                                 una bassa velocità di
                                                 trasmissione, da utilizzare
                                                 dove non interessa se si ha
                                                 una bassa velocità di
                                                 trasmissione, da utilizzare
@@ -447,8 +447,7 @@ grandi linee nei seguenti punti:
   supportare una gerarchia con più livelli di indirizzamento, un numero di
   nodi indirizzabili molto maggiore e una auto-configurazione degli indirizzi
 \item l'introduzione un nuovo tipo di indirizzamento, l'\textit{anycast} che
   supportare una gerarchia con più livelli di indirizzamento, un numero di
   nodi indirizzabili molto maggiore e una auto-configurazione degli indirizzi
 \item l'introduzione un nuovo tipo di indirizzamento, l'\textit{anycast} che
-  si aggiungono agli usuali \textit{unicast} e \itindex{multicast}
-  \textit{multicast}
+  si aggiungono agli usuali \textit{unicast} e \textit{multicast}
 \item la semplificazione del formato dell'intestazione, eliminando o rendendo
   opzionali alcuni dei campi di IPv4, per eliminare la necessità di
   riprocessare la stessa da parte dei router e contenere l'aumento di
 \item la semplificazione del formato dell'intestazione, eliminando o rendendo
   opzionali alcuni dei campi di IPv4, per eliminare la necessità di
   riprocessare la stessa da parte dei router e contenere l'aumento di
@@ -602,20 +601,18 @@ ulteriori caratteristiche che diversificano il comportamento di IPv4 da
 quello di IPv6 sono le seguenti:
 
 \begin{itemize}
 quello di IPv6 sono le seguenti:
 
 \begin{itemize}
-\item il \itindex{broadcast} \textit{broadcasting} non è previsto in IPv6, le
-  applicazioni che lo usano dovono essere reimplementate usando il
-  \itindex{multicast} \textit{multicasting} (vedi
+\item il \textit{broadcasting} non è previsto in IPv6, le applicazioni che lo
+  usano dovono essere reimplementate usando il \textit{multicasting} (vedi
   sez.~\ref{sec:IP_ipv6_multicast}), che da opzionale diventa obbligatorio.
 \item è stato introdotto un nuovo tipo di indirizzi, gli \textit{anycast}.
 \item i router non possono più frammentare i pacchetti lungo il cammino, la
   frammentazione di pacchetti troppo grandi potrà essere gestita solo ai
   capi della comunicazione (usando un'apposita estensione vedi
   sez.~\ref{sec:IP_ipv6_extens}).
   sez.~\ref{sec:IP_ipv6_multicast}), che da opzionale diventa obbligatorio.
 \item è stato introdotto un nuovo tipo di indirizzi, gli \textit{anycast}.
 \item i router non possono più frammentare i pacchetti lungo il cammino, la
   frammentazione di pacchetti troppo grandi potrà essere gestita solo ai
   capi della comunicazione (usando un'apposita estensione vedi
   sez.~\ref{sec:IP_ipv6_extens}).
-\item IPv6 richiede il supporto per il \itindex{Maximum~Transfer~Unit~(MTU)}
-  \textit{path MTU discovery} (cioè il protocollo per la selezione della
-  massima lunghezza del pacchetto); seppure questo sia in teoria opzionale,
-  senza di esso non sarà possibile inviare pacchetti più larghi della
-  dimensione minima (576 byte).
+\item IPv6 richiede il supporto per il \textit{path MTU discovery} (cioè il
+  protocollo per la selezione della massima lunghezza del pacchetto); seppure
+  questo sia in teoria opzionale, senza di esso non sarà possibile inviare
+  pacchetti più larghi della dimensione minima (576 byte).
 \end{itemize}
 
 \subsection{Gli indirizzi di IPv6}
 \end{itemize}
 
 \subsection{Gli indirizzi di IPv6}
@@ -644,15 +641,15 @@ coi numeri decimali di IPv4 per rappresentare un numero IP. Per questo gli
 indirizzi di IPv6 sono in genere scritti come sequenze di otto numeri
 esadecimali di 4 cifre (cioè a gruppi di 16 bit) usando i due punti come
 separatore; cioè qualcosa del tipo
 indirizzi di IPv6 sono in genere scritti come sequenze di otto numeri
 esadecimali di 4 cifre (cioè a gruppi di 16 bit) usando i due punti come
 separatore; cioè qualcosa del tipo
-\texttt{5f1b:df00:ce3e:e200:0020:0800:2078:e3e3}.
-
+\texttt{1080:0000:0000:0008:0800:ba98:2078:e3e3}.
 
 Visto che la notazione resta comunque piuttosto pesante esistono alcune
 
 Visto che la notazione resta comunque piuttosto pesante esistono alcune
-abbreviazioni; si può evitare di scrivere gli zeri iniziali per cui si
-può scrivere \texttt{1080:0:0:0:8:800:ba98:2078:e3e3}; se poi un intero è
-zero si può omettere del tutto, così come un insieme di zeri (ma questo
-solo una volta per non generare ambiguità) per cui il precedente indirizzo
-si può scrivere anche come \texttt{1080::8:800:ba98:2078:e3e3}.
+abbreviazioni: si può evitare di scrivere gli zeri iniziali delle singole
+cifre, abbreviando l'indirizzo precedente in
+\texttt{1080:0:0:8:800:ba98:2078:e3e3}; se poi un intero è zero si può
+omettere del tutto, così come un insieme di zeri (ma questo solo una volta per
+non generare ambiguità) per cui il precedente indirizzo si può scrivere anche
+come \texttt{1080::8:800:ba98:2078:e3e3}.
 
 Infine per scrivere un indirizzo IPv4 all'interno di un indirizzo IPv6 si
 può usare la vecchia notazione con i punti, per esempio
 
 Infine per scrivere un indirizzo IPv4 all'interno di un indirizzo IPv6 si
 può usare la vecchia notazione con i punti, per esempio
@@ -707,8 +704,8 @@ può usare la vecchia notazione con i punti, per esempio
 \label{sec:IP_ipv6_addr_arch}
 
 Come per IPv4 gli indirizzi sono identificatori per una singola (indirizzi
 \label{sec:IP_ipv6_addr_arch}
 
 Come per IPv4 gli indirizzi sono identificatori per una singola (indirizzi
-\textit{unicast}) o per un insieme (indirizzi \itindex{multicast}
-\textit{multicast} e \textit{anycast}) di interfacce di rete.
+\textit{unicast}) o per un insieme (indirizzi \textit{multicast} e
+\textit{anycast}) di interfacce di rete.
 
 Gli indirizzi sono sempre assegnati all'interfaccia, non al nodo che la
 ospita; dato che ogni interfaccia appartiene ad un nodo quest'ultimo può
 
 Gli indirizzi sono sempre assegnati all'interfaccia, non al nodo che la
 ospita; dato che ogni interfaccia appartiene ad un nodo quest'ultimo può
@@ -716,21 +713,19 @@ essere identificato attraverso uno qualunque degli indirizzi unicast delle sue
 interfacce. A una interfaccia possono essere associati anche più indirizzi.
 
 IPv6 presenta tre tipi diversi di indirizzi: due di questi, gli indirizzi
 interfacce. A una interfaccia possono essere associati anche più indirizzi.
 
 IPv6 presenta tre tipi diversi di indirizzi: due di questi, gli indirizzi
-\textit{unicast} e \itindex{multicast} \textit{multicast} hanno le stesse
-caratteristiche che in IPv4, un terzo tipo, gli indirizzi \textit{anycast} è
-completamente nuovo.  In IPv6 non esistono più gli indirizzi
-\itindex{broadcast} \textit{broadcast}, la funzione di questi ultimi deve
-essere reimplementata con gli indirizzi \itindex{multicast}
-\textit{multicast}.
+\textit{unicast} e \textit{multicast} hanno le stesse caratteristiche che in
+IPv4, un terzo tipo, gli indirizzi \textit{anycast} è completamente nuovo.  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
 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
 (nel senso di distanza di routing) delle interfacce del gruppo, gli indirizzi
 
 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
 (nel senso di distanza di routing) delle interfacce del gruppo, gli indirizzi
-\itindex{multicast} \textit{multicast} identificano un gruppo di interfacce
-tale che un pacchetto mandato a uno di questi indirizzi viene inviato a tutte
-le interfacce del gruppo.
+\textit{multicast} identificano un gruppo di interfacce tale che un pacchetto
+mandato a uno di questi indirizzi viene inviato a tutte le interfacce del
+gruppo.
 
 In IPv6 non ci sono più le classi ma i bit più significativi indicano il tipo
 di indirizzo; in tab.~\ref{tab:IP_ipv6addr} sono riportati i valori di detti
 
 In IPv6 non ci sono più le classi ma i bit più significativi indicano il tipo
 di indirizzo; in tab.~\ref{tab:IP_ipv6addr} sono riportati i valori di detti
@@ -738,10 +733,9 @@ bit e il tipo di indirizzo che loro corrispondente.  I bit più significativi
 costituiscono quello che viene chiamato il \textit{format prefix} ed è sulla
 base di questo che i vari tipi di indirizzi vengono identificati.  Come si
 vede questa architettura di allocazione supporta l'allocazione di indirizzi
 costituiscono quello che viene chiamato il \textit{format prefix} ed è sulla
 base di questo che i vari tipi di indirizzi vengono identificati.  Come si
 vede questa architettura di allocazione supporta l'allocazione di indirizzi
-per i provider, per uso locale e per il \itindex{multicast}
-\textit{multicast}; inoltre è stato riservato lo spazio per indirizzi NSAP,
-IPX e per le connessioni; gran parte dello spazio (più del 70\%) è riservato
-per usi futuri.
+per i provider, per uso locale e per il \textit{multicast}; inoltre è stato
+riservato lo spazio per indirizzi NSAP, IPX e per le connessioni; gran parte
+dello spazio (più del 70\%) è riservato per usi futuri.
 
 Si noti infine che gli indirizzi \textit{anycast} non sono riportati in
 tab.~\ref{tab:IP_ipv6addr} in quanto allocati al di fuori dello spazio di
 
 Si noti infine che gli indirizzi \textit{anycast} non sono riportati in
 tab.~\ref{tab:IP_ipv6addr} in quanto allocati al di fuori dello spazio di
@@ -925,7 +919,9 @@ tab.~\ref{tab:IP_ipv6_linklocal}, questi indirizzi iniziano sempre con un
 valore nell'intervallo \texttt{FE80}--\texttt{FEBF} 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
 valore nell'intervallo \texttt{FE80}--\texttt{FEBF} 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.
+indirizzo come sorgente o destinazione non deve venire ritrasmesso dai router,
+sono gli indirizzi che identificano la macchina sulla rete locale, per questo
+sono chiamati in questo modo, in quanto sono usati solo su di essa.
 
 Un indirizzo \textit{site-local} invece è usato per l'indirizzamento
 all'interno di un sito che non necessita di un prefisso globale; la struttura
 
 Un indirizzo \textit{site-local} invece è usato per l'indirizzamento
 all'interno di un sito che non necessita di un prefisso globale; la struttura
@@ -1132,9 +1128,9 @@ già riservati per il funzionamento della rete.
 \end{table}
 
 L'utilizzo del campo di \textit{scope} e di questi indirizzi predefiniti serve
 \end{table}
 
 L'utilizzo del campo di \textit{scope} e di questi indirizzi predefiniti serve
-a recuperare le funzionalità del \itindex{broadcast} \textit{broadcasting} (ad
-esempio inviando un pacchetto all'indirizzo \texttt{FF02:0:0:0:0:0:0:1} si
-raggiungono tutti i nodi locali).
+a recuperare le funzionalità del \textit{broadcasting} (ad esempio inviando un
+pacchetto all'indirizzo \texttt{FF02:0:0:0:0:0:0:1} si raggiungono tutti i
+nodi locali).
 
 \itindend{multicast}
 
 
 \itindend{multicast}
 
@@ -1492,15 +1488,15 @@ il protocollo infatti fornisce la possibilità ad un nodo di scoprire
 automaticamente il suo indirizzo acquisendo i parametri necessari per potersi
 connettere a internet.
 
 automaticamente il suo indirizzo acquisendo i parametri necessari per potersi
 connettere a internet.
 
-L'auto-configurazione sfrutta gli indirizzi link-local; qualora sul nodo sia
+L'auto-configurazione sfrutta gli indirizzi \textit{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
 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} è
+\textit{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
 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
+allora il nodo assumerà ugualmente un indirizzo \textit{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
 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
@@ -1512,30 +1508,30 @@ 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
 auto-configurazione, descritte nelle seguenti sezioni. In ogni caso
 Una volta ottenuto un indirizzo locale valido diventa possibile per il nodo
 comunicare con la rete locale; sono pertanto previste due modalità di
 auto-configurazione, descritte nelle seguenti sezioni. In ogni caso
-l'indirizzo link-local resta valido.
+l'indirizzo \textit{link-local} resta valido.
 
 \subsection{Auto-configurazione stateless}
 \label{sec:stateless}
 
 Questa è la forma più semplice di auto-configurazione, possibile quando
 
 \subsection{Auto-configurazione stateless}
 \label{sec:stateless}
 
 Questa è la forma più semplice di auto-configurazione, possibile quando
-l'indirizzo globale può essere ricavato dall'indirizzo link-local cambiando
+l'indirizzo globale può essere ricavato dall'indirizzo \textit{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
 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 di \itindex{multicast}
-\textit{multicast} \textit{all-nodes} programmando la propria interfaccia per
-ricevere i messaggi dall'indirizzo \textit{multicast} \texttt{FF02::1} (vedi
+iniziano si devono aggregare al gruppo di \textit{multicast}
+\textit{all-nodes} programmando la propria interfaccia per ricevere i messaggi
+dall'indirizzo \textit{multicast} \texttt{FF02::1} (vedi
 sez.~\ref{sec:IP_ipv6_multicast}); a questo punto devono inviare un messaggio
 ICMP \textit{Router solicitation} a tutti i router locali usando l'indirizzo
 sez.~\ref{sec:IP_ipv6_multicast}); a questo punto devono inviare un messaggio
 ICMP \textit{Router solicitation} a tutti i router locali usando l'indirizzo
-\itindex{multicast} \textit{multicast} \texttt{FF02::2} usando come sorgente
-il proprio indirizzo link-local.
+\textit{multicast} \texttt{FF02::2} usando come sorgente il proprio indirizzo
+\textit{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
 
 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
+l'indirizzo, nel qual caso, se il prefisso unito all'indirizzo \textit{link-local} non
 supera i 128 bit, la stazione ottiene automaticamente il suo indirizzo
 globale.
 
 supera i 128 bit, la stazione ottiene automaticamente il suo indirizzo
 globale.
 
@@ -1554,7 +1550,7 @@ Per questi motivi è previsto anche un protocollo stateful basato su un server
 che offra una versione IPv6 del DHCP; un apposito gruppo di \textit{multicast}
 \texttt{FF02::1:0} è stato riservato per questi server; in questo caso il nodo
 interrogherà il server su questo indirizzo di \textit{multicast} con
 che offra una versione IPv6 del DHCP; un apposito gruppo di \textit{multicast}
 \texttt{FF02::1:0} è stato riservato per questi server; in questo caso il nodo
 interrogherà il server su questo indirizzo di \textit{multicast} con
-l'indirizzo link-local e riceverà un indirizzo unicast globale.
+l'indirizzo \textit{link-local} e riceverà un indirizzo unicast globale.
 
 
 \section{Il protocollo ICMP}
 
 
 \section{Il protocollo ICMP}