它表示,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 –