解出的R=0101(fcs)
輸出2^nM+fas=1001110111010101
唔感覺是這樣的
B. 關於計算機網路的crc計算
我們知道,一台主機向另外一台主機發送報文的時候,需要一層層經過自己的協議棧進行數據封裝,到達最後一層(四層協議的網路介面層)時需要在幀尾部添加FCS校驗碼(通過CRC演算法得出)。當對端主機收到時,在接收端同樣通過CRC演算法進行驗證,確認傳輸過程中是否出現錯誤。它只能確認一個幀是否存在比特差錯,但沒有提供解決措施。
循環冗餘校驗的原理
在發送端,先把數據劃分為組(即:一幀)。假定每組 k 個比特。
在每組後面,添加供差錯檢測用的 n 位冗餘碼一起發送。即:實際發送長度為:k+n 比特。
發送前雙方協商n+1位的除數P,方便接收方收到後校驗。
給K比特的數據添加除數減一個0(P-1)作為被除數,與第三步確定的除數做「模2除法」。得出的余數即FCS校驗序列,它的位數也必須是(P-1)。
將FCS校驗序列添加至K個比特位的後面發送出去。
接收方對接收到的每一幀進行校驗,若得出的余數 R = 0,則判定這個幀沒有差錯,就接受(accept)。若余數 R ≠ 0,則判定這個幀有差錯,就丟棄。
對「模2除法」進行說明:
「模2除法」與「算術除法」類似,但它既不向上位借位,也不比較除數和被除數的相同位數值的大小,只要以相同位數進行相除即可。模2加法運算為:1+1=0,0+1=1,0+0=0,無進位,也無借位;模2減法運算為:1-1=0,0-1=1,1-0=1,0-0=0,也無進位,無借位。相當於二進制中的邏輯異或運算。
計算示例
那麼接收方拿到的就是:101001001。再以它為被除數,1101為除數進行「模2除法」。