HTTP2还没普及,HTTP3就开始测试了
Posted 裸睡的猪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP2还没普及,HTTP3就开始测试了相关的知识,希望对你有一定的参考价值。
作者 | Sreeni Tellakula
翻译 | 高可用架构
外文 | https://blog.cloudflare.com/http-3-vs-http-2/
即使HTTP 3仍处于草稿状态,我们的用户对此也有很大兴趣。到目前为止,已经有超过113,000个区域激活了HTTP/3,如果您使用的是实验性浏览器,则可以使用新协议。看到如此多的人启用HTTP/3真是太棒了:通过HTTP /3访问真实的网站意味着浏览器具有更多可测试的属性。
当我们和Google合作启动对HTTP / 3的支持时,后者同时在Chrome中启动了HTTP/3实验特性。
一、HTTP3现状如何
二、HTTP3好处
下面说明了数据包丢失及其影响:HTTP / 2多路复用两个请求。一个请求通过HTTP / 2从客户端发送到服务器,请求两个资源(我们将请求及其相关的响应涂成绿色和黄色)。响应被分解为多个数据包,一旦一个数据包丢失了,两个请求都被阻止。
上图展示了HTTP / 3复用2个请求。虽然黄色的数据包丢失了,但是绿色的数据包传输得很好。
三、HTTP3 vs HTTP2
有趣的是,协议的每个方面均不受草案或RFC的约束。实现方式的选择会会影响性能,例如有效的数据包传输和拥塞控制算法的选择。拥塞控制是计算机和服务器用来适应过载网络的一种技术:通过丢弃数据包,随后的传输受到限制。由于 QUIC是一种新协议 ,因此正确进行拥塞控制需要进行实验和调整。
“丢失检测和拥塞控制”规范建议使用Reno算法,但允许选择任何算法。我们的实现从New Reno算法开始,通过以往经验我们知道可以通过其他方式获得更好的性能。我们最近已迁移到CUBIC算法,在我们的网络中,CUBIC的传输和数据包丢失都比New Reno有所改善。
对于我们现有的HTTP / 2堆栈,我们目前支持BBR v1(TCP)。这意味着在我们的测试中,我们无法进行精确的比较,因为这些拥塞控制算法在较小内容传输与较大内容传输之间的行为会有所不同。话虽这么说,与HTTP/2相比,我们已经看到使用HTTP/3的较小内容传输的速度更快。对于较大内容的传输,改进后的HTTP / 2堆栈的拥塞控制在性能上大放异彩。
对于15KB的小型测试网页,HTTP / 3平均需要443ms加载,而HTTP / 2则为458ms。但是,一旦我们将页面大小增加到1MB,优势就会消失:HTTP / 3仅比当今网络上的HTTP / 2慢一点,HTTP/3加载使用2.33秒而HTTP/2加载使用2.30秒。
为了进行衡量,我们希望有一个第三方可以像浏览器一样加载网站。WebPageTest是一个通用框架,使用瀑布图来测量页面加载时间。为了分析后端,我们使用了Browser Insights来捕获边缘节点记录的时间。然后,我们将这两部分数据结合在一起。
作为测试用例,我们决定对公司博客进行性能监控。我们在全球范围配置了WebPageTest实例,同时通过HTTP / 2和HTTP / 3加载该页面。我们还启用了HTTP / 3和Browser Insight。因此,每当我们的测试脚本使用支持HTTP / 3的浏览器启动网页加载网页时,浏览器分析就会报告数据。清理数据并重复HTTP / 2的测试以进行比较。
下图显示了真实页面(blog.cloudflare.com)的页面加载时间,以比较HTTP / 3和HTTP / 2的性能。另外我们从不同的地理位置进行了性能评估。
四、结论
以上是关于HTTP2还没普及,HTTP3就开始测试了的主要内容,如果未能解决你的问题,请参考以下文章