怎样让网站支持QUIC

2016年8月24日 | 分类: 【技术】

1. QUIC介绍

QUIC (Quick UDP Internet Connections, pronounced quick) , is similar to TCP+TLS+SPDY implemented on UDP

官网:https://www.chromium.org/quic

参考:http://network.chinabyte.com/162/13361162.shtml
参考:http://blog.chromium.org/2015/04/a-quic-update-on-googles-experimental

是google的私有网络协议,是在原有的UDP协议层面上再封装。本身需要两端网络server-client同时支持该协议的encoding and decoding。无法被现有的网络协议识别软件(或设备)所识别。

在Google新版的Chrome浏览器中,支持QUIC协议,在Chrome浏览器中打开“实验性功能”页面(chrome://flags/),启用“实验性QUIC 协议”和“经由实验性QUIC协议发出的HTTPS请求”,重启浏览器后可以正常登陆Google相关服务(被DNS污染的除外)。

截止2015.04,从Chrome到Google server的流量的大概50% 是走的QUIC协议,而且还在不断增加。 据说减少了YouTube的30%的卡顿。

QUIC值得借鉴的地方有:crypto算法选择,0-RTT的实现方法,证书压缩省流量

证书类型2种,RSA证书, 和 RSA/ECDSA双证书

QUIC内置支持sni 。

参考:https://blog.helong.info/blog/2015/09/06/tls-protocol-analysis-and-crypto-protocol-design/?from=timeline&isappinstalled=0

2. 怎样让网站支持QUIC

怎样让服务器开启 QUIC ,这样实现优化来自Chrome的流量?

参考:https://www.v2ex.com/t/300309
参考:https://www.zhihu.com/question/24084932
参考:http://m.oschina.net/question/856803_2185069

方案比较:https://lists.bufferbloat.net/pipermail/bloat/2015-March/002525

方案:https://github.com/mholt/caddy/wiki/QUIC

bigtan 用 caddy 跑的 wordpress ,后面是 php7.0-fpm ,并且开了 quic ,性能和稳定性都不错。

Caddy 0.9 has experimental QUIC support, powered by lucas-clemente/quic-go. To try it, run caddy with the -quic flag:

caddy -quic

Sites that you serve with TLS will be shuttled over the wire with QUIC if the client supports it.

方案:http://devsisters.github.io/goquic/

GoQuic: QUIC support for Go

方案:https://github.com/devsisters/libquic