2011-04-28 123 views
4

我目前正在查看校驗,但我很難完全理解它們是如何工作的。校驗和解釋?

僅供參考,我一直在看UDP校驗和和Internet校驗和。我已經瞭解到UDP在發送端執行1s補碼,但是我不清楚補碼是什麼。

我有一個粗略的想法1s補全是'顛倒'所有1和0的值,使1變成0和0變成1,但我不知道這是爲什麼首先完成。

有人可以提供一些有關校驗和的信息嗎?

謝謝。

+0

這可能是樣的問題,維基百科可以回答,因爲它是非常通用的:http://en.wikipedia.org/wiki/Checksum – Stefano 2011-04-28 09:58:35

+0

有很多計算的東西的方式,人們稱之爲「校驗' - 不幸的是,您需要爲特定的應用程序找到確切的算法。我不會過多擔心它是如何用文字描述的(詞語通常是模糊的/模棱兩可的/令人困惑的),而是尋找一個清晰的分步過程,最重要的是,您可以查看一個示例數據包! – 2011-04-28 10:07:21

回答

7

校驗和主要是一些值的哈希(單向加密函數),以確保數據在到達另一端時是一致的。在發送數據之前取得校驗和,然後在另一個接收到數據時,再次獲取相同值的校驗和,並與來自發送方的校驗和相匹配,如果相同,則數據處於好的狀態,否則我們知道有什麼不對。

相當簡單的解釋。

0

校驗和只是一個整數,它是由這些規則計算出來的: 除了校驗和(我稱它爲sum)外,數據包中的所有數據總和。保存在校驗和中:-sum。

當數據包到達時,對數據包中的所有內容進行求和。如果總和爲0,則數據包有效。

+0

這不僅僅是一筆數額,它實際上是一個散列 – 2011-04-28 10:01:54

+0

它可能是也可能不是總數,如果它是總和,它可能會或可能不會使用普通的二進制補碼算法。 「校驗和」通常用於涵蓋各種聚合算法。 – 2011-04-28 10:04:08