TCP 承诺按序可靠交付:字节流中任何一个段丢失,其后的数据即使已到达,也必须在内核缓冲区等待重传补齐后才能交付给应用——这个「前面丢了后面全堵」的现象就是队头阻塞。它是 TCP 抽象的固有代价,与应用无关。

对 HTTP 的影响分两层:1)HTTP/1.1 时代主要是应用层队头阻塞(同连接上请求必须串行等待),社区用多开连接(浏览器每域 6 个)、域名分片、雪碧图等变通;2)HTTP/2 用多路复用在单连接上交错多个流,解决了 HTTP 层队头阻塞,但多个流仍跑在同一条 TCP 上——一次丢包让所有流一起等待,在高丢包率网络下 HTTP/2 反而可能比 HTTP/1.1 慢。这正是 HTTP/3 改用 QUIC(基于 UDP)的核心动机:QUIC 在传输层就按流独立排序,丢包只阻塞所属的流,其他流照常交付。追问方向:QUIC 没有完全消除队头阻塞(单条流内部仍按序)、多路径传输(MPTCP/MPQUIC)的思路、HTTP/2 的流优先级为什么在实践中效果有限。

(约 400 字)