it-swarm.com.de

Wie diagnostiziere und visualisiere ich hohe Ping-Zeiten zum WLAN-Router?

Ich sehe unberechenbare und manchmal sehr lange Ping-Zeiten zu meinem WLAN-Router, der nur einen Sprung entfernt ist. Ping 192.168.1.1 führt manchmal zu 400-800 ms Latenz.

Es gibt viele Dinge zu versuchen (Firmware, Router-Platzierung, AP-Kanal usw.), aber ich möchte dieses Problem etwas methodischer angreifen:

  • Erstens, wie kann ich die Leistung meines Netzwerks visualisieren ?
  • Wie kann ich dann die Leistung einer bestimmten Konfiguration bewerten , damit ich sie nach der Durchführung von Anpassungen zuverlässig vergleichen kann?
65
Paul Irish

Diese Serverfehler-Antwort enthält eine gute allgemeine Anleitung, was zu tun ist. Beginnen Sie also damit. Der letzte Schritt ist allerdings ein Trottel: Vermutlich möchten Sie (ich meine) dafür nicht in dedizierte Hardware investieren ...

Im Folgenden finden Sie einige gute Tools, um zunächst den Zustand der Konnektivität innerhalb des lokalen WLAN-Netzwerks und dann einen Internet-Endpunkt zu verstehen.

Wifi-Tools

NetSpot (für Mac)

Es verfolgt die lokalen WiFI-APs und liefert Basisdaten wie SNR, Kanal, Signalstärke. Es kann auch eine grundlegende Standortuntersuchung für einen physischen Raum durchgeführt werden, die Stärken und Störungen anzeigt. Im AP-Erkennungsmodus können Sie auch die Signalstärke über einen bestimmten Zeitraum hinweg aufzeichnen, um Platzierungen zu testen und die Interferenzmöglichkeiten anzupassen. enter image description hereenter image description hereenter image description here

Wifi Speed ​​Test für Android

Sehr hilfreich. Sie werden einen einfachen Python-Server auf Ihrem Computer ausführen und die App kann einige Szenarien testen, die Ihnen Echtzeit-Geschwindigkeits-Feedback geben.

enter image description here

Wifi Analyzer, eine weitere großartige Android-App, bietet einige nützliche Einblicke in die aktiven AP-Wifi-Kanäle. Dies könnte das beste kostenlose Tool für die Auswahl eines AP-Kanals sein, ohne viel Arbeit zu erledigen.

iPerf

Gut angesehenes Tool zum Verständnis der lokalen Netzwerkleistung. Sie benötigen zwei Boxen, eine als Server, eine als Client. Sie können eine Reihe von Parametern einrichten, einen Test ausführen und die Ergebnisse für Bandbreite und Jitter anzeigen. Ich bevorzuge die Verwendung mit der jPerf-GUI für die Darstellung von Ergebnissen und die Optimierung von Parametern.

brew install iperf
iperf -s # on server, next one on client
iperf -c 192.168.1.XXX -P 1 -i 1 -p 5001 -f m -t 60

enter image description here

Integrität der Internetverbindung

mtr (Ping & Traceroute kombiniert)

Pingt alle Ihre Traceroute-Hopfen. Stellt Trenddaten bereit. Verrückt, großartig.

brew install mtr
mtr 8.8.4.4

speedtest-cli

Die CLI-Version der üblichen ookla speedtest.net-Sache. Der Projektbetreuer erklärt, dass dies nicht konsistent ist, es jedoch praktisch ist, große Unterschiede zu messen.

wget -O speedtest-cli https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py
chmod +x speedtest-cli
speedtest-cli --list | head # and chose a top server (sorted by distance)
speedtest-cli --server 2761 # re-use the same server

NPAD : Netzwerkpfad- und Anwendungsdiagnose

Automatischer Diagnoseserver zur Behebung von Endsystem- und Last-Mile-Netzwerkproblemen. Nachdem Sie eine Reihe von Tests ausgeführt haben, wird eine Seite mit einer Ergebniszusammenfassung wie folgt angezeigt . Ich empfehle, diesen NPAD-Serverumleitungslink zu verwenden, um den nächstgelegenen NPAD-Server zu finden (sie sind alle vorbei) und diesen Hostnamen für Ihre Tests zu verwenden.

  wget http://netspeed.usc.edu:8000/diag-client.c
  cc diag-client.c -o diag-client
# ./diag-client <server_name> <port> <target_RTT> <target_data_rate_in_MB/S>
  ./diag-client ps.psc.xsede.org 8001 30 5

enter image description here


Meine persönlichen Ergebnisse:

Ich habe ein paar Stunden damit verbracht, verschiedene Dinge auszuprobieren (von DD-WRT auf Tomato-Firmware umzustellen) und zu lesen. Es stellte sich heraus, dass es sich nicht um eine Netzwerkschicht handelte und es sich um eine gute alte RF Störung handelte, hauptsächlich durch Bluetooth! Ich hatte meinen Computer, eine Bluetooth-Maus und eine Tastatur innerhalb von 5 Fuß des Routers. (Und alte Router immer noch auf 2,4 GHz, wo sie zusammenstoßen.)

Dafür habe ich das Beste aus Wifi Speed ​​Test for Android herausgeholt und das regelmäßig ausgeführt, während ich Dinge in der Wohnung herumbewegt habe. Da etwa alle 200 ms Aktualisierungen gemeldet werden, wird klar kommuniziert, wann Interferenzen meine Pakete verworfen haben.

Ich empfehle auf jeden Fall, den Leitfaden Common Sources of Interference von Metageek zu lesen. (Sie machen auch InSSIDer und andere Wifi-Analyse-Tools, die gut aussehen.)

enter image description here

Ein Werkzeug, das ich nicht hatte, war ein Messgerät für die physikalische Spektrumanalyse. Handys und Laptops können nur Wifi-APs erkennen, aber keine Störungen durch Bluetooth oder andere HF-basierte Technologien erkennen. Metageek hat einige nette Lösungen in diesem Bereich ( Wi-Spy und inSSIDer Office ) und hoffentlich werden weitere Tools wie AirShark auftauchen.

78
Paul Irish

Wie in meinem obigen Kommentar erwähnt: Tools, die häufig zur Diagnose von WLAN-Problemen verwendet werden, können dieses Problem tatsächlich verursachen. Beim Scannen nach Wi-Fi-Netzwerken muss das Radio den Kanal deaktivieren. In der Regel weist es den AP an, Frames zu puffern, damit es "schlafen" kann, und dann die Kanäle zum Scannen umzuschalten.

Außerdem wird iOS und OS X seit Einführung von AirDrop den WLAN-Funkkanal ausschalten, um nach anderen AirDrop-Diensten zu suchen, und Yosemite wird den Kanal regelmäßig ausschalten, um die Übergabe zu unterstützen.

4
alfwatt

Also hatte ich diese WLAN-Ping-Schwankungen auch zum Router.

PING 192.168.0.1 (192.168.0.1): 56 data bytes
64 bytes from 192.168.0.1: icmp_seq=0 ttl=63 time=2.334 ms
64 bytes from 192.168.0.1: icmp_seq=1 ttl=63 time=1.813 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=63 time=2749.664 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=63 time=1748.912 ms
64 bytes from 192.168.0.1: icmp_seq=4 ttl=63 time=748.162 ms
64 bytes from 192.168.0.1: icmp_seq=5 ttl=63 time=1.796 ms
64 bytes from 192.168.0.1: icmp_seq=6 ttl=63 time=1.806 ms
64 bytes from 192.168.0.1: icmp_seq=7 ttl=63 time=1.991 ms
64 bytes from 192.168.0.1: icmp_seq=8 ttl=63 time=1.797 ms
64 bytes from 192.168.0.1: icmp_seq=9 ttl=63 time=1.832 ms
64 bytes from 192.168.0.1: icmp_seq=10 ttl=63 time=1.713 ms
64 bytes from 192.168.0.1: icmp_seq=11 ttl=63 time=1.819 ms
64 bytes from 192.168.0.1: icmp_seq=12 ttl=63 time=1.616 ms
64 bytes from 192.168.0.1: icmp_seq=13 ttl=63 time=1.748 ms
64 bytes from 192.168.0.1: icmp_seq=14 ttl=63 time=1.677 ms
64 bytes from 192.168.0.1: icmp_seq=15 ttl=63 time=3427.213 ms
64 bytes from 192.168.0.1: icmp_seq=16 ttl=63 time=2426.371 ms
64 bytes from 192.168.0.1: icmp_seq=17 ttl=63 time=1425.634 ms
64 bytes from 192.168.0.1: icmp_seq=18 ttl=63 time=424.834 ms
64 bytes from 192.168.0.1: icmp_seq=19 ttl=63 time=1.829 ms
64 bytes from 192.168.0.1: icmp_seq=20 ttl=63 time=1.691 ms
64 bytes from 192.168.0.1: icmp_seq=21 ttl=63 time=2.038 ms
64 bytes from 192.168.0.1: icmp_seq=22 ttl=63 time=1.679 ms
^C--- 192.168.0.1 ping statistics ---
23 packets transmitted, 23 packets received, 0% packet loss
round-trip min/avg/max/stddev = 1.616/564.346/3427.213/1015.102 ms

Ich habe den Router (von TL-WR743ND auf DIR-815) umgestellt, habe mehrere WLAN-USB-Adapter ausprobiert (meistens TP-LINKs, obwohl ich glaube, dass ich das Problem mit D-Link DWA-160 hatte) und bin von 2,5 GHz auf gegangen 5 GHz und durchforstete die Kanäle. Kein Glück, das Problem blieb bestehen.

Bis ich bemerkte, dass der Ping in Ordnung ist, wenn ich einen Netzwerkgeschwindigkeitstest durchführe oder einen Bittorrent-Client starte. Sie schwankt nur, wenn das Netzwerk inaktiv ist.

Könnte ein Problem mit Windows 7 oder etwas mit meinen TP-LINK-Adaptern sein, aber wenn ich das WLAN ein wenig belaste, verschwindet die Fluktuation und das Netzwerk funktioniert in Ordnung.

Bisher habe ich ein kleines Rust-Programm erstellt, um mein WLAN-Netzwerk auf dem neuesten Stand zu halten.

// Need a constant wifi load in order not to have the ping drops.
fn wifi_load() {
  // This *might* be useful if the router suddenly supports Keep-Alive.
  // Not the case with DIR-815 though, we'll keep making new connections to it.
  let config = hyper::client::pool::Config {max_idle: 1};

  let client = hyper::client::Client::with_pool_config (config);
  loop {
    let url = "http://192.168.0.1/css/init.css";
    if let Err (err) = client.get (url) .send() {
      log! ("wifi_load] Error fetching {}: {}", url, err);
      sleep (Duration::from_secs (9));}
    sleep (Duration::from_millis (100));}} 
3
ArtemGr