どうやらiOS8のWi-Fiでネットワークがやたらと遅くなるという不具合が起きている模様。
iOS8のWi-Fiが遅い
iPhone6でWi-Fiが遅いという話も上がっているようですが、うちのiPhone5sでもiPad Airでも起きているので、iOS8の問題のようです。
ルーターはTime Capsuleを使っています。すべて再起動しても状況良くならず。しまいにはPS4のストリーミングももたつく始末。Nexus7から動画再生してみるとこちらは調子いい。ESファイルエクスプローラーというのを使っています。
ネットで調べても同じような事は多発しているようなので、iOS8が治るまで待つしかなさそうですね。
もう少し突っ込んで調べてみた
iPhoneもiPadもTime CapsuleのWi-Fiに繋がっていて、Time Capsuleではパケットダンプのツールとかは動かせないので、調べようがないなと思っていましたが、よくよく考えればMacBook Pro with Retina displayにはインターネット共有という機能がありWi-Fiルーターの代わりになるのでした。
Thunderbolt Ethernetケーブルで宅内ネットワークにつないで、Wi-Fiを共有してtcpdumpコマンドを動かせばパケットキャプチャが出来きるはず。
パケットキャプチャの前準備
Appleのページにtcpdumpの使い方書いてあるんですね。そんな専門的な事がAppleのページに書いてあるとは知らんかった。
今回、MacBook Pro with Retina displayのWi-FiにiPhoneを繋げるので、Wi-Fiのインターフェース名を確認しておきます。
Spotlightなどから「システム情報」で検索してシステム情報アプリを起動すると、Wi-Fiのインターフェース名が分かります。うちは「en0」でした。
次にインターネット共有です。システム環境設定の中の共有を開きます。
「共有する接続経路」は今回、有線のLANなので「Thunderbold Ethernet」です。「相手のコンピュータが使用するポート」はWi-Fiなので、Wi-Fiにチェックします。そのままだとパスワード無しなので、Wi-Fiオプションを開きます。
パスワードに8文字以上のパスワードを設定してOK。
戻ってきたら、「インターネット共有」をチェックします。
警告が表示されて先に進むと、iPadなどから無線ルーター化したMacBook Pro with Retina displayのWi-Fiに接続出来ます。Wi-Fiの名前はデフォルトでコンピューター名になっています。
パケットキャプチャする
あとはターミナルを起動して以下のコマンドを入力します。-iの後のen0はさっき調べたインターフェース名ですね。
sudo tcpdump -i en0
管理者のパスワードを聞かれるので入力してenterです。
画面になにやらたくさんの文字が流れていきます。時折「なるほど…」とかいいながら眺めてれば、「なんかこいつスゲえことやってるんじゃ」感が出せます。
私も流れてる文字見てもよくわかりません(笑)
止める場合はcontrol + cです。
調べてみると、やはりパケ詰まりしてるように見えます。ファイルサーバー(UbuntuでSambaサーバー動かしている)にある動画を再生しようとすると、途中まで調子いいのですが、しばらくすると流れが止まります。
21:11:40.636672 IP x.x.x.xx.microsoft-ds > x.x.x.x.49433: Flags [.], seq 264783657:264785105, ack 300824, win 4523, options [nop,nop,TS val 2818443 ecr 1047092061], length 1448WARNING: Packet is continued in later TCP segments
SMB PACKET: SMBreadX (REPLY)
↑こんなのが出た後にしばらく通信が途絶えて…
21:11:40.636673 IP x.x.x.x.microsoft-ds > x.x.x.x.49433: Flags [.], seq 264785105:264786553, ack 300824, win 4523, options [nop,nop,TS val 2818443 ecr 1047092061], length 1448SMB-over-TCP packet:(raw data or continuation?)
↑あとはこんなのがズラズラ出て動画が全く進まず。
raw data or continuation?というのが出てる時というのは、何か問題が起きているということみたいなのですが、英語サイト見るの疲れたので、もうここであきらめました。
ちなみに、Nexus7で同じ事試しましたが、通信が止まることはなかったです。ESファイルエクスプローラーというアプリ使ってますが、こちらは通信方式が違うのかログの出方が違って、バイナリのダンプがつらつら流れるんですよね。どうもストリーミングといいつつ裏で全部キャッシュしてしまうみたい。しばらくすると動画再生していても通信しなくなるので。
しかし、頑張ってみたけど、原因分からず。iOS8のアップデートを待ちますか…。