简
大家好,好久不见,我是咸鱼
距离上一次发博文又过了半个月左右,没错我又又又鸽了半个月,诶嘿╰( ̄▽ ̄)╭
这段时间也总算把手头上剩下的一点事处理完了,现在终于有时间可以“好好”... 和大家聊聊天了
之前和大家聊过TLS1.3带来的技术创新与改革
TLS是一个基于openssl库的加密传输协议,但我们也知道光有加密协议是不够的,就像是火车没有火车头,肯定是行不通的
而陪伴了TLS这么久的火车头就是HTTP
小伙伴:不是HTTPS吗?
HTTP+TLS=HTTPS 这么简单的问题还要问吗?
HTTP至今为止一共发布了4个“正式”版本
分别是
而我们今天要讲的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具有几个比较重要的特性
其中最重要的一点,也就是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一样席卷互联网,他们只是少了几个“带头”的
虽然这个时间可能会有点漫长就是了...
我是咸鱼,我们下期再见<( ̄︶ ̄)>