2. Protocol Overview (Panoramica del protocollo)
2. Protocol Overview (Panoramica del protocollo)
In questo memorandum, descriviamo una tecnica per utilizzare il bit Don't Fragment (non frammentare, DF) nell'intestazione IP per scoprire dinamicamente il PMTU di un percorso. L'idea di base è che un host sorgente inizialmente assume che il PMTU di un percorso sia l'MTU (noto) del suo primo hop, e invia tutti i datagrammi su quel percorso con il bit DF impostato. Se uno qualsiasi dei datagrammi è troppo grande per essere inoltrato senza frammentazione da qualche router lungo il percorso, quel router li scarterà e restituirà messaggi ICMP Destination Unreachable (destinazione non raggiungibile) con un codice che significa "fragmentation needed and DF set" (frammentazione necessaria e DF impostato) [7]. Alla ricezione di tale messaggio (d'ora in poi chiamato messaggio "Datagram Too Big" (datagramma troppo grande)), l'host sorgente riduce il suo PMTU assunto per il percorso.
Il processo di scoperta PMTU termina quando la stima dell'host del PMTU è abbastanza bassa da consentire la consegna dei suoi datagrammi senza frammentazione. Oppure, l'host può scegliere di terminare il processo di scoperta cessando di impostare il bit DF nelle intestazioni dei datagrammi; può farlo, ad esempio, perché è disposto a far frammentare i datagrammi in determinate circostanze. Normalmente, l'host continua a impostare DF in tutti i datagrammi, in modo che se il percorso cambia e il nuovo PMTU è più basso, verrà scoperto.
Sfortunatamente, il messaggio Datagram Too Big, come attualmente specificato, non riporta l'MTU dell'hop per il quale il datagramma rifiutato era troppo grande, quindi l'host sorgente non può dire esattamente di quanto ridurre il suo PMTU assunto. Per rimediare a ciò, proponiamo che un campo di intestazione attualmente inutilizzato nel messaggio Datagram Too Big sia utilizzato per riportare l'MTU dell'hop limitante. Questa è l'unica modifica specificata per i router a supporto della PMTU Discovery.
Il PMTU di un percorso può cambiare nel tempo, a causa di cambiamenti nella topologia di routing. Le riduzioni del PMTU vengono rilevate dai messaggi Datagram Too Big, tranne sui percorsi per i quali l'host ha smesso di impostare il bit DF. Per rilevare gli aumenti del PMTU di un percorso, un host aumenta periodicamente il suo PMTU assunto (e se si era fermato, riprende a impostare il bit DF). Questo comporterà quasi sempre lo scarto di datagrammi e la generazione di messaggi Datagram Too Big, perché nella maggior parte dei casi il PMTU del percorso non sarà cambiato, quindi dovrebbe essere fatto raramente.
Poiché questo meccanismo garantisce essenzialmente che l'host non riceverà alcun frammento da un peer che esegue PMTU Discovery, può aiutare nell'interoperabilità con alcuni host che (in modo improprio) sono incapaci di riassemblare datagrammi frammentati.