Preuve par les faits :
Depuis le routeur (Routeur Netgear R7800 avec firmware Voxel) :root@HERMES:~$ speedtest
serverid: 31993
isp: K-NET SARL
latency: 7
upload: 945102
download: 453455
Netdata du routeur pendant le test
depuis le routeur :
On peut voir clairement la charge CPU
du routeur augmenter pendant le test.
On distingue deux parties :
– la première, pendant le test upload, le processeur
du routeur ne sature pas (mais atteint entre 60 et 80%), pas de saturation donc pas de ralentissement, le test upload est valable (945 Mbps).
– la seconde, pendant le test download, le processus
du routeur sature (99 à 100%), donc ralentissement, le test download n'est pas valable (453 Mbps).
Plus en détail, les statistiques générales pendant les deux phases :
Upload :
On voit le CPU qui est fortement sollicité, mais ne sature pas, et le IP Outbound qui est très élevé.
Download :
On voit le CPU qui est saturé (il n'arrive pas à suivre), et le IP Inbound qui est à 0.45 Gbps
Depuis un SBC relié au routeur (Odroid N2+ avec linux Armbian) :root@hestia:~# speedtest
Speedtest by Ookla
Server: SFR - Trappes (id = 31993)
ISP: K-NET SARL
Latency: 7.88 ms (0.11 ms jitter)
Download: 940.42 Mbps (data used: 1.2 GB )
Upload: 926.69 Mbps (data used: 774.3 MB )
Packet Loss: Not available.
Result URL: https://www.speedtest.net/result/c/22c4c2d6-55d9-4605-932c-36b0ad6d3b35
Netdata du
routeur pendant le test depuis le
SBC derrière le routeur :
On voit bien qu'il est peu impacté.
Netdata du
SBC pendant le test depuis le
SBC derrière le routeur (pour vérifier son CPU) :
La puissance du CPU du SBC est peu impacté par le test, pas de saturation.
Explication :Les données arrivent sur, et partent depuis le routeur via l'interface ethernet WAN.
Quand le test est effectué depuis le routeur, elles sont envoyées vers et transmises depuis le routeur lui-même (pas de forwarding sur le LAN). On quitte donc l'optimisation matérielle. De plus, le code du speedtest est exécuté par le processeur du routeur. N'étant pas conçu pour cela, le processeur sature et fausse complètement le test.
Quand le test est effectué sur le SBC, après le routeur (côté LAN du routeur), le routeur fait du forwarding entre les interfaces WAN et LAN (il n'est qu'un messager), cela utilise l'optimisation matérielle du routeur et sollicite peu le processeur. Le code du speedtest est exécuté par le processeur du SBC qui lui est capable de gérer cela.
Ces tests s'appliquent à mon matériel. Mon routeur est capable de gérer (tout juste) la partie upload du test, mais est clairement incapable de gérer la partie download.
D'autres routeurs saturent dans les deux sens.
Si cela n'est toujours pas clair, il faut considérer un routeur comme deux appareils en un :
1) la partie routeur, qui est bien évidemment optimisée pour cette fonction. Elle gère (dispatche) efficacement les flux de donnée réseau à très haute vitesse grâce à des processeurs spécialisés.
2) un petit ordinateur qui héberge l'OS du routeur. Ce dernier n'est pas très puissant.
Faire un speedtest depuis le routeur, signifie le faire depuis la partie (2), le petit ordinateur peu puissant.
Faire un speedtest depuis un appareil relié au routeur (PC, SBC…), ne sollicite que la partie (1) du routeur.
Moralité : on ne fait pas de speedtest depuis un routeur, les résultats ne sont pas pertinents/valables.