QUIC 在高速网络下不够快


研究者发表了一份报告表明,QUIC 在高速网络下的性能不足,可能导致数据传输速度下降,尤其是在文件传输、视频流媒体和网页浏览等应用场景中。

研究表明,与传统的 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

 


相關推薦

2023-11-09

及多并发模型支持作为关键的设计目标。TQUIC核心采用了网络IO及事件循环抽象化设计。TQUIC核心并不依赖于套接字,而是通过用户提供的回调来实现。同时,TQUIC核心没有强加特定的事件循环要求,它提供了帮助用户调度事件的

2023-04-08

RTT,RTT 用于丢失检测和触发重传。这一值就是初始估计网络中的 RTT 情况,用户可以根据实际网络环境设置合理的 RTT 来保证连接不断。 quic_send_idleTimeout:重置 QUIC 传输层拥塞控制检测的最大空闲时间。拥塞控制会修改内部

2023-11-25

针对 QUIC 的初版客户端,QUIC 是 Google 开发的通用传输层网络协议,后来被 IETF 采用。 对于 OpenSSL 3.3 和明年的 OpenSSL 3.4,他们的目标是进一步完成此实现。 此外还增加了对 TLS 1.3 中 Brainpool 曲线的支持、原始公钥 (RFC7250) 支持、

2024-07-02

nstall tsshd   也可使用 gemfury 源( 只要网络通,所有操作系统通用 ) echo '[trzsz] name=Trzsz Repo baseurl=https://yum.fury.io/trzsz/ enabled=1 gpgcheck=0' | sudo tee /etc/yum.repos.d/trzsz.repo sudo yum install tsshd   ArchLinu

2024-08-28

ssh agent 转发和 X11 转发 ) [TODO] 连接迁移( 支持网络切换和掉线重连,依赖于 quic-go#234 ) 如何使用 在客户端(本地电脑)上安装 tssh。 在服务端(远程机器)上安装 tsshd。 使用 tssh --udp&

2024-07-09

ssh agent 转发和 X11 转发 ) [TODO] 连接迁移( 支持网络切换和掉线重连,依赖于 quic-go#234 ) 如何使用 在客户端(本地电脑)上安装 tssh。 在服务端(远程机器)上安装 tsshd。 使用 tssh --udp&

2023-07-26

式发布至中央仓库已经一周年了,经历了近 50 个版本的高速迭代。期间得到了众多开发者的认可,并且这些数据都是可查的,统计数据来源于语雀后台,这些数据都是真实的、客观存在的、活的。与 git star 数据不同的是,因为

2024-04-11

OpenSSL 3.3.0 已发布,此版本在 OpenSSL 3.2 中引入的 QUIC 连接支持的基础上,对 QUIC 传输协议支持做了许多改进。 OpenSSL 3.2 的重点是 QUIC 客户端支持,而 OpenSSL 3.3 则在 QUIC 服务器端做了更多工作。有关 OpenSSL 当前 QUIC HTTP/3 支持的

2023-07-23

近日,新型JavaScript运行时Bun正式发布了0.7版本,带来了重大的升级。据悉,Bun是一个配套齐全的JavaScript解决方案,集运行时、打包器、转译器和包管理器于一体,追求极致的运行速度。此次更新主要集中在与Node.js的兼容性提升

2023-10-29

针对 QUIC 的初步客户端,QUIC 是 Google 开发的通用传输层网络协议,后来被 IETF 采用。 对于 OpenSSL 3.3 和明年的 OpenSSL 3.4,他们的目标是进一步完成此实现。 此外还增加了对 TLS 1.3 中 Brainpool 曲线的支持、原始公钥 (RFC7250) 支持、

2023-07-25

基金会称为"即将发生的悲剧";但欧盟理事会会议还是就网络弹性法案 (CRA) 的“谈判授权 (negotiating mandate)”达成了一致,授权轮值主席国西班牙与欧洲议会就立法的最终版本进行谈判。此次谈判被称为“三部曲”,涉及欧盟委

2022-12-11

Syncthing 是一个免费开源的工具,它能在你的各个网络计算机间同步文件 / 文件夹,它的同步数据是直接从一个系统中直接传输到另一个系统的,并且它是安全且私密的。Syncthing v1.22.2 现已发布,具体更新内容如下: Bug 修复

2023-11-29

变,以获得更高的速度。 由于特权时预先分配空间,在高速 SSD 环境下速度提高 20%-30%。 在主要命令中增加了"Verify"、"FC Verify Info Disp "和 "FC Verify Info Check(仅限 Pro 版)"。 支持 CPU affinity。 增加了总是并行运行的驱动器设

2023-09-30

业务收入同比增长11.3%。 (三)网络销售领域企业收入高速增长。1-8月份,主要提供网络销售服务的企业(包括大宗商品、农副产品、综合电商、医疗用品、快递等)互联网业务收入同比增长45.1%。 三、分地区运行情况 东部