HTTP 3.0 将 TCP 协议更换为基于 UDP 的谷歌 QUIC

Posted 云头条

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP 3.0 将 TCP 协议更换为基于 UDP 的谷歌 QUIC相关的知识,希望对你有一定的参考价值。

HTTP改而使用一种基于UDP的协议。


超文本传输协议(HTTP)是规定浏览器如何与Web服务器进行通信的网络协议,它的下一个版本将与现在使用的版本大不相同。


今天的HTTP(版本1.0、1.1和2)都基于TCP(传输控制协议)。TCP是作为一套核心IP(Internet协议)层的一部分而定义的,它提供了这种机制:以一种可靠、有序和校错的方式,通过IP网络传输数据。“可靠”是指如果某些数据在传输过程中丢失(由于硬件故障、拥塞或超时),接收端可以检测丢失问题,要求发送端重新发送丢失的数据;“有序”是指数据按照当初传输的顺序来接收;“校错”是指传输过程中的任何损坏都能检查出来。


这些都是理想的属性,对于HTTP之类的协议而言必不可少,但TCP是作为一种通用型的解决方案而设计的,适合需要这种可靠性的任何应用。它并不是针对HTTP适用的场景类型经过特别的调整。比如说,TCP需要在客户端和服务器之间进行多次往返以建立连接;使用SSL over TCP需要后续往返以建立加密连接。一种专为HTTP设计的协议可以合并这些协商,并减少往返次数,因而缩短网络延迟。


对立面


谷歌在不断努力提高Web联网的速度,一直在研发一种名为QUIC的实验性网络协议,QUIC的全称是“快速UDP互联网连接”。QUIC放弃了TCP,改而使用一种同类协议UDP(用户数据报协议)。UDP是TCP的“对立面”;它不可靠(从一端发送的数据可能永远不会被另一端接收,而另一端无法知道某些数据已经丢失),而且无序(稍后发送的数据可能取代之前发送的数据,以凌乱的方式抵达接收端)。然而,UDP非常简单,新协议常常建立在UDP的基础上。


QUIC恢复了TCP拥有的可靠性和有序,但没有带来相同数量的往返和延迟。比如说,如果客户端重新连接到服务器,该客户端可以通过第一个数据包发送重要的加密数据,让服务器能够利用之前协商的同一种加密,重新使用原有连接,无需任何额外的往返。


互联网工程任务组(IETF,协作设计网络协议的行业组织)一直致力于制定标准化的QUIC版本,该版本目前与谷歌的原始提案有很大差异。IETF还希望开发一个使用QUIC的HTTP版本,该版本之前名为HTTP-over-QUIC或HTTP/QUIC。然而,HTTP-over-QUIC不是HTTP/2 over QUIC,而是一种为QUIC设计的新的HTTP更新版。


因此,身兼IETF旗下HTTP工作组组长和QUIC工作组组长的马克•诺丁汉(Mark Nottingham)提议,将HTTP-over-QUIC改名为HTTP/3,这个提议似乎已得到了广泛接受。HTTP的下一个版本将QUIC列作一项必不可少的基本功能,那样HTTP/3将始终使用QUIC作为其网络协议。


以上是关于HTTP 3.0 将 TCP 协议更换为基于 UDP 的谷歌 QUIC的主要内容,如果未能解决你的问题,请参考以下文章

HTTP 3.0有望抛弃TCP传输层:换用UDP协议

通信协议 HTTP TCP UDP

HTTP 3.0彻底放弃TCP,TCP到底做错了什么?

通信协议:HTTP

HTTP 3.0彻底放弃TCP,TCP到底做错了什么?

HTTP 3.0彻底放弃TCP,TCP到底做错了什么?