[SOLVED] Gigabit ethernet running at 30Mbps down/up, ruled out Hardware Issue

Alex_Greene

Reputable
Apr 30, 2020
39
1
4,535
I am currently on a gigabit fiber internet plan, and the speeds I can get on ethernet are, of course, around 1 gigabit per second up/down. The only problem is that my beefy desktop PC is only getting around 30Mbps up/down according to the google internet speed test, despite my gaming laptop getting gigabit speed ratings on the same test on the same wire connected to the same Cat6 wall outlet, which rules out cable/outlet/router issues. I have also tried using a 2.5Gpbs PCI network card which also reads at 30Mbps up/down, so I don't believe this is hardware related. Drivers are also ruled out, as booting to Safe Mode with Networking also shows 30Mbps up/down speeds, and I've tried rollbacks/updates on both the motherboard NIC as well as the NIC I installed. I also tried making sure that Windows Auto Tuning Level was disabled (which it is, and was) so I'm stumped. At this point I'm believing that some software is limiting my connection speeds.

Despite the 30Mbps readings on google's Internet Speed Test, Steam games still seem to download at speeds of around 70Mbps, but I know that it's capable of more. The only thing I haven't tried is reinstalling Windows, but I'm currently in a situation where this is very inconvenient and would disrupt my current work situation for a bit, so I'd like to try and fix this on my current windows instance.

I am running Windows 10, and have also made sure that the Network Cards are both configured for Gigabit speeds (they both read 1Gbps in settings)
 
Solution
Weird MTUs are a sign that you've run things like "TCP Optimizer" in the past. They can set all sorts of things which do more harm than good once you step up to very fast broadband connections. It almost sounds like your machine's Windows install has had Receive-Side Scaling disabled, or has a funky MSS or some other problem with window scaling.

I would consider doing a full network reset, https://kb.wisc.edu/helpdesk/page.php?id=70821 for Windows 10 or https://www.makeuseof.com/reset-network-settings-windows-11/ for Windows 11.

You should keep Windows Auto Tuning Level enabled on the default setting, otherwise you are effectively capping the maximum possible throughput your machine can achieve for HTTP traffic. This is...
You can try a old tool called IPERF to test between your 2 machines in your house. This is a very basic test and pretty much just tests the hardware and the drivers. The key thing it does not use is a browser which sometimes can cause slowness. You should see well over 900mbps and you can get much more with 2.5g nics on both with a switch/router that can also do 2.5.

Does steam download at 70MBYTE or did you convert the value. By default steam lists things in Mbytes. 70MBYTES would be a ok speed on a gigabit since steam does not always download at full speed many times.

The most common software to cause strange issues like this are the so called "gamer" network bloatware that you find bundled with some motherboard or video cards. You want to uninstall anything that talks about give certain types of traffic priority or QoS. One of the more popular ones is called CFOSspeed. Since it can only affect traffic inside your machine it has almost no use other than for people doing stupid stuff like running torrent downloads while they try to play games. Many people see strange issues especially on higher speed connections.
 

Alex_Greene

Reputable
Apr 30, 2020
39
1
4,535
You can try a old tool called IPERF to test between your 2 machines in your house. This is a very basic test and pretty much just tests the hardware and the drivers. The key thing it does not use is a browser which sometimes can cause slowness. You should see well over 900mbps and you can get much more with 2.5g nics on both with a switch/router that can also do 2.5.

Does steam download at 70MBYTE or did you convert the value. By default steam lists things in Mbytes. 70MBYTES would be a ok speed on a gigabit since steam does not always download at full speed many times.

The most common software to cause strange issues like this are the so called "gamer" network bloatware that you find bundled with some motherboard or video cards. You want to uninstall anything that talks about give certain types of traffic priority or QoS. One of the more popular ones is called CFOSspeed. Since it can only affect traffic inside your machine it has almost no use other than for people doing stupid stuff like running torrent downloads while they try to play games. Many people see strange issues especially on higher speed connections.
Thank you, I will try these out when I get back home and come back with the results. Also, steam downloads at 70 megabits per second, not bytes, so I’m assuming my speeds are not accurately reflected on the google test, but are still likely slow
 

Alex_Greene

Reputable
Apr 30, 2020
39
1
4,535
Set up a Linux Live USB stick. All free, you just need a blank USB stick.

Boot into the linux live usb and see what ethernet speeds are with that.

Also, What's the MTU setting in the router and on the PC?
MTU setting on my computer is 1404 in the IPv4 section and 1500 in the IPv6 section, and the router's is set to 1500 both on Base and IPv6. Should my PC's IPv4 MTU be set to 1500?
 
I would first try to disable ipv6 support on your pc just to see if it makes a differnce. IPv6 tends to not perform as well as ipv4 for many people.

That is a strange MTU size. You can set it to 1500 and see if it makes any large difference. A smaller MTU will affect the download speed because the ratio of the overhead due to the packet headers is higher. It should not make the huge difference you are seeing but in general you see ethernet running at 1500.
 

Alex_Greene

Reputable
Apr 30, 2020
39
1
4,535
I would first try to disable ipv6 support on your pc just to see if it makes a differnce. IPv6 tends to not perform as well as ipv4 for many people.

That is a strange MTU size. You can set it to 1500 and see if it makes any large difference. A smaller MTU will affect the download speed because the ratio of the overhead due to the packet headers is higher. It should not make the huge difference you are seeing but in general you see ethernet running at 1500.
Turning off IPv6 didn't seem to change anything. I set the MTU to 1500 across the board, so I no longer have anything under 1500, but it still stops at 30Mbps when doing the speed test.
 

Alex_Greene

Reputable
Apr 30, 2020
39
1
4,535
You can try a old tool called IPERF to test between your 2 machines in your house. This is a very basic test and pretty much just tests the hardware and the drivers. The key thing it does not use is a browser which sometimes can cause slowness. You should see well over 900mbps and you can get much more with 2.5g nics on both with a switch/router that can also do 2.5.

Does steam download at 70MBYTE or did you convert the value. By default steam lists things in Mbytes. 70MBYTES would be a ok speed on a gigabit since steam does not always download at full speed many times.

The most common software to cause strange issues like this are the so called "gamer" network bloatware that you find bundled with some motherboard or video cards. You want to uninstall anything that talks about give certain types of traffic priority or QoS. One of the more popular ones is called CFOSspeed. Since it can only affect traffic inside your machine it has almost no use other than for people doing stupid stuff like running torrent downloads while they try to play games. Many people see strange issues especially on higher speed connections.
I tried downloading IPERF, but the program launches and immediately closes even when running as administrator. Am I missing some step to get this to open and run correctly?
 
It is a old cmd line tool. You must open cmd windows and key it in manually. You must use the server option on 1 machines and the client on the other and put in the ip of the server. It is a really simplistic tool which is part of the reason it does a good job of testing the network.
 

Alex_Greene

Reputable
Apr 30, 2020
39
1
4,535
It is a old cmd line tool. You must open cmd windows and key it in manually. You must use the server option on 1 machines and the client on the other and put in the ip of the server. It is a really simplistic tool which is part of the reason it does a good job of testing the network.
I ran the test with iperf (sorry about the huge delay) and the test came back with average 930 megabit speeds, meaning that my computer IS transmitting and receiving gigabit speeds. I'm just curious why the browser test is reading at 30 megabits
 
You could try to copy some large files between the machines and see what rates you see in the network tab of the resource monitor. In these cases the disk speed in the machines might limit you but you will still likely see well over 600mbps.

I would try different browsers and different speedtest locations. You really want to test to your ISP speedtest location. Many ISP have a link on their site that runs a speedtest. This one never leaves the ISP network and they tune it to always give the best numbers.

There are so much crap in browsers setting now days. Many can run forms of vpn or proxy

Still the most common cause of this is some form of QoS software on the pc. It many times get installed with the motherboard drivers or video cards. You want to remove any application that talks about giving traffic priority.
 

~cw

Prominent
Mar 31, 2022
39
3
545
Weird MTUs are a sign that you've run things like "TCP Optimizer" in the past. They can set all sorts of things which do more harm than good once you step up to very fast broadband connections. It almost sounds like your machine's Windows install has had Receive-Side Scaling disabled, or has a funky MSS or some other problem with window scaling.

I would consider doing a full network reset, https://kb.wisc.edu/helpdesk/page.php?id=70821 for Windows 10 or https://www.makeuseof.com/reset-network-settings-windows-11/ for Windows 11.

You should keep Windows Auto Tuning Level enabled on the default setting, otherwise you are effectively capping the maximum possible throughput your machine can achieve for HTTP traffic. This is due to Windows making use of a dynamic RWIN (Receive WINdow).
Note that autotuninglevel can completely disable window scaling, which isn't a good idea nowadays. https://docs.microsoft.com/en-us/troubleshoot/windows-server/networking/receive-window-auto-tuning-for-htt

Run a command prompt, then reply with the output of the following commands:

netsh interface ipv4 show subinterfaces
netsh int tcp show global
netsh int tcp show supplemental

For reference I have a 10 Gbit X550 NIC in my Windows 10 machine and it's configured as follows:

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 : disabled 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

