脸书大部分流量皆已使用新协定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配置。
