正文:
本文探讨了新型互联网传输协议QUIC的性能,并与优化后的TCP堆栈进行了比较。QUIC作为HTTP/3的基础,旨在提升传统的TCP+TLS+HTTP网络栈性能。通过在UDP上结合这些功能,QUIC设计上能够克服如头阻塞等难以解决的问题。此外,由于中间件限制而难以在全球范围内部署的特性,如TCP FastOpen,在QUIC中变得易于实现。通过完全加密所有协议头,QUIC防止了中间件对传输层的篡改,从而实现了防止网络栈僵化的目的。QUIC的主要卖点之一是承诺大幅提高网络性能。然而,QUIC中添加的特性是否真的能显著提高速度?而TCP堆栈是否在传输过程中留下了如此多的性能空间?鉴于大型内容提供商运营高度优化的TCP网络栈,我们认为过去的测量忽略了这一事实,并将配置为Web的QUIC与通用和Web优化的TCP堆栈进行了比较。
测试方法
我们来自德国莱比锡-阿亨-波恩工业大学的学者们,使用修改后的Mahimahi框架(Mahimahi允许你在可重复的测试平台上复制今天网站的多服务器特性)对38个网站进行了测试,测试环境包括不同的网络条件(见表1)。我们的TCP网络栈需要两个往返时间(RTT)来建立连接(TCP和TLS握手)。在我们的测试平台中,QUIC始终只需要一个RTT。我们认为这最好地复制了当前和未来的部署,因为TCP FastOpen在某些网络中仍然受到中间件的阻碍,而TLS early-data在测量时并未实现。
性能测试结果
作为第一步,我们测试了调整TCP网络栈参数是否能够通过增加初始窗口(IW)从10到32、启用数据包节流、增加内核缓冲区以及“设置空闲后不进行慢启动”来提高性能。图1展示了标准TCP与我们的调整后的TCP(TCP+)的性能增益示例,计算公式为(TCP+)/TCP-1。为了用户中心的评估,我们还包括了视觉指标。
结论
通过这些测试,我们可以得出结论,尽管QUIC在某些方面提供了性能优势,但优化后的TCP堆栈仍然能够在大多数网络条件下提供良好的性能。对于运维和网络工程师来说,了解这些协议的性能差异对于选择合适的网络栈至关重要。
结尾:
对于运维和网络工程师来说,了解TCP和QUIC的性能差异对于选择合适的网络栈至关重要。通过本文的测试和分析,我们可以更好地理解这两种协议在不同网络条件下的表现,从而为网络优化和性能提升提供指导。
原文: APNIC Blog(2019-09-25)|编译自 APNIC Blog,事实以原文为准。
来源:APNIC Blog