gpt4 book ai didi

HTTP 2.0 - 一个 TCP/IP 连接与 6 个并行

转载 作者:可可西里 更新时间:2023-11-01 15:20:29 25 4
gpt4 key购买 nike

据说 HTTP 2 相对于 HTTP 1 的优势之一是 HTTP2 具有数据流。在一个 TCP/IP 连接中最多可以有 256 个不同的流。但是,在 HTTP 1 中最多可以有 6 个并行连接。 HTTP 2 允许从 256 个资源读取数据,这是一项改进,但我仍然认为 6 个连接(在 HTTP 1 中)比一个 TCP/IP 连接(在 HTTP 2 中)具有更好的吞吐量。尽管如此,HTTP2 仍被认为比 HTTP 1 更快。那么……我有什么不正确的理解吗?

最佳答案

在其他条件相同的情况下,6 个物理连接的吞吐量将高于 1 个物理连接。

然而,这不适用于同一台计算机之间的 6 个不同的 TCP/IP 连接,因为这些是虚拟连接(假设您没有两 block 网卡)。限制因素通常是互联网连接的延迟和带宽,而不是 TCP/IP 协议(protocol)本身。

事实上,由于 TCP 连接的创建和处理方式,拥有一个 TCP/IP 连接实际上更有效率。这是因为初始连接的成本(三向 TCP 握手、HTTPS 握手以及 TCP 连接使用称为“慢启动”的过程来缓慢地将其容量增加到网络可以处理的最大速度这一事实),而且在连接的持续维护中(因为慢启动过程会定期再次发生,除非连接一直被充分利用 - 这更有可能发生在一个用于所有事情的连接上,而不是在您的请求时发生分为 6 个连接)。

此外,HTTP/1.1 一次只允许一个请求在运行,因此在返回响应之前无法使用连接(忽略 HTTP/1.1 中根本不支持的流水线操作)。这不仅限制了 6 个连接的有用性,而且还意味着连接更有可能未被充分利用,考虑到上面提到的 TCP 连接未充分利用的问题,这意味着它们可能会变慢,因为它们会节流并有再次经历慢启动过程以建立最大容量。然而,HTTP/2 允许这 256 个流允许请求同时进行。这比只有 6 个连接要好,并且允许 true multiplexing .

如果您想了解更多,那么 Ilya Grigorik 就这个主题写了一本很棒的书,名为 High Performance Browser Networking which is even available online for free .

关于HTTP 2.0 - 一个 TCP/IP 连接与 6 个并行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44864273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com