Quic协议

Quic 协议作为应用层的协议,在无线、弱网场景下的移动通信领域有广阔的应用场景。本文简单记录一些 Quic 的知识点,同时附上介绍的详细文章;

# Quic 协议

Quic协议是应用层(5层网络模型下,由于基于传输层协议,笔者倾向于认为其是应用层协议,但是博文中多次标注其是传输层协议),对标 HTTP 协议,基于 UDP 协议构建。

# Quic 协议优点

  • 建立连接延时低。相对于 HTTP 协议的至少 3RTT 的建联,Quic 协议可以实现 0RTT 建联;
  • 改进了拥塞控制。将拥塞控制算法的选择交由应用程序控制;同时抛弃了基于 TCP 的 seq 标记,改由严格递增的 package number + offset,优化了拥塞时的重传;
    • 举例,需要传递 N,N+1,N+2 三个包,传递过程中,N 丢失了;TCP的重传会将N,N+1,N+2三个包都重传;Quic 会重传一个 N+3(即package_num+1),但是 offset 记为 0(即stream_offset不变)。这样在另一端将三个包按照 offset 重新进行组织;
  • 基于 ConnectionStream 进行多路复用;
  • 消除队头阻塞,更好的支持多路复用,处理多个会话时,不会因为其中一个会话的丢失,导致其他会话结果也重传(TCP消息重传逻辑);
  • 默认支持加密认证;

# 总结

Quic 协议相当于在 UDP 的基础上,在更高层次协议上实现了 TCP 的大部分功能:可靠传输,拥塞控制等,同时对 TCP 的这些功能进行了优化;

# 参考文献

技术扫盲:新一代基于UDP的低延时网络传输层协议——QUIC详解

Licensed under CC BY-NC-SA 4.0
Hello, World!
使用 Hugo 构建
主题 StackJimmy 设计