資料鏈路控制與協議



資料鏈路層負責實現點對點資料流和錯誤控制機制。

流量控制

當一個數據幀(第2層資料)從一個主機發送到另一個主機透過單一媒介時,要求傳送方和接收方以相同的速率工作。也就是說,傳送方以接收方能夠處理和接受資料的速度傳送資料。如果傳送方或接收方的速度(硬體/軟體)不同怎麼辦?如果傳送方傳送得太快,接收方可能會過載(淹沒),並且資料可能會丟失。

可以部署兩種型別的機制來控制流量

  • 停等協議

    這種流量控制機制強制傳送方在傳輸資料幀後停止並等待,直到收到已傳送資料幀的確認。

    Stop and Wait
  • 滑動視窗

    在這種流量控制機制中,傳送方和接收方都同意傳送多少個數據幀後應傳送確認。正如我們所學到的,停等協議流量控制機制浪費了資源,此協議試圖儘可能多地利用底層資源。

錯誤控制

當傳輸資料幀時,資料幀可能在傳輸過程中丟失或接收損壞的可能性存在。在這兩種情況下,接收方都沒有收到正確的資料幀,並且傳送方對任何丟失一無所知。在這種情況下,傳送方和接收方都配備了一些協議,這些協議可以幫助它們檢測傳輸錯誤,例如資料幀丟失。因此,傳送方要麼重新傳輸資料幀,要麼接收方可以請求重新發送先前的資料幀。

錯誤控制機制的要求

  • 錯誤檢測 - 傳送方和接收方,或者兩者之一,必須確定傳輸過程中是否存在某些錯誤。

  • 肯定確認(ACK) - 當接收方收到正確的幀時,應確認它。

  • 否定確認(NACK) - 當接收方收到損壞的幀或重複的幀時,它會向傳送方傳送 NACK,並且傳送方必須重新傳輸正確的幀。

  • 重傳:傳送方維護一個時鐘並設定一個超時時間段。如果先前傳輸的資料幀的確認在超時之前沒有到達,則傳送方會重新傳輸該幀,認為該幀或其確認在傳輸過程中丟失了。

有三種類型的技術可供資料鏈路層使用,以透過自動重傳請求 (ARQ) 控制錯誤

  • 停等ARQ

    Stop and Wait ARQ

    在停等ARQ中可能會發生以下轉換

    • 傳送方維護一個超時計數器。
    • 傳送幀時,傳送方啟動超時計數器。
    • 如果幀的確認及時到達,則傳送方將傳輸佇列中的下一幀。
    • 如果確認沒有及時到達,則傳送方假設幀或其確認在傳輸過程中丟失了。傳送方重新傳輸該幀並啟動超時計數器。
    • 如果收到否定確認,則傳送方重新傳輸該幀。
  • 回退N ARQ

    停等協議ARQ機制沒有充分利用資源。當收到確認時,傳送方處於空閒狀態,什麼也不做。在回退N ARQ方法中,傳送方和接收方都維護一個視窗。

    Go-back-n ARQ

    傳送視窗大小使傳送方能夠在不接收先前幀的確認的情況下發送多個幀。接收視窗使接收方能夠接收多個幀並確認它們。接收方跟蹤傳入幀的序列號。

    當傳送方傳送視窗中的所有幀時,它會檢查已收到肯定確認的序列號。如果所有幀都得到肯定確認,則傳送方傳送下一組幀。如果傳送方發現它已收到 NACK 或未收到特定幀的任何 ACK,則它會重新傳輸它未收到任何肯定確認之後的全部幀。

  • 選擇重傳ARQ

    在回退N ARQ中,假設接收方沒有為其視窗大小提供任何緩衝空間,並且必須在幀到達時處理每個幀。這強制傳送方重新傳輸所有未確認的幀。

    在選擇重傳ARQ中,接收方在跟蹤序列號的同時,將幀快取在記憶體中,並且僅為丟失或損壞的幀傳送 NACK。

    在這種情況下,傳送方僅傳送收到 NACK 的資料包。

廣告