Votre IP : 3.230.144.31
Le : 25-09-2021. 20h20.
Comprendre et optimiser sa connexion ADSL

Comprendre et optimiser sa connexion ADSL

En essayant d'optimiser ma connexion ADSL, je me suis retrouvé avec une multitude de sites qui donnent des valeurs à modifier dans la base de registre dont certaines sont souvent incompréhensibles, voire contraires les unes des autres.
Dans cet article, je vais tenter de vous donner quelques éléments qui m'ont permis de mieux comprendre les différentes valeurs que nous seront amenés à modifier.
Ce document ne concerne que les systèmes Windows 2000/XP avec une connexion ADSL

Par défaut votre connexion ADSL ne vous donne pas le résultat escompté ou parce que les paramètres de Windows ont des valeurs par défaut dans la base de registre.
Sans attentions particulières avec votre accès Internet, vous risquez de rencontrer des problèmes du "gel de la connexion" ou "la page est inaccessible" ou votre téléchargement est faible. Nous allons maintenant analyser dans le détail ces inconvénients et, peut-être, trouver les solutions qui permettraient de supprimer ces désagréments.

Mais comment savoir que ma connexion n'est pas au top ?
- En téléchargeant un fichier, on peut tout de suite remarquer en fonction de son type de connexion la vitesse de transfert


Ici, pour du 512 KB/s la vitesse n'est que de 55KB/s alors qu'une fois optimisèe elle pourrait être de l'ordre de 67KB/s voire un tout petit peu plus.

Petit rappel :
Afin de pouvoir communiquer entre eux, les ordinateurs utilisent un langage commun appelé TCP/IP (Transfer Control Protocol / Internet Protocol). Pour imager cela le plus simplement possible, ce protocole découpe une information ( page web, download, etc...) en paquets, y ajoute une adresse de destination et assure la livraison de ces paquets à bon port (votre ordinateur).
Voir l'article sur le protocole TCP/IP (pour une meilleure compréhension de ce sujet , je vous propose de lire cet article avant )
Si les paquets qui transitent sur le Net sont trop gros, ceux-ci risquent de se voir bloqués dans des embouteillages et d'avoir du mal à entrer sur votre navigateur.

Oui, mais comment trouver les bonnes valeurs ?
Après bon nombre de recherches sur Internet à propos des bonnes valeurs, je me suis aperçu que seule, la pratique permet de déterminer des valeurs en fonction de :
- Votre type de connexion (PPPoA ou PPPoE)
- Votre Fournisseur d'accès Internet
- De l'utilisation principale que vous faites sur le réseau (jeux, téléchargement, surf..)

A partir de ces 3 critères, nous allons essayer de faire un bon compromis pour obtenir une meilleure qualité de connexion.

Vous comprendrez facilement que de donner des valeurs absolues ne sert à rien. Seul l'adaptation de vos critères personnels devrait vous donner satisfaction après avoir lu le sujet.

Un peu de Théorie avant de commencer


Comment fonctionne l'ADSL

Il y a 4 équipements réseaux impliqués dans la transmission des données entre un client ADSL et son fournisseur (FAI) :
- Le modem ADSL : (Asymmetric Digital Subscriber Line) Permet la liaison entre l'hôte utilisateur (parfois utilisé comme routeur) et le BAS. Il peut supporter plusieurs protocoles d'accès dont principalement PPPoE (Point-to-Point Protocol over Ethernet), PPPoA (Point-to-Point Protocol over ATM) et PPTP (Point-to-Point Tunneling Protocol).
- Le DSLAM : (Digital Subscriber Line Access Multiplexer)
Est le plus souvent utilisé comme filtre différenciant les fréquences de voix et celles de l'ADSL, redirigeant simplement les paquets reçus au BAS.
- Le BAS : (Broadband Access Server)
Relie l'opérateur télécom au fournisseur d'accès. Il centralise les connexions ADSL et les redirige vers le fournisseur d'accès (FAI)
Dans certains cas, le BAS s'occupe directement du routage et il n'y a pas de LNS.
- Le LNS : (L2TP Network Server)
C'est l'autre bout de la session PPP établie avec le client. C'est la passerelle externe du réseau de l'utilisateur.

Les interfaces réseau :
(Modem / Routeur, carte reseau)

Chaque interface réseau possède une propriété particulière appelée MTU (Maximum Transmission Unit). C'est une valeur entière qui correspond à la taille maximum d'un paquet transitant par cette interface. Voici une petite liste des MTUs : (ces valeurs sont données en octets)
- Ethernet : 1500
- ATM : 9180
- PPPoA : 1500
- PPPoE : 1492
- PPTP : 1500


Quelques définitions à connaître :


- Datagramme :
Le datagramme désigne les données de la couche 3, ie IP. Ceux-ci sont encapsulés dans un protocole de couche 2, on parle alors de trame (PPP par exemple).
Les paquets de données sont encapsulés dans un protocole de transport (TCP,UDP,ICMP) encapsulés dans un datagramme IP, lui-même placé dans une trame PPP.

- Trame, (Frame) :
Lorsque qu'une trame arrive à un routeur, celui-ci enlève l'en-tête de liaison de données qui contient les adresses IP source et de destination permettant ainsi de définir à quel routeur envoyer les données

- Passerelle, (Gateway) :
Equipement (matériel ou logiciel) qui équipe les routeurs, leur permettant ainsi de faire suivre les informations entre deux réseaux qui n'utilisent pas les mêmes protocoles.

- Table de routage :
Il lit tout simplement si l'IP de destination correspond à un sous-réseau d'une de ses entrées. S'il ne trouve aucune entrée correspondante, il renvoie vers la route par défaut.

- Requête :
demande formulée dans un serveur de recherche par un utilisateur.Mais également employée lorsqu'une demande est formulée auprès d'un serveur pour obtenir l'envoi d'une page par exemple.

- Paquet, (packet) :
c'est un ensemble de données envoyées sur un réseau, qui comporte l'adresse de l'expéditeur et du destinataire ainsi que le checksum (CRC)et un numéro d'ordre qui permettra de reconstituer tous les paquets dans le même assemblage qu'au départ, sachant qu'ils voyagent mélangés aux autres paquets circulant sur les lignes.

CRC : (Cyclic Redundancy Check)
Mécanisme de contrôle de cohérence d'information utilisant des codes cycliques, contrôle les erreurs pour les transmissions de données au niveau d'une liaison, l'intégrité des données d'une trame ou d'un paquet reçu est vérifiée selon un algorithme basé sur le contenu de la trame.

MTU ( Max Transfert Unit)
Gère la taille de l'enveloppe des paquets IP. MTU comprend le paquet et son en-tête IP.

MRU: (Maximum Receive Unit),
Taille maximale en octets d'un paquet acceptable en réception. C'est la valeur qui devra être adoptée pour le MTU (Maximum Transfert Unit) de l'interlocuteur.

MSS (Maximum Segment Size),
Correspond à la taille maximum d'un paquet que peut échanger un des 2 bouts de la connexion TCP. Cette valeur est envoyée au serveur distant dans le premier paquet de connexion TCP. L'astuce consiste donc à calculer le MSS en fonction du MTU de l'interface sur laquelle sort le paquet. Le MSS ne correspond qu'aux données présentes dans le paquet. On soustrait donc au MTU la taille des en-têtes IP et TCP (40 octets en IPv4).

TTL : (Time To Live)
le TTL indique la durée de vie (TTL) par défaut configurée dans l’en-tête des paquets IP sortants. Cette valeur définit la durée de vie maximale d’un paquet qui circule dans le réseau sans atteindre sa destination. Ce paramètre représente en fait le nombre maximal de routeurs qu’un paquet IP peut traverser avant d’être éliminé.

RWin : (Receive Windows)

