MTU :

La MTU (Maximal Transmission Unit) est la plus grande taille possible d’un paquet de données, envoyée en une seule fois (sans fragmentation) à travers le(s) réseau(x).
La MTU couramment utilisée est de 1500 octets par les équipements de terminaison.

Connaître la MTU par OS :

Windows :

> netsh interface ipv4 show interface

Linux :

> ifconfig

MAC :

> networksetup -getMTU en0

MSS :

La MSS (Maximum Segment Size) désigne la quantité de données en octets qu’un ordinateur ou tout équipement de communication peut contenir dans un paquet non fragmenté.

Echange de MSS :

La taille maximum de segment TCP (MSS) définit la quantité maximale de données qu’un hôte souhaite accepter dans un datagramme TCP/IP simple. Ce datagramme TCP/IP peut être fragmenté au niveau de la couche IP. La valeur MSS est envoyée comme en-tête TCP uniquement dans les segments TCP SYN. Chaque côté d’une connexion TCP indique sa valeur MSS à l’autre côté. Contrairement à ce que l’on croit, la valeur MSS n’est pas négociée entre les hôtes. L’hôte expéditeur doit limiter la taille des données dans les segments TCP à une valeur inférieure ou égale au MSS indiqué par l’hôte de destination.

Initialement, la valeur MSS indiquait la taille d’une mémoire tampon (supérieure ou égale à 65496K) allouée à une station de destination, lui permettant de stocker les données TCP contenues dans un datagramme IP simple. MSS était le segment maximum de données (bloc) que le récepteur TCP souhaitait accepter. Ce segment TCP pouvait atteindre 64K (la taille maximum de datagramme IP) et pouvait être fragmenté au niveau de la couche IP afin d’être transmis via le réseau à l’hôte de destination. L’hôte de destination pouvait alors réassembler le datagramme IP avant de transmettre le segment TCP complet à la couche TCP.

L’illustrons la façon dont MSS a été mis en application la première fois. L’hôte A a une mémoire tampon de 16K et l’hôte B une mémoire tampon de 8K. Ils envoient et reçoivent leurs valeurs MSS et ajustent leur envoi MSS en vue de l’envoi réciproque de données. Notez que l’hôte A et l’hôte B devront fragmenter les datagrammes IP dont la taille dépasse celle de l’interface MTU mais reste inférieure à celle du MSS, car la pile TCP peut transmettre 16K ou 8K d’octets de données à destination d’IP.

Choix MSS

  1. L’hôte A envoie sa valeur MSS de 16K à l’hôte B.
  2. L’hôte B reçoit la valeur 16K MSS envoyée par l’hôte A.
  3. L’hôte B définit sa valeur MSS à 16K.
  4. L’hôte B envoie sa valeur MSS de 8K à l’hôte A.
  5. L’hôte A reçoit la valeur 8K MSS envoyée par l’hôte A.
  6. L’hôte A définit sa valeur MSS à 8K.

Calcul de l’un et l’autre (sans fragmentation) :

MTU = MSS + header TCP/IP (40 : 20 pour header TCP + 20 pour header IP) MSS = MTU - 40

Annexes :

Cisco - Résoudre les problèmes de fragmentation IP, MTU, MSS et PMTUD avec GRE et IPSEC