USB3 Gigabit Ethernet performance on MacOS

This is the second part of the USB3 Gigabit on MacOS series. On the first post we discussed on how to choose an USB3 Gigabit adapter. On this post we try to answer to the following question:

Does USB3 on MacOS supports gigabit speeds ? Read below to find out.

To start with, let’s remember why it might be important for some users how does USB3 allows for gigabit ethernet performance: most recent MacBooks lack ethernet jacks. This means that, for power users, there are only a limited set of alternatives:

  • Thunderbolt Gigabit adapters, for those laptops which support still support it
  • 802.11ac wifi
  • USB3 Gigabit adapters
  • USB-C (Using USB3.1 and Thunderbolt alternative mode) adapters, for for those laptops which actually have those ports

Now, we’re on some very interesting times, where normal things don’t happen, very often. Traditional Thunderbolt ports using Mini Display ports, once thought as ubiquitous on MacBooks are now not present on all new MacBooks. Those are now replaced by USB-C ports from USB3.1 spec, but supporting Thunderbolt v3 alternative mode, which is actually what Apple now offers on what regards to wired ethernet adapters. And this is only regarding Apple laptops.

On non-Apple laptops things aren’t much better. You do have USB3 ports, but from that point on everything goes: USB-C with no alternative modes supporting USB 3.1 Gen1 (5Gbps) or in some cases Gen2 (10GBps).

Finally, a word of advice: when buying USB-C adapters you need to ensure that the logical protocol is supported by both adapter and host. An Thunderbolt 3 adapter using a USB-C port doesn’t work if your laptop has an USB-C port, but doesn’t support Thunderbolt, as most non-Apple Laptops do…

So, the fact of the matter is that there isn’t one single immediate universal port you can plug an ethernet adapter, being the plain USB3 the best you can have, even if you may need a passive adaptor from USB Type C to Type B.

But getting back at the beginning, why would you need an additional ethernet adapter? Well, apart from the obvious “my company doesn’t have WiFi”, there’s other very basic reason, demonstrated by this screenshot:

iperf_ac1600

This test was performed using an 802.11ac Macbook Pro connected to a 1300Mbps AC wireless access point, usable bandwidth corresponds to a meagre 46% of the theoretical value, and this is on a single stream test. On bidirectional tests, this value drops to an even lower value due to the shared medium used by any 802.11 network, as the following screenshot shows (using iPerf2 instead of iPerf3):

iperf_1300ac_duplex

So, from 591Mbps and 46% on a duplex test this drops even further to 527Mbps and 41% comparing with the 1300Mbps theoretical bandwidth. This doesn’t even take into account real world performance which may also be sensible to micro-second latency and packet loss, even if low.

What how does it compare with a wire speed gigabit link? It doesn’t. Gigabit links offer uncompromised near 2 Gbps duplex performance, with extremely low latency and zero packet loss.

gbit duplex

Although this test does demonstrate that near 100% network efficiency is difficult to achieve, the available bandwidth it more than tripled as compared with an AC1300 link. Note that on this test a Thunderbolt gigabit adapter was used.

Package frontSo, would a USB3 gigabit network adapter be an alternative to a wirer gigabit port, or at least does it event beats a modern 802.11ac link ? To find out, we used a fairly well built USB3 hub with an embedded gigabit adapter, from Orico, reviewed on a previous article.

At the time, we only demonstrated that the adapter was actually able to negotiate wire gigabit speeds, which may not seem a lot, but just to put things into the right context, it was the first we tested which was able to do it…

Now, looking at what really matters: how does it perform?

Starting with single directional tests:

orico_ethernet

Well, not bad at all! The difference is a mere 3Mbps out of 930Mbps. Using a 5Gbps USB3 bus does help on ensuring that there aren’t immediate bottlenecks, and from an initial perspective it does perform as advertised.

But how does it perform on the duplex test?