ネットワーク通信が遅い問題の調査

TCPView を使って、コンピューター上で行われているネットワーク通信の詳細を調査する方法

更新日: 2011 年 5 月 25 日

使用ツール

  • TCPView for Windows
    アクティブなソケットを表示するコマンド ライン ビューアーです。
  • Process Monitor
    ファイル システム、レジストリ、プロセス、スレッド、および DLL の活動をリアルタイムで監視します。

トラブルの状況

Internet Explorer で URL を入力し、会社の Web サイトにアクセスしたのですが、いつまでたっても Web ページが表示されません。ところが、ほかの人は同じような現象にはなっていないようです。いったい何が問題なのでしょうか?

解決方法

コンピューターがどのような通信を行っているかについては、コマンド プロンプトから netstat というコマンドを実行する方法があります。ただし、netstat コマンドを実行して調べる方法はコマンドを実行した時点での情報であり、リアルタイムでの情報ではありません。TCPView を利用すれば、自分のコンピューターにおけるネットワークの利用状況がリアルタイムで確認できます。

今回はネットワークに関わる問題ではないか? ということなので、TCPView を使って、通信の状況を確認します。すると、Internet Explorer で通信が行われていることが確認できます。State 欄にある ESTABLISHED はセッションを確立したことを表しますので、会社の Web サーバーに接続できていることは確認できます。

図 1: TCPView で Internet Explorer が ESTABLISHED (セッション確立) を示している画面

続いて、Internet Explorer はプロセス ID (PID) が 860 番で実行していることが確認できるので、Process Explorer を利用して、Internet Explorer の状況を確認します。Internet Explorer (iexplore.exe) のプロセスをつかさどるウィンドウを表示させるために、右クリックから、 [Window] - [Bring to Front] をクリックします。

図 2: Process Explorer で Internet Explorer の [Bring to Front] を選択している画面

すると、次のようなダイアログが表示されました。

図 3: ログイン画面

つまり、ユーザー名とパスワードを入力しないと Web ページは表示されないにも関わらず、ダイアログの存在を見落としていたのです。現状のままでは、いつまでも Web ページが表示されません。

TCPView からネットワークの問題の見極め

このケースでは、TCPView から Internet Explorer による通信で ESTABLISHED と表示されていたので、通信そのものはできていると判断しましたが、通信試行中のときは、SYN_SENT の表示となります。SYN_SENT の場合にはサーバーにまだ接続できていないので、通信スピード、サーバーのパフォーマンス、サーバーが実在しない、などの問題が考えられます。また、コンピューターで通信そのものができていなければ、TCPView には通信の状況が表示されません。

図 4: TCPView で Internet Explorer が SYN_SENT (通信試行中) を示している画面

このように、TCPView を見ることで、通信が遅い原因がどこにあるのか確認できます。また、netstat コマンドを何度も実行して通信の状態を確認する場合に比べて、TCPView を利用したネットワークの問題の原因解決を行う方法はスマートなやり方であることも確認できたと思います。

ページのトップへ