こんにちは、今回は気になったので調べたことを( ..)φメモメモ
TCP コントロールフラグフィールド(Flagフィールド)と予約フィールド(Rsrvd フィールド)の変遷を示します。
RFC 793(1981年)
TCP のすべてのベースとなるRFC
- Reserved: 6ビット
- Flags: 6ビット (URG, ACK, PSH, RST, SYN, FIN)
RFC 3168(2001年)
- Reserved: 4ビット
- Flags: 8ビット (CWR, ECE,URG, ACK, PSH, RST, SYN, FIN)
ECN導入 (CWR, ECE)
RFC 3540(2003年)
- Reserved: 3ビット に減少
-
Flags: 合計9ビット相当 (NS + CWR + ECE + URG + ACK + PSH + RST + SYN + FIN)
NS(Nonce Sum)導入
RFC 9293(2022年)
- Reserved: 4ビット
- Flags: 8ビット (CWR, ECE,URG, ACK, PSH, RST, SYN, FIN)
Reserved, Flags は RFC 3540の状態を踏襲(Nonce Sum(NS)フラグは RFC 9293 時点で廃止され、予約ビットになる)
新機能 (MP_CAPABLE, MP_JOIN 等) は オプションフィールドとして追加される。
参考リンク
(および画像の参照元もRFCのページです)
RFC793
https://www.rfc-editor.org/rfc/rfc793.html#page-15
RFC3168
https://www.rfc-editor.org/rfc/rfc3168#section-23.2
RFC3540
https://www.rfc-editor.org/rfc/rfc3540#section-9
RFC9293
https://www.rfc-editor.org/rfc/rfc9293#section-6
40年越しにTCPの仕様(RFC793)が改訂される RFC9293 - ASnoKaze blog
https://asnokaze.hatenablog.com/entry/2022/04/11/010234