目录
1. 前言
通过本文你将了解到以下内容:
HTTP2.0和TCP存在的一些问题
QUIC协议为什么选择UDP
QUIC协议的重要特性
HTTP3.0和QUIC协议的前景和应用效果
2.HTTP2.0和HTTP3.0
科技永不止步。
我们都知道互联网中业务是不断迭代前进的,像HTTP这种重要的网络协议也是如此,新版本是对旧版本的扬弃。
2.1 HTTP2.0和TCP的爱恨纠葛
HTTP2.0是2015年推出的,还是比较年轻的,其重要的二进制分帧协议、多路复用、头部压缩、服务端推送等重要优化使HTTP协议真正上了一个新台阶。
像谷歌这种重要的公司并没有满足于此,而且想继续提升HTTP的性能,花最少的时间和资源获取极致体验。
那么肯定要问HTTP2.0虽然性能已经不错了,还有什么不足吗?
-
建立连接时间长(本质上是TCP的问题)
-
队头阻塞问题
-
移动互联网领域表现不佳(弱网环境)
-
......
熟悉HTTP2.0协议的同学应该知道,这些缺点基本都是由于TCP协议引起的,水能载舟亦能覆舟,其实TCP也很无辜呀!
在我们眼里,TCP是面向连接、可靠的传输层协议,当前几乎所有重要的协议和应用都是基于TCP来实现的。
网络环境的改变速度很快,但是TCP协议相对缓慢,正是这种矛盾促使谷歌做出了一个看似出乎意料的决定-基于UDP来开发新一代HTTP协议。
2.2 谷歌为什么选择UDP
上文提到,谷歌选择UDP是看似出乎意料的,仔细想一想其实很有道理。
我们单纯地看看TCP协议的不足和UDP的一些优点:
-
基于TCP开发的设备和协议非常多,兼容困难
-
TCP协议栈是Linux内部的重要部分,修改和升级成本很大
-
UDP本身是无连接的、没有建链和拆链成本
-
UDP的数据包无队头阻塞问题
-
UDP改造成本小
从上面的对比可以知道,谷歌要想从TCP上进行改造升级绝非易事,但是UDP虽然没有TCP为了保证可靠连接而引发的问题,但是UDP本身不可靠,又不能直接用。
综合而知,谷歌决定在UDP基础上改造一个具备TCP协议优点的新协议也就顺理成章了,这个新协议就是QUIC协议。
2.3 QUIC协议和HTTP3.0
QUIC其实是Quick UDP Internet Connections的缩写,直译为快速UDP互联网连接。