一些新的协议(QUIC)


Author: yifei / Created: April 19, 2018, 9:12 a.m. / Modified: April 19, 2018, 9:32 a.m. / Edit

QUIC

https 和 http2 这些协议都依赖与 TLS,而使用了 TLS 之后建立一个会话要三次握手,也就是 3 RTT,比较耗时。

TCP 协议这么多年改进不大,而且由于一些路由器还有 winxp 这些老旧系统的存在,比如好多防火墙只允许 80 和 443 端口等,一些改进也难以直接产生影响。

QUIC 相对于 http2 + tcp + tls 的改进有:

  1. 减少握手时间。3rtt -> 0rtt
  2. 拥塞控制由应用层来做,而不是 tcp 本身。在系统层面也不需要内核参与,也就是说可插拔的,随意替换控制算法。
  3. 避免队头阻塞

使用了前向加密,不需要 tls 握手。

QUIC 也是一个可靠的协议,使用了 packet number 代替 seq number,但是 packet number 严格递增,重传也会使用新的更大的 packet number。

链接迁移

tcp 使用四元组来确定一条链接,在 4G 环境下,改变 IP 是很常见的行为,这时候只能重新建立一条 TCP 链接。而 QUIC 不再使用四元组作为链接的标识,而是使用一个 64bit 的随机数作为连接标识,由客户端随机产生。


有任何问题可以发邮件到 kongyifei (at) gmail.com 讨论