Upload
ngi-group
View
2.928
Download
2
Embed Size (px)
Citation preview
Wireshark
Packet解析のススメ
Wiresharkって、なにするもの?• パケットを内容を見るものです• Dumpした内容を分かりやすく表示してくれます。 ( tcpdumpでとった dumpファイルをWiresharkで読み込むとか)
なぜ(どんなとき)見るの?なぜ(どんなとき)見るの? アプリケーションが吐くログ等では原因が特定できないようなとき
→ 何を受信したのか、もしくは、何を送信したのか「事実」が見れる。
何か問題が起こった場合、原因特定の最終手段になることも。
PacketDumpを読めるようになることに絞った
TCP/IP 基礎 (1/4)
データリンク層
ネットワーク層
トランスポート層
Packetの構造
HTTP等の上位レイヤー ( アプリケーション層 ) のプロトコルのヘッダとデータが入る
PacketDumpを読めるようになることに絞った
TCP/IP 基礎 (2/4)TCPヘッダのフォーマット
TCP
ヘッ
ダ
PacketDumpを読めるようになることに絞った
TCP/IP 基礎 (3/4) シーケンス番号 (前回送信したシーケンス番号+前回送信したデータ長) 確認応答番号 次に受信すべきシーケンス番号を示す (受信したシーケンス番号+受信データ長) コントロールフラグ 6bit長 左から、 URG , ACK , PSH , RST , SYN , FIN
URG 緊急に処理すべきデータが含まれることを意味する
ACK 確認応答番号が有効であることを意味する → 相づちみたいなもの
PSH バッファリングせずに上位レイヤーにデータを渡せという意味
RST コネクションの強制切断
SYN コネクションの確立
FIN コネクションの切断
PacketDumpを読めるようになることに絞った
TCP/IP 基礎 (4/4)TCPのコネクション管理
クライアント サーバ
SYN → コネクション確立要求
← SYN , ACK 応答、コネクション確立要求
ACK → 応答
PSH , ACK → データの送信
← ACK 応答
FIN → コネクション切断要求
← ACK 応答
← FIN コネクション切断要求
ACK → 応答
スリーウェイハンドシェイク
コネクションが確立する
データの送受信が行われる( 略してるので送信だけ)
コネクションの切断
実際に読んでみましょう
「ここでWiresharkの画面で説明」
Linux上でキャプチャする場合 # tshark -i eth0 -V -l tcp and port 80 -w file # tcpdump -i eth0 -nX tcp and port 80 -w file
→ Wiresharkで読み込める
まとめ• 概念図などを見てもよくわからない仕組みも、 Dumpして解析して見てみると、結構仕組みが分かってくる(かも)
• Web系開発では使う機会は少ないかもしれませんが、原因特定の最終手段などに、是非ご利用ください。