shimiminの日記

IT系のメモ書きです。

WiFi Analyzerにやられた

Windowsアプリで WiFi Analyzer というのがあります。Windowsタブレットでよく使われるツールらしいのですが、今日はこれにハマった話をします。ちなみに、アプリのサイトはこちら。もともとは、窓の杜のページがヒットしたから入れたのですが...

www.microsoft.com

【目次】

使用環境

 アプリを使った環境は下記の通り。

 ここで、2.4GHz帯 と 5GHz帯 でそれぞれ端末からルータに向けて ping を打って、RTTの差を比べておりました。2.4GHz のほうは 72Mbps のリンクですが若干混雑していて、100ms近い時間がかかるのに対して、5GHzのほうは 422Mbps のリンクを独り占め、平均で 3ms くらいと優秀なのでニンマリしていたのですが...

$ ping -s 100 -c 100 -i 0.5 192.168.0.1

PING 192.168.0.1 (192.168.0.1) 100(128) bytes of data.
108 bytes from 192.168.0.1: icmp_seq=1 ttl=128 time=2.57 ms
108 bytes from 192.168.0.1: icmp_seq=2 ttl=128 time=2.72 ms

(中略)

--- 192.168.0.1 ping statistics ---
100 packets transmitted, 100 received, 0% packet loss, time 49605ms
rtt min/avg/max/mdev = 1.733/2.560/3.182/0.304 ms

$

何が起こった??

 で、2.4GHzの混雑具合をグラフで見たいなと思ったわけです。スマホにもさまざまツールがありますが、Windowsアプリにも似たようなのがあるに違いないと。ping を打っているすぐ横でRSSIとか見えたら便利じゃないですか。

 早速探して、すぐ見つかったのでインストールしたわけですよ。画面もそれなりに表示されることを確認して、じゃぁ早速...と思って ping かけたら、いきなりドロップ発生。RTTも秒単位に。

 はじめ、何が起こったのかわかりませんでした。上にコマンドの結果を載せましたが、別に極端な flood ping かけているわけじゃありません。なんじゃこのドロップは。

 てっきり無線環境に何か変化があったのかと思って、無線ブリッジを再起動してみたりしても事態は悪化するばかり。ドロップ率も50%くらいだったのが、90%を超えてきて、もうまともに通信ができなくなってしまいました。

 ルータの管理画面を見に行こうとしたら、なんとタイムアウト。なんだこれは。

まさかのアプリ

 結構ジタバタしていたのですが、ふと、「pingを打ちながら WiFi Analyzer 立ち上げてみるか」と思い立ってやってみたわけです。そしたらなんと。立ち上げたとたん、見事に RTT が激増。かつ、ドロップ開始。

 「このアプリ何者?」というのが第一印象です。ネットワークインターフェースを全部独占している?にしても重すぎない?たかが秒間2発の ICMPがドロップするって、何それ?気味が悪い。しかも、何かのポリシーで止めているならまだ理解できるのですが、ごくたまにパケットが通るという事態が、なんとも理解不能。どうやったらこんな、輻輳シミュレータみたいな動きになるんだろうか。

 pingをフラッド気味で打っているときにホスト側でちょっと重たい処理をすると、RTTが若干伸びる、なんてことは(昔)よくあったことですが、今どきの高速なCPUで、モダンなOSで、RTTが秒単位とか、パケットドロップとか、ありえない事態です。一体全体、何がどうなっているのか。

 Windowsアプリのパケットハンドリングが、OSの中でどういうパスを伝っているのかよくわかりませんが、念のため WSL ではなく PowerShellping を打ってみても同じ症状になりました。たかが WiFi 電波を表示するだけのはずのアプリが、トラフィックをこんなにブロックするとは、まったく想定外でした...

対処

 もうすこし、愛と時間があるならば、原因を追究したいところですが、今回は夜も更けてきたので、最も簡単な対処=「アプリの削除」を決行。平和が訪れました。

 それにしても、何だったんでしょうか、あれは。Windows アプリの闇が垣間見えたと言ったら言い過ぎでしょうか??今後、できるだけWindowsアプリの世話にはならないようにしようと、心に刻み込みました。あぁびっくりした。