5.4 Packetization Layer Actions (Actions de la couche de paquétisation)
5.4 Actions de la couche de paquétisation
Une couche de paquétisation (par exemple, TCP) doit utiliser le PMTU pour le ou les chemins utilisés par une connexion ; elle ne devrait pas envoyer de segments qui entraîneraient des paquets plus grands que le PMTU, sauf pour sonder pendant la découverte du PMTU (ce paquet de sonde ne doit pas être fragmenté au PMTU). Une implémentation simple pourrait demander cette valeur à la couche IP chaque fois qu'elle crée un nouveau segment, mais cela pourrait être inefficace. Une implémentation met généralement en cache d'autres valeurs dérivées du PMTU. Il peut être plus simple de recevoir une notification asynchrone lorsque le PMTU change, afin que ces variables puissent également être mises à jour.
Une implémentation TCP doit également stocker la valeur Maximum Segment Size (MSS) reçue de son pair, qui représente EMTU_R, le plus grand paquet qui peut être réassemblé par le récepteur, et ne doit envoyer aucun segment plus grand que ce MSS, quel que soit le PMTU.
La valeur envoyée dans l'option TCP MSS est indépendante du PMTU ; elle est déterminée par la limite de réassemblage du récepteur EMTU_R. Cette valeur d'option MSS est utilisée par l'autre extrémité de la connexion, qui peut utiliser une valeur PMTU non liée. Voir la section 5, "Packet Size Issues", et la section 8.3, "Maximum Upper-Layer Payload Size", de [RFC8200] pour des informations sur la sélection d'une valeur pour l'option TCP MSS.
La réception d'un message Packet Too Big implique qu'un paquet a été rejeté par le nœud qui a envoyé le message ICMPv6. Un protocole de couche supérieure fiable détectera cette perte par ses propres moyens et la récupérera par ses méthodes de retransmission normales. La retransmission pourrait entraîner un délai, selon la méthode de détection de perte utilisée par le protocole de couche supérieure. Si le processus de découverte du MTU de chemin nécessite plusieurs étapes pour trouver le PMTU du chemin complet, cela pourrait finalement retarder la retransmission de nombreux temps d'aller-retour.
Alternativement, la retransmission pourrait être effectuée en réponse immédiate à une notification indiquant que le MTU de chemin a été diminué, mais uniquement pour la connexion spécifique spécifiée par le message Packet Too Big. La taille de paquet utilisée dans la retransmission ne devrait pas être plus grande que le nouveau PMTU.
Note : Une couche de paquétisation qui détermine qu'un paquet de sonde est perdu doit adapter la taille de segment de la retransmission. L'utilisation de la taille rapportée dans le dernier message Packet Too Big peut toutefois conduire à d'autres pertes car il pourrait y avoir des limites PMTU plus petites au niveau des routeurs plus loin le long du chemin. Cela conduirait à la perte de tous les segments retransmis et entraînerait donc une congestion inutile ainsi que l'envoi de paquets supplémentaires chaque fois qu'un nouveau routeur annonce un MTU plus petit. Toute couche de paquétisation qui utilise la retransmission est donc également responsable du contrôle de la congestion de ses retransmissions [RFC8085].
Une perte causée par une sonde PMTU indiquée par la réception d'un message Packet Too Big ne doit pas être considérée comme une notification de congestion, et par conséquent la fenêtre de congestion peut ne pas changer.