-I vari protocolli mostrati in figura sono i seguenti:
-
-\begin{list}{}{}
-\item \textsl{IPv4} \textit{Internet Protocol version 4}. È quello che
- comunemente si chiama IP. Ha origine negli anni '80 e da allora è la base su
- cui è costruita internet. Usa indirizzi a 32 bit e provvede la trasmissione
- dei pacchetti TCP, UDP, ICMP e IGMP.
-\item \textsl{IPv6} \textit{Internet Protocol version 6}. È stato progettato a
- metà degli anni '90 per rimpiazzare IPv4. Ha indirizzi a 128 bit e effettua
- lo stesso servizio di trasporto di IPv4 per i pacchetti TCP, UDP e ICPMv6.
-\item \textsl{TCP} \textit{Trasmission Control Protocol}. È un protocollo
- orientato alla connessione che provvede un trasporto affidabile e
- bidirezionale di un flusso di dati. I socket\index{socket} TCP sono esempi
- di \textit{stream socket}. Il protocollo ha cura di tutti gli aspetti del
- trasporto, come l'acknoweledgment, i timeout, la ritrasmissione, etc. È
- usato dalla maggior parte delle applicazioni. Può essere usato sia con IPv4
- che con IPv6.
-\item \textsl{UDP} \textit{User Datagram Protocol}. È un protocollo senza
- connessione, a pacchetti. I socket\index{socket} UDP sono esempi di
- \textit{datagram socket}. Contrariamente al TCP il protocollo non è
- affidabile e non c'è garanzia che i pacchetti raggiungano la loro
- destinazione, si perdano o vengano duplicati, o abbiano un particolare
- ordine di arrivo. Può essere usato sia con IPv4 che con IPv6.
-\item \textsl{ICMP} \textit{Internet Control Message Protocol}. Gestisce gli
- errori e trasporta l'informazione di controllo fra stazioni remote e
- instradatori (\textit{host} e \textit{router}). I messaggi sono normalmente
- generati dal software del kernel che gestisce la comunicazione TCP/IP, anche
- se ICMP può venire usato direttamente da alcuni programmi come
- \texttt{ping}. A volte ci si riferisce ad esso come ICPMv4 per distinguerlo
- da ICMPv6.
-\item \textsl{IGMP} \textit{Internet Group Management Protocol}. É un
- protocollo usato per il \textit{multicasting} (vedi
- \secref{sec:xxx_multicast}), che è opzionale in IPv4.
-\item \textsl{ARP} \textit{Address Resolution Protocol}. È il protocollo che
- mappa un indirizzo IP in un indirizzo hardware (come un indirizzo
- internet). È usato in reti di tipo broadcast come Ethernet, Token Ring o
- FDDI ma non serve in connessioni punto-punto.
-\item \textsl{RARP} \textit{Reverse Address Resolution Protocol}. È il
- protocollo che mappa un indirizzo hardware in un indirizzo IP. Viene usato a
- volte per durante il boot per assegnare un indirizzo IP ad una macchina.
-\item \textsl{ICMPv6} \textit{Internet Control Message Protocol, version 6}.
- Combina per IPv6 le funzionalità di ICMPv4, IGMP e ARP.
-\item \textsl{NETLINK} \textit{Netlink}. Provvede, in Linux, l'interfaccia di
- accesso alla comunicazione a basso livello.
-\end{list}
+I vari protocolli riportati in fig.~\ref{fig:net_tcpip_overview} sono i
+seguenti:
+\begin{basedescript}{\desclabelwidth{1.7cm}\desclabelstyle{\nextlinelabel}}
+\item[\textsl{IPv4}] \textit{Internet Protocol version 4}. È quello che
+ comunemente si chiama IP. Ha origine negli anni '80 e da allora è la base su
+ cui è costruita Internet. Usa indirizzi a 32 bit, e mantiene tutte le
+ informazioni di instradamento e controllo per la trasmissione dei pacchetti
+ sulla rete; tutti gli altri protocolli della suite (eccetto ARP e RARP, e
+ quelli specifici di IPv6) vengono trasmessi attraverso di esso.
+\item[\textsl{IPv6}] \textit{Internet Protocol version 6}. È stato progettato
+ a metà degli anni '90 per rimpiazzare IPv4. Ha uno spazio di indirizzi
+ ampliato 128 bit che consente più gerarchie di indirizzi,
+ l'auto-configurazione, ed un nuovo tipo di indirizzi, gli \textit{anycast},
+ che consentono di inviare un pacchetto ad una stazione su un certo gruppo.
+ Effettua lo stesso servizio di trasmissione dei pacchetti di IPv4 di cui
+ vuole essere un sostituto.
+\item[\textsl{TCP}] \textit{Trasmission Control Protocol}. È un protocollo
+ orientato alla connessione che provvede un trasporto affidabile per un
+ flusso di dati bidirezionale fra due stazioni remote. Il protocollo ha cura
+ di tutti gli aspetti del trasporto dei dati, come l'\textit{acknowledgment}
+ (il ricevuto), i timeout, la ritrasmissione, ecc. È usato dalla maggior
+ parte delle applicazioni.
+\item[\textsl{UDP}] \textit{User Datagram Protocol}. È un protocollo senza
+ connessione, per l'invio di dati a pacchetti. Contrariamente al TCP il
+ protocollo non è affidabile e non c'è garanzia che i pacchetti raggiungano
+ la loro destinazione, si perdano, vengano duplicati, o abbiano un
+ particolare ordine di arrivo.
+\item[\textsl{ICMP}] \textit{Internet Control Message Protocol}. È il
+ protocollo usato a livello 2 per gestire gli errori e trasportare le
+ informazioni di controllo fra stazioni remote e instradatori (cioè fra
+ \textit{host} e \textit{router}). I messaggi sono normalmente generati dal
+ software del kernel che gestisce la comunicazione TCP/IP, anche se ICMP può
+ venire usato direttamente da alcuni programmi come \cmd{ping}. A volte ci
+ si riferisce ad esso come ICPMv4 per distinguerlo da ICMPv6.
+\item[\textsl{IGMP}] \textit{Internet Group Management Protocol}. É un
+ protocollo di livello 2 usato per il \textit{multicast} (vedi
+ sez.~\ref{sec:xxx_multicast}). Permette alle stazioni remote di notificare
+ ai router che supportano questa comunicazione a quale gruppo esse
+ appartengono. Come ICMP viene implementato direttamente sopra IP.
+\item[\textsl{ARP}] \textit{Address Resolution Protocol}. È il protocollo che
+ mappa un indirizzo IP in un indirizzo hardware sulla rete locale. È usato in
+ reti di tipo \textit{broadcast} come Ethernet, Token Ring o FDDI che hanno
+ associato un indirizzo fisico (il \textit{MAC address}) alla interfaccia, ma
+ non serve in connessioni punto-punto.
+\item[\textsl{RARP}] \textit{Reverse Address Resolution Protocol}. È il
+ protocollo che esegue l'operazione inversa rispetto ad ARP (da cui il nome)
+ mappando un indirizzo hardware in un indirizzo IP. Viene usato a volte per
+ durante l'avvio per assegnare un indirizzo IP ad una macchina.
+\item[\textsl{ICMPv6}] \textit{Internet Control Message Protocol, version 6}.
+ Combina per IPv6 le funzionalità di ICMPv4, IGMP e ARP.
+\item[\textsl{EGP}] \textit{Exterior Gateway Protocol}. È un protocollo di
+ routing usato per comunicare lo stato fra gateway vicini a livello di
+ \textsl{sistemi autonomi} (vengono chiamati \textit{autonomous
+ systems} i raggruppamenti al livello più alto della rete), con
+ meccanismi che permettono di identificare i vicini, controllarne la
+ raggiungibilità e scambiare informazioni sullo stato della rete. Viene
+ implementato direttamente sopra IP.
+\item[\textsl{OSPF}] \textit{Open Shortest Path First}. È in protocollo di
+ routing per router su reti interne, che permette a questi ultimi di
+ scambiarsi informazioni sullo stato delle connessioni e dei legami che
+ ciascuno ha con gli altri. Viene implementato direttamente sopra IP.
+\item[\textsl{GRE}] \textit{Generic Routing Encapsulation}. È un protocollo
+ generico di incapsulamento che permette di incapsulare un qualunque altro
+ protocollo all'interno di IP.
+\item[\textsl{AH}] \textit{Authentication Header}. Provvede l'autenticazione
+ dell'integrità e dell'origine di un pacchetto. È una opzione nativa in IPv6
+ e viene implementato come protocollo a sé su IPv4. Fa parte della suite di
+ IPSEC che provvede la trasmissione cifrata ed autenticata a livello IP.
+\item[\textsl{ESP}] \textit{Encapsulating Security Payload}. Provvede la
+ cifratura insieme all'autenticazione dell'integrità e dell'origine di un
+ pacchetto. Come per AH è opzione nativa in IPv6 e viene implementato come
+ protocollo a sé su IPv4.
+\item[\textsl{PPP}] \textit{Point-to-Point Protocol}. È un protocollo a
+ livello 1 progettato per lo scambio di pacchetti su connessioni punto punto.
+ Viene usato per configurare i collegamenti, definire i protocolli di rete
+ usati ed incapsulare i pacchetti di dati. È un protocollo complesso con
+ varie componenti.
+\item[\textsl{SLIP}] \textit{Serial Line over IP}. È un protocollo di livello
+ 1 che permette di trasmettere un pacchetto IP attraverso una linea seriale.
+\end{basedescript}