使用了 30 年的 HTTP 要抛弃 TCP 使用 UDP 了!

业余杂谈 herman 1874浏览
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog,发送下载链接帮助你免费下载!
本博客日IP超过1800,PV 2600 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog,之前的微信号好友位已满,备注:返现
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领

HTTP 协议又叫超文本传输协议。自 1989 年在欧洲核子研究组织(CERN)所发起以来,已经拥有了 30 年的历史。其中在 1999年6月定义了 HTTP 协议中现今广泛使用的一个版本 HTTP 1.1。之后再也没有什么大的改变!直到最近 HTTP 3.0 的制定,才传出 HTTP 将有大的改变!

HTTP 协议在 1.0/1.1/2 版本中都使用 TCP 构建传输层,其特点或者说优点在于可靠性、有序性和纠错性。即连接两端收发信息是依序且能够检查错误,如果收方的数据包有问题,可以再次请求发送。

但是基于 TCP 的 HTTP 协议总是被人们哪里讨论,说性能差、效率低等。于是基于 TCP 的 HTTP 协议被人们讨论了很久,甚至有人建议 Web 应用应该抛弃 HTTP 同时借鉴 P2P 协议来实现。

这些讨论一直伴随着 HTTP 协议的发展,直到谷歌的 QUIC 协议诞生。在今年的 Google 的开发者大会上,Jana Lyengar 向大家介绍说,QUIC 协议已经在 Internet 上占据了7%左右的流量。

QUIC

QUIC(Quick UDP Internet Connection)是专门为HTTP传输层设计的,经过了多年开发之后在 2014 年 Google 开始部署。它主要用于 Chrome 浏览器或是其他 APP 与 Google 服务器之间传输数据,应用之后 YouTube 上的重复缓冲下降了15-18%,Google Search 的延迟也下降了3.6-8%。考虑到这些应用场景已经进行过非常多的优化,QUIC 的效果实在让人难以置信。

于是在新一版的 HTTP 中,有望引入谷歌主导开发的 QUIC 协议(快速UDP网络连接)。QUIC 放弃了 TCP,而使用了同级的 UDP 协议做传输层。

QUIC 目前的优势

  1. 减少了 TCP 三次握手及 TLS 握手时间。
  2. 改进的拥塞控制。
  3. 避免队头阻塞的多路复用。
  4. 连接迁移。
  5. 前向冗余纠错。

QUIC 核心特性连接建立延时低

QUIC 相比 HTTP2 最大的性能优势。

HTTPS 及 QUIC 建连过程

QUIC 由于建立在 UDP 的基础上,同时又实现了 0RTT 的安全握手,所以在大部分情况下,只需要 0 个 RTT 就能实现数据发送,并且 0RTT 的成功率相比 TLS 的 Sesison Ticket 要高很多。

目前根据国外消息,HTTP 的制定小组 IETF 正着手构建 HTTP over QUIC,并且有望成为 HTTP/3。

参考资料

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加QQ1群:135430763(2000人群已满),QQ2群:454796847(已满),QQ3群:187424846(已满)。QQ群进群密码:xttblog,想加微信群的朋友,之前的微信号好友已满,请加博主新的微信号:xttblog,备注:“xttblog”,添加博主微信拉你进群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作可添加助理微信进行沟通!

本文原文出处:业余草: » 使用了 30 年的 HTTP 要抛弃 TCP 使用 UDP 了!