脸书大部分流量皆已使用新协议QUIC和HTTP/3

脸书在博客披露,现在脸书有超过75%的互联网流量都使用QUIC(包括QUIC和HTTP/3)协议,脸书提到,QUIC在许多方面都比旧协议表现还要好,包括请求错误、长尾延迟以及回应标头大小等,各种影响用户使用体验的指标。

广义的来说,QUIC是一个用来代替TCP的协议,最初由Google开发,在之后Google将其提交给IETF,经过IETF重新设计与改进,成为了目前最终的QUIC版本,HTTP/3则是最新的HTTP版本,而QUIC和HTTP/3结合,能在互联网中引入最新的功能。

脸书提到,QUIC与HTTP/3的组合,比TCP加HTTP/2的性能更好,TCP加HTTP/2首先开始提供在单一网络连接,支持多重资料流媒体的功能,称之为流媒体多任务,而QUIC与HTTP/3推进流媒体多任务的发展,消除了TCP队头阻塞的问题,使得流媒体真正各自独立,不会因为丢失的封包阻塞,而使得连接中的所有流媒体变慢。另外,QUIC提供先进的丢失恢复功能,因此即便在恶劣的网络条件下,QUIC的性能变现会比大多数TCP实例还要好。

脸书开发了自家的QUIC实例mvfst,以便在系统上快速测试和部署QUIC,同时也结合使用自家开发的HTTP客户端/服务器函数库Proxygen,以及TLS 1.3函数库Fizz。脸书希望新协议可以和现有的软件无缝集成,因此展开了一系列QUIC实验,他们在互联网流量中的一大分支实验QUIC,其中大部分针对内部的网络流量,包括从代理服务器到脸书的公共流量。

脸书提到,要是QUIC在内部流量表现不佳,那他们可以推测,在范围更大的互联网上,表现肯定也不会太好。脸书应用程序是脸书第一个在互联网中,测试QUIC的目标,脸书提到,因为脸书应用程序拥有成熟的架构,可以在推送给数十亿用户之前,在应用程序安全地发布变更,并且测试变更带来的影响。

QUIC在脸书应用程序中,改进了数个性能关键指标表现,跟HTTP/2相比,脸书应用程序的请求错误减少6%,长尾延迟降低20%,而且回应标头大小也减少了5%,这些改变同时改善了相关指标的表现,经过实验,QUIC的确可以大幅提高使用应用程序的体验。

除了在动态请求使用QUIC,脸书还在像是图片和视频等静态内容部署QUIC,实验结果显示,QUIC也能有效提高用户观看视频的体验,在脸书应用程序的视频观看指标,产生变革性的影响,综合不同平台的平均重新缓冲时间(MTBR),可缩短22%的时间,视频请求总错误数则减少8%,而且视频停顿率甚至减少了20%,脸书提到,QUIC可明显提升视频观看体验,特别是对网络条件相对较差的用户,更能产生巨大的影响。

虽然最终脸书在应用QUIC上,获得良好的成果,但脸书也提到,他们在过程克服了各种问题,其中像是iOS和Android应用程序使用不同的机制,以估算可用下载带宽,而在使用QUIC时,估算器可能错估可用带宽,而播放比带宽能够支持,还要高品质的视频等问题,脸书经过了一些实验和迭代,才找到系统最佳的QUIC配置。