計算機網路--差錯檢測(幀檢驗序列FCS計算方法)
阿新 • • 發佈:2019-01-02
我們知道資料鏈路層廣泛使用迴圈冗餘檢驗CRC的檢驗技術
現在我們知道要傳送的資料M=101001(長度為k=6) 在我們每次傳送資料的時候需要在M後面新增一個N位的冗餘碼,一共傳送(k+N)位資料
這N位冗餘碼的計算方法如下:
用二進位制的膜2運算進行2^N(這是2的N次方)乘M的運算 就是說在M這個數後面新增N個0 比如 初始M=101001 進行運算之後M=101001000(n=3)
將的到的M除以收發雙發實現約定的長度(n+1)位的數P 假定P=1101(n=3) 經模2除法運算的到的結果:商Q=110101 餘數R=001(不滿N位往前補0)Q沒有什麼用 ,但是這個餘數R就是我們所求的冗餘碼
我們將這個冗餘碼R新增到M之後 :M=101001001 (M是之前給的最原始的M)
下面具體來說一下 具體怎麼求R:
在二進位制進行運算的時候全部都用XOR(異或進行運算(就是相同為0 不同為1 1xor1=0 0xor0=0 1xor0=1 ))
看圖這樣我們就能得到R
來個例題:
我們要傳送的資料為M=101110 採用CRC的生成多項式是P(x)=X^3+1 所以我們的到的p=1001
得到的R=110 (計算完畢,圖畫的有點醜見諒)