Comment optimiser la vitesse Internet d'Ubuntu avec les paramètres MTU

Découvrez comment optimiser votre connexion Internet sur Ubuntu en ajustant la taille de l'Unité Maximale de Transmission (MTU) et les paramètres TCP pour des performances accrues.
Bien que les textes informatiques diffèrent dans leur application du terme, Ubuntu utilise l'Unité Maximale de Transmission (MTU) TCP pour se référer à la taille maximale qu'un paquet TCP d'une machine peut transmettre sur une connexion réseau TCP/IP. Bien que le calcul de cette valeur soit relativement simple et que les valeurs par défaut fonctionnent sur la majorité des machines, il est possible d'optimiser davantage votre système si des paquets sont fragmentés à cause de paramètres inhabituels. Envoyer de gros paquets sortants uniques est plus efficace que d'envoyer plusieurs petits paquets sortants.
Le moyen le plus simple de localiser la valeur MTU correcte pour votre machine est d'ouvrir une fenêtre de terminal. Vous pouvez le faire en maintenant enfoncées les touches CTRL, ALT et T, ou en l'initiant depuis le tableau de bord Unity. Si vous travaillez avec Ubuntu Server, vous serez par défaut sur une interface CLI sans environnement graphique. Une fois dans la fenêtre du terminal, tapez ‘ping -s 1464 -c1 distrowatch.com’ et attendez le résultat. Si vous ne recevez aucune réponse, cela indique que votre connexion réseau n'est pas configurée correctement. Cependant, si un bon résultat est reçu, recherchez une section qui indique ‘1464(1492) octets de données.’ Cela signifie que vous envoyez le paquet avec 28 octets d'informations d'en-tête.
Méthode 1 : Examiner la sortie ping pour la fragmentation des paquets
La commande ping vous fera savoir si le paquet a été envoyé en plusieurs fragments avec plusieurs en-têtes de données attachés. Examinez la sortie pour toute ligne contenant un avertissement similaire à « Fragmentation nécessaire et DF défini (mtu = 1492). » La formulation de l'avertissement peut varier selon la version de ping incluse avec votre Ubuntu. Si ce texte n'est pas présent, il est plus que probable que vous utilisiez actuellement une mesure MTU qui n'envoie pas de paquets fragmentés.
Pour trouver la MTU la plus optimisée pour votre système, vous devez exécuter cette commande ping avec une petite taille de paquet. Augmentez progressivement jusqu'à ce qu'elle commence à se fragmenter, auquel cas vous devriez la considérer comme votre limite. Gardez à l'esprit que la MTU est égale à la charge utile plus 28, car il doit y avoir de la place pour les données d'en-tête. Si vous pouvez augmenter la taille à quelque chose de très grand sans aucune fragmentation, votre interface réseau pourrait être capable de gérer des paquets massifs sans générer de fragments. L'apparition d'un avertissement « Fragmentation nécessaire » indique que tout paquet envoyé avec une taille de charge utile égale ou supérieure à celle que vous avez exécutée sera envoyé en plusieurs paquets. Par exemple, si vous essayez ‘ping -s 2464 -c1 distrowatch.com’ sans aucun avertissement, mais ‘ping -s 2465 -c1 distrowatch.com’ donne lieu à un avertissement, cela indique que 2 464 plus 28 est le plus grand réglage MTU que votre configuration TCP/IP peut gérer avant d'envoyer plusieurs paquets fragmentés. Identifier une valeur exacte peut prendre quelques instants.
Une fois que vous avez une valeur en tête après avoir exécuté la commande ping plusieurs fois, vous devrez exécuter sudo ifconfig pour trouver une liste des interfaces réseau connues. Ubuntu et ses dérivés masquent le compte root, mais nous avons opéré à partir d'un shell créé par sudo bash pour nos exemples. Il est recommandé de précéder plutôt chaque commande de sudo individuellement.
Dès que vous connaissez le bon dispositif, essayez :
sudo ifconfig nomDeInterface mtu ####
Remplacez ‘nomDeInterface’ par le nom de l'adaptateur réseau avec lequel vous travaillez, puis remplacez ‘####’ par la taille que vous avez trouvée plus 28 pour les informations d'en-tête. Vous pouvez exécuter ‘ifconfig’ pour voir quelle était la MTU par défaut pour votre NIC et l'exécuter à nouveau plusieurs fois pour voir si la commande précédente la change. Certains adaptateurs d'interface réseau ne vous permettront tout simplement pas de le changer. Si c'est le cas, alors l'optimisation supplémentaire sera, malheureusement, vaine. Cependant, si cela a fonctionné, vous pouvez en fait le rendre permanent. Essayez d'exécuter ‘ifconfig | grep MTU‘ pour trouver toutes les valeurs si vous avez plusieurs connecteurs. Vous pourrez ensuite associer les valeurs aux connecteurs avec lesquels vous travaillez.
Méthode 2 : Rendre les optimisations MTU permanentes
Jusqu'à présent, vous n'avez apporté aucun changement permanent à votre système. Si vous redémarrez, alors vous effacerez tous les changements, ce qui est bon si vous avez fait une sorte d'erreur et constatez que vous ne pouvez plus vous connecter à Internet. En revanche, si vous avez trouvé une valeur précise pour votre MTU, alors vous devrez modifier le document. C'est probablement un bon moment pour en faire une copie au cas où quelque chose arriverait. Essayez ou quelque chose de similaire afin d'avoir une.
Copiez simplement au cas où. Si vous souhaitez l'éditer graphiquement, tapez et saisissez votre mot de passe. Si vous utilisez Kubuntu, Xubuntu ou Lubuntu, vous devrez remplacer gedit par l'éditeur de texte graphique utilisé par votre version d'Ubuntu. Xubuntu, par exemple, utilise mousepad au lieu de gedit. Si vous utilisez Ubuntu Server ou si vous préférez simplement travailler avec la ligne de commande, tapez plutôt, en supposant que vous n'utilisez pas un shell root.
Quel que soit le méthode que vous avez utilisée pour l'éditer, localisez le nom de l'interface que ifconfig a précédemment retourné. Supposons que vous regardiez le premier connecteur Wifi de votre machine, qui serait probablement nommé wlan0 ou quelque chose de similaire. Dans ce cas, essayez de trouver un extrait de code qui commence par 'iface wlan0 inet static' ou une phrase similaire. Vos résultats peuvent varier, mais la ligne suivante lira 'address' suivie d'une adresse IP au format ###.###.#.##. Elle peut être formatée différemment si vous utilisez une connexion IPv6 native. Vous verrez également une ligne de netmask et de passerelle, suivie de quelque chose qui liste un nom d'hôte ou un titre similaire. En bas, il y aura une autre ligne qui lit 'mtu', suivie d'un chiffre. Remplacez ce chiffre par la valeur MTU optimisée, enregistrez le document, puis quittez l'éditeur de texte. Vous devrez redémarrer le système pour vous assurer que les changements sont correctement appliqués.
Si tout va bien après plusieurs redémarrages, alors supprimez le fichier interfaces.bak dans votre répertoire ~/Documents. Vous pourriez plutôt utiliser sudo mv et ensuite si quelque chose a mal tourné dans le processus.
Méthode 3 : Édition des paramètres de fenêtre de réception TCP (RWIN)
Ubuntu fait référence à la plus grande quantité de données qu'un hôte accepte avant de reconnaître l'expéditeur comme la valeur RWIN. Si vous téléchargez un fichier de 30 Mo, le serveur distant ne vous envoie pas immédiatement un bloc de données de 30 Mo. Votre hôte Ubuntu envoie un nombre RWIN spécifique lorsqu'il demande le fichier, puis le serveur commence à diffuser des données jusqu'à ce qu'il atteigne le nombre d'octets avant d'attendre une confirmation que votre système a bien reçu les données. Une fois que le serveur reçoit cela, il commence à envoyer des blocs supplémentaires avant d'attendre une autre confirmation.
La latence est le temps qu'il faut pour transmettre et recevoir des paquets d'un serveur distant. Les taux de connexion contribuent à cette valeur, mais de nombreux autres délais aussi. La commande ping expliquera la latence en termes de temps de round-trip (RTT). Regardez la sortie de notre ping précédent de DistroWatch. Vous trouverez une ligne qui dit time=134 ms, ce qui est le temps que ça a pris pour que les paquets effectuent l'aller-retour de notre machine Ubuntu à distrowatch.com et vice versa. Nous envoyions un paquet de 1 492 octets, donc à 134 ms, nous pourrions calculer une formule pour trouver la vitesse de transfert totale :
1 492 /.134 secondes = 11 134,328 octets/seconde, ce qui équivaut à environ 10,88 kilooctets binaires par seconde. C'est plutôt lent dans l'ensemble, c'est pourquoi RWIN est en place pour vous éviter d'avoir à reconnaître chaque paquet envoyé individuellement.
Les paramètres RWIN dans Ubuntu sont séparés des paramètres MTU. Calculez le produit de bande passante et de latence (BDP) pour votre connexion Internet avec cette formule :
(Bande passante maximale totale que votre connexion Internet devrait fournir en octets par seconde)(RTT en secondes) = BDP
La taille des paquets TCP n'influence pas RWIN, mais la taille des paquets elle-même est influencée par la valeur sélectionnée dans la méthode 1. Utilisez cette commande pour trouver les variables du kernel liées à RWIN :
Veuillez garder à l'esprit qu'il y a un espace après _mem, mais nulle part ailleurs dans le texte cité. Cela pourrait aboutir à plusieurs valeurs. Celles nécessaires incluent net.ipv4.tcp_rmem, net.ipv4.tcp_wmem, et net.ipv4.tcp_mem. Les nombres qui suivent ces valeurs représentent les niveaux minimum, par défaut et maximum pour chacun. Ces chiffres représentent respectivement le vecteur de mémoire de la fenêtre de réception, le vecteur d'envoi et le vecteur de la pile TCP. Supposons que vous utilisiez Ubuntu Kylin, vous pourriez observer une longue liste d'autres valeurs. Veuillez noter que vous pouvez ignorer sans risque ces valeurs supplémentaires. Certains utilisateurs de Kylin peuvent également voir certaines des valeurs délimitées dans d'autres scripts ; cependant, cherchez simplement ces lignes.
Ubuntu n'a pas de variable RWIN, mais net.ipv4.tcp_rmem s'en rapproche. Ces variables contrôlent l'utilisation de la mémoire et pas seulement la taille TCP. Elles incluent la mémoire consommée par les structures de socket de données et les courts paquets dans de gros tampons. Si vous souhaitez optimiser ces valeurs, envoyez la valeur maximale.
Modify les paquets de taille que vous avez définis dans la Méthode 1 pour un autre serveur distant. Utilisons à nouveau la valeur par défaut de 1 492 octets, en soustrayant 28 octets pour les informations d'en-tête, mais rappelez-vous que vous pouvez avoir une valeur différente. Utilisez la commande ping -s 1464 -c5 distrowatch.com pour obtenir des données RTT supplémentaires.
Vous voudrez effectuer ce test plusieurs fois à différents moments de la journée et de la nuit. Essayez également de pinger d'autres serveurs distants pour voir à quel point le RTT varie. Étant donné que nous avons eu une moyenne légèrement supérieure à 130 ms chaque fois que nous l'avons essayé, nous pouvons utiliser la formule pour calculer notre BDP. Supposons que vous êtes sur une connexion très générique de 6 Mbits/seconde. Le BDP serait :
(6 000 000 bits/sec)(0,133 sec)*(1 octet/8 bits) = 99 750 octets
Cela signifie que la valeur par défaut de net.ipv4.tcp_rmem devrait être d'environ 100 000. Vous pourriez même la régler plus haut si vous craignez d'obtenir un RTT aussi mauvais qu'une demi-seconde. Toutes les valeurs trouvées dans net.ipv4.tcp_rmem et net.ipv4.tcp_wmem doivent être réglées de manière identique, étant donné que la transmission et la réception des paquets se produisent sur la même connexion Internet. En général, vous voudrez régler net.ipv4.tcp_mem à la même valeur que celle utilisée par net.ipv4.tcp_wmem et net.ipv4.tcp_rmem, car cette première variable est la taille totale de la mémoire tampon maximale définie pour les transactions TCP.
Exécutez la commande et vérifiez si ces deux paramètres sont réglés sur 0 ou 1, ce qui indique un état éteint ou allumé.
Définir net.ipv4.tcp_no_metrics_save à 1 forcera le noyau Linux à optimiser la fenêtre de réception entre les valeurs net.ipv4.tcp_rmem et net.ipv4.tcp_wmem de manière dynamique. Lorsque net.ipv4.tcp_moderate_rcvbuf est activé, cela empêche la congestion d'influencer la connectivité ultérieure. Avant d'apporter des modifications permanentes, effectuez un contrôle de vitesse via http://www.speedtest.net ou http://www.bing.com/search?q=speed+test pour vous assurer de bien comprendre vos mesures.
Changez temporairement les variables avec vos valeurs calculées. Assurez-vous de remplacer les # par vos sommes calculées.
sudo sysctl -w net.ipv4.tcp_rmem=”#### ##### ######” net.ipv4.tcp_wmem=”#### ##### ######” net.ipv4.tcp_mem=”#### ##### ######” net.ipv4.tcp_no_metrics_save=1 net.ipv4.tcp_moderate_rcvbuf=1
Retestez votre connexion pour voir si la vitesse s'est améliorée, et sinon, ajustez à nouveau votre commande et relancez-la. N'oubliez pas que vous pouvez appuyer sur la touche haut dans votre terminal pour répéter la dernière commande utilisée. Une fois que vous avez trouvé les valeurs appropriées, ouvrez avec la commande gksu ou sudo du Méthode 1, et modifiez les lignes pour lire comme suit, en remplaçant encore une fois les # par vos valeurs calculées. Vous voudrez bien sûr également sauvegarder le fichier de la même manière que vous l'avez fait dans la première partie, juste au cas où vous feriez une erreur. Si vous en avez fait une, vous pouvez aussi restaurer de la même manière.
net.ipv4.tcp_rmem=#### ##### ###### net.ipv4.tcp_wmem=#### ##### ###### net.ipv4.tcp_mem=#### ##### ###### net.ipv4.tcp_no_metrics_save=1 net.ipv4.tcp_moderate_rcvbuf=1
Sauvegardez-le une fois que vous êtes sûr que tout va bien. Émettez la commande suivante :
sudo sysctl -p
Cela forcera le noyau Linux à recharger les paramètres, et si tout s'est bien passé, cela devrait vous offrir au moins une connexion réseau un peu plus rapide. Selon vos valeurs par défaut d'origine, la différence pourrait en fait être dramatique ou potentiellement pas du tout perceptible.
Les questions et réponses indispensables
Quel est le meilleur paramètre MTU ?
Pour déterminer le meilleur paramètre MTU (Maximum Transmission Unit) :
- Effectuer un Test Ping : Envoyez des paquets de différentes tailles pour identifier la taille de paquet la plus élevée qui passe sans fragmentation.
- Calculer la MTU : Prenez la taille maximale de paquet obtenue lors du test (par exemple, 1462 octets) et ajoutez 28 (qui correspond aux en-têtes IP et ICMP) pour calculer la MTU optimale.
- - MTU optimale = Taille de paquet maximale + 28
- Exemple concret : Si la taille de paquet maximale lors de vos tests est 1462, vous obtiendrez :
- 1462 + 28 = 1490
- La MTU optimale serait donc
- En résumé, pour un MTU optimal, identifiez d'abord la taille de paquet maximale, puis ajoutez 28.
Comment régler le MTU ?
Pour régler le MTU (Maximum Transmission Unit), suivez ces étapes simples :
- Accéder au Registre :
- - Ouvrez le menu 'Édition'.
- Sélectionnez 'Nouveau' puis choisissez 'Valeur DWORD'.
- Créer la clé MTU :
- Nommez la nouvelle clé
ProtocolMTU
et appuyez sur 'Entrée'. - Modifier la valeur MTU :
- Effectuez un clic droit sur
ProtocolMTU
et sélectionnez 'Modifier'. - Dans la section 'Base', choisissez 'Decimal'.
- Entrez la taille MTU souhaitée dans 'Données Valeur'.
- Finaliser :
- Cliquez sur 'OK' pour enregistrer les modifications. Assurez-vous de redémarrer votre appareil pour que les changements prennent effet.
Pourquoi changer le MTU ?
Changer la taille du MTU (Maximum Transmission Unit) peut être essentiel pour optimiser les performances du réseau. Voici quelques raisons pour lesquelles cette modification peut s'avérer bénéfique :
- -
Amélioration de l'efficacité
- : L'utilisation de plus grands MTU réduit le nombre de paquets nécessaires pour transmettre les mêmes données, ce qui diminue la surcharge associée à l'en-tête des paquets.
- Réduction de la fragmentation : Des tailles MTU plus élevées peuvent minimiser le risque de fragmentation des paquets lors de la transmission, ce qui améliore la fluidité et la rapidité de l'échange de données.
- Augmentation du débit : En permettant l'envoi de paquets plus volumineux, on peut atteindre un meilleur débit, particulièrement dans les environnements à forte charge de données.
- Meilleure utilisation de la bande passante : Une taille MTU ajustée peut aider à saturer optimalement la bande passante disponible, maximisant ainsi les performances globales du réseau. En résumé, changer le MTU peut considérablement influencer l’efficacité et la performance d’un réseau en diminuant la surcharge et en améliorant le débit de transmission.
Comment trouver le bon MTU ?
Pour trouver le bon MTU, suivez ces étapes simples :
- Effectuer un test de ping : Utilisez la commande
ping
pour tester différentes valeurs de MTU. Commencez par - - Exemple :
ping <adresse IP> -f -l 1300
- Ajuster la taille : Si le ping passe, augmentez progressivement la taille à 1400 et tests avec différentes valeurs jusqu'à ce que le ping échoue.
- Continuez à ajuster jusqu'à identifier la taille maximale qui réussit sans fragmentation.
- Déterminer le MTU optimal : Le MTU optimal se situe entre la dernière taille qui a réussi et celle qui a échoué (ex. : entre 1300 et 1400).
- Modifier la valeur dans Windows :
- Utilisez la commande CMD :
netsh interface ipv4 set subinterface <nom_de_l_interface> mtu=<valeur> store=persistent
- Ou modifiez le registre Windows directement pour appliquer vos réglages. En suivant ces étapes, vous pourrez déterminer et configurer efficacement le MTU optimal pour votre système.
Maintenant que tu as fini de lire Comment optimiser la vitesse Internet d'Ubuntu avec les paramètres MTU, nous t'invitons à explorer davantage la catégorie Linux. Tu y trouveras d'autres articles intéressants qui élargiront tes connaissances et te tiendront informé. Ne cesse pas de lire et de découvrir plus!
Laisser un commentaire