私は、たった1ホップ先のwifiルーターに対して、不安定で時々非常に長いping時間を見ています。 192.168.1.1
をpingすると、400から800ミリ秒の待ち時間が発生することがあります。
やるべきことはたくさんあります(ファームウェア、ルーターの配置、APチャンネルなど)、私はこの問題をもう少し系統的に攻撃したいと思います。
このサーバーのデフォルトの回答 には何をするべきかについてのハイレベルなガイダンスがあります - それでは始めましょう。その最後のステップは非常に面倒です:おそらくあなた(私は、私を意味します)はこれのために専用のハードウェアに投資したくないです...
以下は、最初にローカルWiFiネットワーク内の接続の健全性を理解するための、次にインターネットエンドポイントへの、いくつかの優れたツールです。
ローカルWiFI APを追跡し、SNR、Channel、Signal Strengthなどの基本データを提供します。それはまた強さおよび干渉を示す物理的なスペースのための基本的な現地調査をすることができる。 AP検出モードでは、信号強度を経時的にチャート化して、配置をテストし、干渉の可能性を調整することもできます。
非常に役立ちます。あなたはあなたのマシン上で簡単なpythonサーバを走らせるでしょう、そしてアプリはあなたにリアルタイムのスピードフィードバックを与えるいくつかのシナリオをテストすることができます。
Wifi Analyzer、もう1つの優れたAndroidアプリには、AP Wi-Fiチャネルがアクティブであることに関する貴重な意見がいくつかあります。多くの作業をせずにAPチャンネルを選択するための最良の無料ツールとなるかもしれません。
ローカルネットワークのパフォーマンスを理解するための定評のあるツール。 2つのボックスが必要です。1つはサーバーとして、もう1つはクライアントとしてです。いくつかのパラメータを設定し、テストを実行し、帯域幅とジッタの結果を確認できます。 jPerf GUI で結果をグラフ化したりパラメータを微調整したりするためにそれを使用することを好みます。
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
すべてのtracerouteホップをpingします。傾向データを提供します。クレイジーすごい。
brew install mtr
mtr 8.8.4.4
一般的なookla speedtest.netのCLIバージョン。プロジェクトメンテナはそれが一貫していないと宣言します、それでも、それでも大きな違いを測定することを試みるのは便利です。
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サーバーリダイレクトリンク を使って最も近いNPADサーバーを見つけて(それらはすべて終わっている)あなたのテストにそのホスト名を使うことをお勧めします。
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
私はいろいろなこと(DD-WRTからTomatoファームウェアへの切り替え)を試しながら読んで、これらすべてをやってかなりの時間を費やしました。ネットワーク層ではなく、古き良きRF干渉であることがわかりました。主にBluetoothからのものです。私は自分のコンピューター、ブルートゥースマウス、キーボードをルーターから5フィート以内に持っていた。 (そして、古いルータはまだ2.4GHzにあり、そこで衝突します。)
このために、私はAndroid用Wifiスピードテストを最大限に活用し、私はアパートの中で物事を動かしながら定期的にそれを実行しました。それは200msかそこら毎に更新を報告するので、それは干渉が私のパケットを落としたとき明らかに伝えました。
Metageekの 一般的な干渉源 を読むことを強くお勧めします。 (それらはまた、InSSIDerや他のWifi解析ツールを良さそうに見せています。)
私が持っていなかった一つの道具は物理的スペクトル分析計でした。携帯電話やラップトップはWifi APしか検出できませんが、Bluetoothや他のRFベースの技術からの干渉を拾うことはできません。 Metageekはこの分野( Wi-Spy および inSSIDer Office )でいくつかの良い解決法を持っています、そしてうまくいけば私たちはもっと多くのツールが AirShark のように現れるのを見ます。
上記の私のコメントで述べたように:Wi-Fi問題を診断するのに一般的に使用されるツールは実際にこの問題を引き起こす可能性があります。 Wi-Fiネットワークをスキャンするとき、無線はチャネルをオフにする必要があります。通常、APはそのためにフレームをバッファリングして「スリープ」できるようにしてから、チャネルをスキャンに切り替えます。
さらに、AirDropが導入されて以来、iOSとOS Xは他のAirDropサービスを探すためにWi-Fi無線をオフにし、Yosemiteは定期的にハンドオフをサポートするためにオフにします。
それで、私はこれらのWi-Fi ping変動をルーターにも与えました。
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
私はルータを切り替え(TL-WR743NDからDIR-815へ)、いくつかのWi-Fi USBアダプタ(私はD-Link DWA-160でも問題を抱えていたと思うけれども)を試して、2.5 GHzから5GHzとチャンネルを精練しました。運が悪い、問題は解決しませんでした。
私が気付くまで、私はネットワーク速度テストをするか、またはbittorrentクライアントを走らせるとき、pingは大丈夫です。ネットワークがアイドル状態のときにのみ変動します。
Windows 7の問題か、TP-LINKアダプタの問題かもしれませんが、Wi-Fiに多少の負荷をかけると、変動はなくなり、ネットワークは正常に機能します。
これまでのところ、私は自分のWi-Fiネットワークを維持するための小さなRustプログラムを作りました。
// 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));}}