双十一聊聊低时延利器:QUIC

简介: 又值一年一度的“双十一购物节”之际,大家都在乐此不疲的聊着大流量高并发场景下的处理解决方案。提到抢购,总结就一个“快”字,筛选要快,下单要快,付款要快... 一切顺利操作之后,才有可能秒到足够便宜的好货。今天我们也围绕着“快”,来跟大家聊一下低时延利器:QUIC。

又值一年一度的“双十一购物节”之际,大家都在乐此不疲的聊着大流量高并发场景下的处理解决方案。


提到抢购,总结就一个“”字,筛选要快,下单要快,付款要快...  一切顺利操作之后,才有可能秒到足够便宜的好货。今天我们也围绕着“”,来跟大家聊一下低时延利器:QUIC


1. 性能对比试验


在介绍QUIC之前,我们先来做个性能对比试验:我们来分别ping 一下“大型购物网站:www.taobao.com 和 “大型程序员交友网站:github.com


  • www.taobao.com

微信图片_20220607230945.png

  • github.com

微信图片_20220607230950.png

经我们试验发现:taobao 耗时在几十ms级别,而github 却在上百ms级别


那为什么会有这样的差异呢?我们来分析一下其中存在的原因:


1.1 物理原因和延时


网络和延时的消耗大概分以下几类:


  • 距离远


   我们知道光速:30万公里/s,从北京-纽约的距离大概1.4w公里,那往返一次需要花费:107ms。


  • 路由丢包


   48TTL,经过16跳路由,每一跳都要处理时间且可能会丢包(大概15%丢包率)


  • 信号转换


   光 - 电信的转换消耗


  • 其他不可抗力


   例如:内容审查等等


1.2 TCP超时重传


TCP提供一种面向连接的、可靠的字节流服务,其中可靠的保证方法之一就是让从另一端收到的数据。但是数据和确认信号都有可能丢失。



名词解释:


RTT(Round Trip Time):一个连接的往返时间,即数据发送时刻到接收到确认的时刻的差值;

RTO(Retransmission Time Out):重传超时时间,即从数据发送时刻算起,超过这个时间便执行重传。


RTT和RTO 的关系是:由于网络波动的不确定性,每个RTT都是动态变化的,所以RTO也应随着RTT动态变化。


网络抖动会引起丢包重传,约2-5倍的RTT。


具体介绍请参考:https://blog.csdn.net/whgtheone/article/details/80970292


1.3 HTTP请求


HTTPS 请求存在一定的性能损耗,大致分布如下:


  • TCP握手3次通信,大概消耗约:1.5RTT


  • SSL/TLS握手4次通信,大概消耗约:2RTT


  • HTTP请求&响应,大概消耗约:1RTT


完成整个HTTP请,总计消耗量约:4.5RTT。


微信图片_20220607230952.png


2. QUIC是什么?


QUIC 是 Quick UDP Internet Connections 的缩写,谷歌发明的新传输协议。与 TCP 相比,QUIC 可以减少延迟。QUIC 协议可以在 1 到 2 个数据包(取决于连接的服务器是新的还是已知的)内,完成连接的创建(包括 TLS)。


主要的特点包括:


  • 0-1RTT完成一次加密的请求与响应


  • IETF标准


  • HTTP3标准


  • Chrome有20%的流量使用QUIC



微信图片_20220607230955.png


从表面上看:QUIC 非常类似于在 UDP 上实现的 TCP + TLS + HTTP/2


由于 TCP 是在操作系统内核和中间件固件中实现的,因此对 TCP 进行重大更改几乎是不可能的(TCP 协议栈通常由操作系统实现,如 Linux、Windows 内核或者其他移动设备操作系统)。


修改 TCP 协议是一项浩大的工程,因为每种设备、系统的实现都需要更新。但是,由于 QUIC 建立在 UDP 之上,因此没有这种限制。


和 TCP 相反,UDP 协议是无连接协议。客户端发出 UDP 数据包后,只能“假设”这个数据包已经被服务端接收。这样的好处是在网络传输层无需对数据包进行确认,但存在的问题就是为了确保数据传输的可靠性,应用层协议需要自己完成包传输情况的确认。


QUIC 与现有 TCP + TLS + HTTP/2 方案相比,有以下几点主要特征:


1)利用缓存,显著减少连接建立时间;


2)改善拥塞控制,拥塞控制从内核空间到用户空间;


3)没有 head of line 阻塞的多路复用;


4)前向纠错,减少重传;


5)连接平滑迁移,网络状态的变更不会影响连接断线


微信图片_20220607230958.png


从图上可以看出,QUIC 底层通过 UDP 协议替代了 TCP,上层只需要一层用于和远程服务器交互的 HTTP/2 API。这是因为 QUIC 协议已经包含了多路复用和连接管理,HTTP API 只需要完成 HTTP 协议的解析即可。


3. 开启通讯发展新时代


QUIC 协议开创性的使用了 UDP 协议作为底层传输协议,通过各种方式减少了网络延迟。


相信 QUIC 能够可以在不远的未来,开启通讯行业发展的新时代。

  • HTTP3,弱网环境下也可以流畅访问了,未来3-5年内可能会普及


  • 低延时直播,RTMP over QUIC,延时从2s降低到800ms


  • 即时通信(QQ、WeChat目前类似email,存在一定的延迟,还不是真正意义上的通信),网络游戏以及物联网(远程设备网络控制及通信)等都会变得有可能。


微信图片_20220607231002.png


虽然目前 QUIC 协议已经运行在一些较大的网站上,但离大范围普及还有较长的一段距离,期待 QUIC 协议规范能够成为终稿,并在除了谷歌浏览器之外的其他浏览器和应用服务器中也能够实现。

相关文章
|
6月前
|
算法 网络协议 应用服务中间件
(五)网络编程之流量接入层设计:基于性能怪兽从零构建日均亿级吞吐量的网关架构!
在前篇关于《Nginx》的文章中曾经提到:单节点的Nginx在经过调优后,可承载5W左右的并发量,同时为确保Nginx的高可用,在文中也结合了Keepalived对其实现了程序宕机重启、主机下线从机顶替等功能。
|
8月前
|
边缘计算 负载均衡 网络协议
B站千万级长连接实时消息系统的架构设计与实践
本文将介绍B站基于golang实现的千万级长连接实时消息系统的架构设计与实践,包括长连接服务的框架设计,以及针对稳定性与高吞吐做的相关优化。
188 9
|
负载均衡 算法 Cloud Native
MOSN 基于延迟负载均衡算法——走得更快,期待走得更稳
这篇文章主要是介绍 MOSN 在 v1.5.0 中新引入的基于延迟的负载均衡算法。首先会对分布式系统中延迟出现的原因进行剖析,之后介绍 MOSN 都通过哪些方法来降低延迟,最后构建与生产环境性能分布相近的测试用例来对算法进行验证。
EMQ
|
弹性计算 负载均衡 监控
EMQX+阿里云飞天洛神云网络 NLB:MQTT 消息亿级并发、千万级吞吐性能达成
近日,EMQ与阿里云旗下飞天洛神云网络展开合作,与NLB产品合作构建了新一代支持「亿级并发、千万级吞吐」的物联网消息服务系统。
EMQ
516 0
EMQX+阿里云飞天洛神云网络 NLB:MQTT 消息亿级并发、千万级吞吐性能达成
|
缓存 运维 Java
多年亿级流量下的高并发经验总结,我毫无保留的写在了这本书中
多年亿级流量下的高并发经验总结,多年6.18和双11大促的高并发系统沉淀与经验总结,我都写到了这本书中。
514 1
多年亿级流量下的高并发经验总结,我毫无保留的写在了这本书中
|
视频直播 定位技术 UED
支撑千万级实时并发,阿里云助力快速提升视频直播可靠性
如果您计划使用阿里云的视频直播产品进行一场在线直播,并且此次直播活动对您非常关键,想最大程度避免直播中出现任何质量问题,本文将为您介绍较为通用的提升直播可靠性的方案。
666 0
支撑千万级实时并发,阿里云助力快速提升视频直播可靠性
|
测试技术 视频直播 双11
干货分享:细说双 11 直播背后的压测保障技术
阿里云 PTS 站在双 11 巨人的肩膀上,是阿里全链路压测的延伸。PTS 通过伸缩弹性,轻松发起用户百万级别的流量,免去机器、人力成本;PTS 对流量的控制,能够实时脉冲,精准控制; 是应对视频直播快速攀升的流量脉冲的优秀方案。
2601 5
干货分享:细说双 11 直播背后的压测保障技术
|
Web App开发 边缘计算 分布式计算
|
Web App开发 数据采集 边缘计算
阿里云全球实时传输网络GRTN—QOE优化实践
阿里云GRTN核心网技术负责人肖凯,为我们分享GRTN核心网的运作机制、运用方面以及QOE的网络模型在业务板块的实践优化。
789 0
阿里云全球实时传输网络GRTN—QOE优化实践
|
监控 网络协议 算法
QUIC技术创新 让视频和图片分发再提速
在1月12日的「阿里云CDN产品发布会-新一代传输协议QUIC让CDN更快一步」之上,阿里云技术专家淮叶分享了QUIC技术及其应用落地实践,内容包含:QUIC协议介绍、相比TCP有哪些优势、应用场景以及技术落地实践中的协议库选择,QUIC协议软件实现、落地技术架构和性能优化。
2008 0
QUIC技术创新 让视频和图片分发再提速