簡介
TCP協定要求嚴格的數據按序傳輸,當某個傳送協定數據單元(TPDU, Transport Protocol Data Unit)丟失後,其後的數據單元只能等待已經丟失的TPDU被轉發並接收以後,才會被交付給客戶端設備,這就是所謂的隊頭(HOL,head-of-line)阻塞。
線頭阻塞(Head-of-line blocking, HOL)是一種出現在快取式通信網路交換中的一種現象。交換通常由快取式輸入連線埠、一個交換架構以及快取式輸出連線埠組成。當在相同的輸入連線埠上到達的包被指向不同的輸出連線埠的時候就會出現線頭阻塞。由於輸入快取使用了FIFO佇列,交換架構在每一個周期中交換快取頭部的包,佇列後部的報文就能等待前面傳輸完後再排到佇列前面,然後才可以傳輸。如果某一快取頭部的包由於擁塞而不能交換到一個輸出連線埠,那么後面的報文就會被它阻塞,該快取中餘下的包也會被線頭包所阻塞,即使這些包本身目的連線埠並沒有擁塞。
發生原因
:由於FIFO(先進先出)佇列機製造成的,每個cross bar 輸入端的FIFO首先處理的是在佇列中最靠前的數據,而這時佇列後面的數據對應的出口快取可能已經空閒,但因為得不到處理而只能等待,這樣既浪費了頻寬又降低了系統性能。這就如同你在只有一條行車路線的馬路上右轉,但你前面有直行車,雖然這時右行線已經空閒,但你也只能等待。
Hands-On Lab,微軟動手實驗室