CDN 行业的技术出发点就是把用户访问网站业务的时间缩短,再缩短。因此,CDN服务商都尽可能把服务节点部署到离最终网民接近的网络节点上。除了从系统部署方式上提高网民访问的速度,减少网络传输的时间之外,在网民用于访问网站的网络协议上也在不断地演进变化。本文将根据蓝汛对QUIC协议的应用和测试经验,在该协议的开发、配置和启动等技术环节进行分享。
由SPDY到HTTP/2
2009年,Google在 “Make the Web faster” 的目标下,针对HTTP协议提出了SPDY。当时,提出SPDY的目标是在HTTP基础上,将页面加载的速度提高50%,同时也将部署未来新的应用协议的复杂性降低。
SPDY被证明是成功的,因为它在以下4个方面提升了整体的性能:
多路复用:通过同一个域名使用1个或者相对于HTTP/1.1更少的TCP连接数,SPDY避免了头部阻塞(HOL),同时由于减少了TCP连接,也就降低了新开TCP连接的系统开销。
头部压缩:通过对HTTP Header中反复发送的字段进行压缩,通过SPDY之后,请求头和响应头的体积都大大减小。
请求的优先级区分:高优先级的资源被优先请求,因此,对于页面解析的关键元素也就被优先下载展示。
Server Push / Server Hint: Server Push 在用户端还没有请求的前提下,由服务端推送相关内容给用户端;Server Hint是在服务端将一些资源标记了优先级,用户端在请求的时候可以根据目前的带宽情况(限制情况)决定是否下载。
因为SPDY在针对HTTP/1.x上性能的提升,IETF HTTP 工作组基于SPDY通过HTTP/2来优化HTTP协议。
HTTP/2 借鉴了SPDY的优化策略和思路,然而,两者之间也有不同点:
HTTP/2和SPDY的主要区别在于头部压缩的算法: HTTP/2使用的是HPACK压缩的方式,而SPDY使用的是DEFLATE方式压缩。
尽管如此,HTTP/2和SPDY还都是基于TCP作为连接层的基础,因此,性能的提升都是在同一个基础之上的。TCP协议饱受诟病的那些拥塞和丢包处理的方式影响着它们的性能发挥。
由TCP到UDP,QUIC的提出
QUIC 是(Quick Udp Internet Connection)的首字母缩写。是由 Google 提出的使用 UDP 进行多路并发传输的协议。
QUIC相比上文中 TCP+TLS+HTTP/2 组合有如下优势 :
减少了 TCP 三次握手及 TLS 握手时间。
改进的拥塞控制。
避免队头阻塞的多路复用。