摘要
- QUIC 按流类型授权连接生命周期内可开启的累计数量。
- 流关闭后仍计入累计数量,不能把它当成可回收的并发槽位。
- 传输层证据必须与应用并发、工作线程和实际资源能力分开记录。
许多监控面板把 initial_max_streams_bidi、initial_max_streams_uni 或 MAX_STREAMS 显示成“当前并发”。更危险的做法是从这个数中减去已关闭的流,再把差值称为可用容量。这个算法并不符合 QUIC 的含义。相关参数授权的是:在一条连接的生命周期内,对某一种流,另一端累计可以开启多少次。它不报告此刻还有多少条流保持打开。
流 ID 同时编码发起者和方向。双向流与单向流使用不同的编号空间,也有不同的限制。某一发起者的双向流授权不能移用于单向流,也不能移用于另一发起者。记录证据时,流类型和发起者必须先于数值进入账本。
初始参数缺失或为零时,对端在收到匹配类型的 MAX_STREAMS 之前不能开启该类型。后续 MAX_STREAMS 可以提高累计上限,但不能降低它;不增加上限的帧没有效果,会被忽略。因此,应该比较累计授权与该类型已开启的最高序号,而不是比较“还活着的流”数量。
可靠的账本至少应分别记录累计授权、最高开启序号、打开与关闭状态、应用请求并发、排队工作、工作线程、内存、CPU、下游资源、吞吐量、延迟、完成情况和业务结果。关闭会改变实时状态,却不会返还一次开启授权。已经使用的流编号不能被重新循环利用。
超过授权的累计数量会触发 STREAM_LIMIT_ERROR。大于 2^60 的数也不能与流 ID 编码一致,因此属于连接错误。这些是协议有效性和端点状态暴露的规则,不是可部署容量的承诺。限制过严可能妨碍需要多条流的应用;限制过宽则会扩大对端能够迫使端点维护的状态。这里的权衡是资源控制。
STREAMS_BLOCKED 的证据范围更窄。它表示发送者想创建新流,但当前传输限制阻止了创建。它不会产生授权,也不能证明应用为何需要新流、是否存在足够工作、是否有空闲工作线程、是否有吞吐量或业务能力。它只是传输边界上的阻塞需求证据。
五个维度必须保持分离。TR-046 是字节流量控制许可;TR-057 是最终大小会计;TR-054 是 STOP_SENDING 对单个方向的取消;TR-053 是连接关闭;TR-040 是连接 ID 路由与迁移。它们都不能替代本主题关于累计开启次数的账本。
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance

