If you work with high-throughput or latency-sensitive workloads on Windows file transfers, database replication, Remote Desktop, or VoIP there is one TCP tuning parameter that is easy to overlook:
TcpAckFrequency.
By default, Windows uses delayed ACK, which batches acknowledgements to reduce packet overhead. In most cases this is fine. But in low-latency or real-time scenarios, delayed ACKs add an unnecessary pause — the receiver waits up to 200ms before confirming receipt, which stalls the sender's congestion window and tanks throughput.
Setting TcpAckFrequency to 1 forces Windows to acknowledge every TCP segment immediately, rather than waiting to batch them. Here is how to do it with PowerShell.
Apply to all network adapters at once
Run this in an elevated PowerShell session to set immediate ACKs across every adapter on the machine:
# Apply to all adapters
Get-NetAdapter | Set-NetAdapterAdvancedProperty `
-DisplayName "TcpAckFrequency" `
-DisplayValue "1"
Target a specific adapter
If you only want to tune a single interface, replace "Ethernet" with the exact name of your adapter (check it with Get-NetAdapter):
# Apply to a specific adapter
Get-NetAdapter -Name "Ethernet" | Set-NetAdapterAdvancedProperty `
-DisplayName "TcpAckFrequency" `
-DisplayValue "1"
Verify the change
Always confirm the setting actually applied — don't assume:
# Verify on all adapters
Get-NetAdapter | Get-NetAdapterAdvancedProperty `
-DisplayName "TcpAckFrequency"
You should see DisplayValue : 1 for each adapter you configured. If the property does not appear, your NIC driver does not expose this setting — check Device Manager or your adapter's Advanced properties tab manually.