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

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

我們知道資料鏈路層廣泛使用迴圈冗餘檢驗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   (計算完畢,圖畫的有點醜見諒)