A First Look at QUIC in the Wild
PAM2018:https://pam2018.inet.berlin/program/
Analyzing Protocols
作者
- Jan Rüth:RWTH Aachen University
- Ingmar Poese
- Christoph Dietzel
知识点
QUIC
基于 UDP 协议的低时延互联网应用层协议
QUIC 协议选择了 UDP,因为 UDP 本身没有连接的概念,不需要三次握手,优化了连接建立的握手延迟,同时在应用程序层面实现了 TCP 的可靠性,TLS 的安全性和 HTTP2 的并发性,只需要用户端和服务端的应用程序支持 QUIC 协议,完全避开了操作系统和中间设备的限制。
QUIC 同样是一个可靠的协议,它使用 Packet Number 代替了 TCP 的 sequence number,并且每个 Packet Number 都严格递增,也就是说就算 Packet N 丢失了,重传的 Packet N 的 Packet Number 已经不是 N,而是一个比 N 大的值,消除Tcp 重传的歧义。
详细参考[QUIC原理分析][1]
摘要
QUIC的提出对TCP和UDP传输层带来了很大的改变。
本文:第一次对实际中QUIC的使用做出了测量;监控自2016年8月以来的整个IPv4地址空间以及大约46%的DNS命名空间,以检测具有QUIC功能的基础架构。
- 支持QUIC的IP的数量增加了两倍以上
- 在支持QUIC的基础架构上托管了大约161K个域,但只有15K域提供了超过QUIC的有效证书
- 分析MAWI提供的一年流量跟踪
- QUIC占当前互联网流量的2.6%到9.1%,具体取决于有利位置
研究点的提出
TCP作为默认Internet传输层协议已经成为一个难以更新的技术瓶颈——优化延迟并在传输中提供加密已成为一个问题。(eg.TLS额外的加密增加了额外的延迟等)
Google’s Quick UDP Internet Connections的提出针对这种问题:结合了TCP和UDP优点
但是,与TCP和TLS相比,分析QUIC的工具支持非常有限,学术理解目前仅限于协议安全性
本文对QUIC的部署和流量进行广泛的测量和分析。
部署:从2016.8起探测IPV4 支持QUIC的IP & 探测Alexa Top 域
研究新颖点
对QUIC进行广泛地探测和分析其部署情况
贡献
- 在IPV4地址空间测量QUIC部署情况
- 第一次根据3个不同的测量点对QUIC的部署情况以及Google外的流量进行测量
- 提出了一种分析QUIC工具
- 发布所有有效的测量数据和未来的扫描
2 对QUIC的介绍
3 View of IPv4
4 ISP/IXP network
5 相似工作
6 总结
实验
QUIC握手过程
worse case,QUIC needs at least three round-trips:
- C发送 Client Hello QUIC的version
- S不支持这种version,发送2提供C列表去选择一个version
- C发送另一个 Client Hello 建立握手
- S发自己支持的信息
(3)和(4)可以重复,直到所有需要的数据都可用)。在这些步骤中,将向客户端提供签名服务器配置(SCFG),其包括支持的密码,**交换算法及其公共值,以及证实主机的证书 - 利用此信息,C可以发出包含足够信息以建立连接的另一个CHLO,甚至可以在CHLO之后发送加密数据,其描述了0-RTT连接建立的最佳情况
- 服务器确认(6)与服务器Hello(SHLO)成功建立连接,包含进一步的键/值对,以便充分利用连接。
实验利用(1)来探测分析服务器支持的版本;利用(3)(4)将利用这些信息来分析服务器提供的证书
IPv4
方式: 利用Zmap和CHLO探测Version来识别QUIC主机;
发送一个有效的握手消息,其中包含可能不受另一方支持的版本,服务器将不会能够继续握手,因为两个版本都不匹配——发送一个版本协商数据包。
可获得:枚举有效的QUIC主机,还获得有关服务器的进一步见解
**结果:**2017年10月的617.59 K IP,一年增长了两倍;
(1)AS
(2)X509证书
(3)反向解析DNS
- 2016.8,169.52 K IP归因于Google;2017.10:330.62 K IP;
- Akamai确定为第二大QUIC使用者:2017年10月,部署具有251.43 K IP的QUIC
具有QUIC功能的IP的稳定增长,主要由谷歌和Akamai推动。很少有IP已经使用第三方服务器实现
version: 版本更新快,未来的传输可能会像任何其他应用程序一样频繁更新。这促使未来的测量评估潜在的高度动态的未来互联网传输环境。
Domain Name
方式: 完成握手& 借助quic-go库;
- 通过X509证书哈希对第3.1节中发现的所有启用QUIC的IP进行集群
- 向每个IP提供虚拟域(例如,foo.com)并检索X509证书
探测完整的域名列表来评估QUIC支持;zDNS解析域;
12秒内没有收到对我们的初始QUIC CHLO的响应时,例如在没有QUIC支持的情况下,域被标记为超时。我们还显示了一些特定的错误以及DNS失败。
评估有多少支持QUIC的域提供类似于其HTTP 1.1 / 2对应内容的内容??
通过QUIC下载其landing pages,将它们的内容与它们的HTTP 1.1 / 2对应物进行比较,如果这些具有QUIC功能的域正确设置,它们应该是相似的(结构HTML相似性)
收获:基于IP的扫描中检索到的有限数量的X509证书提示当前正在使用或试验QUIC的少数不同提供商。此外,只有一小部分受监控域托管在支持QUIC的基础架构上
Usage
(1)2017年通过上游ISP(MAWI数据集)的9个月流量
(2)2017年8月在欧洲层的一天-1 ISP(代表边缘(DSL +蜂窝)和骨干流量)
(3)同一天在大型欧洲IXP
感悟
- 由于QUIC CHLO数据包被填充到几乎填满MTU,扫描很容易使1Gbit链路饱和
- 非landing pages 的测量