HTTP3 QUIC数据包重传机制

1. 数据包编号(Packet Number)

每个 QUIC 数据包都有一个唯一的包编号,这个编号是全局递增的,而不是像 TCP 那样基于字节的序列号。包编号的独立性使得 QUIC 能够快速检测到哪些数据包丢失,并决定需要重传哪些包。

2. ACK 帧和确认机制

QUIC 使用 ACK 帧来确认接收到的数据包,并提供详细的丢包信息。ACK 帧包含以下信息:

  • 已接收数据包的最高包编号
  • 确认的接收包编号范围
  • 丢失的包编号

3. 快速重传和恢复机制

当发送方接收到 ACK 帧后,会根据确认的信息判断哪些数据包需要重传。QUIC 实现了多种重传策略以确保高效的数据传输:

基于时间的重传

  • 超时重传:如果发送方在预期的时间内没有收到某个数据包的确认,会触发超时重传。QUIC 通过计算RTT(往返时间)和网络抖动来动态调整重传超时时间。

基于确认的重传

  • 快速重传:如果接收到的 ACK 帧中表明一个数据包被确认丢失,发送方会立即重传该数据包,而无需等待超时。这种机制类似于 TCP 中的快速重传,但由于 QUIC 的包编号机制,执行更高效。

4. 独立的流和帧

  • QUIC 中的数据传输基于流和帧,每个流都是独立的,包含多个帧。帧的类型包括数据帧、ACK 帧、握手帧等。丢包重传只涉及具体丢失的帧,而不会影响其他流中的帧。这种设计避免了传统 TCP 中的队头阻塞问题

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值