Windows 11

Windows 11 et les réseaux, Microsoft accélère les transferts de fichiers

Microsoft apporte une modification importante autour du SMB de Windows 11. Elle concerne la fonction de compression. Elle devient plus percutante ce qui réduit la taille des fichiers et par conséquence les temps nécessaires au transfert des données.

Windows 11 et Windows Servers 2022 profitent d’une fonction de compression SMB. SMB est la contraction de Server Message Block. Il s’agit d’un protocole de communication prenant en charge le partage de données et d’imprimantes. Nous le retrouvons aussi lors de la navigation réseaux.

Cette compression réduit la taille des fichiers lors d’un transfert. Elle évite les interventions manuelles. Il n’est pas nécessaire de compresser les données avant, de faire le transfert puis de décompresser le tout sur le lecteur cible. L’avantage de réduire la taille des données à transférer est d’économiser de la bande passante. C’est particulièrement utile avec des réseaux aux débits limités comme le Wi-Fi ou de l’Ethernet 1 Gbps si des fichiers de plusieurs Go sont manipuler.

Malheureusement cette fonction respecte des règles particulières qui limitent ses actions et ses possibilités. Par exemple Microsoft a mis en place un seuil de 100 Mo compressible dans les 500 premier Mo d’un fichier. Du coup les fichiers de petites tailles ne profitent pas de cette compression. De même des transferts de fichiers volumineux peuvent en souffrir si les 500 premiers Mo n’offrent pas ce niveau de compression.

Désormais cette règle n’est plus d’actualité. La compression SMB ignore la taille des données. En clair tous les fichiers bénéficient d’une demande de compression lors d’un transfert. Microsoft indique cependant que tous les fichiers ne sont pas « égaux » en matière de compression. Des fichiers déjà compressés, tels que les images au format JPG ou les archives aux formats ZIP et RAR, ne bénéficient pas cette avancée.

Windows 11 et la compression SMB, détails

Les utilisateurs, les administrateurs et les applications peuvent demander une compression. Il est possible d’utiliser de nouvelles stratégies et commandes PowerShell pour contrôler cette fonctionnalité.

Microsoft détaille

Group policy

\Computer Configuration\Administrative Templates\Network\Lanman Workstation

  • Disable SMB Compression
  • Use SMB Compression by Default

\Computer Configuration\Administrative Templates\Network\Lanman Server

  • Disable SMB Compression
  • Request traffic compression for all shares

These all write to the following location and will override the ‘native’ registry settings as usual with group policy:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\LanmanWorkstation\parameters

PowerShell for SMB client

Set-SMBClientConfiguration [-EnableCompressibilitySampling <bool>] [-CompressibilitySamplingSize <uint64>] [-CompressibleThreshold <uint64>] [-DisableCompression <bool>] [-RequestCompression <bool>] 

  • -DisableCompression $true or $False – never compress even if server or application requested
  • -RequestCompression $true or $false – always request compression even if server or application didn’t specify it
  • -EnableCompressibilitySampling $true or $false – control legacy sampling behavior
  • -CompressibilitySamplingSize 1- 9,007,199,254,740,992 – size in bytes of range to sample in a file looking for compressibility
  • -CompressibleThreshold – 1- 9,007,199,254,740,992 – size in bytes of compressible data that must be found within that range

You shouldn’t need to touch the sampling settings without a good reason. Maybe hit me up in the comments first if you’re feeling the urge to touch those. 🙂 A keen-eyed reader might notice that a range of 9,007,199,254,740,992 is not the Uint64 in the PowerShell. That’s because the real limit in the code is 9PiB, not the 184,467,440,737,095,551,615 bytes of a UInt64 value we had to set in the Posh. If you’ve got individual files bigger than 9 petabytes, I would love to hear your story, regardless!

These values are stored in the registry under:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\LanmanWorkstation\parameters

NameTypeDefaultBoundsPS interface (Set-SmbClientConfiguration)
EnableCompressedTrafficREG_DWORD00 or 1RequestCompression
DisableCompressionREG_DWORD00 or 1DisableCompression
EnableCompressibilitySamplingREG_DWORD00 or 1EnableCompressibilitySampling
CompressibilitySamplingSizeREG_QWORD00 to 8 PiBCompressibilitySamplingSize
CompressibleThresholdREG_QWORD00 to 8 PiBCompressibleThreshold

PowerShell for SMB Server

Set-SmbServerConfiguration [-DisableCompression <bool>] [-RequestCompression <bool>]

  • -DisableCompression $true or $False – never compress even if client requested
  • -RequestCompression $true or $false – always request compression even if client didn’t specify it

These values are stored in the registry under:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\LanmanServer\parameters

NameTypeDefaultBoundsPS interface (Set-SmbServerConfiguration)
EnableCompressedTrafficREG_DWORD00 or 1RequestCompression
DisableCompressionREG_DWORD00 or 1DisableCompression

Ce changement sera déployé à l’occasion du Patch Tuesday du mois de septembre 2022. Si vous souhaitez en profiter dès maintenant pour pouvez déclencher manuellement le téléchargement des dernières mises à jour facultatives publiées par Microsoft. Il s’agit de KB5016693 pour Windows Server 2022 et KB5016691 pour Windows 11.

Windows 11, la mise à jour facultative KB5016691 est disponible, quoi de neuf ?

Jérôme Gianoli

Aime l'innovation, le hardware, la High Tech et le développement durable. Soucieux du respect de la vie privée.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page