<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # TCP隊頭阻塞 ## TCP隊頭阻塞(head of line blocking) HTTP/2是基于TCP實現的。相比之前的版本,HTTP/2使用的TCP連接數少了很多。TCP是一個可靠的傳輸協議,基本上,你可以將它視為在兩臺計算機間建立的一個虛擬鏈路,由一端放到網絡上的內容,最終總會以相同的順序出現在另一端。(或者遭遇連接中斷) ![](https://img.kancloud.cn/83/bc/83bc9dd2a4b9c1caf5c93ac043a84029_1783x330.png) 采用HTTP/2時,瀏覽器一般會在單個TCP連接中創建并行的幾十個乃至上百個傳輸。 如果HTTP/2連接雙方的網絡中有一個數據包丟失,或者任何一方的網絡出現中斷,整個TCP連接就會暫停,丟失的數據包需要被重新傳輸。因為TCP是一個按序傳輸的鏈條,因此如果其中一個點丟失了,鏈路上之后的內容就都需要等待。 如下圖所示,我們一個用鏈條來表現一個連接上發送的兩個流(傳輸),紅色的與綠色的數據流: ![](https://img.kancloud.cn/16/4a/164afa62a3fc0fbe644af7c59d06b36f_1783x330.png) 這種單個數據包造成的阻塞,就是TCP上的隊頭阻塞(head of line blocking)。 隨著丟包率的增加,HTTP/2的表現越來越差。在2%的丟包率(一個很差的網絡質量)中,測試結果表明HTTP/1用戶的性能更好,因為HTTP/1一般有六個TCP連接,哪怕其中一個連接阻塞了,其他沒有丟包的連接仍然可以繼續傳輸。 在限定的條件下,在TCP下解決這個問題相當困難。 ## 獨立的數據流避免阻塞問題 使用QUIC時,兩端間仍然建立一個連接,該連接也經過協商使得數據得到安全且可靠的傳輸。 ![](https://img.kancloud.cn/83/bc/83bc9dd2a4b9c1caf5c93ac043a84029_1783x330.png) 但是,當我們在這個連接上建立兩個不同的數據流時,它們互相獨立。也就是說,如果一個數據流丟包了,只有那個數據流必須停下來,等待重傳。 下面是兩個端點間的示意圖,黃色與藍色是兩個獨立的數據流。 ![](https://img.kancloud.cn/93/7f/937f353a7960a716f89b7b53f69b80cd_1783x330.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看