Maximum Segment Size
Maximum Segment Size (MSS ou longueur maximum de segment en français) dĂ©signe la quantitĂ© de donnĂ©es en octets qu'un ordinateur ou tout Ă©quipement de communication peut contenir dans un paquet seul et non fragmentĂ©. Pour obtenir le meilleur rendement possible, la taille du segment de donnĂ©es et de l'en-tĂȘte doivent ĂȘtre infĂ©rieures au MTU.
Utilisation
Le MSS est particuliÚrement important dans le cadre de connexions au réseau Internet, en particulier dans le cas de la navigation sur le web. Lorsque le protocole TCP est utilisé pour ces connexions, chaque partie doit se mettre d'accord et ensuite paramétrer la taille du MTU acceptable par chacun. C'est la raison pour laquelle on peut observer une négociation du MSS lors de l'initialisation de la session TCP.
La taille classique d'un MTU dans le cadre d'une connexion Internet via un ordinateur personnel est soit de 576 octets, soit de 1 500 octets. Sachant que l'en-tĂȘte TCP/IP fait 40 octets, le MSS doit ĂȘtre infĂ©rieur ou Ă©gal Ă la diffĂ©rence, donc 536 octets ou 1 460 octets.
Comme les donnĂ©es sont routĂ©es Ă travers Internet, elles doivent passer Ă travers de multiples routeurs et passerelles. ThĂ©oriquement, chaque segment devrait pouvoir passer les routeurs sans ĂȘtre fragmentĂ©. Mais certains des nĆuds ne supportent pas des MTU aussi Ă©levĂ©s. Pour cette raison, les routeurs segmentent les paquets (les dĂ©coupent en plusieurs sous-paquets). Cela a tendance Ă ralentir considĂ©rablement les connexions (du moins pour l'utilisateur final). L'effet de cette fragmentation peut ĂȘtre attĂ©nuĂ© en gardant un MSS relativement petit (dans la limite du raisonnable). C'est ce que fait, dans la plupart des cas, le systĂšme d'exploitation de la machine cliente.
Option adjust-mss sur les routeurs Cisco
Les routeurs Cisco sont capables de modifier à la volée la valeur de la MSS des paquets reçus ou envoyés par une interface. Cette configuration se fait au moyen de la commande suivante exécutée dans le sous-mode interface :
(config-if)# ip tcp adjust-mss <valeur>
Option tcp-mss sur les pare-feux FortiGate
Sur un pare-feu Fortigate la MSS peut ĂȘtre ajustĂ©e directement sur une policy. Le paramĂštre n'est pas modifiable en GUI mais seulement en CLI :
config firewall policy
edit <ID de la policy>
...
set tcp-mss-sender <valeur>
set tcp-mss-receiver <valeur>
...
next
end
Option mss clamping sur les routeurs Linux accélérés par 6WINDGate
Les routeurs Linux accélérés par le fast path des produits basés sur le 6WINDGate de 6WIND sont capables de modifier à la volée la valeur de la MSS des paquets TCP transitant par une interface physique ou une interface tunnel. Cette configuration se fait au moyen de la commande suivante directement sur le fast path car le noyau Linux n'a pas d'équivalent:
root# fp-cli tcpmss4-set IFACE MSS
root# fp-cli tcpmss6-set IFACE MSS
Une autre possibilité également supportée et gérée en mode Linux est d'utiliser iptables :
root# iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o IFACE -j TCPMSS --set-mss 1460
IFACE doit ĂȘtre un netdevice gĂ©rĂ© par Linux (cf ip link show).
Articles connexes
Liens externes
- (en) TCP MSS Adjustment [PDF]
- iptables cible Linux TCPMSS