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(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 目前的优势
- 减少了 TCP 三次握手及 TLS 握手时间。
- 改进的拥塞控制。
- 避免队头阻塞的多路复用。
- 连接迁移。
- 前向冗余纠错。
QUIC 核心特性连接建立延时低
QUIC 相比 HTTP2 最大的性能优势。
QUIC 由于建立在 UDP 的基础上,同时又实现了 0RTT 的安全握手,所以在大部分情况下,只需要 0 个 RTT 就能实现数据发送,并且 0RTT 的成功率相比 TLS 的 Sesison Ticket 要高很多。
目前根据国外消息,HTTP 的制定小组 IETF 正着手构建 HTTP over QUIC,并且有望成为 HTTP/3。
参考资料
- QUIC as a solution to protocol ossification
- QUIC
- HTTP/3
: » 使用了 30 年的 HTTP 要抛弃 TCP 使用 UDP 了!
原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/252697.html