Prova di endianess
[gapil.git] / netlayer.tex
index 98e7747c61f4c66571dcb9f0148ad5fc3fc0ad0a..fa73950c608b76724570a09337921a3dd231f645 100644 (file)
@@ -1,6 +1,6 @@
 %% ipprot.tex
 %%
-%% Copyright (C) 2000-2002 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2003 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",
@@ -32,10 +32,11 @@ nuova versione denominata IPv6.
 \label{sec:ip_protocol}
 
 L'attuale \textit{Internet Protocol} (IPv4) viene standardizzato nel 1981
-dall'RFC~719; esso nasce per disaccoppiare le applicazioni della struttura
-hardware delle reti di trasmissione, e creare una interfaccia di trasmissione
-dei dati indipendente dal sottostante substrato di rete, che può essere
-realizzato con le tecnologie più disparate (Ethernet, Token Ring, FDDI, etc.).
+dall'\href{http://www.ietf.org/rfc/rfc0719.txt}{RFC~719}; esso nasce per
+disaccoppiare le applicazioni della struttura hardware delle reti di
+trasmissione, e creare una interfaccia di trasmissione dei dati indipendente
+dal sottostante substrato di rete, che può essere realizzato con le tecnologie
+più disparate (Ethernet, Token Ring, FDDI, etc.).
 
 
 \subsection{Introduzione}
@@ -77,6 +78,7 @@ diverse.
 \begin{table}[htb]
   \centering
   \footnotesize
