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のパケット |
次回は
このやりとりの続きをします。



