目录

  • 说一下HTTP3牛币在哪里?
  • 美中不⾜的 HTTP/2
  • QUIC 协议的特点
  • 在HTTP层改动

说一下HTTP3牛币在哪里?

美中不⾜的 HTTP/2

HTTP/2 通过头部压缩、⼆进制编码、多路复⽤、服务器推送等新特性⼤幅度提升了 HTTP/1.1 的性能,⽽美中不⾜的是 HTTP/2 协议是基于 TCP 实现的,于是存在的缺陷有三个。

  • 队头阻塞;
    ( TCP 是字节流协议,TCP 层必须保证收到的字节数据是完整且有序的,如果序列号较低的 TCP 段在⽹络传输中丢失了,即使序列号较⾼的 TCP 段已经被接收了,应⽤层也⽆法从内核中读取到这部分数据)
  • TCP 与 TLS 的握⼿时延迟和慢启动减速;
  • ⽹络迁移需要重新连接;
    (⼀个 TCP 连接是由四元组(源 IP 地址,源端⼝,⽬标 IP 地址,⽬标端⼝)确定的,这意味着如果 IP 地址或者端⼝变动了,就会导致需要 TCP 与 TLS 重新握⼿,这不利于移动设备切换⽹络的场景,⽐如 4G ⽹络环境切换成WIFI。)

这些问题都是 TCP 协议固有的问题,⽆论应⽤层的 HTTP/2 在怎么设计都⽆法逃脱。要解决这个问题,就必须把传输层协议替换成 UDP,这个⼤胆的决定,HTTP/3 做了!

QUIC 协议的特点

QUIC 协议的优点有很多,这⾥举例⼏个,⽐如:

  • ⽆队头阻塞;
    一个连接上的多个 stream 之间没有依赖。由于 QUIC 使⽤的传输协议是 UDP,UDP 不关⼼数据包的顺序,如果数据包丢失,UDP 也不关⼼。不过 QUIC 协议会保证数据包的可靠性,每个数据包都有⼀个序号唯⼀标识。当某个流中的⼀个数据包丢失了,即使该流的其他数据包到达了,数据也⽆法被 HTTP/3 读取,直到 QUIC 重传丢失的报⽂,数据才会交给 HTTP/3。⽽其他流的数据报⽂只要被完整接收,HTTP/3 就可以读取到数据。这与 HTTP/2 不同,HTTP/2 只要某个流中的数据包丢失了,其他流也会因此受影响。)
  • 自定义连接机制;
    (QUIC 内部包含了 TLS,它在⾃⼰的帧会携带 TLS ⾥的“记录”,再加上 QUIC 使⽤的是 TLS1.3,因此仅需 1 个 RTT 就可以「同时」完成建⽴连接与密钥协商,甚⾄在第⼆次连接的时候,应⽤数据包可以和 QUIC 握⼿信息(连接信息 + TLS 信息)⼀起发送,达到 0-RTT 的效果。)
  • 连接迁移;
    ( QUIC 协议没有⽤四元组的⽅式来“绑定”连接,⽽是通过连接 ID来标记通信的两个端点,客户端和服务器可以各⾃选择⼀组 ID 来标记⾃⼰,因此即使移动设备的⽹络变化后,导致 IP 地址变化了,只要仍保有上下⽂信息(⽐如连接 ID、TLS 密钥等),就可以“⽆缝”地复⽤原连接,消除重连的成本)

在HTTP层改动

HTTP/3 同 HTTP/2 ⼀样采⽤⼆进制帧的结构,不同的地⽅在于 HTTP/2 的⼆进制帧⾥需要定义 Stream,⽽ HTTP/3 ⾃身不需要再定义 Stream,直接使⽤ QUIC ⾥的 Stream,于是 HTTP/3 的帧的结构也变简单了。

QPACK和HPACK差不多,只不过静态表扩⼤了。

HTTP2动态表是具有时序性的,如果⾸次出现的请求发⽣了丢包,后续的收到请求,对⽅就⽆法解码出HPACK 头部,因为对⽅还没建⽴好动态表,因此后续的请求解码会阻塞到⾸次请求中丢失的数据包重传过来。

HTTP/3 的 QPACK 解决了这⼀问题,那它是如何解决的呢?
QUIC 会有两个特殊的单向流,所谓的单项流只有⼀端可以发送消息,双向则指两端都可以发送消息,传输 HTTP消息时⽤的是双向流,这两个单向流的⽤法:

  • ⼀个叫 QPACK Encoder Stream, ⽤于将⼀个字典(key-value)传递给对⽅,⽐如⾯对不属于静态表的HTTP 请求头部,客户端可以通过这个 Stream 发送字典;
  • ⼀个叫 QPACK Decoder Stream,⽤于响应对⽅,告诉它刚发的字典已经更新到⾃⼰的本地动态表了,后续就可以使⽤这个字典来编码了。

这两个特殊的单向流是⽤来同步双⽅的动态表,编码⽅收到解码⽅更新确认的通知后,才使⽤动态表编码 HTTP 头部。

