RFC 9000 QUICには、経路上のスイッチから明示的な輻輳シグナルを受け取る ECN (Explicit Congestion Notification) という機能に対応しています。
Googleではサーバ側はQUIC ECN対応がデプロイされており、Chromeでの実装も進められている事が報告されています。
mailarchive.ietf.org
概要
- ECNに対応したネットワーク機器は、輻輳が起こると該当のパケットにおいて、IPヘッダのTOS fieldのCE(Congestion Experience)ビットをセットする
- 受信したIPヘッダのCE(Congestion Experience)ビットがセットされている場合、パケットの送信者にフィードバックするため、QUICのACK-ECNでそれを通知する
- ACK-ECNを受け取ったエンドポイントは輻輳が起こっている事を把握し、送信量を下げる
IPヘッダの CT, CE ビット
RFC2481において、IPヘッダのTOSフィールドをECN用に 2ビット使用します
- 00: ECN非対応
- 01, 10 : ECNに対応している事を示すのに使用します(それぞれECT1, ECT0と呼ばれる)
- 11: CEと呼ばれ、 輻輳が起こっている事を示すのに使用します
QUICのACK ECN
QUICではACKフレームにECN Countsの情報を格納します。ECN情報を持つACKは、フレームタイプとして0x03を使用します。
ECN CountsとしてECT, CEの受信数をピアに通知します