Bagaimana cara mendiagnosis dan memvisualisasikan waktu ping tinggi ke router wifi?

65

Saya melihat waktu ping yang tidak menentu dan terkadang sangat lama ke router wifi saya yang hanya berjarak satu hop. Ping 192.168.1.1terkadang memberikan rentang latensi 400-800 ms.

Ada banyak hal untuk dicoba (firmware, penempatan router, saluran AP, dll.), Tapi saya ingin menyerang masalah ini sedikit lebih metodis:

  • Pertama, bagaimana saya bisa memvisualisasikan kinerja jaringan saya?
  • Lalu, bagaimana saya bisa membandingkan kinerja konfigurasi yang diberikan, sehingga saya dapat membandingkan dengan andal setelah melakukan penyesuaian?
Paul Irish
sumber
Apa router dan / atau perangkat lunak router on-board yang Anda gunakan jika bukan stock install?
Jeff Clayton
@JeffClayton Linksys WRT54GSv2 (old-school) menjalankan Tomat (Shibby). Digunakan untuk menjalankan DD-WRT tetapi sudah bermasalah dan membingungkan untuk dipelihara.
Paul Irish
1
Apakah Anda memiliki masalah aktual atau apakah ini murni masalah kosmetik? Router WiFi pada umumnya tidak dirancang untuk menjadi respons ping super cepat, mereka memiliki pekerjaan nyata yang harus dilakukan.
David Schwartz
1
@ Davidvidchchartz kita harus bisa menyelesaikan bolak-balik penuh ke wifi AP di bawah 10ms, bukan? Jika latensi intra-wifi Anda di atas 500ms maka SETIAP PAKET yang Anda tarik dari web / internet juga mengalami latensi ini. Itu pembunuh.
Paul Irish
1
@ PaulIrish Semua benar, tapi itu tidak ada hubungannya dengan waktu ping. Ping mengukur jumlah latensi jaringan plus latensi respons ping itu sendiri. Router WiFi SoHo tidak dimaksudkan untuk menjadi responser ping yang efisien, jadi tidak disarankan menggunakan ping untuk mengukur latensi jaringan.
David Schwartz

Jawaban:

78

Jawaban serverfault ini memiliki panduan tingkat tinggi yang baik tentang apa yang harus dilakukan - jadi mulailah dengan itu. Itu langkah terakhir adalah doozy nyata: mungkin Anda (maksud saya, saya) tidak ingin berinvestasi dalam perangkat keras khusus untuk ini ...

Berikut adalah beberapa alat yang baik, pertama untuk memahami kesehatan konektivitas dalam jaringan wifi lokal, dan kemudian ke titik akhir internet.

Alat Wifi

NetSpot (untuk mac)

Ini melacak AP WiFI lokal dan menyediakan data dasar seperti SNR, Saluran, Kekuatan Sinyal. Ini juga dapat melakukan survei lokasi dasar untuk ruang fisik yang menunjukkan kekuatan dan gangguan. Dalam mode penemuan AP, Anda juga dapat memetakan kekuatan sinyal dari waktu ke waktu, memungkinkan Anda untuk menguji penempatan dan menyesuaikan kemungkinan interferensi. masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Wifi Speed ​​Test untuk Android

Sangat membantu. Anda akan menjalankan server python sederhana pada mesin Anda dan aplikasi dapat menguji beberapa skenario yang memberi Anda umpan balik kecepatan realtime.

masukkan deskripsi gambar di sini

Wifi Analyzer , aplikasi android hebat lainnya, memiliki beberapa pandangan berharga tentang apa saluran wifi AP aktif. Mungkin menjadi alat gratis terbaik untuk memilih saluran AP tanpa melakukan banyak pekerjaan.

iPerf

Alat yang dihormati untuk memahami kinerja jaringan lokal. Anda memerlukan dua kotak, satu sebagai server, satu sebagai klien. Anda dapat mengatur sejumlah parameter, menjalankan tes, dan melihat hasilnya untuk bandwidth dan jitter. Saya perfer menggunakannya dengan GUI jPerf untuk memetakan hasil dan parameter tweaking.

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

masukkan deskripsi gambar di sini

Kesehatan Konektivitas Internet

mtr (gabungan ping & traceroute)

Ping semua lompatan traceroute Anda. Menyediakan data tren. Gila luar biasa.

brew install mtr
mtr 8.8.4.4

speedtest-cli

Versi CLI dari hal speedtest.net ookla umum. Pemelihara proyek menyatakan itu tidak konsisten, tetapi tetap saja, berguna untuk mencoba mengukur perbedaan besar.

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 : Jalur Jaringan dan Diagnosis Aplikasi

Server diagnostik otomatis untuk pemecahan masalah sistem akhir dan masalah jaringan jarak jauh. Setelah menjalankan tes, berikan halaman Ringkasan Hasil seperti ini . Saya sarankan menggunakan tautan pengalihan server NPAD ini untuk menemukan server NPAD terdekat (semuanya sudah berakhir) dan menggunakan nama host itu untuk pengujian Anda.

  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

masukkan deskripsi gambar di sini


Hasil pribadi saya:

Saya menghabiskan beberapa jam untuk melakukan semua ini, mencoba berbagai hal (beralih dari DD-WRT ke firmware Tomat) dan membaca. Ternyata itu bukan lapisan jaringan dan merupakan gangguan RF lama, kebanyakan dari Bluetooth! Saya memiliki komputer, mouse dan keyboard bluetooth dalam jarak 5 kaki dari router. (Dan router lama masih di 2.4Ghz di mana mereka berbenturan.)

Untuk ini, saya mendapat hasil terbaik dari Wifi Speed ​​Test untuk Android , menjalankannya secara teratur sementara saya memindahkan barang-barang di apartemen. Karena melaporkan pembaruan setiap 200 ms atau lebih, itu jelas dikomunikasikan ketika gangguan menjatuhkan paket saya.

Saya merekomendasikan untuk membaca panduan Sumber Umum Interferensi dari Metageek. (Mereka juga membuat InSSIDer dan alat analisis Wifi lainnya yang tampak bagus.)

masukkan deskripsi gambar di sini

Satu alat yang tidak saya miliki adalah meteran analisis spektrum fisik. Ponsel dan laptop hanya dapat mendeteksi Wifi AP, tetapi tidak dapat menerima interferensi dari Bluetooth atau teknologi berbasis RF lainnya. Metageek memiliki beberapa solusi bagus di ruang ini ( Wi-Spy dan inSSIDer Office ) dan semoga kita melihat lebih banyak alat muncul seperti AirShark .

Paul Irish
sumber
Ini adalah alat yang indah, memperbarui catatan saya.
Jeff Clayton
Alat "cepat dan kotor" lainnya yang sangat berharga karena portabelnya adalah Wifi Analyzer untuk perangkat Android.
davidgo
Iya. Saya menyebutkan penganalisa WiFi secara singkat; itu mungkin alat terbaik untuk memahami gangguan saluran AP, meskipun dalam kasus saya, itu bukan masalah. Yang mengatakan, itu dilakukan dengan sangat baik.
Paul Irish
Daftar yang bagus, terima kasih. Hal lain yang selalu dicoba adalah melihat apa yang terjadi tanpa wifi. Setelah saya memiliki apa yang saya pikir adalah masalah wifi, tetapi menghubungkan langsung ke kabel memberi makan wifi AP dan menjalankan iPerf mengungkapkan Kabel Buruk sebagai penyebab sesungguhnya!
Ryan Dlugosz
1
Hmmmm. Bluetooth sangat tidak mungkin menyebabkan jenis gangguan yang Anda gambarkan, biasanya pola hopping AFS akan menghindari sinyal Wi-Fi 20MHz pada 2.4GHz. Anda tidak menjalankan saluran 40Mhz, bukan?
alfwatt
4

Seperti disebutkan dalam komentar saya di atas: Alat yang biasa digunakan untuk mendiagnosis masalah Wi-Fi sebenarnya dapat menyebabkan masalah ini. Saat memindai jaringan Wi-Fi, radio harus mematikan saluran, biasanya memberitahu AP untuk menyangga frame agar dapat 'tidur' kemudian beralih saluran untuk memindai.

Selain itu, iOS dan OS X sejak AirDrop diperkenalkan, akan mengambil saluran off-radio Wi-Fi untuk mencari layanan AirDrop lainnya dan karena Yosemite akan secara berkala mematikan saluran untuk mendukung handoff.

alfwatt
sumber
1
Poin bagus - Saya perhatikan masalah ini menggunakan InSSIDer di masa lalu - senang mendapatkan penjelasan untuk itu.
Nick
3

Jadi saya punya fluktuasi ping Wi-Fi ke router juga.

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

Saya beralih router (dari TL-WR743ND ke DIR-815), mencoba beberapa adapter USB Wi-Fi (kebanyakan TP-LINK, meskipun saya pikir saya punya masalah dengan D-Link DWA-160 juga), beralih dari 2,5 GHz ke 5GHz dan menjelajahi saluran. Tidak beruntung, masalahnya tetap ada.

Sampai saya perhatikan bahwa ketika saya melakukan tes kecepatan jaringan atau menjalankan klien bittorrent ping itu baik-baik saja. Ini hanya berfluktuasi ketika jaringan menganggur.

Mungkin masalah Windows 7 atau masalah dengan adaptor TP-LINK saya, tetapi ketika saya memberikan sedikit beban pada Wi-Fi fluktuasi hilang dan jaringan berfungsi dengan baik.

Sejauh ini saya telah membuat sedikit program Rust untuk menjaga jaringan Wi-Fi saya tetap terjaga.

// 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));}} 
ArtemGr
sumber