HTTP/3落地Pinterest

编者按:HTTP/3正在不断获得新的应用部署,也有越来越多的案例证明了HTTP/3对流媒体应用的价值。随着生态逐步完善,HTTP/3份额会进一步提升。本文来自Pinterest技术博客,LiveVideoStack已获中文授权,感谢Liang Ma对本文的审校。

原文 https://medium.com/pinterest-engineering/pinterest-is-now-on-http-3-608fb5581094
文 / Liang Ma, Scott Beardsley, Haowei Yuan
译 / 核子可乐
技术审校 / Liang Ma
图片
图一:Pinterest的HTTP/3架构

现在,HTTP/3已经在Pinterest落地。我们在多CDN边缘网络上为主要Pinterest产品环境启用了HTTP/3,同时完成了对客户端应用程序的网络技术栈升级,确保能够支持新协议。本次升级是为了紧跟行业趋势,确保以更快、更可靠的网络基础改善Pinterest的用户体验和业务指标。

相关背景

对Pinterest用户而言,网络性能(如延迟、吞吐量等)无疑是决定使用体验的关键要素。

2021年,Pinterest开始考虑采用HTTP/3(即QUIC),并逐步向流量/CDN乃至客户端应用普及。我们在整个2022年开展了相关研究,并成功实现了初步目标(这项工作在2023年及之后还将继续进行)。

术语

  • HTTP/3: 下一代HTTP协议,目前已经趋于稳定并由IETF工作小组负责收尾。
  • QUIC: 由Chromium/谷歌为HTTP over UDP而开发;项目随后被提交至IEFT进行标准化(即HTTP/3)。

落地HTTP/3意义何在?

HTTP/3是一种现代HTTP协议,相较于上代HTTP/2具备一系列优势,包括但不限于:

  • 与HTTP/2相比,不存在TCP队头阻塞问题;
  • 可跨IP地址实现连接迁移,有益于移动用例;
  • 能够更改/调整丢失检测与拥塞控制;
  • 缩短连接时间(0-RTT,而HTTP/2仍需要TCP三向握手);
  • 对于图像下载、视频流传输等体量较大的有效载荷用例,可提供更高的执行效率。

这些优势与Pinterest用例显然高度契合——实现更快的连接建立速度(首请求首字节时间)、更好的拥塞控制(我们掌握着大体量媒体)、保证多路复用时不存在TCP队头阻塞(同时多次下载),并可在Pinterest用户的设备网络/IP变更时继续处理in-flight请求。这样,当用户在Pinterest上挥洒灵感之时,他们将获得更快、更可靠的使用体验。

在Pinterest落地HTTP/3

策略

安全和指标永远第一。尽管Pinterest强调速度的重要性,但更重要的是要以妥帖恰当的方式采用HTTP/3。首先,我们升级了客户端网络技术栈,并为每种流量类型(包括图像和视频)创建了端到端A/B测试。之后,我们又开展广泛实验,最终才真正在CDN和客户端启用HTTP/3。

挑战

将我们的CDN和客户端应用转向HTTP/3其实并不简单,下面来看几个主要原因:

  • 对于Web应用程序,部分浏览器已经能够支持HTTP/3或QUIC。但这些浏览器在使用HTTP/3时仍可能存在兼容性问题,也许会影响到Pinterest的Web应用。
  • 新的iOS版本(从iOS 15开始)已经提供对QUIC的早期支持,除非我们在服务器端禁用QUIC,否则无法通过代码对此进行控制。
  • 我们的各家CDN供应商在对HTTP/3的支持方面存在进度差异。当我们通过CDN逐渐启用HTTP/3时,Pinterest的多CDN边缘网络在很长一段时间内只能部分支持HTTP/3,导致流量在不同CDN间切换时难以保障其可靠性和性能。

