Correzione
[gapil.git] / network.tex
index 87c56369aaf715b661c32d799055cfdec869da90..56120dfd77deac03a47393808e162c2fa6b56f1d 100644 (file)
@@ -1,6 +1,6 @@
 %% network.tex
 %%
 %% network.tex
 %%
-%% Copyright (C) 2000-2016 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2018 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",
@@ -14,9 +14,9 @@
 
 In questo capitolo sarà fatta un'introduzione ai concetti generali che servono
 come prerequisiti per capire la programmazione di rete, non tratteremo quindi
 
 In questo capitolo sarà fatta un'introduzione ai concetti generali che servono
 come prerequisiti per capire la programmazione di rete, non tratteremo quindi
-aspetti specifici ma faremo una breve introduzione al modello più comune usato
+aspetti specifici ma faremo una breve introduzione ai modelli più comuni usati
 nella programmazione di rete, per poi passare ad un esame a grandi linee dei
 nella programmazione di rete, per poi passare ad un esame a grandi linee dei
-protocolli di rete e di come questi sono organizzati e interagiscono. 
+protocolli di rete e di come questi sono organizzati e interagiscono.
 
 In particolare, avendo assunto l'ottica di un'introduzione mirata alla
 programmazione, ci concentreremo sul gruppo di protocolli più diffuso, il
 
 In particolare, avendo assunto l'ottica di un'introduzione mirata alla
 programmazione, ci concentreremo sul gruppo di protocolli più diffuso, il
@@ -29,7 +29,6 @@ programmi.
 \section{Modelli di programmazione}
 \label{sec:net_prog_model}
 
 \section{Modelli di programmazione}
 \label{sec:net_prog_model}
 
-
 La differenza principale fra un'applicazione di rete e un programma normale è
 che quest'ultima per definizione concerne la comunicazione fra processi
 diversi, che in generale non girano neanche sulla stessa macchina. Questo già
 La differenza principale fra un'applicazione di rete e un programma normale è
 che quest'ultima per definizione concerne la comunicazione fra processi
 diversi, che in generale non girano neanche sulla stessa macchina. Questo già
@@ -163,15 +162,15 @@ dati.
 
 Uno specifico modello relativo alla programmazione di rete è poi quello in cui
 è possibile, invece della classica comunicazione uno ad uno comunque usata in
 
 Uno specifico modello relativo alla programmazione di rete è poi quello in cui
 è possibile, invece della classica comunicazione uno ad uno comunque usata in
-tutti i modelli precedenti (anche nel \texttt{peer to peer} la comunicazione è
+tutti i modelli precedenti (anche nel \textit{peer-to-peer} la comunicazione è
 comunque fra singoli ``\textit{peer}''), una comunicazione da uno a molti.
 
 \itindbeg{broadcast}
 
 Questo modello nasce dal fatto che molte tecnologie di rete (ed in particolare
 comunque fra singoli ``\textit{peer}''), una comunicazione da uno a molti.
 
 \itindbeg{broadcast}
 
 Questo modello nasce dal fatto che molte tecnologie di rete (ed in particolare
-la Ethernet, che è probabilmente la più diffusa) hanno il supporto per
-effettuare una comunicazione in cui un nodo qualunque della rete più inviare
-informazioni in contemporanea a tutti gli altri. In questo caso si parla di
+Ethernet, che è probabilmente la più diffusa) hanno il supporto per effettuare
+una comunicazione in cui un nodo qualunque della rete più inviare informazioni
+in contemporanea a tutti gli altri. In questo caso si parla di
 \textit{broadcast}, utilizzando la nomenclatura usata per le trasmissioni
 radio, anche se in realtà questo tipo di comunicazione è eseguibile da un nodo
 qualunque per cui tutti quanti possono ricoprire sia il ruolo di trasmettitore
 \textit{broadcast}, utilizzando la nomenclatura usata per le trasmissioni
 radio, anche se in realtà questo tipo di comunicazione è eseguibile da un nodo
 qualunque per cui tutti quanti possono ricoprire sia il ruolo di trasmettitore
@@ -439,9 +438,9 @@ programmazione di rete però sono importanti principalmente i due livelli
 centrali, e soprattutto quello di trasporto.
 
 La principale interfaccia usata nella programmazione di rete, quella dei
 centrali, e soprattutto quello di trasporto.
 
 La principale interfaccia usata nella programmazione di rete, quella dei
-socket (vedi sez.~\ref{cha:socket_intro}), è infatti un'interfaccia nei
-confronti di quest'ultimo.  Questo avviene perché al di sopra del livello di
-trasporto i programmi hanno a che fare solo con dettagli specifici delle
+socket (che vedremo in sez.~\ref{cha:socket_intro}), è infatti un'interfaccia
+nei confronti di quest'ultimo.  Questo avviene perché al di sopra del livello
+di trasporto i programmi hanno a che fare solo con dettagli specifici delle
 applicazioni, mentre al di sotto vengono curati tutti i dettagli relativi alla
 comunicazione. È pertanto naturale definire una interfaccia di programmazione
 su questo confine, tanto più che è proprio lì (come evidenziato in
 applicazioni, mentre al di sotto vengono curati tutti i dettagli relativi alla
 comunicazione. È pertanto naturale definire una interfaccia di programmazione
 su questo confine, tanto più che è proprio lì (come evidenziato in
@@ -494,9 +493,9 @@ seguenti:
 \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
 \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, come l'\textit{acknoweledgment} (il
-  ricevuto), i timeout, la ritrasmissione, ecc. È usato dalla maggior parte
-  delle applicazioni.
+  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
 \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
@@ -568,18 +567,19 @@ trasporto.
 \subsection{Internet Protocol (IP)}
 \label{sec:net_ip}
 
 \subsection{Internet Protocol (IP)}
 \label{sec:net_ip}
 
-Quando si parla di IP ci si riferisce in genere alla versione attualmente in
-uso che è la versione 4 (e viene pertanto chiamato IPv4). Questa versione
-venne standardizzata nel 1981
+Quando si parla di \textit{Internet Protocol} (IP) si fa in genere riferimento
+ad una versione (la quarta, da cui il nome IPv4) che è quella più usata
+comunemente, anche se ormai si sta diffondendo sempre di più la nuova versione
+IPv6. Il protocollo IPv4 venne standardizzato nel 1981
 dall'\href{http://www.ietf.org/rfc/rfc0719.txt}{RFC~719}.
 
 dall'\href{http://www.ietf.org/rfc/rfc0719.txt}{RFC~719}.
 
-Internet Protocol 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, ecc.).
-Il compito di IP è pertanto quello di trasmettere i pacchetti da un computer
-all'altro della rete; le caratteristiche essenziali con cui questo viene
-realizzato in IPv4 sono due:
+Il protocollo IP (indipendentemente dalla versione) 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
+interconnessione fisica, che può essere realizzato con le tecnologie più
+disparate (Ethernet, Token Ring, FDDI, ecc.).  Il compito di IP è pertanto
+quello di trasmettere i pacchetti da un computer all'altro della rete; le
+caratteristiche essenziali con cui questo viene realizzato in sono due:
 
 \begin{itemize}
 \item \textit{Universal addressing} la comunicazione avviene fra due stazioni
 
 \begin{itemize}
 \item \textit{Universal addressing} la comunicazione avviene fra due stazioni