當前位置:首頁 » 網路連接 » 計算機網路crc校驗碼課程設計
擴展閱讀
在開網路設置 2025-09-24 20:20:02
電腦黑屏自行恢復 2025-09-24 19:53:30

計算機網路crc校驗碼課程設計

發布時間: 2023-06-14 10:57:01

計算機網路原理中求CRC校驗碼。

01100。演算法你可以用手算,或者用代碼計算,代碼分按位和按位元組。手算演算法是:多項式為101101你在信息的後面補5個0信息碼變為1101101100000這時開始用多項式對上面的信息碼進行異或操作,要打的話很麻煩。我只把沒一次運算的結果寫一下1:011011(注意,前面一位已經為零,這時,要在此數後面補一個數,也就是說,現在已經對8為信息碼操作了一位)移位以後變為110111。(此時的首位又為1,再與多項式異或,下面的類似)2:0110103:0110004:0111015:0101116:000011 注意此時的信息碼已經被操作了5次了,就是說還有3位沒有操作,這時把這個數左移3位就好了,因為他的前3位都為零,所以最後的crc碼為01100整個要發送的數據為11011011+01100中間算的可能有錯誤,開始看crc的時候可能會很難懂,看看代碼很不錯的

② 求教計算機網路中相關於CRC校驗的模2除法

模2加與模2減兩種運算與邏輯異或運算其運演算法則完全相同,另外,模2乘除法都以模2加減法為基礎,因此我們可以把模2運算看作簡單的異或運算。實際上,CRC除法器就是由異或門以及時序電路構成的。
模2除做法與算術除法類似,但每一位除(減)的結果不影響其它位,即不向上一位借位。所以實際上就是異或。然後再移位移位做下一位的模2減。步驟如下:
a、用除數對被除數最高幾位做模2減,沒有借位。
b、除數右移一位,若余數最高位為1,商為1,並對余數做模2減。若余數最高位為0,商為0,除數繼續右移一位。
c、一直做到余數的位數小於除數時,該余數就是最終余數。

③ crc校驗碼計算方法是什麼

1、循環校驗碼(CRC碼):是數據通信領域中最常用的一種差錯校驗碼,其特徵是信息欄位和校驗欄位的長度可以任意選定。

2、生成CRC碼的基本原理:任意一個由二進制位串組成的代碼都可以和一個系數僅為『0』和『1』取值的多項式一一對應。

例如:代碼1010111對應的多項式為x6+x4+x2+x+1,而多項式為x5+x3+x2+x+1對應的代碼101111。


(3)計算機網路crc校驗碼課程設計擴展閱讀:

注意事項

是接受方和發送方的一個約定,也就是一個二進制數,在整個傳輸過程中,這個數始終保持不變。

在發送方,利用生成多項式對信息多項式做模2除生成校驗碼。在接收方利用生成多項式對收到的編碼多項式做模2除檢測和確定錯誤位置。

應滿足以下條件:

1、生成多項式的最高位和最低位必須為1。

2、當被傳送信息(CRC碼)任何一位發生錯誤時,被生成多項式做除後應該使余數不為0。

3、不同位發生錯誤時,應該使余數不同。

4、對余數繼續做除,應使余數循環。

④ 關於計算機網路的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除法」。

⑤ crc 計算機網路

2017年12月29日,星期五,

兄弟,我先給你簡單再捋一遍CRC編碼的概念和計算公式,原理明白了,以後不管碰到什麼樣的題,你都會迎刃而解了。

首先,需要知道如下幾個概念,

  1. CRC編碼,就是你題目中所說的「待發字串」,它是經加工後帶有CRC校驗的待發送信息,

  2. CRC校驗碼,就是你題目中所說的「CRC循環冗餘碼」,以下都簡稱為CRC校驗碼,它是通過CRC規則計算得來,

  3. 多項式,即真實信息,就是未經CRC編碼規則處理的原始的信息,就是你題目中說的「已知信息碼」,原始的真實信息有兩種表現形式,以本題為例,

    a、原始信息的 二進制字串(形式):1000100101,

    b、原始信息的 多項式(形式):X^9+X^5+X^2+1,

    X^9+X^5+X^2+1多項式,就是由原始信息的二進制形式1000100101得來的,多項式中每一個因數都對應二進制形式 1000100101 中值為1的那一位,X^9 X^5 X^2就是2^9+2^5+2^2,那表示二進制數的權位,

    1000100101

    1*2^90*2^80*2^70*2^6 1*2^5 0*2^4 0*2^3 1*2^2 0*2^11*2^0

    2^0=1...2^9=1 000 000 000,凡是二進制字串中值為1的權位都出現在了多項式中,例如,二進制字串最高位(左1)的1,就是2^9,所以它出現在了多項式中,形狀為X^9,而二進制數串中值為0的權位都沒有出現在多項式中,可以數一下,二進制數串中有4個1,所以對應的多項式中有4個因子:X^9、X^5、X^2、1,其中多項式的最後一個因子1,其實就是X^0,而我們都知道,任何數的0次冪都是1(0除外),可以看出,這兩種形式是等價的,即1000100101=X^9+X^5+X^2+1,當我們再遇到多項式時,就是去數原始信息(1000100101)中的1,然後把它的值為1的權位放到一起,寫成式子(X^9+X^5+X^2+1),兩者意義是一樣的,從二進制形式能推導出多項式,也可以從多項式推導出二進制形式,

  4. 生成多項式,就是你題目中提到的「G(x)=X^5+X^4+X^2+1」,生成多項式也可以寫成二進制形式,X^5+X^4+X^2+1其對應的二進制形式:110101,

  5. 通常,我們為了方便說明問題將生成多項式叫做:G(x),這里請注意,需要將

