From 0a667b5bd6c1988e132d900ce4c0fd3c9170576f Mon Sep 17 00:00:00 2001 From: Simone Piccardi Date: Sat, 26 Apr 2003 10:59:39 +0000 Subject: [PATCH] Risistemata la parte appendici, divisa in livelli secondo il modello darpa, rinominati i file e risistemate le sezioni del livello di rete. Qualche correzione al capitolo sui socket elementari --- elemtcp.tex | 18 ++++----- gapil.tex | 4 +- ipprot.tex => netlayer.tex | 71 +++++++++++++++++++++++++++-------- tcpprot.tex => trasplayer.tex | 0 4 files changed, 66 insertions(+), 27 deletions(-) rename ipprot.tex => netlayer.tex (96%) rename tcpprot.tex => trasplayer.tex (100%) diff --git a/elemtcp.tex b/elemtcp.tex index 5aa601f..0872bdb 100644 --- a/elemtcp.tex +++ b/elemtcp.tex @@ -182,7 +182,7 @@ seguente: significa che si è finito con l'invio dei dati sulla connessione. \item L'altro capo della connessione riceve il FIN ed esegue la - \textit{chiusura passiva} (o \textit{passive close}); al FIN, come ad ogni + \textsl{chiusura passiva} (o \textit{passive close}); al FIN, come ad ogni altro pacchetto, viene risposto con un ACK. Inoltre il ricevimento del FIN viene segnalato al processo che ha aperto il socket (dopo che ogni altro eventuale dato rimasto in coda è stato ricevuto) come un end-of-file sulla @@ -215,14 +215,14 @@ scambio dei segmenti che conclude la connessione. Come per il SYN anche il FIN occupa un byte nel numero di sequenza, per cui l'ACK riporterà un \textit{acknowledge number} incrementato di uno. -Si noti che nella sequenza di chiusura fra i passi 2 e 3 è in teoria possibile -che si mantenga un flusso di dati dal capo della connessione che deve ancora -eseguire la chiusura passiva a quello che sta eseguendo la chiusura attiva. -Nella sequenza indicata i dati verrebbero persi, dato che si è chiuso il -socket dal lato che esegue la chiusura attiva; esistono tuttavia situazioni in -cui si vuole poter sfruttare questa possibilità, usando una procedura che è -chiamata \textit{half-close}; torneremo su questo aspetto e su come -utilizzarlo in \secref{xxx_shutdown}, quando parleremo della funzione +Si noti che, nella sequenza di chiusura, fra i passi 2 e 3, è in teoria +possibile che si mantenga un flusso di dati dal capo della connessione che +deve ancora eseguire la chiusura passiva a quello che sta eseguendo la +chiusura attiva. Nella sequenza indicata i dati verrebbero persi, dato che si +è chiuso il socket dal lato che esegue la chiusura attiva; esistono tuttavia +situazioni in cui si vuole poter sfruttare questa possibilità, usando una +procedura che è chiamata \textit{half-close}; torneremo su questo aspetto e su +come utilizzarlo in \secref{xxx_shutdown}, quando parleremo della funzione \func{shutdown}. La emissione del FIN avviene quando il socket viene chiuso, questo però non diff --git a/gapil.tex b/gapil.tex index 6ab9c2b..972a96b 100644 --- a/gapil.tex +++ b/gapil.tex @@ -143,8 +143,8 @@ \include{elemtcp} \include{simpltcp} \appendix -\include{ipprot} -\include{tcpprot} +\include{netlayer} +\include{trasplayer} \include{errors} \include{ringraziamenti} \include{fdl} diff --git a/ipprot.tex b/netlayer.tex similarity index 96% rename from ipprot.tex rename to netlayer.tex index 110fcb5..98e7747 100644 --- a/ipprot.tex +++ b/netlayer.tex @@ -8,18 +8,37 @@ %% license is included in the section entitled "GNU Free Documentation %% License". %% -\chapter{Il protocollo IP} -\label{cha:ip_protocol} -L'attuale Internet Protocol (IPv4) viene standardizzato nel 1981 + + +\chapter{Il livello di rete} +\label{cha:network_layer} + +In questa appendice prenderemo in esame i vari protocolli disponibili a +livello di rete.\footnote{per la spiegazione della suddivisione in livelli dei + protocolli di rete, si faccia riferimento a quanto illustrato in + \secref{sec:net_protocols}.} Per ciascuno di essi forniremo una descrizione +generica delle principlai caratteristiche, del formato di dati usato e quanto +possa essere necessario per capirne meglio il funzionamento dal punto di vista +della programmazione. + +Data la loro prevelenza il capitolo sarà sostanzialmente incentrato sui due +protocolli principali esistenti su questo livello: l'\textit{Internet + Protocol} IP (che più propriamente si dovrebbe chiamare IPv4) ed la sua +nuova versione denominata IPv6. + + +\section{Il protocollo IP} +\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.). +realizzato con le tecnologie più disparate (Ethernet, Token Ring, FDDI, etc.). -\section{Introduzione} +\subsection{Introduzione} \label{sec:IP_intro} Il compito di IP è pertanto quello di trasmettere i pacchetti da un computer @@ -175,7 +194,27 @@ classe B e diminuendo al contempo il numero di indirizzi di rete da inserire nelle tabelle di instradamento dei router. -\section{I motivi della transizione} + + +\section{Il protocollo IPv6} +\label{sec:ipv6_protocol} + +Negli anni '90 con la crescita del numero di macchine connesse su Internet si +arrivò a temere l'esaurimento dello spazio degli indirizzi disponibili, specie +in vista di una prospettiva (per ora rivelatasi prematura) in cui ogni +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.). + + +\subsection{I motivi della transizione} \label{sec:IP_whyipv6} Negli ultimi anni la crescita vertiginosa del numero di macchine connesse a @@ -214,7 +253,7 @@ necessit \end{itemize} -\section{Principali caratteristiche di IPv6} +\subsection{Principali caratteristiche di IPv6} \label{sec:IP_ipv6over} Per rispondere alle esigenze descritte in \secref{sec:IP_whyipv6} IPv6 nasce @@ -246,7 +285,7 @@ grandi linee nei seguenti punti: \end{itemize} -\section{L'intestazione di IPv6} +\subsection{L'intestazione di IPv6} \label{sec:IP_ipv6head} Per capire le caratteristiche di IPv6 partiamo dall'intestazione usata dal @@ -450,7 +489,7 @@ quello di IPv6 sono le seguenti: pacchetti più larghi della dimensione minima (576 byte). \end{itemize} -\section{Gli indirizzi di IPv6} +\subsection{Gli indirizzi di IPv6} \label{sec:IP_ipv6_addr} Come già abbondantemente anticipato la principale novità di IPv6 è @@ -963,8 +1002,8 @@ nodi locali). Gli indirizzi \textit{anycast} sono indirizzi che vengono assegnati ad un gruppo di interfacce: un pacchetto indirizzato a questo tipo di indirizzo -viene inviato al componente del gruppo più ``\textsl{vicino}'' secondo la distanza di -instradamento calcolata dai router. +viene inviato al componente del gruppo più ``\textsl{vicino}'' secondo la +distanza di instradamento calcolata dai router. Questi indirizzi sono allocati nello stesso spazio degli indirizzi unicast, usando uno dei formati disponibili, e per questo, sono da essi assolutamente @@ -998,7 +1037,7 @@ interfaccia. La materia è pertanto ancora controversa e in via di definizione. -\section{Le estensioni} +\subsection{Le estensioni} \label{sec:IP_ipv6_extens} Come già detto in precedenza IPv6 ha completamente cambiato il trattamento @@ -1092,7 +1131,7 @@ se, come per il tunnelling, devono essere esaminate dai router, quelle che devono essere esaminate solo alla destinazione finale vanno in coda. -\section{Qualità di servizio} +\subsection{Qualità di servizio} \label{sec:IP_ipv6_qos} Una delle caratteristiche innovative di IPv6 è quella di avere introdotto un @@ -1171,7 +1210,7 @@ dovrebbe essere usata per quei pacchetti che si preferisce siano scartati più facilmente in caso di congestione. -\section{Sicurezza a livello IP} +\subsection{Sicurezza a livello IP} \label{sec:security} La attuale implementazione di Internet presenta numerosi problemi di @@ -1378,7 +1417,7 @@ fino al vettore di inizializzazione, il resto \renewcommand\arraystretch{1} %default -\section{Autoconfigurazione} +\subsection{Autoconfigurazione} \label{sec:IP_ipv6_autoconf} Una delle caratteristiche salienti di IPv6 è quella dell'autoconfigurazione, diff --git a/tcpprot.tex b/trasplayer.tex similarity index 100% rename from tcpprot.tex rename to trasplayer.tex -- 2.30.2