Solution pour les problèmes de réseau sous Ubuntu Fedora CentOS et autres systèmes Linux - seul Baidu est accessible
Tout d’abord, permettez-moi de vous présenter les informations de contexte sur ce problème.
Un paquet TCP typique a un champ de fenêtre avec une taille de fenêtre maximale de 64 Ko. Au début du développement d’Internet, la plupart des systèmes n’avaient pas la capacité de traiter des données plus importantes, donc cette taille était suffisante, mais pour les applications de bande passante actuelles, elle est devenue trop petite.
Pour résoudre ce problème, une solution appelée mise à l’échelle de fenêtre a été proposée en 1992. Elle fournit une option supplémentaire d’extension de fenêtre TCP contenant un facteur d’échelle de 8 bits. La valeur de cette option spécifie la taille que doit avoir la fenêtre, et elle est implémentée en décalant de plusieurs bits la valeur de la taille de fenêtre. Par exemple, si le facteur d’échelle est défini sur 5, la taille de la fenêtre doit être décalée de 5 bits ou multipliée par 32.
L’option de mise à l’échelle de fenêtre augmente la définition de fenêtre TCP de 16 bits à 32 bits. Cela n’est pas réalisé en modifiant l’en-tête TCP, qui utilise toujours 16 bits, mais en définissant une option qui effectue une opération de mise à l’échelle sur les 16 bits.
Dans les noyaux 2.6.16 et antérieurs, le facteur d’échelle par défaut était 0, donc la taille de fenêtre n’était pas augmentée. Dans le noyau 2.6.17, le facteur d’échelle a été défini sur 7. Idéalement, cela ne devrait pas poser de problème. Mais en pratique, certains routeurs “défectueux” réécrivent l’option TCP de mise à l’échelle de fenêtre - ils définissent le facteur d’échelle sur 0, mais la capacité de traitement réelle de l’option ne change pas.
Essentiellement, cela signifie que certains sites Web ne seront pas accessibles depuis des systèmes utilisant le noyau 2.6.17 et supérieur. Du point de vue des développeurs du noyau, ils considéreraient que ces routeurs sont défectueux et doivent être remplacés. En réalité, ces routeurs peuvent continuer à être utilisés pendant de nombreuses années avant d’être réparés ou remplacés.
Une façon de résoudre ce problème est de reconfigurer l’option de mise à l’échelle de fenêtre du noyau Linux. Bien que cela ne répare pas les routeurs défectueux, si vous êtes affecté par des problèmes de mise à l’échelle de fenêtre, cette méthode vous permettra de vous connecter à des sites distants.
La solution consiste à éditer le fichier /etc/sysctl.conf et à ajouter la ligne suivante :
net.ipv4.tcp_window_scaling = 0Supprimez le # au début
Cela désactivera complètement la fonction de mise à l’échelle de fenêtre, ce qui vous permettra de vous connecter à certains sites auxquels vous ne pouviez pas accéder auparavant. À tort ou à raison, les développeurs du noyau refusent d’annuler ce changement. Par conséquent, l’utilisation de cette option vous permet de désactiver votre propre fonction de mise à l’échelle de fenêtre pour revenir aux paramètres par défaut antérieurs à 2.6.17, et vous pouvez également vous connecter à ces sites inaccessibles et les convaincre qu’ils devraient rechercher et remplacer les routeurs défectueux.