Nice — great to hear it’s fixed. That 779 Mbps (Windows) vs ~920 Mbps (Linux) is well within expected variance; more importantly the download now behaves and the intermittent disconnects are gone.
What fixed it (summary)
- Re‑enabled Windows TCP Receive Window Auto‑Tuning (netsh autotuninglevel=normal). Previously it was disabled and that often cripples single‑stream download performance on fast links.
- Disabled Realtek power/energy features (Energy‑Efficient Ethernet / Green Ethernet / Gigabit Lite / Power Saving Mode) that can force the NIC into a lower throughput mode.
- Disabled LSO (Large Send Offload) and increased Receive/Transmit buffers to driver‑allowed maximums (you set Receive = 512, Transmit = 4096).
- Restarted the adapter to apply changes.
Why those changes help (brief)
- Autotuning lets Windows grow the TCP receive window to match high bandwidth × latency paths; disabling it frequently limits single‑flow throughput.
- EEE / Green features and power saving can reduce throughput or cause renegotiation behavior on certain Realtek drivers.
- LSO and offloads sometimes interact poorly with buggy drivers or Windows stacks; disabling them is a common troubleshooting step.
- Larger NIC buffers reduce packet drops under high throughput bursts.
Recommended next steps
1) Monitor for 24–48 hours. If speeds stay stable and no drops occur, keep the current settings.
2) If you want to chase the last ~100–150 Mbps (to match Linux exactly), do a clean driver reinstall: uninstall the adapter (check “Delete driver software”), reboot, then install the TP‑Link TX201 vendor driver (or the Realtek RTL8125 driver recommended for your adapter). Test after the vendor driver — sometimes vendor builds are better tuned.
3) If you use third‑party AV/network monitoring software, keep an eye for background scans that might throttle downloads; do a quick test with AV disabled if you see regressions.
4) Keep your system up to date (Windows updates + chipset drivers + BIOS) — these affect PCIe and NIC behavior.
Useful commands (copy/paste in Admin PowerShell)
- Show current advanced NIC properties:
Get-NetAdapterAdvancedProperty -Name "Ethernet" | Format-Table DisplayName, DisplayValue -AutoSize
- Show TCP global state:
netsh interface tcp show global
- Show adapter/link speed:
Get-NetAdapter | Format-Table Name, Status, LinkSpeed
Rollback (restore the exact values you had earlier)
If you decide you want to restore your previous settings exactly, run this (Admin PowerShell):
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Energy-Efficient Ethernet" -DisplayValue "Enabled"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Flow Control" -DisplayValue "Rx & Tx Enabled"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Interrupt Moderation" -DisplayValue "Enabled"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "IPv4 Checksum Offload" -DisplayValue "Rx & Tx Enabled"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Jumbo Frame" -DisplayValue "Disabled"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Large Send Offload v2 (IPv4)" -DisplayValue "Enabled"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Large Send Offload v2 (IPv6)" -DisplayValue "Enabled"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "ARP Offload" -DisplayValue "Enabled"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "NS Offload" -DisplayValue "Enabled"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Priority & VLAN" -DisplayValue "Priority & VLAN Enabled"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Receive Buffers" -DisplayValue "1024"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Recv Segment Coalescing (IPv4)" -DisplayValue "Enabled"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Recv Segment Coalescing (IPv6)" -DisplayValue "Enabled"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Speed & Duplex" -DisplayValue "Auto Negotiation"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "TCP Checksum Offload (IPv4)" -DisplayValue "Rx & Tx Enabled"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "TCP Checksum Offload (IPv6)" -DisplayValue "Rx & Tx Enabled"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Transmit Buffers" -DisplayValue "512"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "UDP Checksum Offload (IPv4)" -DisplayValue "Rx & Tx Enabled"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "UDP Checksum Offload (IPv6)" -DisplayValue "Rx & Tx Enabled"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Wake on Magic Packet" -DisplayValue "Enabled"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Wake on pattern match" -DisplayValue "Enabled"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Advanced EEE" -DisplayValue "Disabled"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "EEE Max Support Speed" -DisplayValue "1.0 Gbps Full Duplex"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Green Ethernet" -DisplayValue "Enabled"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Gigabit Lite" -DisplayValue "Enabled"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Power Saving Mode" -DisplayValue "Enabled"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "VLAN ID" -DisplayValue "0"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Shutdown Wake-On-Lan" -DisplayValue "Enabled"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "WOL & Shutdown Link Speed" -DisplayValue "10 Mbps First"
netsh int tcp set global autotuninglevel=disabled
Final note
Nice troubleshooting — testing from Linux and a second PC was the right move (excellent isolation). If you want, I can provide the exact TP‑Link/Realtek driver link I’d use for a clean reinstall (tell me whether you prefer TP‑Link or Realtek driver). If everything looks good, please mark the thread solved so others with the same issue can find the fix.