CSDNHTTP/3 来了 !HTTP/2 还没怎么用起来呢,先一起扫个盲吧!( 五 )


CSDNHTTP/3 来了 !HTTP/2 还没怎么用起来呢,先一起扫个盲吧!
本文插图
随着数据不断被处理 , 接收方就有能力处理更多数据 。 当满足 (flow control receive offset - consumed bytes) < (max receive window / 2) 时 , 接收方会发送 WINDOW_UPDATE frame 告诉发送方你可以再多发送些数据过来 。 这时 flow control receive offset 就会偏移 , 接收窗口增大 , 发送方可以发送更多数据到接收方 。
CSDNHTTP/3 来了 !HTTP/2 还没怎么用起来呢,先一起扫个盲吧!
本文插图
Stream 级别对防止接收端接收过多数据作用有限 , 更需要借助 Connection 级别的流量控制 。 理解了 Stream 流量那么也很好理解 Connection 流控 。 Stream 中 , 接收窗口(flow control receive window) = 最大接收窗口(max receive window) - 已接收数据(highest received byte offset), 而对 Connection 来说:接收窗口 = Stream1 接收窗口 + Stream2 接收窗口 + … + StreamN 接收窗口。
总结QUIC 丢掉了 TCP、TLS 的包袱 , 基于 UDP , 并对 TCP、TLS、HTTP/2 的经验加以借鉴、改进 , 实现了一个安全高效可靠的 HTTP 通信协议 。 凭借着 0 RTT 建立连接、平滑的连接迁移、基本消除了队头阻塞、改进的拥塞控制和流量控制等优秀的特性 , QUIC 在绝大多数场景下获得了比 HTTP/2 更好的效果 。不久前 , 微软宣布开源自己的内部 QUIC 库 -- MsQuic , 将全面推荐 QUIC 协议替换 TCP/IP 协议 。HTTP/3 未来可期 。


推荐阅读