How to Configure TCP Initial Congestion Window (InitCwnd) in Windows 11 Using PowerShell

Whenever a client establishes a new TCP connection to a remote web server, API endpoint, or file share, the transport protocol cannot immediately send data at full link bandwidth. Instead, TCP utilizes the Slow Start algorithm, probing available network capacity by transmitting an initial burst of packets known as the Initial Congestion Window (InitCwnd) before pausing to await the first acknowledgement (ACK). On high-bandwidth, high-latency connections (such as transcontinental fibre or satellite internet), a conservative InitCwnd requires multiple round-trip times (RTTs) just to deliver standard webpage payloads or API JSON responses. In Windows 11, PowerShell provides native cmdlets to audit and tune the Initial Congestion Window across active network profiles.

Understanding InitCwnd and Slow Start Dynamics

In TCP networking, the congestion window (Cwnd) determines the maximum number of unacknowledged packets a sender may have in flight at any given moment. During connection initialization, Slow Start begins with an initial window measured in maximum segment sizes (MSS). RFC 6928 standardized an InitCwnd of 10 MSS (approximately 14.6 KiB on standard 1500-byte MTU Ethernet), which replaced the legacy RFC 3390 baseline of 4 MSS.

By default, modern Windows releases follow RFC 6928, initializing connections with 10 MSS. In controlled datacenter fabrics, campus LANs, or low-loss enterprise backbones, tuning this parameter alongside TCP window auto-tuning and CwndRestart controls allows servers and workstations to transfer complete transactions within a single round trip, substantially improving web application responsiveness.

Launching Elevated PowerShell in Windows 11

Configuring operating system TCP transport templates requires administrative privileges:

  1. Right-click the Start button on the taskbar or press Windows Key + X.
  2. Select Terminal (Admin) or PowerShell (Admin).
  3. Click Yes when prompted by the User Account Control (UAC) security prompt.

Auditing Current TCP Initial Congestion Window Settings

In Windows 11, TCP transport configurations are managed through distinct profile templates (such as Internet, Datacenter, and Compat). To inspect the active Initial Congestion Window settings, execute Get-NetTCPSetting:

Get-NetTCPSetting | Select-Object SettingName, InitialCongestionWindowMss, CongestionProvider, MinRtoMs

PowerShell outputs a structured list detailing transport parameters across each template:

SettingName   InitialCongestionWindowMss CongestionProvider MinRtoMs
-----------   -------------------------- ------------------ --------
Internet                              10 CUBIC                   300
Datacenter                            10 DCTCP                    20
Compat                                 4 NewReno                 300

Notice that the standard Internet profile defaults to 10 MSS (approximately 14,600 bytes), while legacy compatibility modes may report 4.

Configuring InitialCongestionWindowMss with Set-NetTCPSetting

To tune the initial burst capacity for high-speed local area networks or cloud workloads, adjust the InitialCongestionWindowMss property using Set-NetTCPSetting:

Set-NetTCPSetting -SettingName "Internet" -InitialCongestionWindowMss 16

Windows allows integer values between 4 and 64. Setting the value to 16 expands the initial unacknowledged burst to approximately 23.3 KiB, permitting modern responsive webpages, TLS certificates, and initial REST responses to transfer without undergoing additional handshake delays.

For dedicated Hyper-V virtual switch hosts or low-latency datacenter clusters communicating over 10 GbE or 25 GbE adapters, you can also tune the Datacenter profile:

Set-NetTCPSetting -SettingName "Datacenter" -InitialCongestionWindowMss 32

This allows high-throughput storage synchronization and database replication streams to attain line-rate throughput almost instantaneously.

Verifying Configuration Updates and Network Stability

After adjusting congestion parameters, verify that the updated settings are active across your templates:

Get-NetTCPSetting -SettingName "Internet" | Format-List SettingName, InitialCongestionWindowMss, CongestionProvider

The output confirms the new MSS threshold. When paired with network tuning mechanisms such as Ethernet flow control and TCP keepalive parameters, optimizing the Initial Congestion Window ensures reliable, low-latency communication across Windows 11.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.