7. 輻輳制御 (Congestion Control)
RTP 再送はネットワーク輻輳を悪化させるリスクがある. ベストエフォート環境では, パケット損失は輻輳が原因である. 損失に対してオリジナルストリームのレートを下げずに古いデータを再送で対応すると, 輻輳がさらに増す. 実装は SHOULD で, 再送を用いるにあたり以下の推奨に従うべきである.
再送方式が用いられる RTP プロファイルは, 異なる環境で適切な輻輳制御の仕組みを定義する. プロファイルの規則に従えば, RTP アプリケーションは他の TCP または RTP フローに公平であるよう, 許容できるビットレートおよびパケットレートを決定できる.
RTP アプリケーションが再送を用いる場合, 許容できるパケットレートおよびビットレートはオリジナルと再送のデータの両方を含む. これにより再送を用いるアプリケーションは, 用いない場合と同じ公平性を達成する. この規則は実際には次の行動に翻訳される.
拡張サービスを用いる場合, 合計ビットレートおよびパケットレートが要求されたサービスのそれを超えないようにすべきである. 要求されたサービスが実際に提供されているかをさらに監視すべきである. ベストエフォート環境では, 送信者は SHOULD NOT で, オリジナルストリームのパケットレートおよびビットレートを下げずに (例: より低いレートでデータを符号化することにより) 再送パケットを送ってはならない.
加えて, 送信者は MAY で, 重要と判断するパケットのみを選択的に再送し, ビットレートを制限するために他のパケットに対する NACK メッセージを無視してよい.
これらの輻輳制御の仕組みは, パケット損失率を許容範囲内に保つべきである. 輻輳制御の文脈では, 同一ネットワークパス上の TCP フローが同一のネットワーク条件を経験した場合に, 合理的な時間スケールで RTP フローが達成する平均スループットを下回らない平均スループットを達成するなら, パケット損失は許容可能とみなされる. 輻輳が制御されていない場合, 再送を SHOULD NOT で用いてはならない.
無線リンクなど輻輳以外が損失原因の場合, サーバ (または再送要求を行うクライアント) が特定のパケットまたはフレームが再生継続に重要と推定する場合, または RTSP PAUSE がバッファ充填を許すために発行された場合 (RTSP PAUSE は再送の送信に影響しない) など, 場合によっては再送を MAY で依然として送ってよい.
最後に, 送信レート (またはレイヤードマルチキャストセッションで購読するレイヤ数) を適応させるか, 受信者にセッション離脱を手配することがさらに必要になりうる.