网络夺命连环问8--说一下HTTP3牛币在哪里?相关推荐

  1. 网络夺命连环问1--说一下HTTPS咋保证通信安全的

    目录 说一下HTTPS咋保证通信安全的? 谈谈对称加密与非对称加密的区别 谈谈机密性怎么实现的? 谈谈完整性怎么实现的? 怎么实现身份认证和不可否认呢? 公钥的信任问题怎么解决?怎么判断公钥真假? 总 ...

  2. redis夺命连环问10--说说Redis是怎么做旁路缓存的?

    目录 相关前置知识文章 说说Redis是怎么做旁路缓存的? 先谈缓存大概怎么做 再谈旁路缓存两种模式 redis和mysql如何保证数据一致性? 那怎么解决缓存和数据库的数据不一致问题? 如何保证缓存 ...

  3. 夺命连环问-集合篇1

    夺命连环问-集合篇1 1.简单谈谈数组和集合,并说说他们有什么区别? 答:数组和集合都是用来存储一组数据的容器. 区别有以下几点: 1.在存储方式上,数组是一个固定长度的容器,它的长度一旦被初始化之后 ...

  4. 夺命连环问:一个 TCP 连接可以发多少个 HTTP 请求?|文末送书

    时间有限,快来薅,当当的羊毛!!! 时间有限,快来薅,当当的羊毛!!! 时间有限,快来薅,当当的羊毛!!! 作者:松若章 来源:http://c7.gg/f8txF 曾经有这么一道面试题:从 URL ...

  5. HashMap夺命连环问,你扛得住吗

    HashMap是面试中最常被问到的问题,被问到的概率基本是99%,关于HashMap的知识点很多,这里做个总结,如果没有提及版本,默认为jdk1.8. 1.HashMap的数据结构? 底层是数组+单链 ...

  6. HashMap夺命连环问

    1:HashMap 的数据结构? A:哈希表结构(链表散列:数组+链表)实现,结合数组和链表的优点.当链表长度超过 8 时,链表转换为红黑树. transient Node<K,V>\[\ ...

  7. 每日一面系列之HashMap夺命连环问

    1.HashMap的底层数据结构是什么? 底层数据结构是哈希表结构(链表散列:数组+单向链表),结合了数组和链表的优点,当链表长度超过8时,链表会转为红黑树.数组中的每一个元素都是链表.总结来说就是H ...

  8. 每日一面系列之ArrayList夺命连环问

    1.ArrayList用过吗?知道是干什么的吗?有什么特点? ArrayList是用来存储数据的一个集合,当我们存储的数据类型是基本数据类型的时候,需要存储他们的包装类.ArrayList底层是Obj ...

  9. 荐书丨脑电实验的夺命连环问,你敢来么

    Hello, 这里是心研书籍,我是明明~ 疫情阴影还未逐渐过去,不知你还好吗,科研生活还顺利吗?明明最近就遇到了一些小问题,是怎么回事呢?请大家一起快来看看吧- 01 脑电,我该拿你怎么办 最近,我和 ...

最新文章

  1. pytorch focalloss多分类 单分类
  2. 消灭 Java 代码的“坏味道”【转】
  3. 深入分析FreeDos -- 前言
  4. spring事务管理器的作用_【面试必问】Spring中的事务管理详解
  5. 大疆反腐45人被查处 被开除员工喊话CEO汪滔自称“被冤枉”
  6. poj2280--Amphiphilic Carbon Molecules(扫描线+极角排序+转换坐标)
  7. 自然语言处理——词性标注实战
  8. 上传文件中文乱码问题修复
  9. 文件名批量修改工具V1.0 绿色版
  10. HTML网页设计教师评语,服装设计毕业设计指导教师评语
  11. 数据科学家:大器晚成,是软件工程师成功的唯一捷径
  12. uni-app截屏截取页面可视区,以及利用截屏截取完整页面方法
  13. JS —— 5、数据交互、跨域
  14. pandas如何处理列转行
  15. 投资常识-基金-场内场外
  16. 惠普m1216硒鼓清零步骤_惠普HP各型号打印机冷复位清零恢复出厂设置方法
  17. the type java.lang.Object cannot be resolved. It is indirectly referenced from ..
  18. android老化软件,突然 变老 的 在照片中 - 老化 图片编辑器
  19. H5微信公众号开发,微信支付
  20. react-router v6 路由统一管理及路由拦截方案

热门文章

  1. blob没权限 ie_IE浏览器对象不支持Blob属性或方法,IE浏览器不支持canvas toBlob()方法的Polyfill...
  2. DeepL 1.13.2中文版 (新一代AI翻译器)
  3. 阿里 iOS 五轮面经分享
  4. 手摸手带你用实现vue全屏loading插件
  5. 中国洗碗机行业风险投资态势及投融资策略指引报告
  6. 关于口头语和书面语的区别
  7. 无法重现一些战利品_消除战利品神话
  8. 电脑自动关机是什么原因?4个解决方法,赶紧码住收藏!
  9. 2. ABAP RSA签名- SAP调用上上签API(2)
  10. 学习 Node.js 一本书就够了【送书】