再送はしてもらう Reliable QUIC Stream Resets の仕様

Reliable QUIC Stream Resets』という提案仕様が提出されています。

もともと、RFC 9000 QUICではRESET_STREAMフレームを送信しストリームを中断するとそのストリームではデータは再送されません。『Reliable QUIC Stream Resets』ではストリームを終了しつつもパケロスしたデータは再送するように指示できます。

ユースケースとして挙げられているのは、WebTransportでのユースケースです。WebTransportではストリームの最初にHTTPリクエストと紐づけるためのセッションIDを持ちます。リセットはしつつも、パケロスしたセッションIDは再送してもらいプロトコルを利用するアプリケーション側にその情報を通知したいです。

特に難しいことはないですが、『Reliable QUIC Stream Resets』で定義されるRELIABLE_RESET_STREAMフレームを見ていきます。

Reliable QUIC Stream Resets

この仕様では、新しくRELIABLE_RESET_STREAMフレームを定義します。これはReliable Sizeを除き、RFC 9000 QUICのRESET_STREAMフレームと同様です。
(2023年7月追記: 最新draftでは、RELIABLE_RESET_STREAMフレームはCLOSE_STREAMフレームに改称されいています)


Reliable Sizeは再送して欲しいデータのオフセットを指定します。