简介
QUIC(Quick UDP Internet Connections)是Google设计的一套可靠UDP传输协议,旨在为HTTP提供一个安全、可靠、高效和低延时的通信基础。QUIC协议已被IETF采纳为标准,并且HTTP/3已选择使用QUIC来代替TCP作为其传输层协议。本文将会逐一分析QUIC协议设计的要点。
HTTP/1和HTTP/2
HTTP是互联网的基石,它的简单、灵活使得各种各样的互联网应用成为可能。但HTTP的一些先天不足也为应用的开发增加了难度,为此,业界各大公司和标准化组织一直在对HTTP做各种改进和扩展,包括缓存、Range、长连接、Pipelining,还有基于SSL/TLS的HTTPS。后来Google设计的SPDY协议,在HTTP的基础上实现了多路复用和Header压缩,以进一步改善基于HTTP的传输性能和应用的交互体验。SPDY最终被IETF接受并做为HTTP/2的基础。
虽然多路复用提高了数据并发传输的性能,但由于SPDY是基于TCP的,而TCP使用的是统一的流控,还是存在Head-of-line blocking的问题。而且TLS层需要协商密钥,导致连接建立的过程比较复杂且低效,所以就有了QUIC协议的出现。
QUIC的设计要点
安全
随着安全和隐私越来越受重视,HTTPS也越来越普及,因此QUIC直接集成了TLS,以保障数据传输的私密,这样所有使用QUIC的上层协议和应用都不用再担心安全问题。
低延时
在HTTPS协议中,由于TCP和TLS都各需要自3次握手,导致连接建立过程较