2.8.2 QUIC 应用实践

QUIC 协议的表现如何,是否可以在正式环境应用?2022 年,爱奇艺基础架构团队对 HTTP/1.1、HTTP/2、HTTP/3 等各版本进行基准测试,笔者将测试数据在此分享,以供读者参考。

图 2-30 展示了在不同网络质量下,各个 HTTP 协议的响应耗时表现。


图 2-30 不同网络质量下的协议耗时表现(耗时单位 ms)

上述测试数据表明,在相同网络质量下,HTTP/3 相比于 HTTP/2 的响应时间减少了约一半。不过,测试还发现了另一个问题。根据图 2-31 的网络请求成功率测试结果,HTTP/3 的失败率高于 HTTP/2。


图 2-31 不同网络质量下的协议失败率表现

2024 年初,笔者在多个海外地区进行了类似的测试,结果显示 HTTP/3 的失败率比 HTTP/2 高出约一倍,大多数错误类型为“Lost connection”。综上所述,无论是在服务端还是客户端,集成 QUIC 协议并非一件易事:

  • 服务端:不仅需要适配 QUIC 协议,还要确保与 TCP 协议兼容。由于 TCP 已在内核中经过深度优化以处理各种极端情况,这就引发了一个问题:“QUIC 在实际应用中的效能表现是否能够与 TCP 相媲美?”。
  • 客户端:面临适配与收益之间的成本权衡。采用 QUIC 协议的客户端需要具备降级容错能力,并准备在较长时间内同时维护新旧两种网络库。
总字数:415
Last Updated:
Contributors: isno