[Tuto] Le MTU et les jumbo frames

Le MTU et les jumbo frames [Tuto] - Tutoriels - Réseaux grand public / SoHo

Marsh Posté le 20-05-2011 à 11:05:32    

Salut à tous, voici un petit topic sur les jumbo frames et le MTU pour bien mettre au clair ce point car les infos sur le sujet sont très rares et presque exclusivement en anglais.
 
Tout ceux qui ont déjà été trifouiller dans les drivers de leur carte Ethernet gigabit ou qui ont un switch Ethernet gigabit ont probablement déjà lu le terme de "jumbo frame" ou de "MTU".
Pour expliquer ces deux termes rappelons déjà le fonctionnement de l'Ethernet. Depuis sa création, l'Ethernet utilise des trames (frames en anglais) pour faire communiquer en réseau des équipement, ce sont des sortes de paquets. Chaque donnée qui doit être envoyée par un équipement sur un réseau Ethernet doit utiliser ce format:
http://alois54.free.fr/MTU/ethernet.png
Toutes les valeurs sont en octet
le préambule de synchronisation n'est qu'une suite de 0 et 1 pour synchroniser les horloges des switchs et cartes Ethernet ainsi que pour signifier le début d'une trame, vient ensuite l'adresse MAC de destination puis celle de source de la trame, deux octets permettent d'indiquer le type de donnée transportée (IP dans 99% des cas, parfois IPv6 ou encore IPX), viennent ensuite les données et pour finir 4 octets de checksum afin de vérifier que les données ne sont pas corrompues.
 
Pour mesurer la taille d'une trame Ethernet on mesure depuis l'adresse MAC source jusqu'au checksum inclus (on ignore le préambule). Depuis toujours la norme Ethernet indique qu'une trame doit mesurer entre 64 et 1518 octets, donc cela permet de transporter de 46 à 1500 octets de données.
 
Le MTU (Maximum Transfert Unit) c'est tout simplement le nombre d'octet maximum de données que l'on peut transporter en une fois sur un média réseau, donc en l'occurrence il est de 1500 pile pour l'Ethernet.
 
Jusque là rien de bien compliqué, le problème c'est que pour permettre la compatibilité avec les anciens équipements Ethernet ces valeurs n'ont jamais changé ainsi que ce soit en 100Base-TX, en 1000Base-T voir même en 10GBase-CX4 (10gbits/s) les trames doivent toujours avoir une taille entre 64 et 1518 octets soit un MTU de 1500 octets.
Le truc c'est que pour chaque trame envoyée le CPU doit faire l'encapsulation (c'est-à-dire construire la trame), dans les années 1990 avec du 10Base2 ou 10Base-T (10mbits/s) cela ne posait pas vraiment de problème car pour atteindre les 10mbits/s il suffisait d'envoyer environ 820 trames par secondes, ce qui, même pour les CPU de l'époque, n'était pas vraiment un soucis. En revanche de nos jour pour saturer une interface Ethernet gigabit il faut envoyer environ 82345 trames par secondes, un travail monumentale même pour les CPU de nos jours, sans compter que le CPU n'a pas que cela à faire puisqu'il faut également traiter les données elle-mêmes (pour les stocker sur le disque dur par exemple). Résultat lorsque vous faites un transfert entre deux PC en gigabit, a moins d'avoir deux bêtes de courses, vous dépasserez rarement les 600mbits/s et en plus le CPU sera très utilisé. (ce phénomène est aggravé sur les petits boitiers NAS qui ont un CPU peu performant)
 
C'est la qu'interviennent les jumbo frames. Les jumbo frames c'est tout simplement des trames de plus de 1518 octets. Malheureusement il n'existe aucun standard, ainsi même si la taille maximal d'une jumbo frame est généralement de 9000 c'est rarement le cas en pratique et dépend de l'implémentation de chaque constructeur. En gros en utilisant des jumbo frames on divise l'utilisation CPU par 6 pour un débit égale, et lorsque le CPU limitait le débit, le débit max est augmenté.
 
Malheureusement pour pouvoir utiliser les jumbo frames, il faut que tous les éléments de la chaine par lesquels passent les trames soient compatibles et correctement configurés. Il faut donc des cartes réseaux compatibles avec les jumbo frame correctement configurés et un (ou plusieurs) switchs compatible.
 
Mise en place des jumbo frames
Bon, vous avez au moins deux PC avec des cartes réseaux gigabit et un switch gigabit compatible et vous souhaitez activer les jumbo frames, voilà comment procéder.
Pour commencer je vous conseil de mesurer le débit actuel afin de comparer. Utilisez l'excelent utilitaire iperf (distribué avec presque toute les distrib linux, on peut également télécharger une version pour windows). Lancer iperf avec la commande "iperf -s" sur un PC et "iperf -c ip.de.l'autre.pc -w2M -r" sur l'autre. Vous obtiendrez le débit utile entre les deux PC dans chaque sens.
 
Activez maintenant les jumbo frames dans la configuration de votre carte réseau en prenant la valeur maximale pour commencer :
http://alois54.free.fr/MTU/configcarte.png
 
Il faut maintenant tester si votre switch passe bien les jumbo frames de la taille que vous avez selectionnée. Pour cela lançons un invite de commande et utilisons la commande ping.
Lancez la commande ping suivante : ping ip.de.l'autre.pc -f -l 8000
Dans cet exemple vous envoyez un ping avec 8000 octets de données, tout en le forçant a n'utiliser qu'une seul trame (-f). Le but de la manœuvre est d'augmenter la valeur jusqu'à ce que le message suivant apparaisse "Le paquet doit être fragmenté mais paramétré DF." la dernière valeur fonctionnelle avant ce message correspond à votre nouveau MTU – 28 octets, par exemple sur une carte sans jumbo frame la dernière valeur possible du ping avant le message "Le paquet doit être fragmenté mais paramétré DF." est de 1500 – 28 = 1472 octets. Notez cette valeur cela pourra être utile pour faire une liste des MTU de différentes cartes réseau. Ma Realtek 8168D par exemple à un MTU de 9202 lorsque le drivers est sur 9KB (soit une trame maximal de 9220 octets (MTU+18))
 
Maintenant il faut vérifier le ping avec la dernière valeur avant le message "Le paquet doit être fragmenté mais paramétré DF.", si le ping fonctionne alors c'est tout bon, vous pouvez dès à présent profiter des jumbo frames lors de transferts de fichiers entre les deux PC par exemple. (faites un test iperf!)
 
En revanche si le ping affiche "Délai d'attente de la demande dépassé." il y a un surement problème qu'il faut absolument résoudre (ou désactiver à nouveau les jumbo frames sur les cartes) sous peine de diminuer fortement les performances. Pour cela commencez par vérifier le MTU de l'autre PC, si celui-ci est identique ou supérieur au premier PC, le problème vient du ou des switchs par lequels passent la trame, si le MTU est inférieur, faites un ping avec le MTU le plus faible des deux PC, si ce ping fonctionne c'est tout bon, sinon cela ne peut-être que le switch qui bloque les trames.
 
Si le problème vient effectivement du ou des switchs, il faut effectuer des ping en diminuant progressivement la valeur jusqu'à ce que le ping passe (message du genre "Réponse de 192.168.1.1 : octets=1476 temps=1 ms TTL=64" ), vous connaitrez ainsi le MTU de votre switch, si ce dernier est situé aux environs de 1500 alors le switch ne supporte pas les jumbo frames. Sinon si la valeur est élevée mais un peu inférieur à celle des cartes, il suffit de diminuer le MTU des cartes dans les drivers afin de passer en dessous du MTU du ou des switchs.
 
Dans mon cas par exemple mes cartes ayant un MTU de 9202 et mon swicth un MTU de 9198, j'ai du baisser d'un cran le MTU dans les drivers pour le mettre sur 8KB (soit un MTU mesuré de 8178)
 
Voilà maintenant vous pouvez profitez pleinement de votre réseau gigabit et faire des transferts dépassant les 100mo/s comme celui-ci tout en ayant un taux d'utilisation du CPU assez faible.
http://alois54.free.fr/MTU/transfert.pnghttp://alois54.free.fr/MTU/utilisation.png
 
Dernière chose en passant, vous pouvez avoir des PC avec les jumbo frames et d'autres sans sur le même réseau sans soucis car lors du démarrage de la connexion TCP les PC échangent leurs MSS (qui est l'équivalent du MTU mais au niveau IP). Actuellement sur mon réseau j'ai par exemple 2 PC avec les jumbo activées et 3 PC sans ainsi que la Livebox (qui ne supporte évidemment pas les jumbo) sans aucun soucis à déclarer.

Message cité 1 fois
Message édité par fueljam le 21-12-2011 à 14:01:27
Reply

Marsh Posté le 20-05-2011 à 11:05:32   

Reply

Marsh Posté le 20-05-2011 à 11:07:18    

Emplacement reservé pour faire une liste des MTU des cartes et switchs réseau:
 
Cartes réseau:
 Realtek RTL8168D/8111D Family PCI-E Gigabit Ethernet NIC (NDIS 6.20) - MTU 9202 (8178 en mode 8KB)
 Marvell Yukon 88E8001/8003/8010 PCI Gigabit Ethernet Controller - MTU 9000
 Nvidia nForce 4 10/100/1000 Ethernet Controller - MTU 9000
 Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03) - MTU 7200
 
Switchs gigabits:
 TP-Link TL-SG1005D - MTU 9198 avec 802.1q - MTU 9202 sans 802.1q
 Netgear GS608 v2 - MTU 9198 avec 802.1q - MTU 9202 sans 802.1q
 D-Link DGS-1210-24 - MTU 10 000 (non testé faute de carte ethernet avec un MTU aussi élevé)

Message cité 1 fois
Message édité par fueljam le 21-12-2011 à 13:44:37
Reply

Marsh Posté le 31-05-2011 à 01:12:14    

Carte réseau intégrée à la P55-UD3R:
Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03) - MTU 7200

Reply

Marsh Posté le 31-05-2011 à 10:46:44    

Merci pour ta contribution, la carte a été rajoutée à la liste!

Reply

Marsh Posté le 21-12-2011 à 13:42:58    

UP! J'ai découvert que les deux switchs giga SOHO en ma possession présentent un bug lors de l'utilisation des jumbo frames et du 802.1q/p.
En effet le MTU varie en fonction ou non de l'utilisation du tag 802.1q de ce fait il est de 9202 sans le tag et de 9198 avec.
Ce problème vient du fait que ces switchs sont limités en hardware à des trames de 9220 octets.
La liste des MTU a été mise à jour en conséquence.


Message édité par fueljam le 21-12-2011 à 13:46:44
Reply

Marsh Posté le 21-03-2012 à 16:45:24    

Possèdes tu des informations sur le routeur free V6 :D à ce sujet.

Reply

Marsh Posté le 21-03-2012 à 17:47:23    

Non, n'ayant pas de Freebox je n'ai pas pu tester le MTU de son switch (un Marvell 88E6161).
Pour ce qui est de la partie routage inutile d'espérer autre chose que 1500 pour le moment...

Reply

Marsh Posté le 22-03-2012 à 13:51:39    

Merci de ton aide, je suspectais un truc du genre :D

Reply

Marsh Posté le 17-06-2012 à 09:13:51    

merci pour cette intéressante étude
 
j'ai vu par ailleurs que l'on peut espérer un gain de 20 % en lecture sur les NAS
http://www.hardware.fr/articles/70 [...] aid-5.html  
 
