資料鏈路層中的差錯控制
資料鏈路層中的差錯控制是指檢測和糾正資料幀在傳輸過程中損壞或丟失的過程。
如果資料幀丟失或損壞,接收方將無法收到正確的資料幀,而傳送方也無法獲知丟失的情況。資料鏈路層採用一種技術來檢測傳輸錯誤並採取必要的措施,即在檢測到錯誤或資料幀丟失時重新傳輸資料幀。這個過程稱為自動重傳請求 (ARQ)。
差錯控制的階段
資料鏈路層中的差錯控制機制包括以下階段:
錯誤檢測 - 傳送方或接收方檢測到任何傳輸錯誤。
確認 - 確認可以是肯定的或否定的。
肯定確認 (ACK) - 接收方在收到正確的幀後傳送肯定確認。
否定確認 (NAK) - 接收方在收到損壞的幀或重複的幀時,向傳送方傳送否定確認。
重傳 - 傳送方維護一個時鐘並設定一個超時時間。如果先前傳輸的資料幀的確認在超時前未到達,或者收到否定確認,則傳送方會重新傳輸該幀。
差錯控制技術
差錯控制主要有三種技術:

停等式 ARQ
此協議涉及以下轉換:
傳送方維護一個超時計數器,在傳送幀時啟動該計數器。
如果傳送方在規定時間內收到已傳送幀的確認,則確認已成功交付該幀。然後,它會傳輸佇列中的下一幀。
如果傳送方在規定時間內未收到確認,則假設該幀或其確認在傳輸過程中丟失。然後,它會重新傳輸該幀。
如果傳送方收到否定確認,則會重新傳輸該幀。
後退 N 幀 ARQ
此協議的工作原理為:
傳送方具有稱為傳送視窗的緩衝區。
傳送方根據傳送視窗的大小發送多個幀,而無需接收先前幀的確認。
接收方逐個接收幀。它跟蹤傳入幀的序列號併發送相應的確認幀。
傳送方在傳送完視窗中的所有幀後,會檢查已收到肯定確認的序列號。
如果傳送方已收到所有幀的肯定確認,則會發送下一組幀。
如果傳送方收到 NACK 或未收到特定幀的任何 ACK,則會重新傳輸其未收到任何肯定確認之後的幀。
選擇重傳 ARQ
- 傳送方和接收方分別具有稱為傳送視窗和接收視窗的緩衝區。
傳送方根據傳送視窗的大小發送多個幀,而無需接收先前幀的確認。
接收方還在接收視窗大小內接收多個幀。
接收方跟蹤傳入幀的序列號,並將幀緩衝在記憶體中。
它為所有成功接收的幀傳送 ACK,並且僅為丟失或損壞的幀傳送 NACK。
在這種情況下,傳送方僅傳送收到 NACK 的資料包。
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP