目录
QUIC(Quick UDP Internet Connection)是谷歌提出的一种基于UDP的低时延的互联网传输层协议。
QUIC解决了现代网站应用的一系列的传输层级应用层的问题,但是只需要应用开发者几乎不用做出或者只做出很小的改变。QUIC和TCP+TLS+HTTP很类似,但是基于UDP实现,基于QUIC实现的HTTP协议被提议为HTTP3。
TCP/UDP缺点
为什么会有QUIC,那么得从两大主流协议TCP/UDP协议的不足说起。
TCP的不足
1. 握手导致的连接成本
2. 队头阻塞
3. 连接不能迁移(手机以及Wifi的场景)
4. 协议历史悠久导致中间设备僵化
5. 依赖于操作系统的实现导致协议本身僵化。
UDP的不足
1. 不可靠
2. 不稳定
握手导致的连接成本
不管是 HTTP1.0/1.1 还是 HTTPS,HTTP2,都使用了 TCP 进行传输。HTTPS 和 HTTP2 还需要使用 TLS 协议来进行安全传输,TCP的缺点HTTP及TLS都有。
这就出现了两个握手延迟:
1. TCP 三次握手导致的 TCP 连接建立的延迟;
2. TLS 完全握手需要至少 2 个 RTT 才能建立,简化握手需要 1 个 RTT 的握手延迟。
对于很多短连接场景,这样的握手延迟影响很大,且无法消除。
TCP的可靠成本
在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的CPU、内存等硬件资源。 而且,因为TCP有确认机制、三次握手机制,这些也导致TC