HTTP3.0:QUIC协议详解

发布于:2025-02-13 ⋅ 阅读:(8) ⋅ 点赞:(0)

HTTP3.0:QUIC协议详解

QUIC是什么

QUIC,读作“Quick”,顾名思义就是“快得飞起”。它是Google在2012年推出的一种基于UDP的新型传输协议。UDP大家应该都知道,那个不讲究顺序、不管丢包、不负责重传的“放养型”协议。QUIC就像是给UDP装上了加速器,再加上TCP的一些可靠性,摇身一变成为了一个又快又可靠的传输协议


QUIC为什么这么快

QUIC有以下的特点

连接建立快:一见钟情型协议

传统的TCP握手需要三次来回(俗称“三次握手”),还得再加个TLS握手才能加密,整个过程就像是在相亲时反复确认“你是谁?”、“你确定是你吗?”、“好吧,那我们开始吧”。而QUIC直接跳过这些繁琐步骤,用一个握手搞定连接和加密,利用缓存,显著减少连接建立时间

image.png

拥抱UDP:轻装上阵

TCP虽然可靠,但它太重了,总要考虑丢包、顺序、重传等问题。而QUIC基于UDP,轻量级、不啰嗦,改善拥塞控制,拥塞控制从内核空间到用户空间

多路复用:一条路走到黑

HTTP/2的多路复用功能是在同一个连接里可以传输多个流(stream)。但TCP有个问题,一旦某个流出问题(比如丢包),整个连接都会卡住。而QUIC则完美解决了这个问题,每个流都是独立的,互不干扰。没有 head of line 阻塞的多路复用

更智能的丢包处理

QUIC对丢包的处理更高效,它可以快速定位问题并修复,而不是像TCP那样“大惊小怪”地重传一堆数据。这样一来,网络质量差的时候,也能前向纠错,减少重传

内置加密

在QUIC的世界里,加密是标配,而不是选配。它直接集成了TLS 1.3协议,这意味着每一次连接都是安全的,不用担心数据被偷窥或篡改

image.png

网络切换无压力

如果用手机看视频,从Wi-Fi切到4G,传统TCP会因为IP地址变化而断开连接。而QUIC通过连接ID(Connection ID)实现了无缝切换,让视频播放毫无卡顿

拥塞控制更智能

QUIC采用了类似TCP的拥塞控制机制,但它更灵活,可以根据网络状况动态调整传输速度,既能跑得快,又不会把网络“堵死”。


QUIC的应用场景

几乎所有需要网络传输的地方都可以用到QUIC,比如:

  • 网页加载:Google Chrome和YouTube早就启用了QUIC,大幅提升了网页和视频加载速度
  • 实时应用:像在线游戏、视频会议这种对延迟敏感的场景
  • 移动网络:在信号不稳定、网络切换频繁的情况下,QUIC表现得尤为出色

QUIC未来会取代TCP吗?

完全取代TCP还需要时间。毕竟TCP已经陪伴互联网几十年了,很多系统和设备都离不开它。不过随着HTTP/3(基于QUIC)逐渐普及,QUIC正在一步步成为新一代互联网基础设施的重要组成部分。

理想和现实总是有一定的差距:虽然经过多年的推广的应用,但QUIC协议目前仍未达到大量普及的阶段,在 IETF上的QUIC 依然还是草稿,并且还存在Google QUIC与IETF QUIC两类不稳定的协定。

而且,QUIC还面临以下挑战:

1)小地方,路由封杀UDP 443端口( 这正是QUIC 部署的端口);

2)UDP包过多,由于QS限定,会被服务商误认为是攻击,UDP包被丢弃;

3)无论是路由器还是防火墙目前对QUIC都还没有做好准备