パケットキャプチャ② ハンドシェイク・再送・RST
Pro会員限定上級約40分7レッスン
保存されたキャプチャ(~/captures/*.pcap)を読み、TCP の「振る舞い」から原因を言い当てます。ハンドシェイクの間隔で往復遅延を測り、SYN の再送間隔・RST・データの再送と重複 ACK・ゼロウィンドウを見分けます。最後は -w で保存して -r で読む、現場の取り回しまで扱います。
対象者: 「遅い」「つながらない」をパケットの根拠で説明したい方 / tcpdump の出力を前に手が止まってしまう方
前提知識: パケットキャプチャ① 出力の読み方とフィルタ式 修了程度
この教材を終えると、できるようになること
- tcpdump の -ttt で前の行からの経過時間を表示し、キャプチャした場所に応じて3ウェイハンドシェイクのどの間隔が RTT になるかを判断できるようになる。
- 応答のない宛先への SYN が指数バックオフで再送されることをキャプチャから読み取り、net.ipv4.tcp_syn_retries とアプリの接続タイムアウトの関係を説明できるようになる。
- SYN に対する RST(Flags [R.])と SYN-ACK(Flags [S.])をキャプチャで見分け、「拒否」「無応答」「成立」を根拠をもって区別できるようになる。
- seq の範囲と ack の番号を追ってパケットの欠落を見つけ、重複 ACK と SACK による高速再送の流れを説明できるようになる。
- 受信側が広告するウィンドウ(win)を読み、ゼロウィンドウとウィンドウプローブの流れから、遅さの原因が受信側のアプリにあると判断できるようになる。
- tcpdump -w で件数を限ってキャプチャをファイルに保存し、-r で読み返せるようになる。保存したファイルの扱い(容量・ローテーション・機密性)の注意点を説明できる。
修了後の姿: プロトコルの中身とネットワーク設計を理解し、複雑な障害の根本原因の特定から再発防止の設計まで任せられるエンジニアへ。
Chapter 1TCP の振る舞いを読む
時間の差分・フラグ・seq と ack・ウィンドウから、何が起きたかを言い当てます。
- ハンドシェイクで RTT を測る(-ttt)SYN-ACK から ACK までの間隔が、利用者との往復時間になる約6分(有料会員限定)
- SYN の再送間隔を読む1・2・4・8・16秒。返事のない SYN は、間隔を倍にしながら送り直される約6分(有料会員限定)
- RST は即答の拒否SYN に RST が返れば「そのポートには誰もいない」。待たされることはない約5分(有料会員限定)
- データの再送と重複 ACK同じ seq が2回出てきたら再送。その前に同じ ack が3回並んでいる約6分(有料会員限定)
- ゼロウィンドウは受け手の詰まりwin 0 は「受け取りきれないので待って」。悪いのはネットワークではない約6分(有料会員限定)
- 保存して後から読む(-w / -r)その場で眺めるより、件数を限って保存し、落ち着いて読む約6分(有料会員限定)
Chapter 2確認クイズ
ハンドシェイク・再送・RST・ゼロウィンドウの読み方の理解度をチェックします。