当前位置: 首页 > Web前端 > HTML

http3不再使用tcp协议的原因

时间:2023-04-02 23:06:29 HTML

http3不再使用tcp协议的原因上一篇文章梳理了http0.9-http3的整个变化过程,但不是很详细。比如浏览器如何使用http1.1,如何处理多个请求?从http2到http3的底层协议的特点和相应变化的背景没有说清楚。今天专门针对http3不再使用底层tcp协议的问题作为介绍,并详细说明相应变化的原因。首先说说我们经常提到的TCP协议:TCP协议提供了一种面向连接的、可靠的字节流服务。但是TCP连接的概念还是比较抽象的。我们可以这样理解,电话的两端有两个运营商,电话之间的连接是通过电话线。公务通话时,接线员A拨通接线员B,说:有人吗?接线员B回复:我在!接线员A又说:好的,我知道了。这相当于TCP连接建立时的三次握手,用来判断双方的状态。之后,双方话务员就可以正常通话了。同时,为了避免两人沟通不畅等问题,双方还约定了如何沟通,信号中断如何处理等等。TCP断开时,需要挥手四次,这个就不用细说了。至于为什么是前三后四,是因为验证太多没有用,所以采用最少的验证次数。接下来说一下UDP协议:我们要知道它最大的特点就是无连接。即信息在传输数据之前不需要建立连接。当你要发送数据时,尽可能快地将数据包扔到网络上。协议这么不靠谱,为什么HTTP3还用UDP协议呢?我们在上一篇文章中也谈到了HTTP2的一些问题,其中,基于TCP协议的HTTP协议永远无法解决队头阻塞问题。在这种情况下,数据传输速度无法进一步加快。HTTP3是基于UDP协议的,它还做了一些其他的处理,比如加入数据包重传、拥塞控制、调整传输节奏等等。其核心思想是将TCP协议在内核实现的可靠传输、流量控制、拥塞控制等功能转移到用户态实现。同时,加密传输方向的尝试也推动了TLS1.3的发展。至于http3的缺点,那是以后的事,五年后有兴趣的时候再补充!

最新推荐
猜你喜欢