谷歌QUIC协议推动Web从TCP迁移到UDP

QUIC协议(Qucik UDP Internet Connection 快速UDP互联网连接)是一个全新的基于UDP而不是TCP的Web协议,有时称之为TCP/2

QUIC协议最有意义一点是从TCP迁移到UDP,通常,现在Web都是基于TCP协议建立可靠的传输协议,为了启动一个TCP协议需要三趟握手过程,这意味着对于每个启动连接会增加额外的网络包来回发送过程,也就是对新的连接会有额外的延迟。

如果希望在此基础上达成TLS,创建一个安全加密的HTTPS连接,会额外增加更多网络包来回传送。

类似TCP Fast Open这样的技术会改善TCP情况,但是还没有广泛采用。

从另外一个方面看,UDP是一种发出就忘记(fire and forget)协议,一个消息通过UDP发送,并会假设到达目的地,在校验包方面花费更少事件,缺点不可靠,那么基于UDP再建立一个确认包传递可以解决这个问题。

Google的QUIC协议正是这么做的。

QUIC协议能启动一个连接,然后协商建立所有的TLS(HTTPS)参数,只需要1或2个包,依赖你连接的主机是否是新的或已知熟悉的主机。

这是对初始化一个连接和一个页面下载造成巨大影响。

TCP协议提高目前很难,每个操作系统不同方式不同。而UDP非常简单设计,QUIC结合了UDP快速和TCP的可靠。

QUIC很多优点:
1.QUIC能够基于非堵塞传输协议结合SPDY和HTTP2多路复用两者的优点。

2.QUIC没有TCP中quadruplets(四组),不需要源IP,只需要一个唯一标识称为连接UUID,如果你的手机从Wifi迁移到LTE网,可以一直保持你的连接UUID,这样不需要重新确认连接或TLS,你之前的连接仍然有效。这个原理等同于Mosh Shell,能够基于UDP保持SSH连接,拥有漫游和移动良好体验。这也打开了多源抓取内容的大门。

目前QUIC协议已经在2014年的Chrome浏览器中支持,你可以在Chrome中激活这个协议,网址中键入:chrome://flags/,找到实验性QUIC协议(Experimental QUIC protocol),如果已经没有激活启用可以启用,目前默认启用了。

Google已经在服务器端Youtube和google.com和客户端Chrome之前启动了大规模产品化测试。

这里插件是一种显示HTTP/2和SPDY的图标显示器。

Caddy是能够让你的Web服务器运行QUIC协议。

经过实验发现,QUIC协议对于视频服务能够更快,YouTube会减少30%的重新缓冲。

Google’s QUIC protocol: moving the web from TCP to UDP