程序员进阶之路:QUIC篇

QUIC概述

  • 起源:由Google设计,2013年首次提出。
  • 目标:提供快速连接建立、低延迟和高安全性。
  • 标准化:RFC9000标准。

协议体结构

  • 头部:由连接头部和帧头部组成。

  • 连接头部字段

    1. 标志位(Flags)
    2. 版本号(Version)
    3. 目的连接ID长度(DCID Len)
    4. 目的连接ID(DCID)
    5. 源连接ID长度(SCID Len)
    6. 源连接ID(SCID)
    7. 报文长度(Packet Length)
    8. 报文编号(Packet Number)
  • 帧头部:标识和管理数据包中的帧,例如Stream Frame。

0-RTT特性

  • 基于UDP,无需建立连接即可发送数据。
  • 与TCP相比,QUIC支持0-RTT数据发送。

可靠传输

  • QUIC使用单调递增的Packet Number,不同于TCP的序列号。
  • 解决了TCP重传歧义问题,确保RTT和RTO测量准确。

流量控制

  • 类似TCP,但基于UDP实现。
  • 实现了两个级别的流量控制:Connection级别和Stream级别。
  • 使用WINDOW_UPDATE和BLOCKED帧进行控制。

多路复用与队头阻塞

  • QUIC支持多路复用,提高传输效率。
  • 解决TCP的队头阻塞问题,Stream独立维护接收窗口。

拥塞控制

  • 与TCP相同,支持Reno、CUBIC、BBR等算法。
  • 在应用层实现,提供快速升级和灵活使用。

连接迁移

  • 支持网络环境变化时的连接持续性。
  • 使用连接ID而非四元组标识,支持IP变化。
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值