研究表明,与传统的 TCP+TLS+HTTP/2 协议栈相比,UDP+QUIC+HTTP/3 协议栈在高速网络下的数据率可能降低至多 45.2%。性能差距随着底层带宽的增加而扩大,这种现象在不同的数据传输客户端、主流 Web 浏览器、不同类型的主机(桌面、移动)和多样化的网络(有线宽带、无线)上都能观察到。
这不仅影响了文件传输,还影响了视频流媒体(在高速以太网和 5G 下,视频比特率降低至多 9.8%)和网页浏览(平均页面加载时间比 HTTP/2 长 3.0%)。通过深入的数据包追踪分析和内核与用户空间的性能分析,研究者们确定了性能瓶颈主要在于接收端的处理开销,特别是对于数据包和 QUIC 的用户空间 ACK 处理。
简单来讲,当网络带宽超过一定阈值(大约在 500 Mbps 至 600 Mbps 之间)时,QUIC 的性能开始落后于 HTTP/2。在 Chrome 浏览器上的测试显示,当带宽达到 1 Gbps 时,QUIC 的性能比 HTTP/2 慢 45.2%。在移动客户端上,由于计算资源有限,性能差距甚至更大。
此外,对于网页浏览,研究发现 QUIC 的页面加载时间(PLT)平均比 HTTP/2 长 3.0%,且存在长尾效应,即在某些情况下,性能差距可以超过 50%,甚至达到 74.9%。这表明,在高速网络下,QUIC 可能会导致网页加载时间显著增加,从而影响用户体验。
在视频流媒体方面,QUIC 的性能不足也导致了视频比特率的减少。在高速以太网和 5G 网络下,QUIC 相比 HTTP/2 可能导致视频比特率降低至多 9.8%。
在实际的 Web 浏览器中,QUIC 在高速网络下的性能问题是显著的,尤其是在带宽较高的情况下,性能下降对用户体验有明显的负面影响。
研究者们提出了一系列缓解措施,包括:
- 在接收端部署 UDP GRO,以减少内核空间中处理的数据包数量。同时,优化 QUIC 的接收端逻辑,例如通过延迟 ACK 和使用 recvmmsg 系统调用来减少处理开销,也是提高性能的关键。
-
使用多个 CPU 核心来接收数据的方法,这可以在一定程度上提高 QUIC 在高速网络下的数据传输性能。
-
对于 QUIC 性能的深入检查和改进的重要性,特别是在新兴网络和应用场景中。这包括了对于 QUIC 协议栈的各个层面的优化,以及对于不同操作系统和硬件平台的适配。
目前,该报告已上传至开源PHP APP,详情可至「开源PHP APP - 报告模块」下载查看。
APP 下载地址:https://www.oschina.net/app