12. 重传调度
TCP 和 QUIC 等传输协议通过检测 packet loss (丢包) 并重传丢失的信息来提供可靠性. 除 Section 10 中的考虑事项外, 重传数据的调度也可能与新数据竞争. 本节其余部分讨论使用 QUIC 时的考虑事项.
[QUIC] 的 Section 13.3 指出: "An endpoint SHOULD give priority for retransmitting data over sending new data, unless priorities specified by the application indicate otherwise." 当 HTTP/3 应用使用本文档定义的优先级方案, 且 QUIC 传输实现支持应用指示的 stream priority (流优先级) 时, 如果传输在调度新数据和重传数据时都考虑流的相对优先级, 可能更符合应用的期望. 然而, 并不要求传输必须如何基于这些信息选择调度方式, 因为该决定取决于多个因素和权衡. 它可以优先发送高 urgency 流的新数据, 而不是低优先级流的重传数据; 也可以不考虑 urgency, 始终让重传数据优先于新数据.
[QUIC-RECOVERY] 的 Section 6.2.4 还强调, Probe Timeout 定时器过期后发送 probe packets (探测包) 时需要考虑应用优先级. 支持应用指示优先级的 QUIC 实现, 可以在选择探测数据时使用流的相对优先级.