HTTP/3 来了 !HTTP/2 还没怎么用起来呢,先一起扫个盲吧!
作者 | billpchen
1. HTTP/3 原理
1.1 HTTP 历史
1.2 QUIC 协议概览
1.3 零 RTT 建立连接
1.4 连接迁移
1.5 队头阻塞/多路复用
QUIC 的传输单元是 Packet,加密单元也是 Packet,整个加密、传输、解密都基于 Packet,这样就能避免 TLS 的队头阻塞问题;
QUIC 基于 UDP,UDP 的数据包在接收端没有处理顺序,即使中间丢失一个包,也不会阻塞整条连接,其他的资源会被正常处理。
慢启动:发送方向接收方发送 1 个单位的数据,收到对方确认后会发送 2 个单位的数据,然后依次是 4 个、8 个……呈指数级增长,这个过程就是在不断试探网络的拥塞程度,超出阈值则会导致网络拥塞;
拥塞避免:指数增长不可能是无限的,到达某个限制(慢启动阈值)之后,指数增长变为线性增长;
快速重传:发送方每一次发送时都会设置一个超时计时器,超时后即认为丢失,需要重发;
快速恢复:在上面快速重传的基础上,发送方重新发送数据时,也会启动一个超时定时器,如果收到确认消息则进入拥塞避免阶段,如果仍然超时,则回到慢启动阶段。
1.6.1 热插拔
1.6.2 前向纠错 FEC
1.6.3 单调递增的 Packet Number
1.6.4 ACK Delay
1.6.5 更多的 ACK 块
1.7 流量控制
2. 总结
相关文章