Piccole correzioni, ed iniziato a parlare dei ''Posix Semaphores''.
[gapil.git] / netlayer.tex
index 61db5ce337c24c845db731020a9f771923ccfab7..b931172afd2386c389591bb049350b95cb44a08f 100644 (file)
@@ -1,6 +1,6 @@
 %% netlayer.tex
 %%
 %% netlayer.tex
 %%
-%% Copyright (C) 2000-2006 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2007 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",
@@ -9,8 +9,6 @@
 %% License".
 %%
 
 %% License".
 %%
 
-
-
 \chapter{Il livello di rete}
 \label{cha:network_layer}
 
 \chapter{Il livello di rete}
 \label{cha:network_layer}
 
@@ -26,7 +24,8 @@ Data la loro prevalenza il capitolo sar
 protocolli principali esistenti su questo livello: il protocollo IP, sigla che
 sta per \textit{Internet Protocol}, (ma che più propriamente si dovrebbe
 chiamare IPv4) ed la nuova versione di questo stesso protocollo, denominata
 protocolli principali esistenti su questo livello: il protocollo IP, sigla che
 sta per \textit{Internet Protocol}, (ma che più propriamente si dovrebbe
 chiamare IPv4) ed la nuova versione di questo stesso protocollo, denominata
-IPv6.
+IPv6. Tratteremo comunque anche il protocollo ICMP e la sua versione
+modificata per IPv6 (cioè ICMPv6).
 
 
 \section{Il protocollo IP}
 
 
 \section{Il protocollo IP}