vous dites que l'on avoir des PC avec les JF et d'autres sans sur le même réseau  
mais qu'en est-il avec un NAS ?
 
j'ai un NAS synology et un switch compatibles JF
par contre toutes mes cartes réseaux ne le sont pas
(du moins, sur certaines, je ne trouve pas tjs de réglage clair, MTU ou JF)
 
si je passe le NAS en JF,  
est-ce que les PC ne supportant pas les JF vont fonctionner
ou bien je vais mettre la panique dans tout le de l'entreprise ???
;-/
 
merci par avance

Reply

Marsh Posté le 17-06-2012 à 09:16:48    

euh, je voulais dire :
dans tout le réseau de l'entreprise

Reply

Marsh Posté le 17-06-2012 à 09:16:48   

Reply

Marsh Posté le 17-06-2012 à 22:37:45    

Pour info, le switch de la Freebox v6 accepterait un Mtu jusqu'à 2000.
Source http://bugs.freeplayer.org/task/6983
 
A vérifier au cas ou ;)


---------------
You see, in this world, there is two kinds of people, my friend: those with loaded guns and those who dig. You dig.
Reply

Marsh Posté le 26-06-2012 à 10:16:47    

Salut,
 
Je me suis monté un NAS avec un quelques disques durs, mais je trouve que le débit est limite sur les gros fichiers de 10-15Go en lecture sur le réseau.
 
Je compte prendre un switch avec le Jumbo Frame, mais je me demande si je n'aurai pas de problème pour communiquer avec la livebox qui elle prend que 1500 de MTU  si je passe mes PC a plus de 1500 ?

Reply

Marsh Posté le 21-08-2012 à 17:57:42    

fueljam a écrit :

Dernière chose en passant, vous pouvez avoir des PC avec les jumbo frames et d'autres sans sur le même réseau sans soucis car lors du démarrage de la connexion TCP les PC échangent leurs MSS (qui est l'équivalent du MTU mais au niveau IP). Actuellement sur mon réseau j'ai par exemple 2 PC avec les jumbo activées et 3 PC sans ainsi que la Livebox (qui ne supporte évidemment pas les jumbo) sans aucun soucis à déclarer.


 
Il indique bien que ton réseau peut être hétérogène sans que cela n'ait d'influence sur les éléments de ton réseau en conclusion de son tuto.  
Je serais donc tenté de te répondre la même chose ^^


---------------
«.. Je m'impose un tel contrôle qualité que je suis devenu un produit avec zéro défauts ! ../... »
Reply

Marsh Posté le 09-07-2017 à 14:31:51    

fueljam a écrit :

Emplacement reservé pour faire une liste des MTU des cartes et switchs réseau:
 
Cartes réseau:
 Realtek RTL8168D/8111D Family PCI-E Gigabit Ethernet NIC (NDIS 6.20) - MTU 9202 (8178 en mode 8KB)
 Marvell Yukon 88E8001/8003/8010 PCI Gigabit Ethernet Controller - MTU 9000
 Nvidia nForce 4 10/100/1000 Ethernet Controller - MTU 9000
 Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03) - MTU 7200
 
Switchs gigabits:
 TP-Link TL-SG1005D - MTU 9198 avec 802.1q - MTU 9202 sans 802.1q
 Netgear GS608 v2 - MTU 9198 avec 802.1q - MTU 9202 sans 802.1q
 D-Link DGS-1210-24 - MTU 10 000 (non testé faute de carte ethernet avec un MTU aussi élevé)


 
Merci pour le post.
Je comprenais pas pourquoi j'arrivais pas à monter à 9000 et seulement 7000 avec ma RTL8111 car c'est une vieille version.
Choppé en pci e pour quelques dollars sur aliexpress....
Du coup faut trouver la version D :o

Reply

Marsh Posté le 11-06-2018 à 22:41:16    

Je viens de trouver cette fameuse version pour pas cher sur alibaba. Merci pour le tuto !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed