Auteur Sujet: analyse de TCPOptimizer !  (Lu 706 fois)

0 Membres et 1 Invité sur ce sujet

artemus24

  • Abonné SFR fibre FttH
  • *
  • Messages: 782
  • Montignac Lascaux (24)
analyse de TCPOptimizer !
« le: 13 juillet 2023 à 16:25:16 »
Salut à tous.

Ce sujet fait suite au problème que j'ai rencontré avec mon Upload qui était < 5mb/s.
Grace à l'utilitaire TCPOptimizer, j'ai pu résoudre ce problème.
Et j'ai voulu savoir comment le problème a été résolu.

Pour effectuer cette analyse, je vais me créer quatre étapes que voici :

Etape 1) Je vais sous "TCPOptimize", je sélectionne "Windows Default", je valide et mon Windows 10 Pro Redémarre.
J'entre à nouveau dans "TCPOptimizer" et je sélectionne "Windows Default". Voici l'image N°1 :



Etape 2) Comme je suis déjà sous "TCPOptimzer", je sélectionne "Optimal". Voici l'image N°2 :



Etape 3) je valide la sélection "Optimal" et mon Windows 10 Pro redémarre.
J'entre à nouveau dans "TCPOptimizer" et je sélectionne "Optimal". Voici l'image N°3 :



Etape 4) Comme je suis déjà sous "TCPOptimize", je sélectionne "Windows Default". Voici l'image N°4 :



Ces quatre étapes permettent de voir les modifications apportées dans mon windows 10 Pro.
Ces modifications sont spécifiques à mes adaptateurs réseaux et à mon ordinateur Asus.
Il est fort probable que vous ayez d'autres valeurs sur votre ordinateur.

J'ai analysé les modifications apportées dans mon Windows 10 Pro et voici ce que je constate :

A) dans la base des registres, toutes les propriétés n'ont pas été modifiées.
A ma grande surprise, "TCPOptimizer" conserve l'ancien état de la propriété et la détruit si elle n'existait pas auparavant.
+------------------------------------+-------------------------+-----------------------------+-----------------------------+
|                                    |                         |   Valeur "Windows Default"  |      Valeur "Optimal"       |
|    Clé de la base des Registres    |        Propriété        |--------------+--------------+-----------------------------+
|                                    |                         |    Trouvée   | TCPOptimizer |    Trouvée   | TCPOptimizer |
+------------------------------------+-------------------------+--------------+--------------+--------------+--------------+
| FEATURE_MAXCONNECTIONSPER1_0SERVER | explorer.exe            |       4      |       4      |       4      |       10     |
|                                    | iexplorer.exe           |      n/a     |      n/a     |      n/a     |      n/a     |
+------------------------------------+-------------------------+--------------+--------------+--------------+--------------+
| FEATURE_MAXCONNECTIONSPERSERVER    | explorer.exe            |       2      |       2      |       2      |       10     |
|                                    | iexplorer.exe           |      n/a     |      n/a     |      n/a     |      n/a     |
+------------------------------------+-------------------------+--------------+--------------+--------------+--------------+
| TCPIP\ServiceProvider              | LocalPriority           |      499     |      499     |       4      |        4     | <==
|                                    | HostsPriority           |      500     |      500     |       5      |        5     | <==
|                                    |   DnsPriority           |     2000     |     2000     |       6      |        6     | <==
|                                    | NetbtPriority           |     2001     |     2001     |       7      |        7     | <==
+------------------------------------+-------------------------+--------------+--------------+--------------+--------------+
| Microsoft\Windows\Psched           | NonBestEffortLimit      |      n/a     |      n/a     |       0      |        0     | <==
+------------------------------------+-------------------------+--------------+--------------+--------------+--------------+
| TCPIP\QoS                          | Do Not Use LNA          |      n/a     |      n/a     |       1      |        1     | <==
+------------------------------------+-------------------------+--------------+--------------+--------------+--------------+
| Multimedia\SystemProfile           | NetworkThrottlingIndex  |       10     |       10     |      -1      |       -1     | <==
|                                    | SystemResponsiveness    |       20     |       20     |      10      |       10     | <==
+------------------------------------+-------------------------+--------------+--------------+--------------+--------------+
| Services\LanmanServer\Parameters   | Size                    |        1     |        1     |       3      |        3     | <==
+------------------------------------+-------------------------+--------------+--------------+--------------+--------------+
| Session Manager\Memory Management  | LargeSystemCache        |        0     |        0     |       1      |        1     | <==
+------------------------------------+-------------------------+--------------+--------------+--------------+--------------+
| TCPIP\Parameters                   | MaxUserPort             |      n/a     |      n/a     |   65534      |    65534     | <==
|                                    | TcpTimeWaitDelay        |      n/a     |      n/a     |      30      |       30     | <==
|                                    | DefaultTTL              |      n/a     |      n/a     |      64      |       64     | <==
+------------------------------------+-------------------------+--------------+--------------+--------------+--------------+
| MSMQ\Parameters                    | TcpNoDelay              |      n/a     |      n/a     |     n/a      |      n/a     |
+------------------------------------+-------------------------+--------------+--------------+--------------+--------------+
| TCPIP\Parameters\Interfaces\{GUID} | TcpAckFrequency         |      n/a     |      n/a     |     n/a      |      n/a     |
|                                    | TcpDelAckTips           |      n/a     |      n/a     |     n/a      |      n/a     |
|                                    | TcpNoDelay              |      n/a     |      n/a     |     n/a      |      n/a     |
+------------------------------------+-------------------------+--------------+--------------+--------------+--------------+

Quand la valeur est à "n/a", la propriété n'existe pas dans la base des registres.
La flèche à droite concerne les propriétés qui ont changé entre les versions "Windows Default" et "Optimal".
Je constate qu'aucun paramétrage pour l'IPv6. J'ai vérifié dans cette clé :
--> Hkey_Local_Machine\system\CurentContolSet\Services\Tcpip6\Parameters\Interfaces\{guid}
il se peut que cela soit normal car aucune modification n'a été apporté pour cette clé :
--> Hkey_Local_Machine\system\CurentContolSet\Services\Tcpip\Parameters\Interfaces\{guid}

B) pour ce test, je n'utilise que l'adaptateur Wifi réseau suivant :
--> Realtek 8821CE Wireless LAN 802.11AC PCI-E NIC
Par contre, je n'ai pas utilisé l'adaptateur Ethernet durant mes tests :
--> Realtek PCIe GbE Family Controller

+----------------------------+-----------------------------+-----------------------------+
|                            |   Valeur "Windows Default"  |      Valeur "Optimal"       |
|    Paramètre PowerShell    |--------------+--------------+-----------------------------+
|                            |    Trouvée   | TCPOptimizer |    Trouvée   | TCPOptimizer |
+----------------------------+--------------+--------------+--------------+--------------+
| Large Send Offload         |   disabled   |   disabled   |   disabled   |   disabled   |
| Cheecksum  Offload         |   disabled   |   disabled   |    enabled   |    enabled   | <==
+----------------------------+--------------+--------------+--------------+--------------+


Je n'ai pas constaté de modification de l'adaptateur concernant le Wifi.
Pour l'adaptateur Ethernet, je n'ai pas vérifié, vu que je ne m'en sers pas.

C) il y a bien eu des modifications apportées soit avec "PowerShell", soit avec "Netsh".
Je me concentre que sur les modifications "PowerShell", pour deux raisons :
--> dans une prochaine version de windows, "Netsh" sera obsolète".
--> ce que vous faites en "Netsh", se fait aussi en "PowerShell", donc les deux sont redondants.

Je constate que "TCPOptimizer" n'est pas la dernière version pour windows 10 Pro et encore moins pour Windows 11 Pro.
La preuve est que la valeur "default" ne fonctionne pas et produit une erreur à l'exécution.
Voici mon analyse sur le paramétrage

+----------------------------+-----------------------------+-----------------------------+
|                            |   Valeur "Windows Default"  |      Valeur "Optimal"       |
|    Paramètre PowerShell    |--------------+--------------+-----------------------------+
|                            |    Trouvée   | TCPOptimizer |    Trouvée   | TCPOptimizer |
+----------------------------+--------------+--------------+--------------+--------------+
| Auto Tuning Level Local    |     normal   |     normal   |     normal   |     normal   |
| Scaling Heuristics         |   disabled   |    default   |   disabled   |   disabled   |
| Congestion Provider        |      cubic   |      cubic   |      cubic   |      cubic   |
| Receive Segment Coalescing |    enabled   |    enabled   |   disabled   |   disabled   | <==
| Receive Slide Scaling      |    enabled   |    enabled   |    enabled   |    enabled   |
| ECN Capability             |   disabled   |    default   |   disabled   |    default   |
| Chimney                    |   disabled   |   disabled   |   disabled   |   disabled   |
| Timestamps                 |   disabled   |    default   |   disabled   |   disabled   |
| Max Syn Retransmissions    |          2   |          2   |          2   |          2   |
| Non Stack Rtt Resiliency   |   disabled   |    default   |   disabled   |   disabled   |
| Initial RTO (ms)           |       3000   |       3000   |       2000   |       2000   | <==
| Min RTO (ms)               |        300   |        300   |        300   |        300   |
| MTU                        |       1500   |       1500   |       1500   |       1500   |
+----------------------------+--------------+--------------+--------------+--------------+


Conclusion :

Les principales modifications se font dans la base des registres, sauf que j'ignore la signification de ces propriétés.
Ce qui est surprenant, je n'ai pas bidouillé dans la base des registres et il semble que mon problème vienne de là.

Cordialement.
Artemus24.
@+
« Modifié: 14 juillet 2023 à 16:24:46 par artemus24 »

buddy

  • Expert
  • Abonné Free fibre
  • *
  • Messages: 15 179
  • Alpes Maritimes (06)
analyse de TCPOptimizer !
« Réponse #1 le: 13 juillet 2023 à 16:56:17 »
Ce qui est surprenant, je n'ai pas bidouillé dans la base des registres et il semble que mon problème vienne de là.
Salut,

certains pilotes de carte mère / ou de carte réseau "optimise" eux mêmes les paramètres réseaux pour éviter/limiter les saturations sur les réseaux xDSL. Sauf que l'on est à la fibre maintenant.

artemus24

  • Abonné SFR fibre FttH
  • *
  • Messages: 782
  • Montignac Lascaux (24)
analyse de TCPOptimizer !
« Réponse #2 le: 13 juillet 2023 à 17:09:07 »
Salut Buddy.

Avant Février 2023, j'étais en ADSL, puis je suis passé à la FTTH.
C'est à ce moment là que j'ai constaté mon problème Upload < 5 mb/s sans pouvoir le résoudre.
(Voir mon autre sujet dans le forum Windows.)
En passant de l'ADSL à la FTTH, ma carte réseau ne se serait pas adapté à cette nouvelle configuration.
Si c'est l'origine de mon problème, je comprends mieux la nature du problème.

Cordialement.
Artemus24.
@+

artemus24

  • Abonné SFR fibre FttH
  • *
  • Messages: 782
  • Montignac Lascaux (24)
analyse de TCPOptimizer !
« Réponse #3 le: 14 juillet 2023 à 14:21:59 »
Salut à tous.

La suite et fin de ce sujet ! :D

Création d'un script PowerShell faisant la même chose que le paramétrage "Windows Default" de "TCPOptimizer".
Je parle bien sûr de la configuration de mon Windows 10 Pro.
Il faudra adapter le script si vous êtes sous autre chose que Windows 10 Pro.
Je l'ai testé et ça fonctionne. Je retrouve le même paramétrage qu'avec "TCPOtimizer".

Pourquoi PowerShell ?
Il parait que "Netsh" sera obsolète dans les prochaines versions de Windows.
Autant s'y mettre dès maintenant.

Comment gérer le script PowerShell sous Windows ?

1) vous créez un répertoire du nom que vous voulez.

2) vous créez un fichier de type texte de nom "script.ps1".

3) vous recopiez le script en le plaçant dans votre fichier nouvellement créé.
# ===================== #
# Network Configuration #
# ===================== #

$CLEF_A="HKLM:\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_MAXCONNECTIONSPER1_0SERVER"
$CLEF_B="HKLM:\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_MAXCONNECTIONSPERSERVER"
$CLEF_C="HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\ServiceProvider"
$CLEF_D="HKLM:\SOFTWARE\Policies\Microsoft\Windows\Psched"
$CLEF_E="HKLM:\System\CurrentControlSet\Services\Tcpip\QoS"
$CLEF_F="HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile"
$CLEF_G="HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters"
$CLEF_H="HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management"
$CLEF_I="HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters"
$CLEF_J="HKLM:\SOFTWARE\Microsoft\MSMQ\Parameters"

# --------- #
# Functions #
# --------- #

