簡體   English   中英

應該始終依靠錯誤檢測機制嗎?

[英]Should error detection mechanisms always be relied on?

我知道在網絡中,在數據鏈路層,網絡層,tcp或什至更高的層中實施了錯誤檢測(或有時是糾正)機制。 但是例如,對於每個4KB數據,考慮到所有層的錯誤檢測,總共使用多達200個字節的錯誤檢查字節。 因此,即使具有良好的校驗和功能,理論上也可能發生沖突。 人們為什么要使用這些錯誤檢測機制? 異常現象不太可能發生嗎?

如果您想要簡短的答案而不是否,則不能始終依靠它們,並且如果您確實有關鍵數據,則應該自己封裝數據或使用單獨的通道傳輸諸如fe SHA-256之類的良好哈希值,以確認數據無誤傳輸。

以太網CRC將捕獲大多數錯誤,例如單位錯誤或任何奇數個單位錯誤。 某些錯誤可能無法檢測到,但極為罕見,並且討論了錯誤的確切概率是多少,但小於2 ^ 32中的1。 此外,源和目標之間的每個以太網設備都在重新計算,因此假設每個設備都在正常工作,則它對於錯誤更健壯。

這些剩余的錯誤應由IP和TCP校驗和捕獲。 但是這些校驗和計算無法檢測到所有錯誤fe:重新排序兩個字節字或多個錯誤的總和為零。

在喬納森·斯通,邁克爾·格林沃爾德,克雷格·帕特里奇和吉姆·休斯的“關於實際數據的校驗和和CRC性能”中,您可以找到一些真實數據,這些數據表明大約十億分之一的TCP段包含正確的校驗和,同時包含損壞的數據。

因此,我要說的是,ISO / OSI模型中的錯誤檢測機制在大多數應用程序中為我們提供了足夠的保護,在有效且快速的同時消除了大多數錯誤。 但是,如果您使用一些額外的哈希值,則對錯誤的抵抗力將最大。 只需檢查有關哈希沖突的文章中的這些表 哈希沖突的幾率

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM