Le problème de l’Ethernet en 2022

Nous sommes en 2022, et – bizarrement – les performances en Ethernet de nos appareils est moins bonne qu’il y a quelques années, au moins sur les ordinateurs portables.

Apple a commencé à supprimer l’Ethernet dès 2008 avec le MacBook Air, avant de généraliser l’absence dès la gamme 2013. Dans le monde des PC, c’est moins flagrant : l’Ethernet est encore de la partie dans pas mal de PC portables (entrée de gamme, joueurs, etc.) et parfois dans les ultraportables, même si ça reste rare.

La première solution de repli, c’est évidemment le Wi-Fi, mais ce n’est pas le sujet du jour. Non, la principale solution, en réalité, c’est l’Ethernet en externe. Au fil du temps, j’ai rencontré plusieurs choix, plus ou moins performants. Les deux premiers sont rares et on va passer rapidement : les adaptateurs USB 2.0. Vous trouverez soit des modèles limités à 100 Mb/s (comme celui d’Apple sorti en 2008), soit des modèles 1 Gb/s branchés sur un bus USB 2.0, ce qui limite en pratique aux environs de 250 Mb/s (on reste généralement assez loin des 480 Mb/s théoriques). Il ne faut pas penser qu’ils sont rares : on en trouve régulièrement dans des écrans USB-C, pour une question technique. Pour faire simple, une implémentation classique de l’USB-C sur un écran 4K (2160p) force automatiquement l’USB sur la version 2.0. Donc dans pas mal de cas, si vous branchez un écran avec un seul câble USB-C, l’éventuelle prise Ethernet va être limitée. Dans la même veine, si vous branchez un adaptateur USB 3.0 derrière ce type d’écran, vous aurez le même résultat : le hub USB interne est parfois limité à l’USB 2.0.

Ca ne touche pas que les vieux écrans ou les modèles d’entrée de gamme : un modèle comme le Pro Display XDR a des prises USB-C bloquée en USB 2.0 dans certains cas. En fait, ça va un peu dépendre de l’écran et un peu de l’ordinateur en face, notamment les normes DisplayPort supportées. Le problème peut d’ailleurs aussi se poser sur les hubs USB-C : ceux qui permettent d’atteindre du 4K à 60 Hz sont limités à l’USB 2.0 sur les prises externes dans certains cas.

L’Ethernet 1 Gb/s

Maintenant, même avec des adaptateurs annoncés comme « gigabit », les performances varient. On peut les classer en plusieurs catégories, avec les performances associées. Dans le premier groupe, on retrouve les modèles USB 3.0 (prise USB A ou C, ça ne change pas grand chose), essentiellement à base de Realtek 8153. C’est une puce courante, peu onéreuse et bien supportée par les différents OS, sans pilotes. Et en pratique, on peut espérer ~850 à 900 Mb/s (parfois moins), avec une occupation CPU assez élevée (sur un MacBook Pro 2017, j’ai 145 % d’occupation sur le Core i7, sur un total de 800 %). Dans le second groupe, il y a les contrôleurs PCI-Express, comme les puces Intel ou Broadcom. On peut atteindre ~930 Mb/s (oui, c’est un peu plus) avec une occupation CPU plus faible. Ensuite, les modèles USB 3.0 compatibles 2,5 Gb/s (essentiellement la puce RTL8156), avec une occupation CPU élevée mais un débit (en Ethernet 1 Gb/s) un rien plus élevé (un peu plus de 900 Mb/s). Enfin, on trouve les puces à 10 Gb/s, essentiellement en PCI-Express. Elle atteignent de bons débits en Ethernet à 1 Gb/s (de l’ordre des contrôleurs standards, donc vers 900 à 950 Mb/s) et permettent évidemment d’aller plus vite. L’occupation CPU varie un peu en fonction de ce que vous demandez.

146 % de CPU (soit en gros 1,5 coeur)

J’en arrive au sujet principal. En 2022, on trouve (beaucoup) plus souvent un contrôleur interfacé en USB qu’un contrôleur en PCI-Express. Premièrement, dans les adaptateurs basiques : tous les modèles externes (ou presque) utilisent la puce de Realtek. le seul contre-exemple évident est l’adaptateur Thunderbolt vers Ethernet d’Apple, mais il a deux défauts. Premièrement, il est cher (35 € en prix public, contre généralement 20 € de moins pour un simple USB-C). Et deuxièmement… il est Thunderbolt. Il nécessite donc un appareil avec du Thunderbolt 1 ou 2 (en gros, un Mac…) ou l’utilisation d’un adaptateur Thunderbolt 3 vers 2 (55 €).

Deuxièmement, les hubs USB-C utilisent assez logiquement des puces interfacées en USB en interne. Et même dans les stations d’accueil Thunderbolt 3 et 4, on trouve de plus en plus fréquemment un contrôleur USB, pour un côté pratique évident. Si les stations Thunderbolt 1 et 2 utilisent majoritairement une puce en PCI-Express, tout comme les premières générations de stations en Thunderbolt 3, ce n’est plus le cas en Thunderbolt 3 ou 4 sur les modèles récents. En effet, les derniers contrôleurs Intel permettent de connecter les stations en Thunderbolt ou en USB-C, ce qui améliore la compatibilité, mais a un effet pervers : l’Ethernet passe du PCI-Express à l’USB en interne. L’avantage, c’est que la prise Ethernet passe dans tous les cas, que la station soit connectée en Thunderbolt ou en USB-C. Le désavantage, c’est que les performances diminuent (un peu).

