3.1 TCP MSS Option (Option TCP MSS)
3.1 TCP MSS Option (Option TCP MSS)
Un hôte effectuant PMTU Discovery doit obéir à la règle selon laquelle il n'envoie pas de datagrammes IP de plus de 576 octets à moins d'avoir la permission du récepteur. Pour les connexions TCP, cela signifie qu'un hôte ne doit pas envoyer de datagrammes plus grands que 40 octets plus le Maximum Segment Size (taille de segment maximale, MSS) envoyé par son pair.
Note: Le TCP MSS est défini comme la taille du datagramme IP pertinent moins 40 [9]. La valeur par défaut de 576 octets pour la taille maximale du datagramme IP donne une valeur par défaut de 536 octets pour le TCP MSS.
La section 4.2.2.6 de "Requirements for Internet Hosts -- Communication Layers" (Exigences pour les hôtes Internet -- Couches de communication) [1] dit:
Certaines implémentations TCP envoient une option MSS uniquement si l'hôte de destination est sur un réseau non connecté. Cependant, en général, la couche TCP peut ne pas avoir les informations appropriées pour prendre cette décision, il est donc préférable de laisser à la couche IP la tâche de déterminer un MTU approprié pour le chemin Internet.
En fait, de nombreuses implémentations TCP envoient toujours une option MSS, mais définissent la valeur à 536 si la destination n'est pas locale. Ce comportement était correct lorsque l'Internet était plein d'hôtes qui ne suivaient pas la règle selon laquelle les datagrammes de plus de 576 octets ne devraient pas être envoyés vers des destinations non locales. Maintenant que la plupart des hôtes suivent cette règle, il est inutile de limiter la valeur dans l'option TCP MSS à 536 pour les pairs non locaux.
De plus, faire cela empêche PMTU Discovery de découvrir des PMTU supérieurs à 576, donc les hôtes NE DEVRAIENT plus abaisser la valeur qu'ils envoient dans l'option MSS. L'option MSS devrait être de 40 octets de moins que la taille du plus grand datagramme que l'hôte est capable de réassembler (MMS_R, tel que défini dans [1]); dans de nombreux cas, ce sera la limite architecturale de 65495 (65535 - 40) octets. Un hôte PEUT envoyer une valeur MSS dérivée du MTU de son réseau connecté (le MTU maximum sur ses réseaux connectés, pour un hôte multi-hébergé); cela ne devrait pas causer de problèmes pour PMTU Discovery, et peut dissuader un pair défectueux d'envoyer d'énormes datagrammes.
Note: Pour le moment, nous ne voyons aucune raison d'envoyer un MSS supérieur au MTU maximum des réseaux connectés, et nous recommandons que les hôtes n'utilisent pas 65495. Il est fort possible que certaines implémentations IP aient des bogues de bit de signe qui seraient déclenchés par l'utilisation inutile d'un MSS aussi grand.