メインコンテンツまでスキップ

10. パフォーマンスに関する考慮事項

バースト的なトラフィックは、時間的に相関のあるパケット損失につながることがよくある。これは、トンネル内で実行されているプロトコルの輻輳制御装置からの最適ではない応答につながる可能性がある。これを回避するために、IPプロキシエンドポイントはIPトラフィックのバースト性の増加を回避するように努めるべきである(SHOULD)。ハードウェアオフロードを利用するために必要な最小量を超えてバッチ処理を増やすためにパケットをキューに入れるべきではない(SHOULD NOT)。

トンネル内で実行されているプロトコルが輻輳制御(例:[TCP] または [QUIC])を使用している場合、プロキシされたトラフィックは少なくとも2つのネストされた輻輳制御装置を被る。トンネルされたパケットがQUIC DATAGRAMフレームを使用して送信される場合、外部HTTP接続は、IPパケットをカプセル化するQUIC DATAGRAMフレームのみを含むパケットに対して輻輳制御を無効にしてもよい(MAY)。実装者は、[UDP-USAGE] のセクション3.1.11 のガイダンスを読むことで利益を得るだろう。

トンネル内で実行されているプロトコルが損失回復(例:[TCP] または [QUIC])を使用し、外部HTTP接続がTCP上で実行される場合、プロキシされたトラフィックは少なくとも2つのネストされた損失回復メカニズムを被る。これは、両方が同じデータを独立して再送信することがあるため、パフォーマンスを低下させる可能性がある。これを回避するために、QUIC DATAGRAMフレームを活用できるように、IPプロキシはHTTP/3上で実行されるべきである(SHOULD)。

10.1. MTUに関する考慮事項

QUICデータグラム拡張 [DGRAM] でHTTP/3を使用する場合、IPパケットはQUIC DATAGRAMフレームで送信される。これらのフレームは断片化できないため、QUIC接続構成とパスMTU (PMTU) によって決定される所定の長さまでのパケットのみを運ぶことができる。エンドポイントがQUIC DATAGRAMフレームを使用しており、QUIC DATAGRAMフレーム内に収まらないIPパケットをトンネル経由でルーティングしようとした場合、IPプロキシはDATAGRAMカプセルでIPパケットを送信すべきではない(SHOULD NOT)。これは、Datagram Packetization Layer PMTU Discovery (DPLPMTUD) などの方法が依存しているエンドツーエンドの非信頼性特性を無効にするためである [DPLPMTUD]。このシナリオでは、エンドポイントはIPパケットを破棄し、破棄されたパケットの送信者にICMP Packet Too Bigメッセージを送信すべきである(SHOULD)。[ICMPv6] のセクション3.2 を参照。

10.2. ECNに関する考慮事項

IPプロキシ要求ストリームを含む接続を持つIPプロキシエンドポイントが輻輳制御を無効にする場合、その外部接続で明示的輻輳通知 (ECN) [ECN] サポートを通知することはできない。つまり、QUIC送信者は、輻輳制御外にあるQUICパケットに対して、すべてのIPヘッダーをNot ECN-Capable Transport (Not-ECT) コードポイントでマークしなければならない(MUST)。ピアが輻輳制御を無効にしていない可能性があるため、エンドポイントは依然としてQUIC ACK_ECNフレームまたはTCP ECN-Echo (ECE) ビットを介してECNフィードバックを報告できる。

逆に、外部輻輳で輻輳制御が無効になっていない場合、内部IPヘッダーと外部IPヘッダーの間でのECNマークの転送に関する [ECN-TUNNEL] のガイダンスは適用されない。これは、外部接続がECNを使用する場合、輻輳通知に正しく反応するためである。内部トラフィックも、外部接続で使用されているかどうかに関係なく、ECNを使用できる。

10.3. Differentiated Servicesに関する考慮事項

トンネルされたIPパケットには、特定のホップごとの動作を要求するために、トラフィッククラスIPヘッダーフィールドにDifferentiated Services Code Points (DSCPs) [DSCP] が設定されている場合がある。IPプロキシエンドポイントがDifferentiated Servicesドメインの一部として構成されている場合、これらのマーキングに基づいてトラフィックの差別化を実装してもよい(MAY)。ただし、HTTPの使用は、IPプロキシエンドポイント間のパス上のトンネルされたIPパケットの差別化された処理の可能性を制限する可能性がある。

HTTP接続が輻輳制御されている場合、異なるDSCPでパケットをマークすると、それらの間で並べ替えが発生し、その結果、基盤となるトランスポート接続の輻輳制御装置のパフォーマンスが低下する可能性がある。トンネルされたパケットが外部接続による輻輳制御の対象となる場合、この状況を防ぐために、転送動作において同等ではないDSCPマーキングを運ぶことを避ける必要がある。このシナリオでは、IPプロキシエンドポイントは、内部IPヘッダーから、このパケットを運ぶパケットの外部IPヘッダーにDSCPフィールドをコピーしてはならない(MUST NOT)。代わりに、アプリケーションは、各DSCPに対して1つずつ、プロキシへの個別の接続を使用する必要がある。本書は、要求が特定のDSCP値にスコープする方法を定義していないことに注意すること。そのようなサポートは将来の拡張に残されている。

トンネルされたパケットがQUICデータグラムを使用し、外部接続による輻輳制御の対象とならない場合、IPプロキシエンドポイントは、トンネルされたトラフィックから外部IPヘッダーにDSCPフィールド値を変換してもよい(MAY)。IPプロキシエンドポイントは、同じDSCPマーキングまたは同等のトラフィッククラスを持っていない限り、複数の内部パケットを同じ外部パケットに結合してはならない(MUST NOT)。DSCP値を変換する機能は、トンネルの入口と出口が同じDifferentiated Serviceドメインに属しているかどうかに依存することに注意すること。