TCP、UDP都是计算机网络通信层的主要协议。TCP是面向连接的,也即通信双方在进行数据交换之前,需要经过“三次握手”建立一条“连接”,然后才能进行通信,类似生活中的“打电话”需要有“线路”保证;UDP是面向无连接的,也即在通信双方进行数据交换之前,无需建立连接,只要知道对方地址即可发送数据,类似生活中的“寄信”。
由于UDP协议是无连接方式的协议,所以它的效率高,速度快,占资源少,在各种关键及任务密集环境下得到广泛应用,但是其传输机制为不可靠传送,必须依靠辅助的算法来完成传输控制。相比之下,TCP则更强调的是传输的可靠性,但建立“专有”连接的开支较大。
为了集合两者的优点,各个通信巨头都在探寻提升与改进UDP通信协议,如RUDP(可靠UDP通信),如思科公司的RUDP,微软公司的R-UDP等,中国网民日常使用的即时通信工具QQ所使用的主要通信协议就是UDP的改进版。
本文介绍的是谷歌公司最近研制的一种UDP通信的改进版——Quick UDP Internet Connections(QUIC),快速UDP互联网连接。 据其在研制动机中描述,QUIC系统能够降低网络通信的延迟,提供更好的用户互动体验,尽管随着互联网的发展,网络带宽会持续增加,但受制于光速,数据包的传递耗时并不会减少。据HTTPArchive的统计,1990的一个网络页面是由一个资源文件、一个域名组成的静态页,而2014年的一个网络页面,平均尺寸增长到1,600KB,引用多达80个资源文件,这些资源来自30个不同的主机/域名。尽管网络带宽增加了,但面对日益增长的大尺寸页面,寻求类似QUIC的新型通信协议,仍具有重要意义。
QUIC的主要特点包括,具有SPDY(SPDY是谷歌研制的提升HTTP速度的协议,是HTTP/2.0的基础)所有的优点;0-RTT连接;减少丢包;前向纠错,减少重传时延;自适应拥塞控制, 减少重新连接;相当于TLS加密。
目前谷歌的QUIC还在实验阶段。在新版的Chrome浏览器中,提供了相应的支持。以下是一些TCP、SPDY和QUIC的对比简图。
图 1 实现较小的网络延迟
图 2 改进的HTTP仍可能会堵塞
图 3 多路、不会堵塞的QUIC