HTTP 3.0舍弃了TCP不再依赖它为什么做错了?
发布时间
阅读量:
阅读量
自HTTP/1.0版本起,直至HTTP/2的演进过程中,无论应用层协议经历了怎样的优化与升级,TCP始终作为HTTP协议的底层支撑技术存在,这主要归因于其能够确保数据传输的稳定性与可靠性。
然而,随着HTTP 3.0的推出,这一传统格局发生了显著转变。
原因在于,在最新发布的HTTP 3.0版本中,TCP协议已被全面弃用。
TCP队头阻塞
在TCP数据传输过程中,发送方会将原始数据分割为若干个按顺序排列的数据包,并通过网络将其发送至接收端。接收端在接收到这些数据包后,会依据其顺序性重新拼接成完整的原始数据,从而实现数据的完整传输。
然而,若某个数据包未能按预期顺序抵达接收端,接收方将维持连接状态并持续等待该数据包的到达,这一过程将导致后续请求的处理被延迟,从而引发所谓的TCP队头阻塞现象。
HTTP/1.1协议中引入的管道化持久连接机制允许同一TCP连接被多个HTTP请求复用。不过,在HTTP/1.1标准中规定,每个域名最多可同时建立6个TCP连接。相比之下,在HTTP/2协议中,同一个域名仅使用单一TCP连接进行通信。
因此,在HTTP/2环境下,TCP队头阻塞所带来的负面影响更为显著。这是因为HTTP/2采用多路复用技术,使得多个请求共享同一个TCP连接。一旦某个请求遭遇TCP队头阻塞问题,则所有依赖于该连接的请求都将受到波及。
全部评论 (0)
还没有任何评论哟~