@@ -159,7 +158,7 @@ classe A occorre passare a una classe B, che ne prevede 65536,\footnote{in
   realtà i valori esatti sarebbero 254 e 65536, 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 65536, 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
+  uno per l'indirizzo di \itindex{broadcast} \textit{broadcast}.} con un
 conseguente spreco di numeri.
 
 Inoltre, in particolare per le reti di classe C, la presenza di tanti
 conseguente spreco di numeri.
 
 Inoltre, in particolare per le reti di classe C, la presenza di tanti
@@ -293,7 +292,7 @@ questo campo.
 \begin{table}[!htb]
   \centering
   \footnotesize
 \begin{table}[!htb]
   \centering
   \footnotesize
-  \begin{tabular}[c]{|l|l|}
+  \begin{tabular}[c]{|l|p{6 cm}|}
     \hline
     \textbf{Costante} & \textbf{Significato} \\
     \hline
     \hline
     \textbf{Costante} & \textbf{Significato} \\
     \hline
@@ -1509,11 +1508,128 @@ interrogher
 l'indirizzo link-local e riceverà un indirizzo unicast globale.
 
 
 l'indirizzo link-local e riceverà un indirizzo unicast globale.
 
 
+\section{Il protocollo ICMP}
+\label{sec:ICMP_protocol}
+
+Come già accennato nelle sezioni precedenti, l'\textit{Internet Control
+  Message Protocol} è un protocollo di servizio fondamentale per il
+funzionamento del livello di rete. Il protocollo ICMP viene trasportato
+direttamente su IP, ma proprio per questa sua caratteristica di protocollo di
+servizio è da considerarsi a tutti gli effetti appartenente al livello di
+rete.
+
+
+\subsection{L'intestazione di ICMP}
+\label{sec:ICMP_header}
+
+Il protocollo ICMP è estremamente semplice, ed il suo unico scopo è quello di
+inviare messaggi di controllo; in fig.~\ref{fig:ICMP_header} si è riportata la
+struttura dell'intestazione di un pacchetto ICMP generico. 
+
+\begin{figure}[htb]
+  \centering \includegraphics[width=12cm]{img/icmp_head}
+  \caption{L'intestazione del protocollo ICMP.}
+  \label{fig:ICMP_header}
+\end{figure}
+
+
+
+
+\begin{table}[!htb]
+  \centering
+  \footnotesize
+  \begin{tabular}{|l|l|p{9.5cm}|}
+    \hline
+    \textbf{Valore}&\textbf{Tipo}&\textbf{Significato}\\
+    \hline
+    \hline
+    \texttt{any} & -- & Seleziona tutti i possibili valori \\
+    \hline
+    \texttt{echo-reply}             &0& inviato in risposta ad un ICMP
+                                        \textit{echo-request} \\ 
+    \texttt{destination-unreachable}&3& segnala una destinazione 
+                                        irraggiungibile, viene
+                                        inviato all'IP sorgente di un
+                                        pacchetto quando un router realizza
+                                        che questo non può essere inviato a
+                                        destinazione. \\
+    \texttt{source-quench}          &4& inviato in caso di congestione della
+                                        rete per indicare all'IP sorgente di
+                                        diminuire il traffico inviato.\\
+    \texttt{redirect}               &5& inviato per segnalare un errore di
+                                        routing, richiede che la macchina
+                                        sorgente rediriga il traffico ad un
+                                        altro router da esso specificato. \\
+    \texttt{echo-request}           &8& richiede l'invio in risposta di un
+                                        \texttt{echo-reply}. \\
+%    \texttt{router-advertisement}   & & \\
+%    \texttt{router-solicitation}    & & \\
+    \texttt{time-exceeded}          &11& inviato quando il TTL di un pacchetto
+                                         viene azzerato.\\
+    \texttt{parameter-problem}      &12& inviato da un router che rileva dei
+                                         problemi con l'intestazione di un
+                                         pacchetto. \\
+    \texttt{timestamp-request}      &13& richiede l'invio in risposta di un
+                                         \texttt{timestamp-reply}.\\
+    \texttt{timestamp-reply}        &14& inviato in risposta di un
+                                         \texttt{timestamp-request}. \\
+    \texttt{info-request}           &15& richiede l'invio in risposta di un
+                                         \texttt{info-reply}.\\
+    \texttt{info-reply}             &16& inviato in risposta di un
+                                         \texttt{info-request}.\\
+    \texttt{address-mask-request}   &17& richiede l'invio in risposta di un
+                                         \texttt{address-mask-reply}. \\
+    \texttt{address-mask-reply}     &18& inviato in risposta di un
+                                         \texttt{address-mask-request}. \\
+    \hline
+  \end{tabular}
+  \caption{I valori del \textsl{tipo} per i pacchetti ICMP.}
+\label{tab:ICMP_type}
+\end{table}
+
+
+
+\begin{table}[!htb]
+  \centering
+  \footnotesize
+  \begin{tabular}{|l|l|}
+    \hline
+    \textbf{Valore}&\textbf{Codice}\\
+    \hline
+    \hline
+    \texttt{network-unreachable}      &0\\
+    \texttt{host-unreachable}         &1\\
+    \texttt{protocol-unreachable}     &2\\
+    \texttt{port-unreachable}         &3 \\
+    \texttt{fragmentation-needed}     &4\\
+    \texttt{source-route-failed}      &5\\
+    \texttt{network-unknown}          &6\\
+    \texttt{host-unknown}             &7\\
+    \texttt{host-isolated}            &8\\
+    \texttt{network-prohibited}       &9\\
+    \texttt{host-prohibited}          &10 \\
+    \texttt{TOS-network-unreachable}  &11 \\
+    \texttt{TOS-host-unreachable}     &12 \\
+    \texttt{communication-prohibited} &13 \\
+    \texttt{host-precedence-violation}&14 \\
+    \texttt{precedence-cutoff}        &15 \\
+    \hline
+    \texttt{network-redirect}         &0  \\
+    \texttt{host-redirect}            &1  \\
+    \texttt{TOS-network-redirect}     &2  \\
+    \texttt{TOS-host-redirect}        &3  \\
+    \hline
+    \texttt{ttl-zero-during-transit}  &0 \\
+    \texttt{ttl-zero-during-reassembly}&1 \\
+    \hline
+    \texttt{ip-header-bad}            &0 \\
+    \texttt{required-option-missing}  &1 \\
+    \hline
+  \end{tabular}
+  \caption{Valori del campo \textsl{codice} per il protocollo ICMP.}
+\label{tab:ICMP_code}
+\end{table}
 
 
-%%% Local Variables: 
-%%% mode: latex
-%%% TeX-master: "gapil"
-%%% End: 
 
 % LocalWords:  sez Protocol IPv dall' RFC Ethernet Token FDDI Universal host of
 % LocalWords:  addressing Best effort l'host router IANA Assigned Number tab to
 
 % LocalWords:  sez Protocol IPv dall' RFC Ethernet Token FDDI Universal host of
 % LocalWords:  addressing Best effort l'host router IANA Assigned Number tab to
@@ -1530,10 +1646,21 @@ l'indirizzo link-local e ricever
 % LocalWords:  sull'host loopback scop all nodes routers rip cbt name dhcp HBH
 % LocalWords:  agents servers relays solicited extension options route Keyword
 % LocalWords:  Authentication Encapsulation ICMP Control Message GGP Gateway ST
 % LocalWords:  sull'host loopback scop all nodes routers rip cbt name dhcp HBH
 % LocalWords:  agents servers relays solicited extension options route Keyword
 % LocalWords:  Authentication Encapsulation ICMP Control Message GGP Gateway ST
-% LocalWords:  encapsulation Stream Trasmission Datagram RH FH IDRP ESP Null
+% LocalWords:  encapsulation Stream Trasmission Datagram RH FH IDRP ESP Null ip
 % LocalWords:  Encrypted Security IGRP OSPF Short First tunnelling FFFFFF hash
 % LocalWords:  news FTP NFS authentication Parameter Index ICV Integrity Value
 % LocalWords:  Encrypted Security IGRP OSPF Short First tunnelling FFFFFF hash
 % LocalWords:  news FTP NFS authentication Parameter Index ICV Integrity Value
-% LocalWords:  padding Option gateway dell'MD keyed Encripted IEEE ethernet
+% LocalWords:  padding Option gateway dell'MD keyed Encripted IEEE ethernet any
 % LocalWords:  dell'autoconfigurazione L'autoconfigurazione Solicitation l'IP
 % LocalWords:  dell'autoconfigurazione L'autoconfigurazione Solicitation l'IP
-% LocalWords:  stateless solicitation Advertisement stateful Transfer Unit
-% LocalWords:  l'autoconfigurazione
+% LocalWords:  stateless solicitation Advertisement stateful Transfer Unit echo
+% LocalWords:  l'autoconfigurazione reply request unreachable all'IP quench TTL
+% LocalWords:  redirect exceeded parameter problem timestamp info mask port ttl
+% LocalWords:  needed failed unknown isolated prohibited communication cutoff
+% LocalWords:  precedence violation during reassembly bad required option
+% LocalWords:  missing
+
+
+
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: "gapil"
+%%% End: