【アールエスティーパケット】

RSTパケット とは?

最終更新:
💡 TCP接続をリセットする制御信号

TCPヘッダーのRSTフラグを使い、接続をリセットするセグメント。FINとの違い、接続拒否、受信時の検証と原因調査の考え方を解説します。

📌 このページのポイント
RST:受信側が条件を確かめるRSTフラグが立ったTCPセグメント接続の中止・拒否など受信側が検証接続の状態・シーケンス番号等有効なリセット状態に応じて処理する条件を満たさない破棄・確認応答などRSTだけで原因や攻撃の有無は決められない
無条件に接続を切る合図として扱いません。具体的な処理はTCPの状態や実装の保護機能によります。FINによる通常の終了手順とも区別します。
ひよこ ひよこ
RSTパケットは、何の合図?
ペンギン先生 ペンギン先生
TCPヘッダーのRSTフラグを使う、リセットの合図だよ。成立した接続を中止したり、接続要求を拒否したりする場面で使われるんだ。
ひよこ ひよこ
普通に閉じるFINと違う?
ペンギン先生 ペンギン先生
FINは、その方向ではもうデータを送らないことを伝え、通常の終了手順を進める。RSTは接続を中止する動作なので、同じ終了手順ではない。まだ渡し終えていないデータが残る可能性もあるよ。
ひよこ ひよこ
届いたら、何でも即座に切断する?
ペンギン先生 ペンギン先生
受信側は、TCPの状態やシーケンス番号などを検証するよ。無関係なRSTを受け取っただけで、すべての接続が切れるわけではない。条件を満たさないものを捨てたり、確認用のACKを返したりする場合があるんだ。
ひよこ ひよこ
接続しようとしただけでも、RSTが来る?
ペンギン先生 ペンギン先生
対応する接続や待ち受けがない場合などに、TCPがRSTを返すことがある。アプリが接続を中止する場合にも使う。接続する段階と、通信中の中止を分けて確認しよう。
ひよこ ひよこ
RSTが多ければ、攻撃されている?
ペンギン先生 ペンギン先生
RSTだけでは判断できないよ。いつ、どの通信で起きたか、接続先のポートやアプリのログなどと合わせて調べる。途中の機器も含めて通信を確認し、エラーの表示だけで原因を一つに決めないことが大切だね。
もっと詳しく知りたい人へ

challenge ACKは何をする?

RFC 5961の保護を実装するTCPでは、受信ウィンドウ内でも次に期待する番号と一致しないRSTに、確認用のACKを返してそのRSTを捨てます。すべてのTCP実装が同じ保護を行うとは限りません。

通信をもう一度試してよい?

リセット後の再接続は新たな通信になります。アプリの処理が相手側で完了していた可能性もあるため、注文や保存などを再試行するときは、重複した処理を防ぐ仕組みも確認します。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「RSTパケット」って出てきたら「TCP接続をリセットする制御信号」と思えばだいたいOK!
📖 おまけ:英語の意味
「RST(Reset)」 = リセット
💬 TCPヘッダーの制御フラグです。RSTが立ったTCPセグメントを、RSTパケットと呼ぶことがあります。

参考資料

← 用語集にもどる