IT袋

当前位置:主页 > 经验教程 > 建站编程 >

HTTP3为什么抛弃了经典的TCP

HTTP3为什么抛弃了经典的TCP 而选择QUIC

时间:2024-03-20 15:00:50 来源:IT袋 作者:马勇
导读:HTTP3为什么抛弃了经典的TCP,小编为你介绍HTTP3为什么抛弃了经典的TCP方面的介绍,一定能解决您的问题的,一起来了解吧! 我们在看一些关于计算机网络的数据或文章的时候,最常听到的就是 TCP、

HTTP3为什么抛弃了经典的TCP

小编为你介绍HTTP3为什么抛弃了经典的TCP方面的介绍,一定能解决您的问题的,一起来了解吧!

我们在看一些关于计算机网络的数据或文章的时候,最常听到的就是 TCP、UDP、HTTP 这些,除此之外,我们或多或少可能听过QUIC这个东西,一般跟这个词一起出现的是 HTTP3,也就是HTTP协议的3.0版本,未来2.x 版本的升级方案。

QUIC 由 Google 主导设计研发。我们都知道 HTTP 协议是应用层协议,在传输层它使用的是 TCP 作为传输协议,当然这仅仅是对于 HTTP/1 和 HTTP/2 而言的。而 QUIC 的设计的对标协议就是 TCP ,也就是说将来只要能使用 TCP 的地方,都可以用 QUIC 代替。

Google 最开始的目的就是为了替换 HTTP 协议使用的 TCP 协议,所以最开始的名字叫做 HTTP over QUIC,后来由 IETF 接管后更名为 HTTP/3。所以,现在说起 HTTP/3 ,实际指的就是利用 QUIC 协议的版本。

TCP不好吗,为什么还要QUIC

TCP 协议作为传输层最负盛名的协议,可谓是久经考验。只要一说到 TCP ,我们都能说出来它是一种面向连接的、可靠的、基于字节流的传输层通信协议。

TCP 通过三次握手的方式建立连接,并且通过序号、ACK确认、丢包重传以及流量控制、拥塞控制等各种繁琐又细致的方式来保证它的可靠性。

看上去很完美了,那为什么还要重新搞个 QUIC 出来呢,而且还被作为下一代 HTTP 的实现协议。确实不存在完美的协议,TCP 协议在整个发展过程中经过了多次改进,但是由于牵扯到互联网世界浩如烟海的各种设备,每次更新、修改都要考虑兼容问题,历史包袱太重,以至于尾大不掉。

所以为了弥补 TCP 的不足,在 TCP 上直接修改不太可能,那最好的方案就是重新开发一套协议。这种协议要吸收 TCP 的精华,又要解决 TCP 的不足,这就是 QUIC 出现的意义。

TCP 的问题-队头阻塞

时至今日,互联网上大多数网站都已经支持 HTTP/2 协议了,你可以在浏览器开发者工具中看一下网络请求,其中的 Protocol 表示网络请求采用的协议。

HTTP3为什么抛弃了经典的TCP

HTTP/2的一个主要特性是使用多路复用(multiplexing),因而它可以通过同一个TCP连接发送多个逻辑数据流。复用使得很多事情变得更快更好,它带来更好的拥塞控制、更充分的带宽利用、更长久的TCP连接————这些都比以前更好了,链路能更容易实现全速传输。标头压缩技术也减少了带宽的用量。

采用HTTP/2后,浏览器对每个主机一般只需要 一个 TCP连接,而不是以前常见的六个连接。

如下图所示,HTTP/2 在使用 TCP 传输数据的时候,可以在一个连接上传输两个不同的流,红色是一个流,绿色是另外一个流,但是仍然是按顺序传输的,假设其中有一个包丢了,那整个链路上这个包后面的部分都要等待。

相关阅读

  • 镜像关键技术有哪些 重要的镜像技术有哪些?

    镜像关键技术有哪些 重要的镜像技术有哪些?

    相对于大多数人镜像关键技术有哪些的教程内容,接下来就是全面介绍。 镜像端口 Mirror Port 镜像端口是原始报文经过的端口,通过配置,这个端口上的数据将被复制一份以供监控或分析。 镜

  • 家用服务器怎么搭建 自己搭建游戏服务器教程

    家用服务器怎么搭建 自己搭建游戏服务器教程

    今日小编为你讲解家用服务器怎么搭建和自己搭建游戏服务器教程方面的内容,一起来了解了解吧。 最近要涉及到服务器的部署,用Linux服务器的部署,配置,搭建,这里总结一下,不为别的

  • 深入浅出:MySQL数据库全面解析

    深入浅出:MySQL数据库全面解析

    今天带来的IT技巧小经验的相关介绍,具体介绍如下: MySQL是一个广泛使用的关系型数据库管理系统,由瑞典MySQL AB公司开发,现在属于Oracle公司。 从小型个人网站到大型企业级应用,MySQL的应

  • MySQL事务提交和崩溃恢复

    MySQL事务提交和崩溃恢复

    本文导读:MySQL事务提交和崩溃恢复的相关介绍,接下来IT袋网小编为大家介绍。 MySQL中的XA协议 有一个名叫X/Open的组织提出了一个名为XA的规范。这个XA规范提出了2个角色: 一个全局事务由多