http2 是否包含 demux 机制?

Does http2 include a demux mechanism?

据我所知,HTTP2 是 m:1 模式,您将 m 逻辑连接放入 1 TCP 流

是否可以在 http2 中执行 m:n 模式?

m 流被分解为 n 连接以获得更好的可靠性,因为通常一个 TCP 会中断所有 h2 挂起。

这是可能的,但实际上并没有做到。

浏览器特别努力只打开一个到域的连接,如果它们能够确定它解析为相同的 IP 地址和相同的证书,甚至会为不同的子域重用相同的连接。

其他客户端可能会实施 m:n 方案(例如,Jetty 9.4.x HTTP/2 客户端执行 - 免责声明:我是维护者)。

选择一个好的 n 的问题可能不是微不足道的,并且有返回到 HTTP/1 的风险。1 每个域 6-8 个 TCP 连接。

由于每个连接无论如何都会被多路复用,因此单个 HTTP/2 连接的失败将比单个 HTTP/1.1 连接的失败更糟糕(因为它会使多个请求失败而不是只有一个),所以我想它不会对单个 HTTP/2 连接产生太大影响。

Google 的 QUIC protocol 旨在解决此问题,因为它基于 UDP 并内置支持连接迁移(即从 WiFi 切换到移动网络)。