7. 拥塞控制 (Congestion Control)
RTP 重传有加剧网络拥塞的风险. 在尽力而为环境中, 丢包由拥塞引起. 若在不降低原始流速率的情况下通过对旧数据重传来响应丢包, 将进一步加剧拥塞. 为使用重传, 实现 SHOULD 遵循下列建议.
使用重传方案时所采用的 RTP 概要针对不同环境定义了适当的拥塞控制机制. 遵循概要下的规则, RTP 应用可确定可接受的比特率与分组速率, 从而与其他 TCP 或 RTP 流公平共享.
若 RTP 应用使用重传, 可接受的分组速率与比特率包含原始数据与重传数据. 这保证使用重传的应用与不使用者达到相同的公平性. 该规则在实践中可转化为下列行为:
若使用增强型业务, 应确保总比特率与分组速率不超过所请求业务的水平. 还应进一步监测所请求业务是否实际得到交付. 在尽力而为环境中, 发送端 SHOULD NOT 在不降低原始流分组速率与比特率的情况下发送重传分组 (例如以较低速率编码数据).
此外, 发送端 MAY 仅选择性重传其认为重要的分组, 并忽略其他分组的 NACK 消息, 以限制比特率.
这些拥塞控制机制应将丢包率维持在可接受范围内. 在拥塞控制语境下, 若在同一路径上的 TCP 流在相同网络条件下, 在合理时间尺度上获得的平均吞吐量不低于 RTP 流, 则认为丢包可接受. 若未控制住拥塞, 则 SHOULD NOT 使用重传.
在某些情况下 MAY 仍发送重传, 例如无线链路上丢包并非由拥塞引起时, 若服务器 (或发出重传请求的客户端) 估计某分组或帧对继续播放很重要, 或若已发出 RTSP PAUSE 以允许缓冲区填满 (RTSP PAUSE 不影响重传的发送).
最后, 可能还需要调整传输速率 (或分层多播会话中订阅的层数), 或安排接收端离开会话.