为什么我们需要 HTTP/3?QUIC协议成功“上位”。

TCP 是 Internet 上使用和部署最广泛的协议之一,多年来一直被视为网络基石,随着HTTP/3正式被标准化,QUIC协议成功“上位”,UDP“取代”TCP成为基础协议,TCP究竟“输”在哪里?

TCP与HTTP的不解之缘

HTTP(超文本传输协议 1.0)的第一个正式版本在 1996 年完成。但是HTTP/1.0 没有充分考虑分层代理、缓存、长连接的需求和虚拟主机的影响。所以在一年后HTTP/1.1发布,这也是使用最广泛的版本。

在 HTTP/1.1 中, 浏览器通过 TCP 连接一次只能下载一个文件, 如果一个页面需要 10 个 js 文件, 那么这些文件将会按顺序下载。一个文件的延迟就会阻塞后面的其他内容, 也就是我们常说的队头阻塞。

2015年, HTTP 协议迎来了更新, HTTP/2发布。HTTP/2 的一大特点是多路复用。引入了二进制帧和流机制,允许使用单个 TCP 连接, 通过 Stream 并行下载资源, 提高了传输效率。然而HTTP/2的多路复用技术使得多个请求其实是基于同一个TCP连接的,因此在HTTP/2中,TCP队头阻塞造成的影响会更大,如果某一个请求造成了TCP队头阻塞,那么多个请求都会受到影响。

事实上,在丢包率高的环境中,HTTP/1.1 性能更好。

此外,发起 HTTP 请求时,需要经过 TCP 三次握手和四次挥手的过程,整个过程共需要 3 个 RTT 的时延才能发出请求数据。如果客户端和服务器相距遥远,则每RTT可能会花费超过 100 毫秒,从而导致明显的延迟。

RTT:往返时间(Round Trip Time),指一个请求从客户端浏览器发送一个请求数据包到服务器,再从服务器得到响应数据包的这段时间。RTT 是反映网络性能的一个重要指标。

几十年来,TCP 一直是网络的基石,但种种问题让大家不得不思考取代它的方法,这就是——QUIC,QUIC在几个关键方面与 TCP 有很大不同,直接在其上运行 HTTP/2 将非常困难。因此,HTT

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值