「生成多項式」和「多項式」進行區分,G(x)中的G就是generator polynomial,生成多項式的意思,

多項式:指的是原始信息1000100101中所有權位為1的權位寫在一起的形式X^9+X^5+X^2+1

生成多項式:是人為指定的多項式,由編碼人指定的東西,本例被人為指定成X^5+X^4+X^2+1即 110101 ,這個生成多項式是人為指定的,不是固定的,個人理解你指定成X^5+X^3+X^2+1也行,制定成X^5+X^4+X^3+X^2+1也行,


好了,接下來,我們要說最關鍵的CRC的定義和計算過程了,

CRC的定義:

  • 多項式*2^(G(x)的最高次冪指數,你給的圖片題目中G(x)的最高次冪指數是5)/G(x)=CRC校驗碼;

    用文字表達,就是原始數據信息乘以,2的 【生成多項式中最高冪指數】 次冪,乘2的多少次冪,就是在右邊加幾個0,比如乘以2^2,就是在右邊加2個零,因為是二進制數,所以乘幾個2就是加幾個零,和十進制數乘幾個10就是加幾個零道理一樣,然後再去除以生成多項式,請注意,這里的除,不是數學中的除法,而是指計算機中的模二除運算,實際上就是邏輯異或運算,說白了,就是將除數和被除數高位,進行左對齊後,相同為0,不同為1,然後一直除下去,直到得到最後的余數為止,這個余數就是我們需要的CRC校驗碼,而且這個最後得到的余數,取幾位由生成多項式中最高冪指數決定,最高冪指數是5就取5位,最高冪指數是6就取6位,最高冪指數是4就取4位,是根據生成多項式的最高次冪來定取幾位的.本例中,最高次冪是5,所以,最後的余數是5位二進制數,

    X^5+X^4+X^2+1寫成二進制就是: 110101

  • 你的圖片題目中,G(x)=X^5+X^4+X^2+1,也就是生成多項式是110101,

結合本題,我們來做一遍,原始數據:1000100101,生成多項式:110101,根據上面的規則有,

1000100101*2^5=1000100101 00000



把原始值右邊加上5個零:1000100101 00000之後,去除以生成多項式:110101

1000100101 00000

110101

----------------------------

0101110101 00000

左對齊,並開始按位異或,得0101110101 00000,



進行第二次除運算:

101110101 00000

110101

--------------------------

011011101 00000

左對齊,再按位異或,得到011011101 00000




開始第三次除運算:

11011101 00000

110101

--------------------

00001001 00000

左對齊,再按位異或,得到00001001 00000



進行第四次除運算:

100100000

110101

-----------------

010001000

左對齊,再異或,得到010001000



進行第五次除運算:

10001000

110101

------------

01011100

左對齊,再異或,得到01011100



進行第六次除運算:

1011100

110101

-------------

0110110

左對齊,再異或,得到0110110



進行第七次,最後一次除運算:

110110

110101

------------

000011


最終余數為000011,而由G(x)的最高次冪X^5的冪指數決定了,CRC校驗碼取5位,因此,最終得到的CRC校驗碼為:00011,

  • 多項式*2^(G(x)的最高次冪指數,本例中G(x)的最高次冪指數是5)+G(x)=最終在物理線路上傳送的CRC編碼待發字串,

用文字表達就是,原始數據乘以,2的 【生成多項式中最高冪指數】 次冪,然後再加上生成多項式,最終得到要在線路中傳送的CRC編碼待發字串,

接著,以本例進行餘下的計算,原始數據:1000100101,CRC校驗碼(CRC循環冗餘碼)為:00011,

根據上面的定義,有:

1000100101*2^5=1000100101 00000,

1000100101 00000

+ 00011

----------------------

100010010100011

所以最終的「待發字串」CRC編碼為:100010010100011