計算機網絡--差錯檢測(幀檢驗序列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   (計算完畢,圖畫的有點丑見諒)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM