運用
Windowsネットワーク・プロトコルの理解と検証

4.キャプチャしたパケットの解析

デジタルアドバンテージ
2003/08/07

 目的のパケットがキャプチャできたようなら、次はそれを表示させてみよう。ツール・バー上の[停止]ボタンと[表示ボタン]もしくは、[停止+表示]ボタン(■+めがねのマークのボタン)をクリックすると、現在のキャプチャ・バッファの内容を表示するモード(概要表示モード)に移行する。

キャプチャしたパケットの表示(概要表示)
[キャプチャ データの表示]ボタンをクリックすると、このような概要表示画面が表示される。
  キャプチャしたフレームの通し番号。
  キャプチャ開始からの時間(秒単位)。100万分の1秒単位まで表示されている。オプション設定によっては、キャプチャした時刻を表示させることも可能。
  パケットの送信元MACアドレス(イーサネットの場合)。「LOCAL」となっているのはローカル・マシンから発信されたパケットを表し、そのほかのものは、別のマシンから発信されたパケットを表している。
  あて先のMACアドレス。「*BROADCAST」となっているのは、ブロードキャスト送信されているパケット、「LOCAL」となっているのは、ほかのマシンから自分のマシンに向けて送信されたパケット。
  通信プロトコルの名称。階層化されたプロトコルの場合は、最上位のプロトコルの名称が表示される。
  プロトコルの概要説明。階層化されたプロトコルの場合は、最上位のプロトコルの概要が表示される。
  送信元の(上位の)プロトコル・アドレス。例えばイーサネット上のTCP/IPプロトコルならば、ここには送信元のIPアドレスが表示される。
  あて先の(上位の)プロトコル・アドレス。例えばイーサネット上のTCP/IPプロトコルならば、ここにはあて先のIPアドレスが表示される。
  上位プロトコルの名称。
  現在選択されているパケット(この場合は「フレーム2」)の概要。プロトコル種別とやフレーム番号、「プロトコル」欄に表示されているプロトコル・ヘッダの開始位置(パケット中でのヘッダの開始位置)などの情報が表示される。

 [キャプチャ データの表示]ボタンをクリックすると、このようにキャプチャしたプロトコルの一覧を簡単にまとめた、概要表示モードになる。左端にはキャプチャしたフレームの番号やキャプチャ開始時からの経過時間(100万分の1秒単位)などが表示されている。

 キャプチャ時間をよく見ると、同じ時間のものが連続して並んでいる場合がある。上の例でいえば、フレームの8、9、10はすべて同じ時間「(キャプチャ開始から)4.977157秒」になっている。パケット・サイズが小さい場合は100万分の1秒以内に2パケット以上送受信することも可能であるが(Gigabitイーサネットなどを使用した場合)、実際は次のような理由による。ネットワーク・ケーブル(イーサネット・ケーブル)上ではすべて異なる時間にパケットが送信されているのであるが(そうでなければ衝突してしまう)、実際にネットワーク・コントローラ・チップ内のバッファからNDISのドライバがデータを引き取る場合は、連続して一括してデータを転送している。そのため、NDISを呼び出した側から見ると、すべて同じ時間に到着したように見えてしまう。

 時刻の右側には、送受信しているマシンのMACアドレスが表示されている。すでに述べたように、MACアドレスの上位3bytesが既知のベンダ・コードの場合は、それが自動的にエンコードされて表示されるが、そうでない場合は、16進数12桁で表示される。

 その右側には解析したプロトコルの概要が表示されている。階層的に構築されたプロトコルの場合は、ネットワーク・モニタが解釈できる最上位のプロトコルが表示されている。例えば「イーサネット」−「IP」−「TCP」−「NBT」−「SMB」という階層ならば、最上位の「SMB」プロトコルの概要が表示される。

詳細なプロトコルの表示

 概要画面において、どれか1つのパケット(フレーム)を選択し、それをダブルクリックすると、「詳細」および「16進ダンプ」ペインが表示される。

プロトコルの詳細表示モード
概要モードで1つパケットを選び、それをダブルクリックすると、プロトコルの詳細な内容およびそのパケットの16進ダンプが表示される。これにより、より詳しくパケットの内容を調査することができる。
  概要モードで1つパケットを選んでダブルクリックすると、下側のペインに詳しい内容が表示される。
  詳細表示ペイン。プロトコルの階層やその内部のパラメータなどがすべて分かる。これはHTTPプロトコルの例。ただしサポートされていないプロトコルの場合は何も表示されないので、下の16進ダンプ・データからユーザーが自分自身で解析する必要がある。
  解釈できるプロトコルの左側には、[+]のマークが付いている。これをクリックして展開すると、そのプロトコル・ヘッダの内容が詳しく表示される。この場合はHTTPプロトコルのGETコマンドとそのパラメータが表示されている。
  [16進ダンプ]ペイン。キャプチャしたパケットの内容が、16進ダンプとASCII文字で表示されている。上の[詳細ペイン]でどれか1つプロトコルを選択すると、その該当する部分が反転表示される。

 [詳細]表示ペインでは、パケット内のプロトコル階層がツリー状に表示される。各プロトコルの左側にある[+]記号をクリックするとその内容がより詳しく表示される。ただしネットワーク・モニタでは理解できないプロトコルの場合は何も表示されないので、ユーザー自身で16進ダンプ・データを自力で解釈する必要がある。また各プロトコルで利用されている標準的なポート番号以外を利用している場合も、単なる16進ダンプ・データしか表示されないので、注意が必要である。例えば、Webサーバを標準的なTCPの80番ポート以外で利用していと(例:1080番に変更しているなど)、単なるTCPのデータ列としてしか解釈されない。

 なお、デフォルトのフォントでは表示が見づらい場合は(特に16進ダンプはデフォルトではかなり詰まっていて見づらい)、[表示]メニューの[フォント名]で、固定ピッチのフォント(MS明朝とかMSゴシックなど)を選択すればよいだろう。

 さらにキャプチャを行う場合は、[ウィンドウ]メニューから最初の[キャプチャ ウィンドウ]を選択し、またキャプチャを開始すればよい。キャプチャ・バッファは複数持つことができるので、同時に何セッションものパケットを表示することができる(ただしキャプチャは同時に1つだけ)。

 以上で基本的なキャプチャの方法とその表示方法は終わりである。実際にさまざまな通信パターンをキャプチャしてみて、机上で勉強したプロトコルと、実際のネットワーク・ケーブル上のトラフィックの違いを実感して欲しい。ケーブルの上には、実に多くのさまざまな(意味不明な)パケットが飛び交っていることが分かるだろう。ハブの送受信ランプがチカチカしているの見ているだけでは分からなかったような、さまざまな「ネットワークの現実のトラフィック」を知ることが、プロトコルを理解するための重要な第一歩である。ぜひともチャレンジしていただきたい。

 次回は、フィルタ機能を使ったより高度なキャプチャ/表示方法について解説する。End of Article


 INDEX
  [運用]Windowsネットワーク・プロトコルの理解と検証
  第1回 ネットワーク・モニタの基本的な使い方
    1.ネットワーク・モニタとは
    2.ネットワーク・モニタの準備
    3.パケットのキャプチャ
  4.キャプチャしたパケットの解析
 
 運用


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間