function ModifyProperty {
param ( $PathOfProperty, $NameOfProperty, $ValueOfProperty)

process {
if (Get-ItemProperty -Path $PathOfProperty -Name $NameOfProperty -ErrorAction SilentlyContinue)
{
$TEST=Get-ItemPropertyValue -Path $PathOfProperty -Name $NameOfProperty
Write-Host "  Modify --> $NameOfProperty : Old Value is : $TEST"

if ($TEST -ne $ValueOfProperty)
{
Set-ItemProperty -Path $PathOfProperty -Name $NameOfProperty -Value $ValueOfProperty -Type DWord
Write-Host "  Modify --> $NameOfProperty has been updated"
} else {
Write-Host "  Modify --> $NameOfProperty has not been changed"
}
} else {
Set-ItemProperty -Path $PathOfProperty -Name $NameOfProperty -Value $ValueOfProperty -Type DWord
Write-Output "  Modify --> $NameOfProperty has been created"
}
}
}

function SuppressProperty {
param ( $PathOfProperty, $NameOfProperty)

process {
if (Get-ItemProperty -Path $PathOfProperty -Name $NameOfProperty -ErrorAction SilentlyContinue)
{
$TEST=Get-ItemPropertyValue -Path $PathOfProperty -Name $NameOfProperty
Write-Host "Suppress --> $NameOfProperty : Value is : $TEST"

Remove-ItemProperty -Path $PathOfProperty -Name $NameOfProperty
Write-Host "$NameOfProperty has not been deleted"
} else {
Write-Output "Suppress --> $NameOfProperty does not exist"
}
}
}

# ----------------- #
# Base Of Registers #
# ----------------- #

  ModifyProperty $CLEF_A   "explorer.exe"           "4"
SuppressProperty $CLEF_A  "iexplorer.exe"

  ModifyProperty $CLEF_B   "explorer.exe"           "2"
SuppressProperty $CLEF_B  "iexplorer.exe"

  ModifyProperty $CLEF_C  "LocalPriority"           "499"
  ModifyProperty $CLEF_C  "HostsPriority"           "500"
  ModifyProperty $CLEF_C  "DnsPriority"             "2000"
  ModifyProperty $CLEF_C  "NetbtPriority"           "2001"

SuppressProperty $CLEF_D  "NonBestEffortLimit"

SuppressProperty $CLEF_E  "Do not use NLA"

  ModifyProperty $CLEF_F  "NetworkThrottlingIndex"  "10"
  ModifyProperty $CLEF_F  "SystemResponsiveness"    "20"

  ModifyProperty $CLEF_G  "Size"                    "1"

  ModifyProperty $CLEF_H  "LargeSystemCache"        "0"

SuppressProperty $CLEF_I  "MaxUserPort"
SuppressProperty $CLEF_I  "TcpTimedWaitDelay"
SuppressProperty $CLEF_I  "DefaultTTL"

SuppressProperty $CLEF_J  "TCPNoDelay"

# ----- #
# Netsh #
# ----- #

Set-NetTCPSetting `
   -SettingName Internet `
   -InitialRtoMs              3000

Set-NetOffloadGlobalSetting `
   -ReceiveSegmentCoalescing  enabled

# ----- #
# Pause #
# ----- #

Write-host "`n`tpress 'ENTER' to restart the computer !"
$null = Read-Host

# --------------- #
# Reboot And Exit #
# --------------- #

Restart-Computer
Exit

4) vous devez lancer le script en mode administrateur, sinon les modifications ne seront pas prises.
j'ai pris l'habitude de créer un raccourci afin de lancer le script PowerShell en mode administration.
Pour la cible, je mets :
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -f "votre_chemin\Script.ps1"Puis dans "Démarrer dans", vous mettez le même répertoire.
Et enfin, dans le bouton "Avancé", vous cochez "mettre en mode administrateur".
Je modifie aussi l'icone afin de bien faire la distinction avec celle du script PowerShell.

5) Lancer le script et il va redémarrer votre ordinateur.

6) vous faites le test sous "SFR Mire" (ou autre chose) pour vérifiez si les modifications ont bien été effectuées.

Conclusion

Je l'ai testé et ça fonctionne parfaitement chez moi.
Je n'ai plus besoin de "TCPOpimizer" qui, si j'ai bien compris, n'est plus du tout maintenu.

Je n'ai mis que les différences que j'ai constaté chez moi.
A vous de l'adapter à votre convenance.

Cordialement.
Artemus24.
@+