它表示,HTTP 2优于HTTP 1的优点之一是HTTP2具有数据流。一个TCP/IP连接中最多可以有256个不同的数据流。但是,在HTTP 1中最多可以有6个并行连接。 HTTP 2支持从256个资源中读取数据是一种改进,但我仍然认为6个连接(在HTTP 1中)的TCP/IP连接(在HTTP 2中)具有更好的吞吐量。尽管如此,HTTP2被认为比HTTP 1更快。所以...我不能正确理解什么?HTTP 2.0 - 一个TCP/IP连接vs 6个并行
0
A
回答
1
6个物理连接的吞吐量会比一个物理连接的吞吐量要多,其他条件相同。
但同样的情况不适用于同一台计算机之间的6个不同的TCP/IP连接,因为这些连接是虚拟连接(假设您没有两个网卡)。限制因素通常是互联网连接的延迟和带宽,而不是TCP/IP协议本身。实际上,由于创建和处理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这个主题的优秀书。
相关问题
- 1. Windows 2008并发TCPIP连接
- 2. break tcpip连接方法
- 3. HTTP PATCH一个连接表?
- 4. 重试一个http连接
- 5. TCPIP服务器单连接
- 6. Tornado并发限于6个连接?
- 7. 连接到同一台服务器的多个tcpip客户端?
- 8. 反向WCF将连接到一个非.net tcpip应用程序
- 9. 多个TCP连接vs单个连接
- 10. HTTP/2流vs HTTP/1.1连接
- 11. Apache - > MySQL多个连接vs一个连接
- 12. 多个连接6 itens
- 13. 将许多行连接起来并连接成一个
- 14. 当连接附件时,Android tcpip ADB会话断开连接
- 15. JSON vs多个连接
- 16. 共享连接VS个人
- 17. 连接TCPIP与QT Connect冲突
- 18. 骡多个HTTP连接器
- 19. IOS多个HTTP连接
- 20. 处理多个HTTP连接
- 21. J2ME Midlet中的并行HTTP连接
- 22. Java中的并行HTTP URL连接
- 23. 用iPhone/iPad的WiFi连接TCPIP到其他计算机上的一个WiFi
- 24. HTTP持久连接vs无状态Web
- 25. 创建一个插座VS创建一个连接
- 26. SignalR 2.0一个连接有多个页面时遇到问题
- 27. 一个TCP/IP连接中的多个HTTP GET请求 - 并行或连续处理
- 28. Java - 在同一个连接上执行一个http请求POST和GET
- 29. 设计/架构:网络插座一个连接vs多个连接
- 30. 连接多个行到一个场
为什么你认为6个连接的吞吐量比一个好? – tkausl
,因为如果我假设所有连接的步距相等,那么6个连接在同一时间传递比一个连接更多的信息。 – CrazySynthax
尽管它们可能并行,但每个连接都有其开销,而不是http/2 –