Pour l’exemple, ma station Startech a une puce Intel interfacée en PCI-Express, quand ma station WD a une puce Realtek en USB (comme le Seagate testé en 2020, d’ailleurs). Le résultat, c’est une connexion plus lente dans les tests (à l’usage, ce n’est pas toujours visible), avec une occupation CPU élevée. Le contrôleur a un comportement aléatoire : parfois j’ai un débit élevé… et parfois ça descend à 650 ou 700 Mb/s. Avec les autres appareils testés, le débit est beaucoup plus stable dans les mêmes conditions.

Quatre adaptateurs

Pour mettre en avant le problème, j’ai pris quelques adaptateurs et mesurés deux choses : le débit maximal avec l’application Speedtest et le temps d’installation de Shadow of the Tomb Raider. Pourquoi lui ? Parce qu’il existe sur Mac et que le temps d’installation dépend de la vitesse de la connexion… mais aussi du CPU. Comme Steam décompresse pas mal de données, on peut réduire le temps d’installation en utilisant un CPU plus rapide… ou en utilisant un adaptateur qui consomme moins de CPU.

• Un adaptateur USB-C vers Ethernet basique, Aukey. Le débit maximal mesuré est de 912 Mb/s, le jeu s’installe en 9 minutes et 36 secondes (576 secondes).
• Le dock WD D50, qui intègre la même puce dans le dock (connecté en Thunderbolt). le débit maximal mesuré est plus faible (876 Mb/s) et nettement plus variable (de l’ordre de ~750 Mb/s dans pas mal de tests). Le jeu s’installe en 9:55 (595 secondes, c’est assez proche).

Le plus lent

• Un hub USB-C Satechi, doté de prises USB-A et de la même puce Realtek. Le débit est proche des autres (887 Mb/s) et le temps d’installation aussi (9:46, 586 secondes).
• Un adaptateur USB-C vers Ethernet 2,5 Gb/s. Ce n’est pas nécessairement intuitif, mais la bande passante est un peu plus élevée (922 Mb/s) et l’usage CPU plus faible à 1 Gb/s. On gagne quand même environ 30 secondes sur l’installation (9:18, 558 secondes). Connecté directement à la Box en Ethernet 10 Gb/s, j’obtiens presque le maximum de la ligne (1 922 Mb/s) mais le temps d’installation ne diminue pas drastiquement : 8 minutes et 44 secondes (524 secondes). En fait, on atteint surtout les limites du MacBook Pro et ses quatre coeurs : pour se donner une idée, un gros PC (Core i9 9900KS) sur la même ligne installe le jeu en 5 minutes dans le meilleur des cas.

Le plus rapide (mais avec une ligne à 2 Gb/s)

• Un adaptateur Thunderbolt vers Ethernet Apple (avec l’adaptateur Thunderbolt 2 vers 3). Il utilise une puce Broadcom, et le débit est de 930 Mb/s (la valeur la plus élevée). Qui plus est, on gagne vraiment sur l’installation : 8 minutes et 36 secondes (516 secondes), soit une bonne minute de moins que les autres adaptateurs.

Le plus rapide à 1 Gb/s

• Une station d’accueil Thunderbolt 3 (Startech) avec un contrôleur Intel. Le débit atteint 918 Mb/s, mais le temps d’installation est dans la norme (9:44, 584 secondes). Je pensais gagner en performances, mais le pilote passe par DriverKit avec une consommation CPU assez élevée en pratique.

Les tests sont assez éloquents sur un point : en dehors du fait que la puce Broadcom en Thunderbolt est plus rapide de façon marginale (encore que, il est 6 % plus rapide que le plus lent des adaptateurs, ce n’est pas négligeable), l’occupation CPU nettement plus faible rend certaines tâches plus rapides. Ce n’est pas nécessairement intuitif de se dire qu’un simple adaptateur Ethernet peut réduire le temps d’installation de plus d’une minute, mais c’est le cas, avec un gain bien visible : c’est 15 % plus rapide. Après, il faut bien se dire que le problème se pose en partie uniquement sur les « petites » machines : un transfert qui utilise la puissance d’un coeur (ou plus) si vous en avez quatre, c’est embêtant. Sur un Mac plus moderne avec dix ou vingt coeurs, c’est évidemment moins gênant dans l’absolu…

Le problème de la démonstration, c’est que l’adaptateur est cher si vous avez un Mac en Thunderbolt 3, et que les stations d’accueil Thunderbolt avec une puce Broadcom restent rares. Ce qui ramène au point de départ : en 2022, l’Ethernet est moins rapide qu’il y a 5 ou 10 ans sur une ligne standard. Je sais évidemment parfaitement qu’il est possible de dépasser 1 Gb/s (je suis équipé) mais dans les faits, une bonne partie des appareils est incapable de le faire.