[パケット解析についてか]

[戻る]
西田 2002/03/29(金) 00:37:18
以下のテキストを、適切な情報に置き換えてください。

 いつもお世話になってます。西田と申します。
 パケットに関する質問です。 
Visual C++でパケット解析ツール(Pacmonのようなやつ)を作成
しています。
現在、流れるデータを取得すること(自作のフィルタドライバで)には
成功したのですがそれ以降のパケットの解析の部分で困っています。

キャプチャーしたパケットを、アプリケーションまで上げて
16進表示で表示することはできました。

00 00 23 4A - 99 09 93 43
00 34 b4 43 - 34 21 09 32
03 90 32 12 - 23 90 09 39
23 43 10 00 - 02 11 31 2a

のような感じです。

その後、このパケットを、Ethernet2の中の送信先MACアドレスフィールド
の値がいくつとか、IPパケットの中の送信先アドレスがいくつといった感じ
ので分解して簡単に取得できるようなクラスを作成したいのですが
パケットの判別(インタフェース層であればEther2か802.2かなど)の仕方
がわかりません。
パケットのタイプの構造の違いを使って判別するとは思うのですが、
もし判別の仕方や参考になるもの等ありましたら、お教えください。
よろしくお願いします。

イチヨー 2002/03/29(金) 09:17:16
>パケットの判別(インタフェース層であればEther2か802.2かなど)の仕方
>がわかりません。

少なくとも、Layerは判っているんですよね。

802.2では、長さをあらわすフィールドが1500以下。
Uでは同じ位置がイーサータイプとなっていて1500より大きい。

で区別します。まっとうなEtherの解説書には必ず載っています。
ちなみに、今私が見ているのは
「TCP/IPプロトコル&サービスガイド」日経BPソフトプレス

古いスレッドには追加発言できません。