Test-Peer
Ein Test-Peer ist ein kleines Programm, das du selbst auf einem Computer im selben Netzwerk wie dein iPhone oder iPad ausführst. Er antwortet auf das eigene Testprotokoll von Linkalyst, sodass die beiden Enden die Verbindung zwischen ihnen messen können.
Er ist kein Dienst zur Messung der Internetgeschwindigkeit und weder iperf noch ein anderes bestehendes Tool. Eine Website oder ein gewöhnlicher TCP-Dienst kann auf dieses Protokoll nicht antworten.
Welche Tools einen Test-Peer brauchen
- Durchsatztest
- throughput_peer.py · TCP 5202
- Latenztest im UDP-Modus
- echo_peer.py · UDP 9999
Dies sind die Standardports; beide lassen sich beim Start eines Peers ändern. Alle anderen Tools sowie der „Latenztest“ im Ping-Modus funktionieren ohne Test-Peer.
Download
Jeder Peer ist eine einzelne Python-Datei, die nur die Standardbibliothek verwendet. Der Computer benötigt Python 3.9 oder neuer und sonst nichts. Auf einem Mac ohne Python bietet der erste Befehl python3 an, die Befehlszeilen-Entwicklertools von Apple zu installieren, die Python enthalten.
throughput_peer.py 4.8 KB
Für den „Durchsatztest“. Sendet oder empfängt synthetische Daten über eine TCP-Verbindung.
- SHA-256
- 6f3cf1a7bb8b076d8df0ddf77eb642cb8bdfc4a626e470b0231a8e2bd1d9643c
echo_peer.py 7.8 KB
Für den „Latenztest“ im UDP-Modus. Sendet Pakete, die seinen Zugangscode enthalten, als Echo zurück.
- SHA-256
- d92e20436907a11897c9b14086360d9a4d92586c8c05250d5398e19a6bebfab4
Um einen Download zu prüfen, vergleiche den SHA-256-Wert oben mit der Ausgabe von shasum -a 256 echo_peer.py unter macOS oder Linux oder von certutil -hashfile echo_peer.py SHA256 unter Windows.
Beide Programme werden im vorliegenden Zustand bereitgestellt, gemäß Abschnitt 5 der Nutzungsbedingungen.
Bevor du einen Peer startest
- Betreibe einen Peer nur in einem privaten Netzwerk. Beide übertragen Klartext, keiner ist verschlüsselt, und der Durchsatz-Peer hat überhaupt keinen Zugangscode. Leite ihre Ports nicht aus dem Internet weiter.
- Ein Peer lauscht nur auf dem Computer selbst (127.0.0.1), bis du ihm eine Adresse gibst; bis dahin kann dein Smartphone ihn nicht erreichen. Der UDP-Peer lehnt öffentliche und Wildcard-Adressen ab und beantwortet nur Pakete von privaten Adressen.
- Der Durchsatz-Peer sendet und empfängt synthetische Daten. Er liest keine Dateien, behält nicht, was er empfängt, und leitet nichts weiter.
- Starte den Peer auf der Adresse der Schnittstelle, die du messen möchtest. Ist der Computer per Kabel verbunden, bleibt eine zweite Funkstrecke aus dem Ergebnis heraus.
Ausführen
- 01
Adresse des Computers ermitteln
Verwende die IP-Adresse der Schnittstelle, die sich im selben Netzwerk wie dein Smartphone befindet.
macOS · WLAN ist meist en0ipconfig getifaddr en0Windows · nach „IPv4-Adresse“ suchenipconfigLinuxhostname -I - 02
Peer auf dieser Adresse starten
Öffne ein Terminal in dem Ordner, in dem du die Datei gespeichert hast. Die Beispiele verwenden
192.168.1.20; ersetze diese durch die Adresse deines Computers. Unter Windows gibst dupystattpython3ein.Durchsatztestpython3 throughput_peer.py --host 192.168.1.20AusgabeListening on 192.168.1.20:5202 (single connection; 64 MiB / 60 s maximum)Latenztest über UDPpython3 echo_peer.py --bind 192.168.1.20AusgabeLinkalyst 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
Eingehende Verbindungen zulassen
Wenn eine Firewall fragt, ob Python eingehende Verbindungen annehmen darf, erlaube dies für das private Netzwerk. Die Firewall muss dafür nicht ausgeschaltet werden.
- 04
Adresse in Linkalyst eingeben
Gib für den „Durchsatztest“ unter „Test-Peer“ die Adresse und den Port ein, die der Peer ausgegeben hat. Füge für den „Latenztest“ im UDP-Modus ein UDP-Ziel mit dieser Adresse und diesem Port hinzu und gib den 16-stelligen Zugangscode ein, den der UDP-Peer ausgegeben hat.
- 05
Computer wach halten, dann Peer beenden
Der Computer muss während des gesamten Tests wach bleiben; auf einem Mac verhindert der Start des Peers mit
caffeinate -i python3 …den Ruhezustand bei Inaktivität. Drücke Ctrl+C, um den Peer zu beenden, wenn du fertig bist.
Optionen
throughput_peer.py
| --host ADDRESS | Numerische Adresse, auf der gelauscht wird. Standard: 127.0.0.1, nur vom Computer selbst erreichbar. |
| --port PORT | TCP-Port. Standard: 5202. |
| --once | Nach einer Verbindung beenden. |
echo_peer.py
| --bind ADDRESS | Private, Loopback- oder Link-Local-Adresse in numerischer Form, auf der gelauscht wird. Standard: 127.0.0.1. |
| --port PORT | UDP-Port. Standard: 9999. |
| --token CODE | Diesen 16-stelligen Zugangscode statt eines zufälligen verwenden. |
Führe eine der beiden Dateien mit --help aus, um die vollständige Liste zu sehen. Die Optionen des UDP-Peers zur Fehlerinjektion, etwa --drop-every, dienen zum Testen von Linkalyst selbst und machen die Ergebnisse nicht repräsentativ.
Wenn die App den Peer nicht erreicht
Jede Anfrage läuft in ein Timeout, oder die Verbindung schlägt fehl
Prüfe, ob Smartphone und Computer im selben Netzwerk sind und nicht in einem Gastnetzwerk, das Geräte voneinander trennt; ob die Adresse in der App die ist, die der Peer ausgegeben hat; und ob die Firewall Python zulässt.
Der UDP-Peer beendet sich mit --bind must be a numeric private/loopback/link-local address
Gib ihm eine private IPv4- oder IPv6-Adresse, die zu diesem Computer gehört, in numerischer Schreibweise. Hostnamen, 0.0.0.0 und öffentliche Adressen werden abgelehnt.
Address already in use
Ein anderer Peer oder ein anderes Programm verwendet den Port. Beende dieses, oder starte den Peer mit --port und gib in der App denselben Port ein.
Der UDP-Peer läuft, aber es kommt nichts zurück
Prüfe den Zugangscode. Der Peer ignoriert Pakete ohne den Code, den er ausgegeben hat, und die App behält den Code nur, solange sie läuft; gib ihn also erneut ein, nachdem die App geschlossen wurde.