解决思路

  • 首先,我们创建了A/B域级(CDN)测试,并在测试中克隆了一个域以启用HTTP/3,全面验证了已认证的客户端(包括Web)。例如:在图像HTTP/3验证计划中,我们使用i2.pinimg.com来验证http/3上的图像流量。
  • 对于多CDN问题,我们选择了相对较短的ALT-SVC TTL(生存时间)以贴近DNS记录TTL,并尝试在各CDN上配置相同的协议设定。
  • 开展广泛测试,通过各种最常用的浏览器对跨CDN HTTP/3行为进行验证。
  • 在A/B测试通过之后,我们开始在生产中启用HTTP/3(各CDN逐一启用),之后客户端应用程序使用功能标记通过兼容的网络客户端来控制HTTP/3。这样不仅安全性更高,也能对指标进行收集和比较。

落地现状

我们已经在关键流量类型上启用了HTTP/3,并升级/利用移动客户端的网络堆栈以采用HTTP/3。

流量:Pinterest多CDN边缘网络上的各主要生产域均已启用HTTP/3。

客户端:

  • Web在可兼容的浏览器和流量上直接受益于HTTP/3;
  • iOS——图像/API流量目前由Cronet和HTTP/3共同提供。目前,70%的iOS图像流量经由HTTP/3传递。
  • iOS的原生网络技术栈,能够在我们的流量端启用后使用HTTP/3协议。苹果原生网络栈的HTTP/3采用率一直保持着稳定增长。我们也从收集的Video指标中发现该在采用HTTP/3(通过AVPlaer)后相关指标得到了显著改善。
  • Android Video性能通过Exoplayer+Cronet使用HTTP/3。

展示

我们的分析表明,HTTP/3(和Cronet)切实改进了各项核心网络指标(往返延迟与可靠性)。这种延迟/吞吐量层面的改进,对于大型媒体功能(例如视频、图像等)至关重要。更快、更可靠的网络也有助于拉升用户的参与度指标。

视频指标

视频GVV(视频良好观看率)细分(iOS:苹果网络+HTTP/3):

图片

视频GVV细分(Android:Exoplayer + Cronet + HTTP/3):

图片
图二:HTTP3对视频启动延迟的直接影响

参与度指标(iOS): HTTP/3的直接影响

图片
图三:HTTP3对用户参与度的影响

网络指标

  • 往返延迟 (ms):
图片
图四:网络请求的往返延迟,蓝色为使用HTTP/3前,红色为使用后

备注:

(1)测量的是从客户端测量,即从请求发出到收到响应的时间;

(2)苹果原生网络(HTTP/2)指标的来源为2022年第三季度某一周内的网络日志;Cronet(已启用HTTP/3)指标的来源为2023年第一季度某一周内的网络日志。

  • 网络可靠性指标也有相应提升。

未来计划

我们将继续向HTTP/3投入以扩大收益,包括:

  • 增加HTTP/3的覆盖范围,探索Android上的其他网络技术栈;
  • 进一步提高HTTP/3采用率,设定更大的max-age值;
  • 尝试各种拥塞控制算法;
  • 探索实现0-RTT连接。

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

  • 揭秘HTTP/3优先级

    编者按:相对于HTTP2,HTTP/3的优先级更加简单,浏览器厂商更可能实现统一的优先级策略。本文来自老朋友Robin Marx,已获授权转载,感谢刘连响对本文的技术审校。 翻译 …

    2023年1月12日
  • HTTP、HTTP/2 与 HTTP/3 有什么区别?

    由于Web通信需要不断演进,超文本传输协议(HTTP)的三个版本 HTTP、HTTP/2 和 HTTP/3 也在不断演进,以满足对速度、安全性和效率的不懈要求。 让我们来探讨一下H…

    2023年11月17日
  • HTTP网络协议演进史

    HTTP(HyperText Transfer Protocol)是当今互联网上应用最为广泛的一种网络协议,是万维网(World Wide Web)数据通信的的基础,最初设计只是为…

    2023年7月17日

发表回复

登录后才能评论