当前位置 博文首页 > 七年蝉的博客:快速读懂Http3协议总结

    七年蝉的博客:快速读懂Http3协议总结

    作者:[db:作者] 时间:2021-08-22 21:23

    《网络编程懒人入门(十二):快速读懂Http/3协议,一篇就够!》

    什么是 http3

    当IETF正式标准化HTTP/2时,Google正在独立构建一个新的传输协议,名为gQUIC。它后来成为新互联网草案,并被命名为QUIC。gQUIC最初的实验证明,在网络条件较差的情况下,gQUIC在增强网页浏览体验方面的效果非常好。因此,gQUIC的发展势头越来越好,IETF的大多数成员赞成建立一个在QUIC上运行的HTTP新规范。这个新的倡议被称为HTTP/3,以区别于当前的HTTP/2标准。

    从语法和语义上看,HTTP/3与HTTP/2相似。HTTP/3遵循相同的请求和响应消息交换顺序,其数据格式包含方法、标题、状态码和body。然而,HTTP/3的显著的偏差在于【协议层在UDP之上的堆叠顺序】。

    也就是说 HTTP3 和 HTTP2 的最大区别在于, http2的网络层使用的是 TCP 协议, 而 HTTP3 的网络层使用的是基于 UDP 修改的quic 协议, 解决了tcp的以下限制 :

    1、TCP可能会间歇性地挂起数据传输

    2、TCP不支持流级复用

    3、TCP会产生冗余通信

    有关QUIC 的更多内容可以查看

    《网络编程懒人入门(十):一泡尿的时间,快速读懂QUIC协议》

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

    QUIC 与现有 TCP + TLS + HTTP/2 方案相比,有以下几点主要特征:

    1)利用缓存,显著减少连接建立时间;

    2)改善拥塞控制,拥塞控制从内核空间到用户空间;

    3)没有 head of line 阻塞的多路复用;

    4)前向纠错,减少重传;

    5)连接平滑迁移,网络状态的变更不会影响连接断线。

    从图上可以看出,QUIC 底层通过 UDP 协议替代了 TCP,上层只需要一层用于和远程服务器交互的 HTTP/2 API。这是因为 QUIC 协议已经包含了多路复用和连接管理,HTTP API 只需要完成 HTTP 协议的解析即可。

    QUIC 协议的主要目的,是为了整合 TCP 协议的可靠性和 UDP 协议的速度和效率。

    一张图看懂QUIC协议的优势:

    cs
    下一篇:没有了