+  \begin{usepicture} 
   \begin{tabular} {c@{\hspace{1mm}\vrule}
       p{3mm}@{\vrule}p{3mm}@{\vrule}p{3mm}@{\vrule}p{3mm}@{\vrule}
       p{3mm}@{\vrule}p{3mm}@{\vrule}p{3mm}@{\vrule}p{3mm}@{\vrule}
@@ -139,7 +141,8 @@ diverse.
     \omit\hfill\vrule &&&&&&&& &&&&&&&& &&&&&&&& &&&&&&&& \\
     \cline{2-33}
 
-\end{tabular}
+  \end{tabular}
+  \end{usepicture} 
 \caption{Le classi di indirizzi secondo IPv4.}
 \label{tab:IP_ipv4class}
 \end{table}
@@ -162,6 +165,7 @@ di questi ultimi ed inefficienza nel trasporto.
 \begin{table}[htb]
   \centering
   \footnotesize
+  \begin{usepicture} 
   \begin{tabular} {c@{\hspace{1mm}\vrule}
       p{3mm}@{\vrule}p{3mm}@{\vrule}p{3mm}@{\vrule}p{3mm}@{\vrule}
       p{3mm}@{\vrule}p{3mm}@{\vrule}p{3mm}@{\vrule}p{3mm}@{\vrule}
@@ -180,7 +184,8 @@ di questi ultimi ed inefficienza nel trasporto.
     \multicolumn{20}{@{}c@{\vrule}}{\parbox[c]{60mm}{\centering host Id}} \\
     \omit\hfill\vrule &&&&&&&& &&&&&&&& &&&&&&&& &&&&&&&& \\
     \cline{2-33}
-\end{tabular}
+  \end{tabular}
+  \end{usepicture} 
 \caption{Uno esempio di indirizzamento CIDR.}
 \label{tab:IP_ipv4cidr}
 \end{table}
@@ -207,11 +212,11 @@ apparecchio elettronico sarebbe stato inserito all'interno della rete.
 Per questo motivo si iniziò a progettare una nuova versione del protocollo 
 
 L'attuale Internet Protocol (IPv4) viene standardizzato nel 1981
-dall'RFC~719; esso nasce per disaccoppiare le applicazioni della struttura
-hardware delle reti di trasmissione, e creare una interfaccia di trasmissione
-dei dati indipendente dal sottostante substrato di rete, che può essere
-realizzato con le tecnologie più disparate (Ethernet, Token Ring, FDDI,
-etc.).
+dall'\href{http://www.ietf.org/rfc/rfc0719.txt}{RFC~719}; esso nasce per
+disaccoppiare le applicazioni della struttura hardware delle reti di
+trasmissione, e creare una interfaccia di trasmissione dei dati indipendente
+dal sottostante substrato di rete, che può essere realizzato con le tecnologie
+più disparate (Ethernet, Token Ring, FDDI, etc.).
 
 
 \subsection{I motivi della transizione}
@@ -430,39 +435,39 @@ differenze:
   \begin{center}
     \begin{tabular}{|l|c|p{9cm}|}
       \hline
-      \textbf{Nome} & \textbf{Lunghezza} & \textbf{Significato} \\
+      \textbf{Nome} & \textbf{Bit} & \textbf{Significato} \\
       \hline
       \hline
-      \textit{version}          &  4 bit & \textsl{versione}, nel caso 
+      \textit{version}          &  4  & \textsl{versione}, nel caso 
       specifico vale sempre 4\\
-      \textit{head length}      &  4 bit &\textsl{lunghezza dell'intestazione},
+      \textit{head length}      &  4  &\textsl{lunghezza dell'intestazione},
       in multipli di 32 bit\\
-      \textit{type of service}  &  8 bit & \textsl{tipo di servizio}, 
+      \textit{type of service}  &  8  & \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 length}     & 16 bit & \textsl{lunghezza totale}, indica 
+      \textit{total length}     & 16  & \textsl{lunghezza totale}, indica 
       la dimensione del pacchetto IP in byte\\
-      \textit{identification}   & 16 bit & \textsl{identificazione}, 
+      \textit{identification}   & 16  & \textsl{identificazione}, 
       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 & 
+      \textit{flag}             &  3  & 
       \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  & \textsl{offset di frammento},
       indica la posizione del frammento rispetto al pacchetto originale\\
-      \textit{time to live}    & 16 bit & \textsl{tempo di vita},
+      \textit{time to live}    & 16 & \textsl{tempo di vita},
       ha lo stesso significato di
       \textit{hop limit}, vedi Tab.~\ref{tab:IP_ipv6field}\\
-      \textit{protocol}        &  8 bit & \textsl{protocollo} 
+      \textit{protocol}        &  8  & \textsl{protocollo} 
       identifica il tipo di pacchetto che segue
       l'intestazione di IPv4\\
-      \textit{header checksum} & 16 bit & \textsl{checksum di intestazione}, 
+      \textit{header checksum} & 16  & \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}\\
+      \textit{source IP}       & 32  & \textsl{indirizzo di origine}\\
+      \textit{destination IP}  & 32  & \textsl{indirizzo di destinazione}\\
       \hline
     \end{tabular}
     \caption{Legenda per il significato dei campi dell'intestazione di IPv4}
@@ -619,7 +624,8 @@ allocazione degli indirizzi unicast.
 \label{sec:IP_ipv6_unicast}
 
 Gli indirizzi \textit{provider-based} sono gli indirizzi usati per le
-comunicazioni globali, questi sono definiti nell'RFC 2073 e sono gli
+comunicazioni globali, questi sono definiti
+nell'\href{http://www.ietf.org/rfc/rfc2073.txt}{RFC~2073} e sono gli
 equivalenti degli attuali indirizzi delle classi da A a C.
 
 L'autorità che presiede all'allocazione di questi indirizzi è la IANA; per
@@ -639,7 +645,7 @@ stato suddiviso in una serie di campi secondo lo schema riportato in
     \multicolumn{1}{c}{$n$ bit}&\multicolumn{1}{c}{$56-n$ bit}&
     \multicolumn{1}{c}{64 bit} \\
     \hline
-    \omit\vrule\hfill\vrule&\hspace{16mm} & & &\omit\hspace{76mm}\hfill\vrule\\ 
+    \omit\vrule\hfill\vrule&\hspace{16mm} & & &\omit\hspace{76mm}\hfill\vrule\\
     \centering 010&
     \centering \textsl{Registry Id}&
     \centering \textsl{Provider Id}& 
@@ -661,7 +667,8 @@ possibilit
 i seguenti possibili valori per il \textsl{Registry Id};
 gli altri valori restano riservati per la IANA.
 \begin{table}[htb]
-  \begin{center}
+  \centering 
+  \footnotesize
     \begin{tabular}{|l|l|l|}
       \hline
       \textbf{Regione} & \textbf{Registro} & \textbf{Id} \\
@@ -676,7 +683,6 @@ gli altri valori restano riservati per la IANA.
     \caption{Valori dell'identificativo dei 
       Regional Register allocati ad oggi.}
     \label{tab:IP_ipv6_regid}
-  \end{center}
 \end{table}
 
 L'organizzazione degli indirizzi prevede poi che i due livelli successivi, di
@@ -864,7 +870,7 @@ che IPv6 siano supportati sull'host di origine).
 \label{tab:IP_ipv6_map}
 \end{table}
 
-Un secondo tipo di indirizzi di compatibilità sono gli \textit{IPv4
+Un secondo tipo di indirizzi di compatibilità sono gli \textsl{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
@@ -970,21 +976,25 @@ per il funzionamento della rete.
 \begin{table}[!htb]
   \centering 
   \footnotesize
-  \begin{tabular}[c]{l l r}
+  \begin{tabular}[c]{|l|l|l|}
     \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\\
+    all-nodes       & \texttt{FFxx:0:0:0:0:0:0:1}  & 
+                      \href{http://www.ietf.org/rfc/rfc1970.txt}{RFC~1970} \\
+    all-routers     & \texttt{FFxx:0:0:0:0:0:0:2}  & 
+                      \href{http://www.ietf.org/rfc/rfc1970.txt}{RFC~1970} \\
+    all-rip-routers & \texttt{FFxx:0:0:0:0:0:0:9}  & 
+                      \href{http://www.ietf.org/rfc/rfc2080.txt}{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}  & 
+                      \href{http://www.ietf.org/rfc/rfc1970.txt}{RFC~1970} \\
     \hline
   \end{tabular}
 \caption{Gruppi multicast predefiniti.}
@@ -1078,9 +1088,11 @@ Le estensioni definite al momento sono le seguenti:
   vuole frammentare un pacchetto, ed è riprocessato automaticamente alla
   destinazione che riassembla i frammenti.
 \item \textbf{Authentication} gestisce l'autenticazione e il controllo di
-  integrità dei pacchetti; è documentato dall'RFC 162.
+  integrità dei pacchetti; è documentato
+  dall'\href{http://www.ietf.org/rfc/rfc1826.txt}{RFC~1826}.
 \item \textbf{Encapsulation} serve a gestire la segretezza del contenuto
-  trasmesso; è documentato dall'RFC 1827.
+  trasmesso; è documentato
+  dall'\href{http://www.ietf.org/rfc/rfc1827.txt}{RFC~1827}.
 \end{itemize}
 
 La presenza di opzioni è rilevata dal valore del campo \textit{next header}
@@ -1225,7 +1237,8 @@ riservatezza a un livello inferiore al primo (quello di applicazione), con
 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.
+architettura è riportata
+nell'\href{http://www.ietf.org/rfc/rfc2401.txt}{RFC~2401}.
 
 Il meccanismo in sostanza si basa su due estensioni:
 \begin{itemize}
@@ -1253,11 +1266,11 @@ Il primo meccanismo di sicurezza 
 di integrità (ma senza riservatezza) dei pacchetti IP.
 
 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,
+\figref{fig:autent_estens}: 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.
 
@@ -1267,36 +1280,12 @@ di dimensione pari a un multiplo intero di 32 bit e pu
 per allineare l'intestazione a 64 bit. Tutti gli algoritmi di autenticazione
 devono provvedere questa capacità.
 
-\renewcommand\arraystretch{1.2}
-\begin{table}[htb]
-  \footnotesize
-  \begin{center}
-    \begin{tabular}{@{\vrule}p{24mm}@{\vrule}p{24mm}
-        @{\vrule}p{48mm}@{\vrule} }
-    \multicolumn{3}{@{}c@{}}{0\hfill 15 16\hfill 31}\\
-    \hline
-    \centering Next Header&\centering Length&
-    \centering Reserved \tabularnewline
-    \hline
-    \multicolumn{3}{@{\vrule}c@{\vrule}}
-    {\centering Security Parameter Index (SPI)}\\  
-    \hline
-    \multicolumn{3}{@{\vrule}c@{\vrule}}
-    {\centering Sequence Number}\\  
-    \hline
-    \multicolumn{3}{@{\vrule}c@{\vrule}}{} \\
-    \multicolumn{3}{@{\vrule}c@{\vrule}}{Authentication Data} \\
-    \multicolumn{3}{@{\vrule}c@{\vrule}}
-    {\centering ... } \\
-    \multicolumn{3}{@{\vrule}c@{\vrule}}{} \\
-    \hline
-    \end{tabular}
-    \caption{Formato dell'intestazione dell'estensione di autenticazione}
-    \label{tab:autent_estens}
-  \end{center}
-\end{table}
-\renewcommand\arraystretch{1} %default
-
+\begin{figure}[!htb]
+  \centering
+  \includegraphics[width=10cm]{img/ah_option}
+    \caption{Formato dell'intestazione dell'estensione di autenticazione.}
+    \label{fig:autent_estens}
+\end{figure}
 
 L'intestazione di autenticazione può essere impiegata in due modi diverse
 modalità: modalità trasporto e modalità tunnel.
@@ -1307,33 +1296,15 @@ autenticazione 
 eccezion fatta per la \textit{Destination Option} che può comparire sia
 prima che dopo. 
 
-\begin{table}[htb]
-  \footnotesize
-  \begin{center}
-    \begin{tabular*}{90mm}{|c|c|c|c|c|c|}
-    \hline
-    & & & & & \\
-    IP Head &
-    \parbox[c]{28mm}{hop by hop, dest., \\
-      routing, fragment}& AH & 
-    dest.opt & TCP & data \\
-    & & & & & \\
-    \hline
-    \end{tabular*}
-    \caption{Formato dell'intestazione dell'estensione di autenticazione}
-    \label{tab:autent_head}
-  \end{center}
-\end{table}
-\begin{center}
-    \begin{pspicture}(0,0)(9,0.8)
-      \pnode(0,0){A}
-      \pnode(9,0.4){B}
-      \ncline{<->}{A}{B}\ncput{copertura dell'autenticazione}
-    \end{pspicture}
-\end{center}
+\begin{figure}[!htb]
+  \centering
+  \includegraphics[width=10cm]{img/IP_AH_packet}
+  \caption{Formato di un pacchetto IPv6 che usa l'opzione di autenticazione.}
+  \label{fig:AH_autent_head}
+\end{figure}
 
 La modalità tunnel può essere utilizzata sia per comunicazioni fra stazioni
-singole che con un gateway di sicurezza; in questa modalità 
+singole che con un gateway di sicurezza; in questa modalità ...
 
 
 L'intestazione di autenticazione è una intestazione di estensione inserita
@@ -1369,52 +1340,18 @@ 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
+quella mostrata in \figref{fig:ESP_criptopack}, tutti i campi sono in chiaro
 fino al vettore di inizializzazione, il resto è crittografato.
 
-\renewcommand\arraystretch{1.2}
-\begin{table}[htb]
-  \footnotesize
-  \begin{center}
-    \begin{tabular}{@{\vrule}p{24mm}@{\vrule}p{24mm}@{\vrule}
-        p{24mm}@{\vrule}p{24mm}@{\vrule}}
-    \multicolumn{4}{@{}c@{}}{0\hfill 15 16\hfill 31}\\
-    \hline
-    \multicolumn{4}{@{\vrule}c@{\vrule}}{}\\
-    \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}}{Intestazioni di estensione}\\
-    \multicolumn{4}{@{\vrule}c@{\vrule}}{...}\\
-    \multicolumn{4}{@{\vrule}c@{\vrule}}{}\\
-    \hline
-    \multicolumn{4}{@{\vrule}c@{\vrule}}
-    {\centering Security Parameter Index}\\  
-    \hline
-    \multicolumn{4}{@{\vrule}c@{\vrule}}
-    {\centering Vettore}\\  
-    \multicolumn{4}{@{\vrule}c@{\vrule}}
-    {\centering di inizializzazione}\\  
-    \hline   
-    \multicolumn{4}{@{\vrule}c@{\vrule}}{carico}\\ 
-    \multicolumn{4}{@{\vrule}c@{\vrule}}{crittografato}\\ 
-    \multicolumn{4}{@{\vrule}c@{\vrule}}{...}\\
-    \cline{2-4}
-    & \multicolumn{3}{c@{\vrule}}{}\\
-    \cline{1-1}
-    \cline{3-4}
-    \multicolumn{1}{@{\vrule}c}{}&
-    \centering \raisebox{2mm}[0pt][0pt]{riempimento} &
-    \centering lunghezza pad &\centering tipo carico\tabularnewline
-    \hline
-    \end{tabular}
-    \caption{Schema di pacchetto crittografato}
-    \label{tab:criptopack}
-  \end{center}
-\end{table}
-\renewcommand\arraystretch{1} %default
+
+
+\begin{figure}[!htb]
+  \centering
+  \includegraphics[width=10cm]{img/esp_option}
+  \caption{Schema di pacchetto crittografato.}
+  \label{tab:ESP_criptopack}
+\end{figure}
+
 
 
 \subsection{Autoconfigurazione}
@@ -1423,7 +1360,7 @@ fino al vettore di inizializzazione, il resto 
 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. 
+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