I have a gigabit optical internet connection, however, my windows laptop cannot get download bandwidth more than 11Mbps, while the upload is around 500Mbps. The weird part is that, when the laptop is connected to the same router (that takes in optical cable) over the WiFi, measured download bandwidth is around 250Mbps. The limiting is only happening when the laptop connected over the wired connection. Normally, laptop connects through a switch, but I tried connecting directly to the router -- same limiting is happening. Now, the reason why I think it's a Windows problem, but not my network setup/ISP problem is because when I run the same exact test on a macbook (wired connection, connected to switch) it shows ~500-600Mbps on both download and upload.
I have studied help articles here and ran following commands, which didn't yield any change:
netsh int tcp set global autotuninglevel=normal
Get-NetTCPSetting | Set-NetTCPSetting -AutoTuningLevelLocal Normal
netsh int tcp set global rss=enabled
(more settings output below)
This looks to me that there's some software networking shaping happening on my machine that I'm not aware of. However, as being a non-Windows user, I'm not sure where to start looking to check for this.
Internet speed test on wired connection (Windows laptop):

Internet speed test on WiFi (Windows laptop):

Internet speed test on wired connection (macbook):

Some TCP settings commands outputs:
> Get-NetTCPSetting
SettingName : Automatic
MinRto(ms) :
InitialCongestionWindow(MSS) :
CongestionProvider :
CwndRestart :
DelayedAckTimeout(ms) :
DelayedAckFrequency :
MemoryPressureProtection :
AutoTuningLevelLocal :
AutoTuningLevelGroupPolicy :
AutoTuningLevelEffective :
EcnCapability :
Timestamps :
InitialRto(ms) :
ScalingHeuristics :
DynamicPortRangeStartPort :
DynamicPortRangeNumberOfPorts :
AutomaticUseCustom :
NonSackRttResiliency :
ForceWS :
MaxSynRetransmissions :
AutoReusePortRangeStartPort :
AutoReusePortRangeNumberOfPorts :
SettingName : InternetCustom
MinRto(ms) : 300
InitialCongestionWindow(MSS) : 10
CongestionProvider : CUBIC
CwndRestart : False
DelayedAckTimeout(ms) : 40
DelayedAckFrequency : 2
MemoryPressureProtection : Enabled
AutoTuningLevelLocal : Normal
AutoTuningLevelGroupPolicy : NotConfigured
AutoTuningLevelEffective : Local
EcnCapability : Disabled
Timestamps : Allowed
InitialRto(ms) : 1000
ScalingHeuristics : Disabled
DynamicPortRangeStartPort : 49152
DynamicPortRangeNumberOfPorts : 16384
AutomaticUseCustom : Disabled
NonSackRttResiliency : Disabled
ForceWS : Enabled
MaxSynRetransmissions : 4
AutoReusePortRangeStartPort : 0
AutoReusePortRangeNumberOfPorts : 0
SettingName : DatacenterCustom
MinRto(ms) : 60
InitialCongestionWindow(MSS) : 10
CongestionProvider : CUBIC
CwndRestart : False
DelayedAckTimeout(ms) : 10
DelayedAckFrequency : 2
MemoryPressureProtection : Enabled
AutoTuningLevelLocal : Normal
AutoTuningLevelGroupPolicy : NotConfigured
AutoTuningLevelEffective : Local
EcnCapability : Disabled
Timestamps : Allowed
InitialRto(ms) : 1000
ScalingHeuristics : Disabled
DynamicPortRangeStartPort : 49152
DynamicPortRangeNumberOfPorts : 16384
AutomaticUseCustom : Disabled
NonSackRttResiliency : Disabled
ForceWS : Enabled
MaxSynRetransmissions : 4
AutoReusePortRangeStartPort : 0
AutoReusePortRangeNumberOfPorts : 0
SettingName : Compat
MinRto(ms) : 300
InitialCongestionWindow(MSS) : 4
CongestionProvider : NewReno
CwndRestart : False
DelayedAckTimeout(ms) : 200
DelayedAckFrequency : 2
MemoryPressureProtection : Enabled
AutoTuningLevelLocal : Normal
AutoTuningLevelGroupPolicy : NotConfigured
AutoTuningLevelEffective : Local
EcnCapability : Disabled
Timestamps : Allowed
InitialRto(ms) : 1000
ScalingHeuristics : Disabled
DynamicPortRangeStartPort : 49152
DynamicPortRangeNumberOfPorts : 16384
AutomaticUseCustom : Disabled
NonSackRttResiliency : Disabled
ForceWS : Enabled
MaxSynRetransmissions : 4
AutoReusePortRangeStartPort : 0
AutoReusePortRangeNumberOfPorts : 0
SettingName : Datacenter
MinRto(ms) : 60
InitialCongestionWindow(MSS) : 10
CongestionProvider : CUBIC
CwndRestart : False
DelayedAckTimeout(ms) : 10
DelayedAckFrequency : 2
MemoryPressureProtection : Enabled
AutoTuningLevelLocal : Normal
AutoTuningLevelGroupPolicy : NotConfigured
AutoTuningLevelEffective : Local
EcnCapability : Disabled
Timestamps : Allowed
InitialRto(ms) : 1000
ScalingHeuristics : Disabled
DynamicPortRangeStartPort : 49152
DynamicPortRangeNumberOfPorts : 16384
AutomaticUseCustom : Disabled
NonSackRttResiliency : Disabled
ForceWS : Enabled
MaxSynRetransmissions : 4
AutoReusePortRangeStartPort : 0
AutoReusePortRangeNumberOfPorts : 0
SettingName : Internet
MinRto(ms) : 300
InitialCongestionWindow(MSS) : 10
CongestionProvider : CUBIC
CwndRestart : False
DelayedAckTimeout(ms) : 40
DelayedAckFrequency : 2
MemoryPressureProtection : Enabled
AutoTuningLevelLocal : Normal
AutoTuningLevelGroupPolicy : NotConfigured
AutoTuningLevelEffective : Local
EcnCapability : Disabled
Timestamps : Allowed
InitialRto(ms) : 1000
ScalingHeuristics : Disabled
DynamicPortRangeStartPort : 49152
DynamicPortRangeNumberOfPorts : 16384
AutomaticUseCustom : Disabled
NonSackRttResiliency : Disabled
ForceWS : Enabled
MaxSynRetransmissions : 4
AutoReusePortRangeStartPort : 0
AutoReusePortRangeNumberOfPorts : 0
> netsh int tcp show global
Querying active state...
TCP Global Parameters
----------------------------------------------
Receive-Side Scaling State : enabled
Receive Window Auto-Tuning Level : normal
Add-On Congestion Control Provider : default
ECN Capability : disabled
RFC 1323 Timestamps : allowed
Initial RTO : 1000
Receive Segment Coalescing State : enabled
Non Sack Rtt Resiliency : disabled
Max SYN Retransmissions : 4
Fast Open : enabled
Fast Open Fallback : enabled
HyStart : enabled
Proportional Rate Reduction : enabled
Pacing Profile : off
> Get-NetTCPSetting | Format-List SettingName,Autotuninglevel\*
SettingName : Automatic
AutoTuningLevelLocal :
AutoTuningLevelGroupPolicy :
AutoTuningLevelEffective :
SettingName : InternetCustom
AutoTuningLevelLocal : Normal
AutoTuningLevelGroupPolicy : NotConfigured
AutoTuningLevelEffective : Local
SettingName : DatacenterCustom
AutoTuningLevelLocal : Normal
AutoTuningLevelGroupPolicy : NotConfigured
AutoTuningLevelEffective : Local
SettingName : Compat
AutoTuningLevelLocal : Normal
AutoTuningLevelGroupPolicy : NotConfigured
AutoTuningLevelEffective : Local
SettingName : Datacenter
AutoTuningLevelLocal : Normal
AutoTuningLevelGroupPolicy : NotConfigured
AutoTuningLevelEffective : Local
SettingName : Internet
AutoTuningLevelLocal : Normal
AutoTuningLevelGroupPolicy : NotConfigured
AutoTuningLevelEffective : Local
> Get-NetAdapterAdvancedProperty | Where-Object -property RegistryKeyword -Like \*rss\* | format-table -AutoSize
Name DisplayName DisplayValue RegistryKeyword RegistryValue
---- ----------- ------------ --------------- -------------
vEthernet (Default Switch) Maximum Number of RSS Processors 8 \*MaxRssProcessors {8}
vEthernet (Default Switch) Maximum Number of RSS Queues 8 \*NumRSSQueues {8}
vEthernet (Default Switch) Receive Side Scaling Enabled \*RSS {1}
vEthernet (Default Switch) RSS Base Processor Number 0 \*RssBaseProcNumber {0}
vEthernet (Default Switch) Maximum RSS Processor Number 63 \*RssMaxProcNumber {63}
vEthernet (Default Switch) RSS Profile Closest Processor Static \*RSSProfile {2}
Ethernet Maximum Number of RSS Queues 4 Queues \*NumRssQueues {4}
vEthernet (WSL) Maximum Number of RSS Processors 8 \*MaxRssProcessors {8}
vEthernet (WSL) Maximum Number of RSS Queues 8 \*NumRSSQueues {8}
vEthernet (WSL) Receive Side Scaling Enabled \*RSS {1}
vEthernet (WSL) RSS Base Processor Number 0 \*RssBaseProcNumber {0}
vEthernet (WSL) Maximum RSS Processor Number 63 \*RssMaxProcNumber {63}
vEthernet (WSL)