Pair de test
Un pair de test est un petit programme que vous exécutez vous-même sur un ordinateur du même réseau que votre iPhone ou votre iPad. Il répond au protocole de test propre à Linkalyst, ce qui permet aux deux extrémités de mesurer la liaison entre elles.
Ce n’est pas un service de mesure du débit Internet, ni iperf ni un autre outil existant. Un site web ou un service TCP ordinaire ne peut pas lui répondre.
Les outils qui en ont besoin
- Test de débit
- throughput_peer.py · TCP 5202
- Test de latence en mode UDP
- echo_peer.py · UDP 9999
Ce sont les ports par défaut, et chacun peut être modifié au lancement d’un pair. Tous les autres outils, ainsi que le « Test de latence » en mode ping, fonctionnent sans pair de test.
Téléchargement
Chaque pair est un unique fichier Python qui n’utilise que la bibliothèque standard. L’ordinateur a besoin de Python 3.9 ou version ultérieure, et de rien d’autre. Sur un Mac sans Python, la première commande python3 propose d’installer les outils de développement en ligne de commande d’Apple, qui l’incluent.
throughput_peer.py 4.8 KB
Pour le « Test de débit ». Envoie ou reçoit des données synthétiques sur une seule connexion TCP.
- SHA-256
- 6f3cf1a7bb8b076d8df0ddf77eb642cb8bdfc4a626e470b0231a8e2bd1d9643c
echo_peer.py 7.8 KB
Pour le « Test de latence » en mode UDP. Renvoie en écho les paquets qui portent son code d’accès.
- SHA-256
- d92e20436907a11897c9b14086360d9a4d92586c8c05250d5398e19a6bebfab4
Pour vérifier un téléchargement, comparez l’empreinte SHA-256 ci-dessus avec la sortie de shasum -a 256 echo_peer.py sur macOS ou Linux, ou de certutil -hashfile echo_peer.py SHA256 sous Windows.
Les deux programmes sont fournis en l’état, conformément à la section 5 des Conditions d’utilisation.
Avant d’en lancer un
- N’exécutez un pair que sur un réseau privé. Les deux transmettent en texte clair et aucun n’est chiffré, et le pair de débit n’a aucun code d’accès. Ne redirigez pas leurs ports depuis Internet.
- Un pair n’écoute que sur l’ordinateur lui-même (127.0.0.1) tant que vous ne lui donnez pas d’adresse ; votre téléphone ne peut donc pas le joindre avant cela. Le pair UDP refuse les adresses publiques et génériques, et ne répond qu’aux paquets provenant d’adresses privées.
- Le pair de débit envoie et reçoit des données synthétiques. Il ne lit aucun fichier, ne conserve pas ce qu’il reçoit et ne transfère rien.
- Lancez le pair sur l’adresse de l’interface que vous voulez mesurer. Avec un ordinateur en connexion filaire, le résultat n’inclut pas de second saut sans fil.
Lancer le pair
- 01
Trouver l’adresse de l’ordinateur
Utilisez l’adresse IP de l’interface qui se trouve sur le même réseau que votre téléphone.
macOS · le Wi-Fi est généralement en0ipconfig getifaddr en0Windows · cherchez « Adresse IPv4 »ipconfigLinuxhostname -I - 02
Lancer le pair sur cette adresse
Ouvrez un terminal dans le dossier où vous avez enregistré le fichier. Les exemples utilisent
192.168.1.20; remplacez cette adresse par celle de votre ordinateur. Sous Windows, tapezpyau lieu depython3.Test de débitpython3 throughput_peer.py --host 192.168.1.20SortieListening on 192.168.1.20:5202 (single connection; 64 MiB / 60 s maximum)Test de latence en UDPpython3 echo_peer.py --bind 192.168.1.20SortieLinkalyst UDP echo peer: 192.168.1.20:9999 Access code: 3f9c2a61d04b7e85 Private networks only. Do not forward this port from the Internet; the access code is not encryption. Press Ctrl+C to stop. - 03
Autoriser les connexions entrantes
Si un pare-feu demande si Python peut accepter des connexions entrantes, autorisez-le sur le réseau privé. Il n’est pas nécessaire de désactiver le pare-feu.
- 04
Saisir l’adresse dans Linkalyst
Pour le « Test de débit », saisissez sous « Pair de test » l’adresse et le port affichés par le pair. Pour le « Test de latence » en mode UDP, ajoutez une cible UDP avec cette adresse et ce port, puis saisissez le code d’accès de 16 caractères affiché par le pair UDP.
- 05
Garder l’ordinateur éveillé, puis arrêter le pair
L’ordinateur doit rester éveillé pendant toute la durée du test ; sur un Mac, lancer le pair avec
caffeinate -i python3 …empêche la mise en veille pour inactivité. Appuyez sur Ctrl+C pour arrêter le pair une fois terminé.
Options
throughput_peer.py
| --host ADDRESS | Adresse numérique d’écoute. Par défaut : 127.0.0.1, que seul l’ordinateur lui-même peut joindre. |
| --port PORT | Port TCP. Par défaut : 5202. |
| --once | Se termine après une connexion. |
echo_peer.py
| --bind ADDRESS | Adresse numérique d’écoute, privée, de bouclage ou lien-local. Par défaut : 127.0.0.1. |
| --port PORT | Port UDP. Par défaut : 9999. |
| --token CODE | Utilise ce code d’accès de 16 caractères au lieu d’un code aléatoire. |
Lancez l’un ou l’autre fichier avec --help pour obtenir la liste complète. Les options d’injection de pannes du pair UDP, comme --drop-every, servent à tester Linkalyst lui-même et rendent les résultats non représentatifs.
Si l’app ne parvient pas à joindre le pair
Toutes les requêtes expirent, ou la connexion échoue
Vérifiez que le téléphone et l’ordinateur sont sur le même réseau, et non sur un réseau invité qui isole les appareils ; que l’adresse saisie dans l’app est bien celle affichée par le pair ; et que le pare-feu autorise Python.
Le pair UDP s’arrête avec --bind must be a numeric private/loopback/link-local address
Donnez-lui une adresse IPv4 ou IPv6 privée appartenant à l’ordinateur, écrite sous forme numérique. Les noms d’hôte, 0.0.0.0 et les adresses publiques sont refusés.
Address already in use
Un autre pair ou programme utilise le port. Arrêtez-le, ou lancez le pair avec --port et saisissez le même port dans l’app.
Le pair UDP tourne mais rien ne revient
Vérifiez le code d’accès. Le pair ignore les paquets qui ne portent pas le code qu’il a affiché, et l’app ne conserve le code que tant qu’elle est en cours d’exécution : saisissez-le donc à nouveau après la fermeture de l’app.