QUIC(Quick UDP Internet Connections,发音'quick')是一种基于UDP的多路传输协议,它的主要目标是实现零往返时间的连接开销。Google的开发人员Robbie Shade在最近的一个视频中对QUIC做了介绍,主要有以下特性:
QUIC能够处理传输可靠性、丢包或无序数据包等一系列UDP默认未处理的问题。QUIC的多路传输指协议使用多个通道传输数据,所以当其中一个数 据流丢包时,其他的通道并不会因此阻塞等待丢失的数据包,而这会发生在SPDY上,因为SPDY虽然是多路传输但是只有一个通道。Shade说,QUIC 的方法解决了TCP传输的线端阻塞问题。 使用QUIC的一个主要优势是在客户端和服务器首次连接时不需要握手步骤,某种程度上与TCP快速开启(TCP Fast Open)类似。TCP快速开启在2011年面世,但是目前尚没有大范围使用。根据Shade的说法,采用TLS时,在一次跨大西洋的连接中TCP握手要耗时300ms,而QUIC可以将延迟降为100ms。 QUIC的另一个优势是通信通道的定义基于ID而不是IP+端口,这使得切换网络后继续转发连接成为可能,例如从WiFi网络进入移动网络。 所有QUIC连接都使用特殊的机制进行加密,详见QUIC加密文档。 当被问到为什么不使用TCP+TLS,Shade解释说,虽然TCP和TLS持续升级,但协议的迭代及部署非常慢,而QUIC是部署在客户端级别,而不是在内核级别,这样就能以更快的速度进行迭代,迭代周期由以年计算加速为以周计算。 根据Shade的介绍,将来SPDY能够运行在QUIC之上,使其比现在更好。将来Google实际使用QUIC的经验和教训可以合并到TCP中。 目前用户可以从Chromium项目中获取QUIC的客户端和服务器,google.com、GMail、YouTube以及其他Google服务都在使用QUIC。 资源:QUIC相关视频,QUIC相关幻灯片,QUIC——协议的详细文档,QUIC导线排列标准——线框标准,QUIC加密,SPDY指示器扩展。 |