システムの利用者から「Webアクセスが遅い」と言われたことがないだろうか。遅延は、物理層からアプリケーション層まで、様々なレイヤーで発生し得るため、単に遅いという証言だけでは原因を特定しにくい。そこでWiresharkを使って、Webアクセスがすべて遅いのか、一部のサイトだけが遅いのか、特定の時間帯だけ遅いのか、といった状況を確認しよう。

Webアクセスの応答時間を調べる

 Webアクセスが遅くなる原因は、(1)パソコンの処理負荷が高くて表示に時間がかかる、(2)Webサーバーの処理負荷が高くて応答に時間がかかる、(3)ネットワークが混雑している、などである。このうち、(2)または(3)が原因のときは、「HTTP応答時間」が大きくなっているはずだ。HTTP応答時間とは、パソコンがWebページを開くとき、WebサーバーにHTTP要求パケットを送り出してから、その応答であるHTTP応答パケットがパソコンに届くまでの時間である。Wiresharkでは、このHTTP応答時間をHTTP応答パケットの詳細画面に表示してくれる

 遅いと申告があったパソコンにWiresharkをインストールして、パケットキャプチャーを実行した後、Webサーバーにアクセスする。しばらくしてキャプチャーを止めて、HTTP応答時間を確認する。

 HTTP応答時間を見るため、HTTP応答のパケットに絞り込む。まずは「表示フィルタ」機能の窓に、HTTP応答パケットを示す「http.response」を入力する。次に絞り込まれたパケットの一つを選択して、パケットの詳細にある「Hypertext Transfer Protocol」をクリックする。詳細情報が表示されるので、その中にある「Time since request」の行に表示される時間がHTTP応答時間である。

HTTP応答のパケットから応答時間を調べる
HTTP応答のパケットから応答時間を調べる
システムの利用者から「Webアクセスが遅い」と申告があった。そこで、その従業員のパソコンでキャプチャーを実行し、応答に時間がかかったパケットを見つけてその原因を探し出すことにした。まずは、「表示フィルタ」機能でHTTP応答のパケットに絞り込む(1)。次に応答パケットの一つを選ぶ(2)。その詳細を見ると、HTTP応答時間がわかる(3)。
[画像のクリックで拡大表示]
▼などである
クライアント側に原因がある場合がある。例えば、Webブラウザーの不具合。
▼HTTP
HyperText Transfer Protocolの略。Webアクセスの通信プロトコル。
▼表示してくれる
Wiresharkがパケットを読み取って生成する情報を「Generated Field」という。