The TCP global default template is internet TCP Supplemental Parameters ---------------------------------------------- Minimum RTO (msec) : 300 Initial Congestion Window (MSS) : 10 Congestion Control Provider : cubic Enable Congestion Window Restart : disabled Delayed ACK timeout (msec) : 40 Delayed ACK frequency : 2 Enable RACK : enabled Enable Tail Loss Probe : enabled

Some usually suggested things to run when diagnosing issues with problematic network connections are commands like
  • netsh winsock reset
  • netsh int ip reset
  • netsh interface ipv4 reset
  • netsh interface ipv6 reset
  • netsh interface tcp reset
  • ipconfig /flushdns

Those will completely reset your Windows Winsock settings, clears and reinstalls the IP protocol registry settings, clears any static IPs you have set on the Ethernet adapter, reset all the TCP settings to default and flush any cached DNS (not really relevant to your problem but doesn't hurt).

Check your network card's advanced settings by going to Device Manager > network card > Advanced tab. If there's an Advanced tab there (there isn't always, depending on driver and hardware) check things like Large Send Offload V2, Flow Control, Interrupt Moderation, Receive Side Scaling, Checksum Offload and make sure they are not disabled.
 
  • Like
Reactions: Alex_Greene
Solution

Alex_Greene

Reputable
Apr 30, 2020
39
1
4,535
Weird MTUs are a sign that you've run things like "TCP Optimizer" in the past. They can set all sorts of things which do more harm than good once you step up to very fast broadband connections. It almost sounds like your machine's Windows install has had Receive-Side Scaling disabled, or has a funky MSS or some other problem with window scaling.

I would consider doing a full network reset, https://kb.wisc.edu/helpdesk/page.php?id=70821 for Windows 10 or https://www.makeuseof.com/reset-network-settings-windows-11/ for Windows 11.

You should keep Windows Auto Tuning Level enabled on the default setting, otherwise you are effectively capping the maximum possible throughput your machine can achieve for HTTP traffic. This is due to Windows making use of a dynamic RWIN (Receive WINdow).
Note that autotuninglevel can completely disable window scaling, which isn't a good idea nowadays. https://docs.microsoft.com/en-us/troubleshoot/windows-server/networking/receive-window-auto-tuning-for-htt

Run a command prompt, then reply with the output of the following commands:

netsh interface ipv4 show subinterfaces
netsh int tcp show global
netsh int tcp show supplemental

For reference I have a 10 Gbit X550 NIC in my Windows 10 machine and it's configured as follows:





Some usually suggested things to run when diagnosing issues with problematic network connections are commands like
  • netsh winsock reset
  • netsh int ip reset
  • netsh interface ipv4 reset
  • netsh interface ipv6 reset
  • netsh interface tcp reset
  • ipconfig /flushdns
Those will completely reset your Windows Winsock settings, clears and reinstalls the IP protocol registry settings, clears any static IPs you have set on the Ethernet adapter, reset all the TCP settings to default and flush any cached DNS (not really relevant to your problem but doesn't hurt).

Check your network card's advanced settings by going to Device Manager > network card > Advanced tab. If there's an Advanced tab there (there isn't always, depending on driver and hardware) check things like Large Send Offload V2, Flow Control, Interrupt Moderation, Receive Side Scaling, Checksum Offload and make sure they are not disabled.
Dude, you are the BOMB, that totally fixed my problem! I've been dealing with this for a while, man, I really appreciate the advice. I'm an aspiring IT networking troubleshooter and admin, so I'm definitely gonna keep these commands and steps in mind for later.
 
  • Like
Reactions: ~cw

~cw

Prominent
Mar 31, 2022
39
3
545
Dude, you are the BOMB, that totally fixed my problem! I've been dealing with this for a while, man, I really appreciate the advice. I'm an aspiring IT networking troubleshooter and admin, so I'm definitely gonna keep these commands and steps in mind for later.

Nice, always happy to hear stuff is working again. For what it’s worth, you should use iperf3, and get the latest version for Windows from https://github.com/ar51an/iperf3-win-builds (has various bug fixes over the older versions more widely available online).
Run command prompt, navigate to where the .exe is then run iperf3 -h to see all the options. You can run it with -s to start a listening server and connect to it with the -c switch. For testing over a LAN one thread is fine, but you will notice per-connection bandwidth limits when testing online; if you run a test with 5 or 10 concurrent threads (see the help screen for how to do this) you will notice the bandwidth used should scale proportionally as you increase the value.

For quick tests, I tend to use something like Clouvider’s public test servers: https://as62240.net/speedtest

Do you know what command specifically fixed your issue?