7月4日(月)2コマ目

今日、やったこと

パケット解析

今日のホワイトボード

パケット解析

TCPのコネクション確立やシーケンス番号、確認応答番号の遷移をネットワーク上の実際のパケットで確認します。

ネットワーク上のパケットは目で見ることはできませんが、パケットキャプチャツールを使えば、パケットを確認することができます。


パケットキャプチャツールとTCPヘッダの各項目

今回利用したパケットキャプチャツールは英語表記です。TCPヘッダの各項目は下図のように表記されています。

図 TCPヘッダの各項目のキャプチャツールでの表記


No.6~No.8 コネクション確立

結論から言えば、この3つのパケットでコネクション確立をおこなっています。

まず、No.6、No.7がコネクション確立要求(コントロールフラグのSYNが1)のパケットです。

コネクション確立要求のパケットでは

  • シーケンス番号の初期値
  • MSS

を通知しています。なお、キャプチャツールでは、シーケンス番号の初期値は両方とも0になっていますが、実際はランダムな値が使われます。キャプチャツールが見やすくするために0にしているだけです。

また、No.7はACK=1になっています。ACK=1は「確認応答番号が有効」です。相手に送信してほしいデータ位置を伝えています。

No.6がACK=0になっているのは、まだ相手のシーケンス番号がわからないためです。くどいですが、シーケンス番号は0からはじまるわけではないため、この時点では確認応答番号に何を指定すべきかわからないためです。

図 No.6、No.7のパケット


No.6~No.8のやり取りをまとめると下図のようになります。

図 No.6~No.8のパケット


No.9 データ送信
No.10 No.9の受信応答

No.9のパケットはHTTP(第4層のプロトコル)のGETコマンドを送信しています。1バイト目(シーケンス番号が1)から330バイトのデータを送信しています。

No.10のパケットは確認応答番号が331からNo.9の受信応答です。

図 No.9、No.10のパケット


次回は

このやりとりの続きをします。



このブログの人気の投稿

7月27日(水)1コマ目

9月14日(水)1コマ目

9月12日(月)2コマ目