浅谈HTTP3,究竟带来了哪些改进 - 简的博客
TypechoJoeTheme

简的博客

统计
登录
用户名
密码

浅谈HTTP3,究竟带来了哪些改进

2022-01-19
/
0 评论
/
283 阅读
/
1562 个字
/
01/19

大家好,好久不见,我是咸鱼

距离上一次发博文又过了半个月左右,没错我又又又鸽了半个月,诶嘿╰( ̄▽ ̄)╭

这段时间也总算把手头上剩下的一点事处理完了,现在终于有时间可以“好好”... 和大家聊聊天了

前言

之前和大家聊过TLS1.3带来的技术创新与改革

TLS是一个基于openssl库的加密传输协议,但我们也知道光有加密协议是不够的,就像是火车没有火车头,肯定是行不通的

而陪伴了TLS这么久的火车头就是HTTP

小伙伴:不是HTTPS吗?

HTTP+TLS=HTTPS 这么简单的问题还要问吗?

HTTP至今为止一共发布了4个“正式”版本
分别是

  • HTTP0.9 1991年
  • HTTP1.0 1996年
  • HTTP1.1 1999年
  • HTTP2.0 2015年

而我们今天要讲的HTTP3其实是一个测试版本,目前处于待发布状态,但是,它已经被开始实验性的“使用”了

最先开始带头使用HTTP3的互联网巨头,是我们所熟知的“Google”和“cloudflare”

没错还是谷歌,永远走在技术前沿的那个谷歌,webp,bbr,http3,全是谷歌

我认为这种“探索”的精神是值得我们去学习的,相比一直在原地踏步的国内互联网厂商们,国外的巨头们总是很乐意研究并探索新技术

协议

HTTP3相比HTTP2基本是做了完全的革新

首先需要先知道一点,目前我们绝大多数使用的互联网底层协议都是TCP(TCP,Transmission Control Protocol)

TCP能够被如此大范围推广和使用的原因就是因为它具有,可靠性,稳定性,易用性,这几个最重要的特点,它通过三次握手来实现连接,并且在规定时间内未返回包,就会自动进行重发

而和TCP一起诞生的另一位“兄弟”就是UDP
是的你没有听错,就是DDOS里的那个UDP Foold

相比TCP的三次握手,UDP就直接的很多,它在传输数据前不建立连接,要传输就直接发出去,就像是不打招呼就开你家门一样

也就是因为这个特性,UDP变成了黑客们最喜欢的“凶器”,UDP不受制于拥挤控制算法的调节,只受应用软件生成数据的速率,和硬件性能,相比TCP,它是不可靠的,不稳定的

但是...

它够快,对比TCP性能消耗更小,速度对比TCP基本是成倍的提升,所以它也经常被用于一些对速度要求较高的,流媒体,游戏等

而我们今天要讲的HTTP3正基于UDP协议,这是一个基于UDP重新设计过的,“可靠的”传输协议,实际上HTTP3最开始的时候被称作QUIC,直到后来经过协会的认证后,它才有了另一个“外号” HTTP3

特性

HTTP3具有几个比较重要的特性

  • 减少了 TCP 三次握手及 TLS 握手时间
  • 改进的拥塞控制
  • 避免队头阻塞的多路复用
  • 连接迁移
  • 前向冗余纠错

其中最重要的一点,也就是0-RTT
什么是0-RTT?

这里的RTT实际上代指握手次数,这个特性也是UDP所带来的,不需要握手就可以直接传输数据,大幅减少了传输数据前所等待的时间

其次就是拥堵控制
它在应用层面就可以直接实现拥堵控制,而不需要系统或者内核支持,单个程序之间可以配置不同的拥堵算法

然后就是多路复用,相信这个名字大家应该没少听过吧,多路复用是HTTP2的特性之一,打个比方

你坐公交车只要2块钱,坐出租车却要20块
为什么公交车便宜呢? 人多嘛
每个人都出一份钱,这样平均下来价格就便宜了

网络也是,多路复用就是把原本需要多条连接传输的数据“合并”到一起通过一条线路传输,提高了网络的利用率,并减少了所使用的资源

但HTTP2的缺点在于丢包堵塞,假设发了三个数据包,第一个数据包到了,第二个数据包被丢了,这时TCP为了确认数据的可靠性就会重发这“第二个数据包”,但此时第三个数据包已经到了,但是被堵塞了,它必须等待第二个数据包

而HTTP3的多路复用,每一段数据是完全独立的,即使产生丢包,也不影响其它的数据传输,从而有效避免堵塞

相比HTTP2,HTTP3把TLS集合进了底层,虽然仍然依赖openssl库,但不需要外在的TLS协议支持了

总结

HTTP3更像是一个集UDP所有优点,但又保证了可靠性的全新协议,虽然目前没有“正式发布”,但目前已经开始小范围应用,由谷歌带头冲在了技术前沿的第一线,目前最新的谷歌浏览器已经支持了HTTP3

HTTP2能够被快速接受的原因来自于TCP,从N年前就开始使用的协议,说换就换肯定还是有点“麻烦”,虽然HTTP3已经尽力实现了“平滑处理”,就像是一个天天喝果汁的人,你突然拿同样味道的饮料给他喝,虽然味道很像,但他就是会说“没内味”

IPv6也是同样的处境,即使早在几年前就已经宣布了IPv4地址的枯竭,但各大互联网巨头依然丝毫没有想要更换的念头

这也不怪,更换是一项相当巨大的工作,如果只支持IP v6,那么如果他们的用户没有一起更换成IPv6就会无法访问

但HTTP协议的升级还是很“平滑”的,即使你的用户仍在使用HTTP2,它也是可以向下兼容的

但是国内的互联网产商似乎少了点“干劲”,目前为止貌似还没有几个支持HTTP3的网站

不过不难预判,在不久的将来HTTP3一定会像HTTP2一样席卷互联网,他们只是少了几个“带头”的

虽然这个时间可能会有点漫长就是了...

我是咸鱼,我们下期再见<( ̄︶ ̄)>

朗读
赞(0)
版权属于:

简的博客

本文链接:

https://liteawa.com/index.php/archives/516/(转载时请注明本文出处及文章链接)

评论 (0)

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月