Ⅰ 計算機網路-循環冗餘檢測R的計算
循環冗餘檢測(CRC)是一種用於數據傳輸中錯誤檢測的編碼方式。其原理是在發送的數據段後,附加一段由特定生成多項式計算得出的冗餘碼。接收方通過相同的生成多項式對收到的數據進行同樣的計算,若結果一致則認為數據傳輸無誤。
生成多項式通常表示為一個 r+1 位的二進制數,其中 r 是冗餘碼的位數,最高位通常為 1。在發送端,數據段 D 會被擴展至 D',在 D 的末尾添加 r 個 0,形成 01 字元串,此過程滿足模 2 算術,即每個位進行異或操作。接收端若能將接收到的數據用相同的生成多項式整除,則證明數據在傳輸過程中未發生錯誤。
以發送數據 D=1010101010 和生成多項式 G=10011 為例。生成多項式的位數 r 為 G 的位數減 1,即 r=4。首先在數據 D 後添加 4 個 0,形成 D'=10101010100000。接著,使用模 2 算術對 D' 進行除法運算,其本質是進行位數異或運算。最終得到的余數即為冗餘碼 R,本例中的 R 為 0100。若接收端計算結果與發送端相同,則表明數據傳輸准確無誤。
Ⅱ 計算機網路循環冗餘檢驗 中的除數怎麼來的
首先要知道CRC生成的多項式P(X)。除數的位數是P(X)最高次冪+1。P(X)每個冪數版代表著除數從權右到左第幾位為1,其餘的都為0,就得出除數了。比如P(X)=X^4+X^3+1,則除數個數為5,從右往左分別為0 1 2 3 4位,其中4,3,0位為1,其餘為0。除數為11001