2. Protocol Overview (Vue d'ensemble du protocole)
2. Protocol Overview (Vue d'ensemble du protocole)
Dans ce mémorandum, nous décrivons une technique utilisant le bit Don't Fragment (ne pas fragmenter, DF) dans l'en-tête IP pour découvrir dynamiquement le PMTU d'un chemin. L'idée de base est qu'un hôte source suppose initialement que le PMTU d'un chemin est le MTU (connu) de son premier saut, et envoie tous les datagrammes sur ce chemin avec le bit DF défini. Si l'un des datagrammes est trop grand pour être transféré sans fragmentation par un routeur le long du chemin, ce routeur les abandonnera et renverra des messages ICMP Destination Unreachable (destination inaccessible) avec un code signifiant "fragmentation needed and DF set" (fragmentation nécessaire et DF défini) [7]. À la réception d'un tel message (ci-après appelé message "Datagram Too Big" (datagramme trop grand)), l'hôte source réduit son PMTU supposé pour le chemin.
Le processus de découverte PMTU se termine lorsque l'estimation du PMTU par l'hôte est suffisamment basse pour que ses datagrammes puissent être livrés sans fragmentation. Ou, l'hôte peut choisir de terminer le processus de découverte en cessant de définir le bit DF dans les en-têtes de datagramme; il peut le faire, par exemple, parce qu'il est prêt à faire fragmenter les datagrammes dans certaines circonstances. Normalement, l'hôte continue à définir DF dans tous les datagrammes, de sorte que si la route change et que le nouveau PMTU est plus bas, il sera découvert.
Malheureusement, le message Datagram Too Big, tel que spécifié actuellement, ne rapporte pas le MTU du saut pour lequel le datagramme rejeté était trop grand, donc l'hôte source ne peut pas savoir exactement de combien réduire son PMTU supposé. Pour remédier à cela, nous proposons d'utiliser un champ d'en-tête actuellement inutilisé dans le message Datagram Too Big pour rapporter le MTU du saut contraignant. C'est le seul changement spécifié pour les routeurs en support de PMTU Discovery.
Le PMTU d'un chemin peut changer au fil du temps, en raison de changements dans la topologie de routage. Les réductions du PMTU sont détectées par les messages Datagram Too Big, sauf sur les chemins pour lesquels l'hôte a cessé de définir le bit DF. Pour détecter les augmentations du PMTU d'un chemin, un hôte augmente périodiquement son PMTU supposé (et s'il s'était arrêté, reprend la définition du bit DF). Cela entraînera presque toujours l'abandon de datagrammes et la génération de messages Datagram Too Big, car dans la plupart des cas le PMTU du chemin n'aura pas changé, donc cela devrait être fait rarement.
Étant donné que ce mécanisme garantit essentiellement que l'hôte ne recevra aucun fragment d'un pair effectuant PMTU Discovery, il peut aider à interopérer avec certains hôtes qui (incorrectement) sont incapables de réassembler des datagrammes fragmentés.