为什么HTTP3.0使用UDP协议

目录

1. 前言

2.HTTP2.0和HTTP3.0

2.1 HTTP2.0和TCP的爱恨纠葛

2.2 谷歌为什么选择UDP

2.3 QUIC协议和HTTP3.0

3. QUIC协议详解

3.1 队头阻塞问题

3.2 0RTT 建链

3.3 首次连接和非首次连接

3.4 前向安全问题

3.5 前向纠错

3.6 连接迁移

4. QUIC的应用和前景

5.本文小结


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互联网连接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值