『壹』 crc 計算機網路
2017年12月29日,星期五,
兄弟,我先給你簡單再捋一遍CRC編碼的概念和計算公式,原理明白了,以後不管碰到什麼樣的題,你都會迎刃而解了。
首先,需要知道如下幾個概念,
CRC編碼,就是你題目中所說的「待發字串」,它是經加工後帶有CRC校驗的待發送信息,
CRC校驗碼,就是你題目中所說的「CRC循環冗餘碼」,以下都簡稱為CRC校驗碼,它是通過CRC規則計算得來,
多項式,即真實信息,就是未經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),兩者意義是一樣的,從二進制形式能推導出多項式,也可以從多項式推導出二進制形式,
生成多項式,就是你題目中提到的「G(x)=X^5+X^4+X^2+1」,生成多項式也可以寫成二進制形式,X^5+X^4+X^2+1其對應的二進制形式:110101,
通常,我們為了方便說明問題將生成多項式叫做: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
『貳』 計算機網路中乙太網採用什麼編碼
不同等級的乙太網的物理編碼形式是不一樣的。千兆乙太網採用的是8B/6T的NRZI碼。
網路嫌我字數不夠
『叄』 計算機網路:數字數據在數字信道傳輸時為什麼要進行編碼有幾種編碼方法採用什麼裝置來延長傳輸距離
為什要編碼?首先信息可能是有冗餘的,通過編碼可以減少這部分無用的冗餘,這是信源編碼。其次,數字信息在數字信道中傳輸也會有雜訊、干擾等影響,為了抵抗這些雜訊和干擾,需要對信息進行冗餘編碼,保證在丟失少量數據的情況下,不影響信息的正常傳輸,這是信道編碼
編碼方法有兩種:如1所談的信源編碼和信道編碼
通過中繼器可以延長數據傳輸距離,因為它會對數據重新解碼再編碼。
『肆』 數字數據採用什麼編碼 求一個計算機網路的高手 最好有QQ現場解決問題。。。急死了 考試呢
在數字信道中傳輸計算機數據時,要對計算機中的數字信號重新編碼進行基帶傳輸,在基帶傳輸中數字數據的編碼包括 一、非歸零碼: nonreturn to zero code (NRZ) 一種二進制信息的編碼,用兩種不同的電聯分別表示「1」和「0」,不使用零電平。信息密度高,但需要外同步並有誤碼積累。 0:低電平 1:高電平 二.曼徹斯特編碼:
曼徹斯特編碼(Manchester Encoding),也叫做相位編碼(PE),是一個同步時鍾編碼技術,被物理層使用來編碼一個同步位流的時鍾和數據。曼徹斯特編碼被用在乙太網媒介系統中。曼徹斯特編碼提供一個簡單的方式給編碼簡單的二進制序列而沒有長的周期沒有轉換級別,因而防止時鍾同步的丟失,或來自低頻率位移在貧乏補償的模擬鏈接位錯誤。在這個技術下,實際上的二進制數據被傳輸通過這個電纜,不是作為一個序列的邏輯1或0來發送的(技術上叫做反向不歸零制(NRZ))。相反地,這些位被轉換為一個稍微不同的格式,它通過使用直接的二進制編碼有很多的優點。 曼徹斯特編碼,常用於區域網傳輸。在曼徹斯特編碼中,每一位的中間有一跳變,位中間的跳變既作時鍾信號,又作數據信號;從低到高跳變表示"0",從高到低跳變表示"1"。還有一種是差分曼徹斯特編碼,每位中間的跳變僅提供時鍾定時,而用每位開始時有無跳變表示"0"或"1",有跳變為"0",無跳變為"1"。 對於以上電平跳變觀點有歧義:關於曼徹斯特編碼電平跳變,在雷振甲編寫的<<網路工程師教程>>中對曼徹斯特編碼的解釋為:從低電平到高電平的轉換表示1,從高電平到低電平的轉換表示0,模擬卷中的答案也是如此,張友生寫的考點分析中也是這樣講的,而《計算機網路(第4版)》中(P232頁)則解釋為高電平到低電平的轉換為1,低電平到高電平的轉換為0。清華大學的《計算機通信與網路教程》《計算機網路(第4版)》採用如下方式:曼徹斯特編碼從高到低的跳變是 1 從低到高的跳變是 0 。 兩種曼徹斯特編碼是將時鍾和數據包含在數據流中,在傳輸代碼信息的同時,也將時鍾同步信號一起傳輸到對方,每位編碼中有一跳變,不存在直流分量,因此具有自同步能力和良好的抗干擾性能。但每一個碼元都被調成兩個電平,所以數據傳輸速率只有調制速率的1/2。 就是說主要用在數據同步傳輸的一種編碼方式。 【在曼徹斯特編碼中,用電壓跳變的相位不同來區分1和0,即用正的電壓跳變表示0,用負的電壓跳變表示1。因此,這種編碼也稱為相應編碼。由於跳變都發生在每一個碼元的中間,接收端可以方便地利用它作為位同步時鍾,因此,這種編碼也稱為自同步編碼。】 Manchester encoding uses the transition in the middle of the timing window to determine the binary value for that bit period. In Figure , the top waveform moves to a lower position so it is interpreted as a binary zero. The second waveform moves to a higher position and is interpreted as a binary one . 【關於數據表示的約定】 事實上存在兩種相反的數據表示約定。 第一種是由G. E. Thomas, Andrew S. Tanenbaum等人在1949年提出的,它規定0是由低-高的電平跳變表示,1是高-低的電平跳變。 第二種約定則是在IEEE 802.4(令牌匯流排)和低速版的IEEE 802.3 (乙太網)中規定, 按照這樣的說法, 低-高電平跳變表示1, 高-低的電平跳變表示0。 由於有以上兩種不同的表示方法,所以有些地方會出現歧異。當然,這可以在差分曼徹斯特編碼(Differential Manchester encoding)方式中克服. 三.差分曼徹斯特編碼:
曼徹斯特編碼的編碼規則是: 在信號位中電平從高到低跳變表示1 在信號位中電平從低到高跳變表示0 差分曼徹斯特編碼的編碼規則是: 在信號位開始時不改變信號極性,表示輯"1" 在信號位開始時改變信號極性,表示邏輯"0" 不論碼元是1或者0,在每個碼元正中間的時刻,一定有一次電平轉換。 曼切斯特和差分曼切斯特編碼是原理基本相同的兩種編碼,後者是前者的改進。他們的特徵是在傳輸的每一位信息中都帶有位同步時鍾,因此一次傳輸可以允許有很長的數據位。 曼切斯特編碼的每個比特位在時鍾周期內只佔一半,當傳輸「1」時,在時鍾周期的前一半為高電平,後一半為低電平;而傳輸「0」時正相反。這樣,每個時鍾周期內必有一次跳變,這種跳變就是位同步信號。 差分曼切斯特編碼是曼切斯特編碼的改進。它在每個時鍾位的中間都有一次跳變,傳輸的是「1」還是「0」,是在每個時鍾位的開始有無跳變來區分的。 差分曼切斯特編碼比曼切斯特編碼的變化要少,因此更適合與傳輸高速的信息,被廣泛用於寬頻高速網中。然而,由於每個時鍾位都必須有一次變化,所以這兩種編碼的效率僅可達到50%左右 詳細分析: 分別用標准曼徹斯特編碼和差分曼徹斯特編碼畫出1011001的波形圖 (如右上圖) 一:標准曼徹斯特編碼波形圖1代表從高到低,0代表從低到高 二:差分曼徹斯特編碼波形圖1代表沒有跳變(也就是說上一個波形圖在高現在繼續在高開始,上一波形圖在低繼續在低開始)開始畫0代表有跳變(也就是說上一個波形圖在高位現在必須改在低開始,上一波形圖在高位必須改在從低開始) 註:第一個是0的從低到高,第一個是1的從高到低,後面的就看有沒有跳變來決定了(差分曼徹斯特編碼) 給出比特流101100101的以下兩個波形。 (如圖) (1)曼徹斯特碼脈沖圖形; (2)差分曼徹斯特碼脈沖圖形。
『伍』 計算機網路數據傳輸採用什麼編碼、在線等呀,,,
都是二進制,不過看你用的什麼加密方式,加密方式不同,相同的內容對應的二進制碼不同