From: Simone Piccardi Date: Mon, 7 May 2001 20:50:16 +0000 (+0000) Subject: Aggiunti MTU per vari data-link X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=commitdiff_plain;h=ff7dcd54f4ab834fb359308e500efd6a7a93639e Aggiunti MTU per vari data-link --- diff --git a/network.tex b/network.tex index fd9f734..6da5a49 100644 --- a/network.tex +++ b/network.tex @@ -769,22 +769,43 @@ loro origini ed alle eventuali implicazioni che possono avere: dell'header è fissa e di 40 byte e non è compresa nel valore indicato dal suddetto campo. Inoltre IPv6 ha la possibilità di estendere la dimensione di un pacchetto usando la \textit{jumbo payload option}. -\item Molte reti fisiche hanno un MTU (\textit{maximum tranfer unit}) che è - imposta dalle modalità di funzionamento dall'hardware. Il più comune è - quello dell'ethernet che è pari a 1500 bytes. La MTU più piccola fra due - stazioni viene in genere chiamata \textit{path MTU}, e al giorno d'oggi è - normalmente data da ethernet; si tenga conto che non è affatto detto che sia - la stessa in entrambe le direzioni, anche perchè l'instradamento può essere - diverso. +\item Molte reti fisiche hanno un MTU (\textit{maximum tranfer unit}) che + dipende dal protocollo specifico usato al livello di link. Il più comune è + quello dell'ethernet che è pari a 1500 bytes, una serie di valori possibili + sono riportati in \ntab. \end{itemize} +\begin{table}[!htb] + \centering + \begin{tabular}[c]{|l|c|} + \textbf{Rete} & \textbf{MTU} \\ + \hline + Hyperlink & 65535 \\ + Token Ring IBM (16 Mbit/sec) & 17914 \\ + Token Ring IEEE 802.5 (4 Mbit/sec) & 4464 \\ + FDDI & 4532 \\ + Ethernet & 1500 \\ + X.25 & 576 \\ + \end{tabular} + \caption{Valori della MTU (\textit{maximum tranfer unit}) per una serie di + reti diverse.} + \label{tab:net_mtu_values} +\end{table} + Quando un pacchetto IP viene inviato su una interfaccia di rete e le sue dimensioni eccedono la MTU viene eseguita la cosiddetta -\textit{frammentazione} (sia da IPv4 che da IPv6, anche se i pacchetti -frammentati sono gestiti con modalità diverse\footnote{il primo usa un flag - nell'header, il secondo una opportuna opzione, si veda - \ref{cha:ip_protcol}}), i pacchetti cioè vengono spezzati in blocchi più -piccoli che possono essere trasmessi attraverso l'interfaccia. +\textit{frammentazione}, i pacchetti cioè vengono spezzati (sia da IPv4 che da +IPv6, anche se i pacchetti frammentati sono gestiti con modalità +diverse\footnote{il primo usa un flag nell'header, il secondo una opportuna + opzione, si veda \ref{cha:ip_protcol}}), in blocchi più piccoli che possono +essere trasmessi attraverso l'interfaccia. + +La MTU più piccola fra due stazioni viene in genere chiamata \textit{path + MTU}, che dice qual'è la lunghezza massima oltre la quale un pacchetto +inviato da una stazione ad un'altra verrebbe senz'altro frammentato. Si tenga +conto che non è affatto detto che la \textit{path MTU} sia la stessa in +entrambe le direzioni, perchè l'instradamento può essere diverso nei due +sensi, con diverse tipologie di rete coinvolte. Una delle differenze fra IPv4 e IPv6 é che per IPv6 la frammentazione può essere eseguita solo alla sorgente, questo vuol dire che i router IPv6 non @@ -794,24 +815,28 @@ volta frammentati i pacchetti possono essere riassemblati solo alla destinazione. Nell'header di IPv4 è previsto il flag \texttt{DF} che specifica che il -pacchetto non deve essere frammentato; un router che riceva uno di questi -pacchetti le cui dimensioni eccedono quelle dell'MTU della rete di -destinazione genererà un messaggio di errore ICMPv4 di tipo -\textit{destination unreachable, fragentation needed but DF bit set}. +pacchetto non deve essere frammentato; un router che riceva un pacchetto le +cui dimensioni eccedano quelle dell'MTU della rete di destinazione genererà un +messaggio di errore ICMPv4 di tipo \textit{destination unreachable, + fragentation needed but DF bit set}. Dato che i router IPv6 non possono effettuare la frammentazione la ricezione di un pacchetto di dimensione eccessiva per la ritrasmissione genererà sempre un messaggio di errore ICMPv6 di tipo \textit{paket too big}. Dato che il meccanismo di frammentazione e riassemblaggio comporta -inefficienza è opportuno che la trasmissione di grosse quantità di dati sia -gestita in maniera oculata, TCP provvede un meccanismo automatico di - -In genere il flag DF di IPv4 (e il comportamento normale di IPv6) vengono -utilizzati per il processo della \textit{path MTU discover} (vedi RFC1191 per -IPv4 e RFC1981 per IPv6) in cui inviando delle opportune serie di pacchetti si -trova il \textit{path MTU}; TCP usa questo meccanismo che è opzionale per -IPv4, ma necessario (dato che i pacchetti verrebbero bloccati) per IPv6. +inefficienza normalmente viene utilizzato il procedimento della \textit{path + MTU discover} (vedi RFC1191 per IPv4 e RFC1981 per IPv6) che permette dui +trovare il \textit{path MTU} fra due stazioni; per la realizzazione del +procedimento si usa il flag DF di IPv4 e il comportamento normale di IPv6 +inviando delle opportune serie di pacchetti (per i dettagli vedere l'RFC1191 +per IPv4 e l'RFC1981 per IPv6) fintanto che non si hanno più errori. + +Il TCP usa sempre questo meccanismo, che per le implementazioni di IPv4 è +opzionale, mentre diventa obbligatorio per IPv6. Per IPv6 infatti, non +potendo i router frammentare i pacchetti, è necessario, per poter comunicare, +conoscere il \textit{path MTU}. + Infine TCP definisce una \textit{maximum segment size} MSS che annuncia all'altro capo la dimensione massima del segmento di dati