當傳輸層提供錯誤控制時,數據鏈路層的錯誤控制需要什麼?兩種錯誤控制之間有什麼區別?數據鏈路層和傳輸層
回答
傳輸層數據可以分解爲許多數據鏈路層幀/數據包。
因此,即使沒有任何數據鏈路錯誤,傳輸層流/數據包可能會損壞。 編輯:這是因爲傳輸層路徑通常由許多數據鏈路層的啤酒花,例如:
Host1 <----> switch1 <----> switch2 <----> Host2
如果一個分組被switch1
和switch2
之間丟失然後就沒有記錄錯誤在switch2
Host2
鏈接上,但相應的傳輸層流將被破壞。
另一方面 - 一旦遇到數據鏈接錯誤,可以丟棄/重新啓動傳輸層傳輸,而不浪費資源。
假設校驗和是正確的,這個結果意味着數據在傳輸過程中被損壞。此外,損壞不是發生在傳輸鏈路上(它將被CRC捕獲),而是必須發生在中間系統之一(路由器 和網橋)或發送或接收主機。
http://conferences.sigcomm.org/sigcomm/2000/conf/paper/sigcomm2000-9-1.pdf
這真的取決於協議而非層,但假設你的意思是TCP ...
TCP的錯誤檢測是最小的,並且設計了作爲比任何一種可靠的錯誤的完整性檢查檢測。您沒有看到這一點的原因是,數據鏈路層(如以太網,PPP,FrameRelay等)具有很多更強健的錯誤檢測算法,因此TCP協議幾乎沒有傳輸錯誤,檢測。
如果你有一個不同的傳輸層協議與強大的錯誤檢測,那麼你就不會嚴格需要它在較低的水平。相關的益處主要是性能和資源使用,以儘可能低地丟棄錯誤。
注意,錯誤可以在蠕變上述由於衝壓毛刺等傳輸層,因此,如果數據真的,真的重要那麼你應該包括錯誤在你的申請權檢查。
這是因爲數據鏈路層專門處理比特級糾錯。它需要接收計算機已擁有的數據包,並確定傳輸中是否發生錯誤以及數據是否完整或損壞。但是,需要進行額外的控制以確保系統知道所有數據包都到達。這被稱爲端到端錯誤控制,並且是傳輸層的責任。傳輸層可以不關心負載中的數據是好還是壞。這是數據鏈接的工作。傳輸只關心它是否獲取了它應該包含的每個數據包,以及是否以正確的順序到達。傳輸層在數據鏈路層到達數據鏈路層之前檢測數據包是否缺失或發送端發生數據包損壞。
有關詳細信息,請參閱
在噪聲信道,其中所述誤碼率是高的,如無線網絡,誤差校正是在數據鏈路層完成。
在像LAN這樣的錯誤率很低的穩健網絡中,糾錯在傳輸層完成,因此重傳成本最小化。
很少有數據鏈路協議可以進行任何糾錯。大多數人會進行錯誤檢測,並且會丟棄任何有錯誤的幀,但是他們不會糾正錯誤。 –
- 1. 數據鏈路層
- 2. 數據鏈路層流量控制vs傳輸層流量控制
- 3. 最佳數據傳輸層
- 4. 訪問數據鏈路層數據包
- 5. 網絡:傳輸層和網絡層
- 6. 監控傳輸,網絡和鏈路層緩存/ Linux中
- 7. 分層傳輸
- 8. 如何使用MVC和3層架構在圖層中傳輸數據?
- 9. Java OSI傳輸層
- 10. Mapnik.NET層數據源路徑
- 11. 理解鏈路層多播
- 12. ÇPF_PACKET鏈路層處理
- 13. 設備如何通過數據鏈路層2交換數據?
- 14. 數據輸入抽象層?
- 15. 重新路由應用網絡業務在數據鏈路層
- 16. DTLS(數據報傳輸層安全)與SNMP和管理系統
- 17. 內核中傳輸層和網絡層之間的通信
- 18. 有關網絡層和傳輸層工作的說明
- 19. 在互聯網層或傳輸層完成校驗和?
- 20. 將數據傳遞到數據層
- 21. Keras和輸入層
- 22. 在數據層和邏輯層之間映射/轉換數據
- 23. 「數據服務層」和「數據訪問層」有什麼區別?
- 24. 使用CNTK和傳輸學習訪問較高層的較低層輸出
- 25. 數據訪問層 - 實用程序類和數據傳輸對象
- 26. 執行鏈路層數據包修改的庫
- 27. 在鏈路層丟棄選定的數據包
- 28. DotNetNuke數據層
- 29. 分層數據
- 30. 數據訪問層組件參考鏈
你能詳細說明這可能嗎? 如果每個數據包都到達無錯誤消息,整個消息如何包含錯誤? – Shookie
@Shookie看看編輯的答案爲可能的情況說明這 – wroniasty
謝謝!但是你給出的例子與丟失數據包有關。我以爲你意味着所有的數據包都可以到達目的地,並且仍然是腐敗的(通過數據鏈路層之後)。 – Shookie