1. 程式人生 > >計算機網絡--差錯檢測(幀檢驗序列FCS計算方法)

計算機網絡--差錯檢測(幀檢驗序列FCS計算方法)

畫的 約定 數據 生成 鏈路層 http 原始的 ont bubuko

我們知道數據鏈路層廣泛使用循環冗余檢驗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 (計算完畢,圖畫的有點醜見諒)

技術分享圖片

計算機網絡--差錯檢測(幀檢驗序列FCS計算方法)