1. 計算機網路速度的計算
當然要考慮進位問題,傳輸速度400Mbps,這個M是10^6,1GB的B是8b,G是2^30,所以1GB=2^30*8b,兩者相除就可得到答案。
2^30*8/400*10^6=21.47
10^6表示10的6次方,2^30表示2的30次方
2. 計算機中二進制的乘法和除法如何用加法來實現的
除法與乘法類似,只不過將左移改為右移,加改成減。實際上減也是通過取補碼後再加,不夠減後就停止,得出余數。詳細的是:(1)首先用「1」作為商試一下,相當於用「1」乘以除數「110」,然後把所得到的各位再與被除數的前4位「1001」相減。按照減法運算規則可以得到的余數為「011」。 (2)因為「011」與除數「110」相比,不足以被除,所以需要向低取一位,最終得到「0111」,此時的數就比除數「110」大了,可以繼續除了。同樣用「1」作為商去除,相當於用「1」去乘除數「110」,然後把所得的積與被除數中當前四位「0111」相減。根據以上介紹的減法運算規則可以得到此步的余數為「1」。 (3)因為「1」要遠比除數「110」小,被除數向前取一位後為「11」,仍不夠「110」除,所以此時需在商位置上用「0」作為商了。 (4)然後在被除數上繼續向前取一位,得到「110」。此時恰好與除數「110」完全一樣,結果當然是用「1」作為商,用它乘以除數「110」後再與被除數相減,得到的余數正好為「0」。證明這兩個數能夠整除。 這樣一來,所得的商(1101)2就是兩者相除的結果。
3. 計算機網路問題求助
1.網路中傳輸的一組數據:1001110,設 約定式G(x)=X4+X3+X0,計算數據在網路中傳輸的CRC。數據由A機傳到B機,到達時結果為10011011001,
Gx=11001
10011011001對gx求余數,得00010,余數不為零,判斷有差錯。
2.數據由A機出發時,信息位為:1110 100 ,到達B機時,結果為:1111 100,對結果進行校驗,如果有誤,並進行糾正。 將B左移動4位哦,補1110
得11111001110,除以gx,余數不為零,判斷有錯,校正後為11101001110
3.在使用海明碼時,假設k=7(信息位)時,保證海明碼只有1位出錯,那麼r為多少?
海明碼k=7,沒有這個碼型。
4. 計算機網路中,數據交換方式有哪幾種
在計算機網路中,數據交換的方式有:
(1)線路交換。在數據傳送之前需建立一條物理通路, 在線路被釋放之前,該通路將一直被一對用戶完全佔有。
(2)報文交換。報文從發送方傳送到接收方採用存儲轉發 的方式。在傳送報文時,只佔用一段通路;在交換節點中需要 緩沖存儲,報文需要排隊。因此,這種方式不滿足實時通信的 要求。
(3)分組交換。此方式與報文交換類似,但報文被分成組傳 送,並規定了分組的最長度,到達目的地後需重新將分組組裝成報文。這是網路中最廣泛採用的一種交換技術。
5. crc是什麼意思
CRC(Cyclic Rendancy Check),即循環冗餘校核,是一種根據網路數據包或電腦文件等數據產生簡短固定位數校核碼的快速演算法,主要用來檢測或校核數據傳輸或者保存後可能出現的錯誤。CRC利用除法及余數的原理,實現錯誤偵測的功能,具有原理清晰、實現簡單等優點。
CRC也就是循環冗餘校驗碼,是計算機網路通信領域常用的校驗碼。循環冗餘校驗碼包括一系列移位、相除等數據編碼規則,其演算法原理、演算法程序的設計與分析,都可以通過相應的軟體編碼進行解決。
循環冗餘校驗碼是利用軟體進行校驗的演算法,因此其檢驗速度很快,校驗的誤碼率也較低,整個計算機網路通信的信息傳輸速度很高。CRC差錯糾正控製法能夠有效減少通信線路的誤碼率,得到的通信數據傳輸信息更准確。
在數據的傳輸過程中由於空間電磁環境復雜等原因,可能會產生誤碼,即某幾位數據0變為1,或1變為0,導致接收端得到錯誤的數據。為了降低誤碼率,通常對數據進行特定編碼,在收發端進行額外的驗證,使接收端能發現某些錯誤;
進而實現糾錯功能,常用的編碼方法有CRC-32校驗碼、CRC-16校驗碼、漢明碼、奇偶校驗法等。其中32位循環冗餘校驗簡稱CRC-32校驗在性能和資源消耗兩方面都有較大的優勢,因而,在無線電通信、SATA硬碟數據傳輸等系統中,CRC-32校驗是最常用的檢錯手段之一。
6. 關於計算機網路的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除法」。
7. 計算機網路CRC檢驗中為什麼選擇16或32位效驗碼,效率最高
循環冗餘校驗(CRC)是一種根據網路數據封包或電腦檔案等數據產生少數固定位數的一種散列函數,主要用來檢測或校驗數據傳輸或者保存後可能出現的錯誤。生成的數字在傳輸或者儲存之前計算出來並且附加到數據後面,然後接收方進行檢驗確定數據是否發生變化。一般來說,循環冗餘校驗的值都是32位的整數。由於本函數易於用二進制的電腦硬體使用、容易進行數學分析並且尤其善於檢測傳輸通道干擾引起的錯誤,因此獲得廣泛應用。它是由W.WesleyPeterson在他1961年發表的論文中披露[1]。{{noteTA|T=zh-hans:循環冗餘校驗;zh-hant:循環冗餘校驗;|1=zh-hans:循環冗餘校驗;zh-hant:循環冗餘校驗;}}'''循環冗餘校驗'''(CRC)是一種根據網路數據封包或[[電腦檔案]]等數據產生少數固定位數的一種[[散列函數]],主要用來檢測或校驗數據傳輸或者保存後可能出現的錯誤。生成的數字在傳輸或者儲存之前計算出來並且附加到數據後面,然後接收方進行檢驗確定數據是否發生變化。一般來說,循環冗餘校驗的值都是32位的整數。由於本函數易於用二進制的[[電腦硬體]]使用、容易進行數學分析並且尤其善於檢測傳輸通道干擾引起的錯誤,因此獲得廣泛應用。它是由[[W.WesleyPeterson]]在他1961年發表的論文中披露{{citejournal|author=Peterson,W.W.andBrown,D.T.|year=1961|month=January|title=CyclicCodesforErrorDetection|journal=ProceedingsoftheIRE|doi=10.1109/JRPROC.1961.287814|issn=0096-8390|volume=49|pages=228}}。==簡介==CRC「校驗和」是兩個位元數據流採用二進制除法(沒有進位,使用XOR異或來代替減法)相除所得到的余數。其中被除數是需要計算校驗和的信息數據流的二進製表示;除數是一個長度為n+1的預定義(短)的二進制數,通常用多項式的系數來表示。在做除法之前,要在信息數據之後先加上n個0.CRCa是基於[[有限域]]GF(2)([[同餘|關於2同餘]])的[[多項式環]]。簡單的來說,就是所有系數都為0或1(又叫做二進制)的多項式系數的集合,並且集合對於所有的代數操作都是封閉的。例如::(x^3+x)+(x+1)=x^3+2x+1\equivx^3+12會變成0,因為對系數的加法都會模2.乘法也是類似的::(x^2+x)(x+1)=x^3+2x^2+x\equivx^3+x我們同樣可以對多項式作除法並且得到商和余數。例如,如果我們用''x''3+''x''2+''x''除以''x''+1。我們會得到::\frac{(x^3+x^2+x)}{(x+1)}=(x^2+1)-\frac{1}{(x+1)}也就是說,:(x^3+x^2+x)=(x^2+1)(x+1)-1這里除法得到了商''x''2+1和余數-1,因為是奇數所以最後一位是1。字元串中的每一位其實就對應了這樣類型的多項式的系數。為了得到CRC,我們首先將其乘以x^{n},這里n是一個固定多項式的[[多項式的階|階]]數,然後再將其除以這個固定的多項式,余數的系數就是CRC。在上面的等式中,x^2+x+1表示了本來的信息位是111,x+1是所謂的'''鑰匙''',而余數1(也就是x^0)就是CRC.key的最高次為1,所以我們將原來的信息乘上x^1來得到x^3+x^2+x,也可視為原來的信息位補1個零成為1110。一般來說,其形式為::M(x)\cdotx^{n}=Q(x)\cdotK(x)+R(x)這里M(x)是原始的信息多項式。K(x)是n階的「鑰匙」多項式。M(x)\cdotx^{n}表示了將原始信息後面加上n個0。R(x)是余數多項式,既是CRC「校驗和」。在通訊中,發送者在原始的信息數據M後加上n位的R(替換本來附加的0)再發送。接收者收到M和R後,檢查M(x)\cdotx^{n}-R(x)是否能被K(x)整除。如果是,那麼接收者認為該信息是正確的。值得注意的是M(x)\cdotx^{n}-R(x)就是發送者所想要發送的數據。這個串又叫做''codeword''.CRCs經常被叫做「[[校驗和]]」,但是這樣的說法嚴格來說並不是准確的,因為技術上來說,校驗「和」是通過加法來計算的,而不是CRC這里的除法。「[[錯誤糾正編碼]]」常常和CRCs緊密相關,其語序糾正在傳輸過程中所產生的錯誤。這些編碼方式常常和數學原理緊密相關。==實現====變體==CRC有幾種不同的變體*shiftRegister可以逆向使用,這樣就需要檢測最低位的值,每次向右移動一位。這就要求polynomial生成逆向的數據位結果。''實際上這是最常用的一個變體。''*可以先將數據最高位讀到移位寄存器,也可以先讀最低位。在通訊協議中,為了保留CRC的[[突發錯誤]]檢測特性,通常按照[[物理層]]發送數據位的方式計算CRC。*為了檢查CRC,需要在全部的碼字上進行CRC計算,而不是僅僅計算消息的CRC並把它與CRC比較。如果結果是0,那麼就通過這項檢查。這是因為碼字M(x)\cdotx^{n}-R(x)=Q(x)\cdotK(x)可以被K(x)整除。*移位寄存器可以初始化成1而不是0。同樣,在用演算法處理之前,消息的最初n個數據位要取反。這是因為未經修改的CRC無法區分只有起始0的個數不同的兩條消息。而經過這樣的取反過程,CRC就可以正確地分辨這些消息了。*CRC在附加到消息數據流的時候可以進行取反。這樣,CRC的檢查可以用直接的方法計算消息的CRC、取反、然後與消息數據流中的CRC比較這個過程來完成,也可以通過計算全部的消息來完成。在後一種方法中,正確消息的結果不再是0,而是\sum_{i=n}^{2n-1}x^{i}除以K(x)得到的結果。這個結果叫作核驗多項式C(x),它的十六進製表示也叫作[[幻數]]。按照慣例,使用CRC-32多項式以及CRC-16-CCITT多項式時通常都要取反。CRC-32的核驗多項式是C(x)=x^{31}+x^{30}+x^{26}+x^{25}+x^{24}+x^{18}+x^{15}+x^{14}+x^{12}+x^{11}+x^{10}+x^8+x^6+x^5+x^4+x^3+x+1。==錯誤檢測能力==CRC的錯誤檢測能力依賴於關鍵多項式的階次以及所使用的特定關鍵多項式。''誤碼多項式''E(x)是接收到的消息碼字與正確消息碼字的''異或''結果。當且僅當誤碼多項式能夠被CRC多項式整除的時候CRC演算法無法檢查到錯誤。*由於CRC的計算基於除法,任何多項式都無法檢測出一組全為零的數據出現的錯誤或者前面丟失的零。但是,可以根據CRC的[[#變體|變體]]來解決這個問題。*所有隻有一個數據位的錯誤都可以被至少有兩個非零系數的任意多項式檢測到。誤碼多項式是x^k,並且x^k只能被i\lek的多項式x^i整除。*CRC可以檢測出所有間隔距離小於[[多項式階次]]的雙位錯誤,在這種情況下的誤碼多項式是E(x)=x^i+x^k=x^k\cdot(x^{i-k}+1),\;i>k。如上所述,x^k不能被CRC多項式整除,它得到一個x^{i-k}+1項。根據定義,滿足多項式整除x^{i-k}+1的{i-k}最小值就是多項是的階次。最高階次的多項式是[[本原多項式]],帶有二進制系數的n階多項式==CRC多項式規范==下面的表格略去了「初始值」、「反射值」以及「最終異或值」。*對於一些復雜的校驗和來說這些十六進制數值是很重要的,如CRC-32以及CRC-64。通常小於CRC-16的CRC不需要使用這些值。*通常可以通過改變這些值來得到各自不同的校驗和,但是校驗和演算法機制並沒有變化。CRC標准化問題*由於CRC-12有三種常用的形式,所以CRC-12的定義會有歧義*在應用的CRC-8的兩種形式都有數學上的缺陷。*據稱CRC-16與CRC-32至少有10種形式,但沒有一種在數學上是最優的。*同樣大小的CCITTCRC與ITUCRC不同,這個機構在不同時期定義了不同的校驗和。==常用CRC(按照ITU-IEEE規范)=={|class="wikitable"!名稱||多項式||表示法:正常或者翻轉|-|CRC-1||x+1(用途:硬體,也稱為[[奇偶校驗位]])||0x1or0x1(0x1)|-|CRC-5-CCITT||x^{5}+x^{3}+x+1([[ITU]]G.704標准)||0x15(0x??)|-|CRC-5-USB||x^{5}+x^{2}+1(用途:[[USB]]信令包)||0x05or0x14(0x9)|-|CRC-7||x^{7}+x^{3}+1(用途:通信系統)||0x09or0x48(0x11)|-|CRC-8-ATM||x^8+x^2+x+1(用途:ATMHEC)||0x07or0xE0(0xC1)|-|CRC-8-[[CCITT]]||x^8+x^7+x^3+x^2+1(用途:[[1-Wire]][[匯流排]])|||-|CRC-8-[[Dallas_Semiconctor|Dallas]]/[[Maxim_IC|Maxim]]||x^8+x^5+x^4+1(用途:[[1-Wire]][[bus]])||0x31or0x8C|-|CRC-8||x^8+x^7+x^6+x^4+x^2+1||0xEA(0x??)|-|CRC-10||x10+x9+x5+x4+x+1||0x233(0x????)|-|CRC-12||x^{12}+x^{11}+x^3+x^2+x+1(用途:通信系統)||0x80For0xF01(0xE03)|-|CRC-16-Fletcher||參見[[Fletcher'schecksum]]||用於[[Adler-32]]A&BCRC|-|CRC-16-CCITT||''x''16+''x''12+''x''5+1([[X25]],[[V.41]],[[Bluetooth]],[[PPP]],[[IrDA]])||0x1021or0x8408(0x0811)|-|CRC-16-[[IBM]]||''x''16+''x''15+''x''2+1||0x8005or0xA001(0x4003)|-|CRC-16-[[BBS]]||x16+x15+x10+x3(用途:[[XMODEM]]協議)||0x8408(0x????)|-|CRC-32-Adler||See[[Adler-32]]||參見[[Adler-32]]|-|CRC-32-MPEG2||See[[IEEE802.3]]||參見[[IEEE802.3]]|-|CRC-32-[[IEEE802.3]]||x^{32}+x^{26}+x^{23}+x^{22}+x^{16}+x^{12}+x^{11}+x^{10}+x^8+x^7+x^5+x^4+x^2+x+1||0x04C11DB7or0xEDB88320(0xDB710641)|-|CRC-32C(Castagnoli)||x^{32}+x^{28}+x^{27}+x^{26}+x^{25}+x^{23}+x^{22}+x^{20}+x^{19}+x^{18}+x^{14}+x^{13}+x^{11}+x^{10}+x^9+x^8+x^6+1||0x1EDC6F41or0x82F63B78(0x05EC76F1)|-|CRC-64-ISO||x^{64}+x^4+x^3+x+1(use:ISO3309)||(0xB000000000000001)|-|CRC-64-[[EcmaInternational|ECMA]]-182||x^{64}+x^{62}+x^{57}+x^{55}+x^{54}+x^{53}+x^{52}+x^{47}+x^{46}+x^{45}+x^{40}+x^{39}+x^{38}+x^{37}+x^{35}+x^{33}+x^{32}+x^{31}+x^{29}+x^{27}+x^{24}+x^{23}+x^{22}+x^{21}+x^{19}+x^{17}+x^{13}+x^{12}+x^{10}+x^9+x^7+x^4+x+1(asdescribedin[CRC16toCRC64collisionresearch]*[index.htm#SAR-PR-2006-05ReversingCRC–TheoryandPractice.]{{math-stub}}[[Category:校驗和演算法]][[bg:CRC]][[ca:Controlderendànciacíclica]][[cs:Cyklickýrendantnísoučet]][[de:ZyklischeRendanzprüfung]][[en:Cyclicrendancycheck]][[es:Controlderendanciacíclica]][[eu:CRC]][[fi:CRC]][[fr:Contrôlederedondancecyclique]][[he:בדיקתיתירותמחזורית]][[id:CRC]][[it:Cyclicrendancycheck]][[ja:巡迴冗長検査]][[ko:순환중복검사]][[nl:CyclicRendancyCheck]][[pl:CRC]][[pt:CRC]][[ru:Циклическийизбыточныйкод]][[simple:Cyclicrendancycheck]][[sk:Kontrolacyklickýmkódom]][[sv:CyclicRendancyCheck]][[vi:CRC]]