The Windows 11 TCP/IP networking stack governs every inbound and outbound network connection, orchestrating packet transmission, dynamic buffer sizing, acknowledgement timers, and congestion avoidance. By default, Windows balances settings for general home and office browsing. However, on high-performance development workstations, local database hosts, and multi-gigabit fibre connections, default TCP/IP settings may throttle throughput, cause excessive latency jitter, or poorly handle packet congestion across high-bandwidth delay product (BDP) links.
Using PowerShell and the built-in NetTCPIP module, administrators can inspect active TCP templates, switch congestion avoidance algorithms to modern options like CUBIC or Compound TCP (CTCP), configure Explicit Congestion Notification (ECN), and adjust TCP window auto-tuning levels. If you frequently optimise and automate Windows networks via scripts, you may also find our tutorials on configuring global TCP/IP offload settings in Windows 11 and configuring SMB signing and encryption with PowerShell helpful.
Launching PowerShell as Administrator
Modifying kernel-level network stack configurations requires elevated administrative rights:
- Right-click the Start button on the taskbar or press Windows Key + X.
- Select Terminal (Admin) or PowerShell (Admin).
- Click Yes when prompted by User Account Control (UAC).
Inspecting Active TCP/IP Settings Profiles
Windows 11 manages TCP settings through profiles (such as Internet, Datacenter, Compat, and Custom). Query your system’s current TCP configuration profiles using Get-NetTCPSetting:
# Query all TCP profile settings
Get-NetTCPSetting
# Filter specifically for the active Internet profile
Get-NetTCPSetting -SettingName Internet | Format-List *
Key parameters within the profile dictate operational performance:
- CongestionProvider: The mathematical algorithm governing how TCP ramps up throughput and recovers from packet loss (e.g.,
CUBIC,CTCP,NewReno, orDCTCP). - AutoTuningLevelLocal: Dictates dynamic receive window (RWIN) sizing. (Options:
Disabled,HighlyRestricted,Restricted,Normal,Experimental). - EcnCapability: Explicit Congestion Notification (ECN) enables routers to signal network congestion before dropping packets.
- Timestamps: Appends RFC 1323 timestamps to TCP headers to measure Round Trip Time (RTT) accurately on high-speed links.
- InitialRto: The initial Retransmission Timeout (in milliseconds) before re-sending unacknowledged SYN packets.
Configuring the Congestion Provider (CUBIC vs CTCP)
Modern Linux servers and high-speed internet links rely heavily on CUBIC, an algorithm designed for rapid recovery on high-bandwidth, high-latency connections. To set CUBIC (or Compound TCP) as your primary congestion provider in Windows 11:
# Set CUBIC as the congestion provider for the Internet profile
Set-NetTCPSetting -SettingName Internet -CongestionProvider CUBIC
# Alternatively, set Compound TCP (CTCP) for aggressive throughput scaling
Set-NetTCPSetting -SettingName Internet -CongestionProvider CTCP
Tuning Receive Window Auto-Tuning and ECN
On multi-gigabit connections, ensuring the TCP window auto-tuning level is set to Normal allows Windows to expand its receive buffer dynamically to saturate your available bandwidth:
# Ensure TCP Auto-Tuning is set to Normal
Set-NetTCPSetting -SettingName Internet -AutoTuningLevelLocal Normal
# Enable Explicit Congestion Notification (ECN) to reduce packet drops
Set-NetTCPSetting -SettingName Internet -EcnCapability Enabled
# Enable RFC 1323 TCP Timestamps for precise latency calculation
Set-NetTCPSetting -SettingName Internet -Timestamps Enabled
Managing Dynamic Ephemeral Port Ranges
High-volume web servers, reverse proxies, and microservice containers can exhaust available outbound TCP ports. To inspect and adjust the ephemeral dynamic port range in Windows 11:
# Display current dynamic port range
netsh int ipv4 show dynamicport tcp
# Expand dynamic port range (e.g., 10000 to 65535) for heavy networking loads
netsh int ipv4 set dynamicport tcp start=10000 num=55535
Verifying TCP/IP Stack Adjustments
After applying your changes, re-query the Internet profile to confirm the parameters applied cleanly:
Get-NetTCPSetting -SettingName Internet | Select-Object SettingName, CongestionProvider, AutoTuningLevelLocal, EcnCapability, Timestamps
All settings apply instantly in memory without requiring a reboot, delivering optimized network throughput, lower latency jitter, and improved connection stability.