tcpdumpの出力の見方
TCPパケットの場合
例として次のようにtcpdumpコマンドを実行して、出力が得られた場合を取り上げる。
hostname:~# tcpdump host hotta and port www 11:26:59.113561 hotta.1036 > server2.www: S 120396:120396(0) win 8192 (DF) 11:26:59.113561 server2.www > hotta.1036: S 1610721549:1610721549(0) ack 120397 win 31744 11:26:59.113561 hotta.1036 > server2.www: . ack 1 win 8760 (DF) 11:26:59.473561 hotta.1036 > server2.www: P 1:313(312) ack 1 win 8760 (DF) 11:26:59.483561 server2.www > hotta.1036: P 1:173(172) ack 313 win 31744 (DF) 11:26:59.623561 hotta.1036 > server2.www: . ack 173 win 8588 (DF) 11:26:59.813561 hotta.1036 > server2.www: P 313:671(358) ack 173 win 8588 (DF) 11:26:59.813561 server2.www > hotta.1036: P 173:345(172) ack 671 win 31744 (DF) 11:26:59.923561 hotta.1036 > server2.www: . ack 345 win 8416 (DF) 11:27:14.803561 server2.www > hotta.1036: F 345:345(0) ack 671 win 31744 11:27:14.803561 hotta.1036 > server2.www: . ack 346 win 8416 (DF)
左から順に、以下の通りである。
順番 | 意味 | フォーマット,詳細 |
---|---|---|
1 | 時刻 | HH:MM:SS.マイクロ秒 |
2 | 送信元アドレス | ホスト名(またはIPアドレス).ポート番号 |
3 | 矢印 | > |
4 | 宛先アドレス | ホスト名(またはIPアドレス).ポート番号 |
5 | フラグ | S:SYN(コネクション確立要求) P:PUSH(バッファリングせず、即時にデータを送るようTCPに要求) F:FIN(コネクション開放要求) R:RST(コネクション強制切断要求) .:上記いずれのフラグビットも立っていない |
6 | シーケンス番号 | s1:s2(s3)(*1) s1:新しいデータの最初のバイトに対する(バイト単位の)シーケンス番号 s2:(今までに送った最後のバイトに対するシーケンス番号)+1 s3:バイト数 |
7 | ACKビット | ack:ビットが立っており、 次のフィールドがACK番号であることを示す(*2) |
8 | ACK番号 | (*2) |
9 | ウィンドウ | win:次のフィールドがウィンドウサイズであることを示す |
10 | ウィンドウサイズ | |
11 | フラグメント禁止 | (DF):フラグメント(パケット分割)禁止ビットON |
- (*1) ACKだけを単独で送信する場合は、このフィールドはない
- (*2) ACKビットが立っていない場合は、このフィールドはない
この出力フォーマットは、TCPパケットのフォーマットと密接な関係があるので、その内そちらもまとめるつもり。