Qu'est-ce que le MSS (maximum segment size) ?

Le MSS, ou taille maximale de segment, est la plus grande charge utile de données qu'un appareil acceptera d'une connexion réseau.

Objectifs d’apprentissage

Cet article s'articule autour des points suivants :

  • Comprendre ce qu'est un paquet et ce que sont les en-têtes de paquets.
  • Définir 'payload' (charge utile)
  • Apprenez à calculer le MSS en fonction du MTU.

Contenu associé


Vous souhaitez continuer à enrichir vos connaissances ?

Abonnez-vous à theNET, le récapitulatif mensuel de Cloudflare des idées les plus populaires concernant Internet !

Consultez la politique de confidentialité de Cloudflare pour en savoir plus sur la manière dont nous collectons et traitons vos données personnelles.

Copier le lien de l'article

Qu'est-ce que la taille maximale du segment (MSS) ?

Le MSS (maximum segment size) limite la taille des paquets, ou petits morceaux de données, qui circulent sur un réseau, tel qu'Internet. Toutes les données qui transitent sur un réseau sont divisées en paquets. Plusieurs en-têtes sont attachés aux paquets et contiennent des informations sur leur contenu et leur destination. MSS mesure la partie non en-tête d'un paquet, appelée charge utile.

Si l'on compare un paquet de données à un camion de transport, l'en-tête étant le camion lui-même et la charge utile étant la remorque et la cargaison, alors le MSS est comme une balance qui ne mesure que la remorque. Si la remorque pèse trop lourd, le camion n'est pas autorisé à poursuivre sa route vers sa destination.

Plus précisément, MSS est la plus grande taille de segment TCP (Transport Control Protocol) qu'un dispositif connecté au réseau peut recevoir. MSS définit le segment "" comme étant uniquement la longueur de la charge utile, sans les en-têtes joints. Le MSS est mesuré en octets.

En-têtes et charge utile des paquets de données - Segment TCP et MSS

Le MSS est déterminé par une autre métrique liée à la taille des paquets : MTU, ou unité de transmission maximale, qui inclut les en-têtes TCP et IP (Internet Protocol) . Pour poursuivre l'analogie, le MTU mesure le poids total du camion, de sa remorque et de sa cargaison, et non pas seulement de la remorque et de la cargaison.

Essentiellement, le MSS est égal au MTU moins la taille d'un en-tête TCP et d'un en-tête IP :

MTU - (en-tête TCP + en-tête IP) = MSS

L'une des principales différences entre MTU et MSS est que si un paquet dépasse le MTU d'un périphérique, il est divisé en plus petits morceaux, ou "fragmenté." En revanche, si un paquet dépasse le MSS, il est abandonné et n'est pas livré.

Qu'est-ce que TCP ? Qu'est-ce qu'un en-tête TCP ?

Le protocole de contrôle du transport, ou TCP, est un protocole qui garantit que les paquets de données sont livrés et reçus dans l'ordre, sans paquets abandonnés. Imaginez que les services de livraison de colis appellent tous les destinataires à l'avance pour s'assurer qu'ils seront chez eux à une certaine heure avant de livrer les colis, puis qu'ils renvoient un message à l'expéditeur pour confirmer la livraison. Le TCP fonctionne un peu de la même manière, les paquets de données étant les paquets "" en cours de livraison.

Le TCP fonctionne en ouvrant une connexion entre les deux appareils qui communiquent via un processus appelé poignée de main TCP." Le MSS est convenu au cours de la poignée de main TCP : les deux appareils communiquent la taille des paquets qu'ils sont en mesure de recevoir (on peut appeler cela "; voir ci-dessous). Le TCP ajoute un en-tête à tous les paquets pour indiquer la connexion ouverte dont chaque paquet fait partie et l'ordre dans lequel les paquets sont envoyés.

Quelle est la longueur des en-têtes TCP et IP ?

Les en-têtes TCP ont presque toujours une longueur de 20 octets*. Les en-têtes IP contiennent des informations telles que l'adresse IP de la source et de la destination , et font également 20 octets. Les paquets TCP et IP comprennent des champs d'en-tête facultatifs qui peuvent allonger les en-têtes, mais ils ne sont presque jamais utilisés.

* En informatique, un octet est une unité de taille de mémoire qui représente huit chiffres binaires ; en d'autres termes, une combinaison de huit uns et de zéros.

Exemple de MSS TCP

Supposons que le routeur du réseau ait une MTU de 1 500, ce qui signifie qu'il n'accepte que les paquets d'une longueur maximale de 1 500 octets. (Les paquets plus longs seront fragmentés.) Quelle doit être la valeur du MSS du routeur ?

MTU - (en-tête TCP + en-tête IP) = MSS

1,500 - (20 + 20) = 1,460

Le MSS du routeur doit être fixé à 1 460 octets. Les paquets dont la taille de la charge utile est supérieure à 1 460 octets seront abandonnés. (Un périphérique peut envoyer par erreur un paquet trop grand comme celui-ci s'il ne connaît pas les paramètres MTU et MSS des routeurs situés entre lui et un autre périphérique. Un processus appelé path MTU discovery permet d'éviter de tels incidents).

Quel est l'impact de l'utilisation d'IPsec sur le MSS ?

IPsec (Internet Protocol security) est la version chiffrée de l'IP. Les paquets de données envoyés à l'aide d'IPsec sont brouillés afin que seuls les deux appareils connectés soient capables de les interpréter, ce qui permet de protéger le contenu de leur charge utile contre toute personne susceptible d'intercepter les paquets. IPsec est souvent utilisé pour configurer des réseaux privés virtuels, ou VPN.

IPsec ajoute quelques octets à la longueur d'un paquet. Sur les connexions qui utilisent ce chiffrement, MSS doit également tenir compte d'IPsec :

MTU - (en-tête TCP + en-tête IP + IPsec) = MSS

Le MSS est-il une mesure de la couche réseau ou de la couche transport ?

MSS est une métrique de couche 4, ou couche transport. Elle est utilisée avec TCP, un protocole de couche transport. Cependant, elle est étroitement liée au MTU, qui s'applique à la couche 3 de (la couche réseau de ).

Qu'est-ce que le serrage MSS ?

Il arrive qu'un routeur situé le long d'un chemin de réseau ait une valeur MTU inférieure aux 1 500 octets habituels. Cela peut entraîner une perte de paquets et peut être difficile à découvrir.

Pour s'assurer que les paquets atteignent toujours leur destination dans cette situation, une option consiste à réduire la taille des charges utiles des paquets entrants. Cela peut être réalisé en configurant le serveur pour qu'il applique un clamp MSS : pendant la poignée de main TCP, le serveur peut signaler le MSS pour les paquets qu'il est prêt à recevoir, "clamp" la taille maximale de la charge utile de l'autre serveur. Par exemple, si les serveurs A et B établissent une connexion TCP et que le serveur B communique un MSS de 1 436 octets, le serveur A enverra des paquets avec une taille maximale de charge utile de 1 436 octets pendant toute la durée de la connexion.

Une autre application du bridage MSS est le cas de GRE tunneling, où un en-tête de 24 octets est ajouté au paquet d'origine afin de l'envoyer à une nouvelle destination. Si le paquet d'origine était plus grand que 1 476 octets, le nouveau paquet pourrait dépasser la MTU typique de 1 500 octets ; un blocage MSS peut être appliqué pour exiger que les paquets entrants soient inférieurs à 1 500 octets, même après l'application de l'en-tête GRE.

Pour en savoir plus sur le MTU et le MSS, voir Qu'est-ce que le MSS ?

À propos de la couche réseau