La taille de la fenêtre de réception TCP est la quantité de données reçues (en octets) susceptibles d’être transférées par tampon en une seule fois sur une connexion. L’hôte expéditeur ne peut envoyer que cette quantité de données, puis il doit attendre un accusé de réception et une mise à jour de la fenêtre de la part de l’hôte receveur.



Passons à la configuration manuelle :


Ca y est, vous n'avez pas trop mal à la tête avec la théorie ?
Nous allons chercher les bonnes valeurs et les enregistrer dans la base de registre. Pour ceux qui ont peur d'éditer les clés du registre, nous verrons à la fin de l'article comment faire à l'aide du logiciel "TCPOptimizer"

Connaître la bonne valeur MTU


Les 2 interfaces réseau Internet qui nous intéressent sont :

- PPPoA : (Point-to-Point Protocol over ATM)
Correspond à une connexion avec un "modem USB/ADSL" que l'on relie directement sur le PC à l'aide d'un port USB. La valeur du MTU est de 1500 octets maximum

- PPPoE : (Point to Point Protocol over Ethernet)
Correspond à un "modem ADSL branché sur un routeur" ou un "routeur/modem branché sur la prise réseau RJ45". La valeur du MTU est de 1492 octets maximum, parce qu'il ajoute une couche supplémentaire entre IP qu'il transporte et Ethernet qui le transporte. PPPoE ajoute au total 8 octets supplémentaires.
Donc 1500 - 8 = 1492 octets
Vous avez repéré votre interface réseau, c'est parti :
Avec la commande "ping" nous allons tester la bonne valeur de votre MTU en fonction de votre fournisseur d'accès
En prenant comme exemple, une connexion avec un modem USB, correspondant à du PPPoA, on devrait avoir une valeur de MTU = 1500.
la commande "ping" aura en paramètre : -f ( afin de ne pas fragmenter) -l (Length) (permet d'indiquer une taille du paquet) et l'adresse de votre FAI
Cependant la commande "ping" utilise 28 octets ce sont les en-têtes IP + ICMP (20 + 8 octets respectivement) , que l'on va soustraire pour passer les paramètres :
ce qui donne: 1500 - 28 = 1472.

En faisant ce test chez le FAI, on s'aperçoit que les paquets ne sont pas arrivés parce que la valeur est trop élevée.
Recommençons avec des valeurs plus faibles jusqu'à obtenir la bonne valeur

Après quelques essais, la meilleure valeur MTU est de 1432 + 28 (commande ping) = 1460

En fonction de votre FAI, on peut remarquer que les valeurs ne sont pas forcement les mêmes

Ici un test avec Club-Internet, la valeur du MTU est de 1472 + 28 (commande ping) = 1500

Donc, une fois votre valeur MTU trouvée, nous allons l'enregistrer dans la base de registre :
Toutes les valeurs dont nous allons parler se trouvent dans ces 2 fenêtres :
il est possible que certaines valeurs ne soient pas présentes dans votre BDR, il suffit de rajouter les valeurs et leurs données. :
N'oubliez pas de sauvegarder les clés avant de commencer l'optimisation

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\Tcpip\Parameters
qui correspond aux paramètres globlaux des connexions réseau sur la machine et la 2 ème fenêtre :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\Tcpip\Parameters\Interface\DV554-etc..
Qui correspond aux paramètres de votre interface réseau (votre modem, routeur/modem..) (Il y a plusieurs entrées, cherchez celle de votre connexion adsl, simple à trouver car vous verrez que la valeur "NameServeur" correspond aux adresses DNS de votre FAI)

Menu "Démarrer" => "Exécuter" et tapez : regedit
Allez à la clé :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\Tcpip\Parameters
Dans la fenêtre de droite =>éditer la valeur DWORD "MTU" en décimal et affectez-lui la valeur : 1460

Faites de même sur la clé de votre interface réseau ADSL :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\Tcpip\Parameters\Interface\DV554-etc..

Dans la fenêtre de droite =>éditer la valeur DWORD "MTU" en décimal et affectez-lui la valeur : 1460


Dans les mêmes Clés - Modifier les données de la valeur "EnablePMTUDiscovery"
Ce paramètre détermine s'il doit activer le paramètre MTU ou pas.
Donner-lui une valeur DWORD = 0 (utilise la valeur MTU que nous venons de paramétrer)
Donner-lui une valeur DWORD = 1 (désactive l'option MTU et met la valeur par défaut à 576)

Donc, la bonne valeur est 0

Voila, le 1er paramètre important est configuré, attention toutefois une valeur importante de MTU correspond à l'utilisation d'un bon surf ou du téléchargement, pour les joueurs, nous verrons par la suite comment optimiser le "PING" afin de le baisser de façon raisonnable pour jouer correctement.

Connaître la bonne valeur RWIN

Maintenant que nous connaissons la valeur MTU, il nous faut connaître la valeur MSS, cette valeur va nous permettre de configurer la valeur RWIN, rien de plus simple :
MSS = MTU - 40 (en tête IP) ce qui donne 1460 - 40 = 1420 (MSS)

Pour de meilleurs résultats, le RWIN devrait être un multiple de MSS (taille maximum de segment).
Calcul de la valeur :
MSS x 44 = (valeur en dessous de 65535) x2 x 2 = Valeur TcpWindowSize ou GlobalMaxTcpWindowSize
Ce qui donne pour notre exemple :
1420 X 44 = 62480 x2 x2 = 249920
Ces valeurs vont s'inscrire dans la base de registre aux clés suivantes :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interface\DV542-etc..
- "GlobalMaxTcpWindowSize" = donnée de la valeur DWORD = 249920 (en décimal)
- "TcpWindowSize" = donnée de la valeur DWORD = 249920 (en décimal)
(sera remplacé par le chiffre que vous aurez trouvé)

Note importante :

La valeur "TcpWindowsSize" peut également exister sous le nom de valeur "TcpipParametersInterface"

Dans les mêmes Clés - Modifier les données de la valeur "Tcp1232Opts"
Ce paramètre contrôle les options de dimensionnement des fenêtres et d’horodatage , donc active/désactive les valeurs "GlobalMaxTcpWindowSize" ou "TcpWindowsSize"
Donnez-lui une valeur DWORD = 0 (désactiver les options et la valeur RWIN par défaut à moins de 64ko)
Donner-lui une valeur DWORD = 1 (seule l’option de dimensionnement des fenêtres est activée)
Donner-lui une valeur DWORD = 2 (seule l’option d’horodatage est activée)
Donnez-lui une valeur DWORD = 3 (les deux options activées)
Choisissez la donnée 1 par défaut

Dans le mêmes Clés - Modifiez les données de la valeur "SackOpts"
L'option Sack (Accusé de réception TCP sélective), cette fonction améliore les performances pour des connexions utilisant des grandes tailles de fenêtres RWIN.
Quand l'option Sack est activée, un ou plusieurs paquets peuvent être perdus et le récepteur est à même d'informer l'expéditeur sur les données exactes qui ont été reçues et donc sur les données manquantes. L'expéditeur peut ensuite retransmettre de manière sélective les données manquantes, sans besoin de retransmettre les blocs de données qui ont déja été reçus avec succès.
Donner lui une valeur DWORD = 0 (aucune option)
Donnez-lui une valeur DWORD = 1 (active l'option Sack)
Choisissez la donnée 1 par défaut

Dans les mêmes Clés - Modifiez les données de la valeur "TcpMaxDupAcks"
Ce paramètre détermine le nombre d’ACK (Accusé de Réception) dupliqués qui doivent être reçus pour le même numéro de séquence de données envoyées avant le déclenchement de la retransmission rapide pour le renvoi du segment qui a été perdu durant la transmission.
Donnez-lui une valeur DWORD = 2

Détection des routeurs de type "trou noir"

Un routeur de type "trou noir" ne renvoie pas les messages ICMP de destination inaccessible lorsqu’il a besoin de fragmenter un datagramme IP.


Toujours dans les mêmes clés :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interface\DV542-etc..

Modifiez les données de la valeur "EnablePMTUBHDetect"
Donnez-lui une valeur DWORD = 0 (si vous ne souhaitez pas de détection)
Donnez-lui une valeur DWORD = 1 (TCP essaie de détecter des routeurs de type "trou noir" tout en exécutant la recherche du parcours MTU. L’activation de la détection des trous noirs augmente le nombre maximal de retransmissions effectuées pour un segment donné.)

Choisissez la donnée par défaut : 0

Détection de passerelle inactive

Ce paramètre détecte les passerelles inactives et permet de passer sur des passerelles de réserve.
Toujours dans les mêmes clés :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interface\DV542-etc..

Modifiez la données de la valeur "EnableDeadGWDetect" ou "DeadGWDetectDefault"

Donnez-lui une valeur DWORD = 0 (si vous ne souhaitez pas de détection)
Donnez-lui une valeur DWORD = 1 (autoriseTCP à effectuer la détection de passerelles inactives. TCP demande au protocole IP de basculer sur une passerelle de réserve si certaines connexions connaissent des difficultés.)

Choisissez la donnée par défaut : 1

Augmenter le nombre de sauts pour atteindre un site

Ce paramètre permet d'augmenter le nombre de routeurs pour trouver un site donné.

Modifiez les données de la valeur "DefaultTTL"
Toujours dans les mêmes clés :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interface\DV542-etc..

Donnez-lui une valeur DWORD = 32(valeur d'origine Windows)
Donner-lui une valeur DWORD = 255 (les bonnes valeurs peuvent commencer à partir de 64)

Augmenter le nombre de connexions simultanées


Le nombre de connexions simultanées au serveur est souvent faible, changeons les données de valeur pour accroître le nombre de connexions
Changeons de Clés dans la base de registre et allez à :

HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Internet
Modifiez les données de la valeur "MaxConnectionsPerServer" valeur DWORD = 20
Modifiez les données de la valeur "MaxConnectionsPer1_0Server" valeur DWORD = 20
Faites de même dans la clé :
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet
Modifiez les données de la valeur "MaxConnectionsPerServer" valeur DWORD = 20
Modifiez les données de la valeur "MaxConnectionsPer1_0Server" valeur DWORD = 20


Optimiser le PING pour jouer sur le NET


Nous avons remarqué tout à l'heure que l'augmentation du MTU augmente la durée des boucles exprimées en ms
On s'aperçoit que pour une valeur de 1432 octets de données, il faut en moyenne 174 ms (millisecondes) pour faire une boucle, ce qui n'arrange pas les affaires des joueurs sur le NET

Dans ce cas-là, il faut diminuer la valeur du MTU afin d'obtenir le meilleur "ping" possible pour jouer convenablement :


on voit bien sur cet exemple qu'avec l'envoi de 576 octets de données la valeur de la boucle a baissé à = 113 ms et qu'avec une valeur de 68 octets de données la valeur de la boucle a baissé à = 77 ms

Le plus dur sera de faire le meilleur compromis entre votre valeur MTU et la valeur du ping en fonction de vos activités sur le NET.
Faites des tests de différentes valeurs avec le serveur de votre FAI et vos serveurs de jeux habituels
N'oubliez pas d'adapter les valeurs TcpWindowSize ou GlobalMaxTcpWindowSize par rapport au MTU
Seuls vos essais personnels vous permettront de tirer la quintessence de votre optimisation (ouf, heureusement que je ne suis pas joueur, sinon, quel casse-tête)


Voilà, nous avons fait le tour de l'optimisation manuelle dans la base de registre, une fois tous les paramètres mis en place, il faut rebooter votre machine afin que les modifications soient prises en compte.

Et voila ce que donne une connexion optimisée avec 512kb/s sur le même type de téléchargement qu'au début de l'article




Il existe d'autres paramètres pour améliorer sa connexion, je pense notament au fichier "Hosts" qui permet de faire des requêtes sur son localhost avec les fenêtres pop-up qui s'ouvrent intempestivement, vous trouverez sa configuration sur l'article de Spybot Seach & Destroy
Ou quelques modifications que l'on voit traditionnellement sur tous les sites d'optimisation, je ne vais pas les reprendre ici, mais je vous laisse le lien afin de retrouver ces astuces :
Plusieurs astuces d'optimisation

Modifier les paramètres avec TCPOptimizer


TCPOptimizer a l'avantage de ne ne pas s'installer sur votre machine, mais simplement de s'exécuter, il vous permet d'éditer les mêmes valeurs que nous avons vues tout au long de cet article, simplement en utilisant des fenêtres pour afficher et modifier les données à modifier.Une fois les modifications effectuées, il vous demandera de redémarrer la machine pour la prise en compte des nouveaux paramètres.
Téléchargez TCPOptimizer version fr


Une fois que vous avez cliqué sur l'exécutable, vous arrivez sur cette fenêtre, choisissez votre type de connexion "dialup" ou "DSL" ou "DSL/PPPoE" ou "ModemCable" ou "extreme"
"DSL/PPPoE" correspond à PPPoE
"ModemCable" correspond à PPPoA
Maintenant à vous de choisir la façon dont vous allez optimiser votre connexion
Les 2 choix qui nous intéressent sont :
- Param Optimums
- Param perso

Si vous choisissez de cliquer sur "Param Optimums" , ca y est votre calvaire s'arrête ici, le logiciel prend directement les parametres en compte et vous demande de redémarrer la machine.

Voila, c'est fini, avec cette option, la configuration est terminée.

Mais je suppose que vous souhaitez en savoir plus sur ce logiciel
Si vous choisissez l'option "Param perso" , continuons, allez sur l'onglet "MaxMTU"

Ici, vous entrez l'adresse URL de votre FAI, et le logiciel va automatiquement chercher la meilleure valeur MTU en envoyant des paquets de différentes valeurs.
A la fin, il vous donnera la valeur à mettre à la main dans l'onglet "paramètre"



"Autres paramètres"
Ici, vous modifiez le nombre de connexions par serveur, donc rien de bien compliqué, mettez les valeurs citées plus haut dans l'article


Pour les joueurs, avec l'onglet "Lattence (PING)", vous allez pouvoir faire des tests sur les serveurs de jeux, et voir le meilleur compromis (comme plus haut dans l'article).


Revenons à la fenêtre principale afin de modifier les valeurs
c'est l'option "param perso" qui permet d'ouvrir les fenêtres et d'inscrire vos données à la main.
Entrez chacune des valeurs trouvées
Max MTU = correspond à la valeur "MTU"
Fenêtre de réception TCP = correspond à la valeur "GlobalMaxTcpWindowSize"
Découverte MTU = correspond à la valeur "EnablePMTUDiscovery"
Détection trou noir = correspond à la valeur "EnablePMTUBHDetect"
ACKs sélectif = correspond à la valeur "SackOpts"
ACKs Dupliqués maxi = correspond à la valeur "TcpMaxDupAcks"
Durée de vie TTL = correspond à la valeur "DefaultTTL"



Onglet de la "Base de registre"
permet de voir après le redémarrage de votre machine que les valeurs ont bien été prises en compte dans la base de registre.

Facile de configurer sa connexion avec TCPOptimiser :)

Pour finir l'article, un petit test sur le site de "60 millions de consommateurs", il permet de connaître les débits montant et descendant de votre connexion :

Comme vous pouvez le constater, cela vous permet de vous situer par rapport à la qualité de votre type de connexion.
Comme d'habitude, quelques liens sympa pour approfondir le sujet :
Le reseau TCP/IP sous 2000
Speedguide
Guill-net

Sans oublier Google

Bonne configuration et à bientôt

Tesgaz le : 08/01/2004

- Article suivant : Les outils réseau

- Retour : Le reseau

- Haut de page -




Création SpeedWeb - Articles originaux Tesgaz
- 2004/2005 - Copyleft Attitude - Site hébergé par free.fr