[SOLVED] Unstable gigabit connection

CurtisVL

Honorable
Jul 28, 2016
9
0
10,510
Hey guys,

I recently moved house and I now have a FTTP service, gigabit symmetrical!

However... I'm running into some issues with stability. Downloads from Steam for example seem 'fine', but HTTP downloads via Chrome or the downloads performed in some content-heavy games (Such as VRChat) seem to be extremely unreliable. Typically, the downloads will speed along for several MB, then slowly come to a halt, becoming frozen or incrementing at 0.1MB every second or two. After maybe 5-10 seconds this process repeats itself.

The disk being written to isn't a bottleneck here as I've ensured they're writing to an NVMe SSD (Which I've performed drive tests on too), I can also confirm that the downloads were faster on my old 50Mbps connection at my old house due to them not becoming stalled.

The workaround I've found is to set my 'Speed/Duplex' to 100Mbps full duplex instead of gigabit, this creates a MUCH more stable download.

Currently I'm using the built-in RealTek 'Gaming' Gigabit ethernet controller on my X570-Plus motherboard.
The router in use a ASUS RT-AC88U, now running ASUS WRT-Merlin but the issue persisted prior to the firmware change. (This was part of my debugging)
The router is connected to my internet provider's (Grain) modem, I'm afraid I don't know a make.

Speedtest.net shows reliable results of around 900 down and 950 up, this just isn't reflected in some situations.
I have performed speed tests with both Cloudflare and AWS to ensure my connection to the game's CDN's isn't the cause of the issue, I consistently had around 250 to 600 Mbps connection to AWS, and the full 900 Mbps to Cloudflare. (Note this does affect browser downloads too, not just in-game content in VRChat which uses AWD Cloudfront!)

What am I seeing here? Failing ethernet controller? Or broken cable? (Wouldn't a broken cable affect it at 100Mbps too?)

Let me know your thoughts! :)
 
Solution
You're right about the caps with QoS!

When enabled in Merlin, it forces NAT acceleration to be CPU bound, resulting in the connection speed tanking from the CPU load.

My AC86u was limited to about 300-400mbps with FQ_Codel or Cake enabled. So it's fine if your ISP speed is less than that, but won't work for gigabit because it's CPU bottlenecked. I don't think any ARM cpu will be able to do it well.

The only option I found was to build my own x86 router using a cheap Athlon 3000G($50) processor and a cheap A320 motherboard. Then I bought 2 NC110T server ethernet cards for $10 each. I used an old spare ATX pc case I had lying around. I use OpenWRT installed on a spare USB stick I had, so it doesn't even have a hard drive...

CurtisVL

Honorable
Jul 28, 2016
9
0
10,510
Just to add some of my testing, I can confirm that my laptop doesn't experience the same issues.

Unfortunately it doesn't have an ethernet port so I've had to test on wireless. Speedtest.net shows about 600 down while still seeing a stable download of the same content that's failing on my PC.

I suppose it narrows it down to on-board ethernet failing or cabling? (But again, would it be cabling in a situation like this considering it works at 100Mbps fine?)
 

CurtisVL

Honorable
Jul 28, 2016
9
0
10,510
It turns out I found the cause of the issue by accident!

Whilst uninstalling some debugging tools I was using, I found the cFosSpeed had (once again...) re-installed itself. (Turns out by MSI Dragon Center, which I've also uninstalled now)

This application being installed was single-handedly causing these networking issues. :)

I suppose this can be considered resolved now, but it was a much simpler issue than it initially seemed. Hopefully this saves someone else time in the future!
 
What is very strange is speedtest is actually a file download and upload that is not saved. It function very similar to steam in that it will run multiple parallel threads to force higher speeds.

If it was a ethernet cable issue you should have issues no matter what software you are using. A cable is stupid and even the ports have no knowledge of things like IP addresses or applications. Pretty much it is just a couple of mac addresses and then data payload.

So a quick search on your motherboard and I get a hit on asus, the way you wrote it made me think it was gigabyte brand for some reason.

Asus make good product but they love to bundle bloatware. The worst offender is any of their stupid "gamer" network acceleration. Yours has a program called CFOSspeed. I would uninstall that and see if it fixes the issue.
 
  • Like
Reactions: CurtisVL

CurtisVL

Honorable
Jul 28, 2016
9
0
10,510
What is very strange is speedtest is actually a file download and upload that is not saved. It function very similar to steam in that it will run multiple parallel threads to force higher speeds.

If it was a ethernet cable issue you should have issues no matter what software you are using. A cable is stupid and even the ports have no knowledge of things like IP addresses or applications. Pretty much it is just a couple of mac addresses and then data payload.

So a quick search on your motherboard and I get a hit on asus, the way you wrote it made me think it was gigabyte brand for some reason.

Asus make good product but they love to bundle bloatware. The worst offender is any of their stupid "gamer" network acceleration. Yours has a program called CFOSspeed. I would uninstall that and see if it fixes the issue.

Good timing actually, I just found the exact same thing myself purely accident when going through my uninstall list to find some debugging software I'd installed earlier.

Even more annoying it re-installed itself after system restart from MSI's tools, but as you noted, it also comes bundled with ASUS' bloatware as well. Windows Update tends to install some of this even if you want it or not.

Some top-tier 'tunnelling' and 'latency reduction' they're doing at cFos! I can't honestly think of a time it has benefited me.
 
Strange that we both posted at the same time.

That software is some of the most stupid stuff I have ever seen. It can not affect any traffic outside the machine and if you have a network bottleneck inside the machine then you are doing something strange. I guess if you just have to download your torrents and play games at the same time it is needed.

The problem comes on very fast connections. It seems this software somehow bottlenecks the network connection. I am not sure if this is overhead or if it is is related to the software restricting the maximum rate of any large data stream. This problem also occurs when you try to run similar stuff on the router.
The merlin firmware supports fancy QoS that actually work very well to for games in particular but it very cpu intensive so if you have a internet connection over a couple hundred megabit you will cap it out with this software.
 

CurtisVL

Honorable
Jul 28, 2016
9
0
10,510
Strange that we both posted at the same time.

That software is some of the most stupid stuff I have ever seen. It can not affect any traffic outside the machine and if you have a network bottleneck inside the machine then you are doing something strange. I guess if you just have to download your torrents and play games at the same time it is needed.

The problem comes on very fast connections. It seems this software somehow bottlenecks the network connection. I am not sure if this is overhead or if it is is related to the software restricting the maximum rate of any large data stream. This problem also occurs when you try to run similar stuff on the router.
The merlin firmware supports fancy QoS that actually work very well to for games in particular but it very cpu intensive so if you have a internet connection over a couple hundred megabit you will cap it out with this software.

You're right about the caps with QoS!

When enabled in Merlin, it forces NAT acceleration to be CPU bound, resulting in the connection speed tanking from the CPU load.
 
You're right about the caps with QoS!

When enabled in Merlin, it forces NAT acceleration to be CPU bound, resulting in the connection speed tanking from the CPU load.

My AC86u was limited to about 300-400mbps with FQ_Codel or Cake enabled. So it's fine if your ISP speed is less than that, but won't work for gigabit because it's CPU bottlenecked. I don't think any ARM cpu will be able to do it well.

The only option I found was to build my own x86 router using a cheap Athlon 3000G($50) processor and a cheap A320 motherboard. Then I bought 2 NC110T server ethernet cards for $10 each. I used an old spare ATX pc case I had lying around. I use OpenWRT installed on a spare USB stick I had, so it doesn't even have a hard drive. It boots from the USB stick in about 15-20 seconds, which is still quicker than any off the shelf router I've used.

Now I have full Gigabit traffic shaping QOS. It's awesome! Given the prices now, the 3000G being $99 and the Pentium G7400 for $84, I would still go with the 3000G for this specific task due to it's lower power use, cheaper motherboard and ram. Though the Pentium G7400 being based on the latest Alderlake probably has much better ipc than the aging Athlon based on Ryzen gen 1 cores. If you plan on upgrading your fiber to 2000-3000mbps or higher, the more powerful Pentium may be better.

If you have an old desktop lying around, and don't care about power usage, you can buy a few NIC cards and experiment with it as a router.
 
Last edited:
Solution