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
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
- 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.
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
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
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
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)
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
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 :
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
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 -