導航:首頁 > 網路連接 > 計算機網路水平奇偶校驗碼

計算機網路水平奇偶校驗碼

發布時間:2023-01-17 22:03:06

A. 奇偶校驗原理

奇偶校驗原理是通過計算數據中『1』的個數是奇數還是偶數來判斷數據的正確性。校驗的數據後加—位校驗位或校驗字元用作校驗碼實現校驗。校驗位的生成方法。奇校驗:確保整個被傳輸的數據中『1』的個數是奇數個,即載荷數據中『1』的個數是奇數個時校驗位填『0』否則填『1』;偶校驗:確保整個被傳輸的數據中『1』的個數是偶數個,即載荷數據中『1』的個數是奇數個時校驗位填『1』,否則填『0』。

使用奇偶校驗碼校驗的特點:

校驗處理過程簡單,但如果數據中發生多位數據錯誤就可能檢測不出來,更檢測不到錯誤發生在哪一位;主要應用於低速數字通信系統中,一般非同步傳輸模式選用偶校驗,同步傳輸模式選用奇校驗。

方式:

垂直奇偶校驗碼:以一個字元作為校驗單位縱向生成校驗碼位;

水平奇偶校驗碼:以多個字元作為校驗單位橫向生成校驗碼位;

水平垂直冗餘校驗碼(方陣校驗碼):以多個字元作為校驗單位水平垂直兩個方向共同生成校驗字元。

B. 奇偶校驗碼的基本分類:

垂直奇偶校驗又稱為縱向奇偶校驗,它是將要發送的整個信息塊分為定長p位的若干段(比如說q段),每段後面按1的個數為奇數或偶數的規律加上一位奇偶位,如圖2.19所示。各位信息(I11,I21,…,Ipl,I12,…,Ipq)中,每p位構成一段(即圖中的一列),共有q段(即共有q列〉。每段加上一位奇偶校驗冗餘位,即圖中的rio編碼規則為
注意:此間的+指的是模二加,也即異或運算。
圖中箭頭給出了串列發送的順序,即逐位先後次序為I11,I21,…,Ip1,r1,I12,…,Ipa,r2,…,兒,…,I間,rq。在編碼和校驗過程中,用硬體方法或軟體方法很容易實現上述連續半加運算,而且可以邊發送邊產生冗餘位;同樣,在接收端也可邊接收邊進行校驗後去掉校驗位。
垂直奇偶校驗方法的編碼效率為R=p/(p+1)。通常,取一個字元的代碼為一個信息段,這種垂直奇偶校驗有時也稱為字元奇偶校驗。例如,在8位字元代碼(即用8位二進制數位表示一個字元)中,p=8,編碼效率便為8/9。
垂直奇偶校驗方法能檢測出每列中的所有奇數位錯,但檢測不出偶數位的錯。對於突發錯誤來說,奇數位錯與偶數位錯的發生概率接近於相等,因而對差錯的漏檢率接近於1/2。 為了降低對突發錯誤的漏檢率,可以採用水平奇偶校驗方法。水平奇偶校驗又稱為橫向奇偶校驗,它是對各個信息段的相應位橫向進行編碼,產生一個奇偶校驗冗餘位,如圖2.20所示,編碼規則為
若每個信息段就是一個字元的話,這里的q就是發送的信息塊中的字元數。
水平奇偶校驗的編碼效率為R=q/(q+1)。
水平奇偶校驗不但可以檢測出各段同一位上的奇數位錯,而且還能檢測出突發長度≦p的所有突發錯誤,因為按發送順序從圖2.20中可見,突發長度≦p的突發錯誤必然分布在不同的行中,且每行一位,所以可以檢查出差錯,他的漏檢率比垂直奇偶校驗方法低。但是實現水平奇偶校驗碼時,不論是採用硬體還是軟體方法,都不能在發送過程中產生奇偶校驗冗餘位邊插入發送,而必須等待要發送的全部信息塊到齊後,才能計算冗餘位,也就是一定.要使用數據緩沖器,因此它的編碼和檢測實現起來都要復雜一些。
同時進行水平奇偶校驗和垂直奇偶校驗就構成水平垂直奇偶校驗,也稱為縱橫奇偶校實驗,如圖2.21所示。若水平垂直都採用偶校驗,則
水平垂直奇偶校驗的編碼效率為R=pq/[(p+1)(q+1)]。.
水平垂直奇偶校驗能檢測出所有3位或3位以下的錯誤(因為此時至少在某一行或某一'列上有一位錯)、奇數位錯、突發長度<=p+1的突發錯以及很大一部分偶數位錯。測量表.明,這種方式的編碼可使誤碼率降至原誤碼率的百分之一到萬分之一。
水平垂直奇偶校驗不僅可檢錯,還可用來糾正部分差錯。例如數據塊中僅存在1位錯'時,便能確定錯碼的位置就在某行和某列的交叉處,從而可以糾正它。

C. 數據鏈路層的差錯的檢測和恢復(奇偶校驗碼,CRC校驗,校驗和),各種運算

在原始的物理傳輸線路上傳輸數據信號是有差錯的,存在一定的誤碼率,數據鏈路層存在的目的就是給原始二進制位流增加一些控制信息 ,實現如何在有差錯的線路上進行無差錯傳輸

數據設定為M位,冗餘位設定為R位,如果位數滿足即認為不出錯,如果位數不滿足即肯定出錯

差錯產生的原因
信道的電氣特性引起信號幅度,頻率,相位的畸變,信號反射,串擾,閃電,大功率電機的啟停等

計算機網路中出現的差錯是連續的還是離散的差錯? → 是連續的突發性的差錯
比如傳了一個這樣的位串0001101001,連續的差錯:比如一共出錯了3位,連續的出錯在一起。離散的差錯:一共出錯了3位,不是連續出的,是分散出的

保證幀正確,按序送交上層(順序要對,不能重復也不能跳幀)。在接收方能夠判斷接收的數據是否正確,若錯誤還可能要恢復錯誤

糾錯控制主要由接收方做,能檢查出錯並定位到是哪兒出錯了

接收方通過反饋機制告訴發送方出錯,發送方通過重發的方式恢復差錯

☆自動糾錯比檢錯反饋重發機制代價大,在發生數據丟失的情況下,只是自動糾錯機制無法進行差錯恢復,還是需要檢錯反饋重發機制

一個幀包括m個數據位,r個校驗位(是冗餘位,和m位的有效數據是無關的),稱為n位碼字(n=m+r),我們希望r盡量短,並且盡量有一個固定長度

加入了冗餘位,使接收方知道有差錯發生,但不知道什麼差錯,然後請求重發

加入了足夠多的冗餘位,使接收方不僅知道有差錯發生,並知道哪些位發生差錯

兩個編碼的海明距離: 兩個編碼不相同位的個數
例:0000000000與0000011111的海明距離是5
編碼方案的海明距離: 編碼方案中任兩個編碼海明距離的最小值
ASCII這樣的連續編碼的海明距離都是1

為檢測d位錯,編碼方案的海明距離應至少為d+1
當發生d位錯時,不會由一種合法編碼變為另一種合法編碼,也就是想要由一種合法編碼變為另一種合法編碼,需要d+1以上出錯

對接收方來講,它判定一個編碼是否出錯的唯一依據是這個編碼是否是一個合法的編碼。即使接收方收到了一個合法的編碼,它也無法判斷是否是一個合法編碼,因為它不知道這個合法編碼原本就是合法的,還是出錯以後也依然是一個合法編碼。因此需要海明距離應至少為d+1

在數據鏈路層一般是不用這種檢錯方法的,因為檢錯率太低

若接收方收到的位元組奇偶結果不正確,就可以知道傳輸中發生了錯誤
增加奇偶校驗位後海明距離由1變為2,因此根據「為檢測d位錯,編碼方案的海明距離應至少為d+1」,可以檢查出一位二進制位的差錯
用這種方法,有一位出錯時,就會由合法編碼(奇校驗時1的個數為奇數,偶校驗時1的個數為偶數)變成一種非合法編碼(奇數校驗時1的個數為偶數,偶校驗時1的個數為奇數)

為糾正d位錯,編碼方案的海明距離應至少為2d+1
當發生d位錯時,出錯編碼仍然最接近於原始的正確編碼

例:現在有一個編碼方案,這個編碼方案之中只有4種合法編碼↓
0000000000
0000011111
1111100000
1111111111
它們之間的海明距離為5,按照定理,能夠糾正2位錯
假設接收方收到了這樣的編碼:0001100000,很明顯這是個非法編碼,怎麼樣糾正
呢?我們知道出錯的位數是≤ 2位的,它和第一種的海明距離為2,和第二種為7,和
第三種為3,和第四種為8,離它最近的是第一種編碼。它採用這種就近恢復的原則將
出錯的編碼恢復到原始編碼

數據鏈路層用的最多的一種檢錯方法
但是高層(網路層,傳輸層)是不用這種檢錯方法的,而用檢驗和的方法

生成多項式G(x)
發方,收方事前約定。這里的約定是數據鏈路層的協議已經定義該協議使用什麼生成多項式
生成多項式的高位和低位必須為1
生成多項式必須比傳輸信息對應的多項式短
(現在最多用的是CRC-32,生成多項式是32位,能否保證生成多項式比傳輸的對應的多項式短呢?從原始數據來講保證不了,但是到數據鏈路層時加了傳輸層的頭,網路層的頭之後肯定能保證大於32位。比如現在的Internet網路,例如在傳輸層使用TCP加20個位元組,在網路層IP又加了20個位元組,已經超過32位了,所以肯定能保證)
理論上來講生成多項式的階越高,檢錯率越高
硬體實現CRC校驗

四個多項式已經成為國際標准

CRC碼(增加的r位冗餘位檢錯碼,即校驗和)加在幀尾(效率比較高),使帶CRC碼的幀的多項式能被G(x)除盡:接收方接收時,用G(x)去除它,若有餘數,則傳輸出錯

• 模2加法運算定義為:(對應於邏輯異或)
0+0=0 0+1=1 1+0=1 1+1=0
例如0101+0011=0110
• 模2減法運算定義為:(對應於邏輯異或)
0-0=0 0-1=1 1-0=1 1-1=0
例如0110-0011=0101
• 模2乘法運算定義為:
0x0=0 0x1=0 1x0=0 1x1=1

• 模2除法運算定義為:
0 ÷1=0 1÷1=1
利用模2減求余數,余數最高位為1,則商1,否則商0,每商1位則余數減少1位,
直到余數位數少於除數位數

按位與運算:
按位與運算符」&」是雙目運算符。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1,否則為0。參與運算的數以補碼方式出現

例如: 9 & 5
00001001(9的二進制補碼)
&
00000101 (5的二進制補碼)
00000001
可見9 & 5 =1

最高位作為符號位,若符號位為0,則表示正數,若符號位為1,則表示負數
其餘各位代表數值本身的絕對值(以二進製表示)
絕對值相同的正數和負數,它們除了符號位不同外,其他各位都相同

一個數如果值為正,則它的反碼與原碼相同
一個數如果值為負,則將其符號位置為1,其餘各位為對原碼相應數據位取反
(取反:二進制中有0和1兩種狀態,取反就是取與當前狀態相反的狀態,1取反等於0,0取反等於1)

正數的補碼與反碼,原碼相同
負數的補碼則將其最高位置為1,其餘各位為對原碼的相應數據位取反,再對整個數加1
即 X為負數時,【X】補 = 【X】反+1

(+0)補 = 00000000
(-0)反 = 11111111
(-0)補 = 11111111 + 1 = 100000000→進位1捨去→00000000

假設用一個位元組表示一個數,補碼的表示範圍為:-128 ----- +127
用反碼表示的最小值為:-128,其反碼為:10000000
用反碼表示的最大值為:+127,其反碼為:01111111

按位或運算符」|」是雙目運算符。其功能是參與運算的兩數各對應的二進位相或。只要對應的兩個二進位有一個為1時,結果位就為1.參與運算的兩個數均以補碼出現
例如:9|5
00001001
| 00000101
00001101(十進制為13)
可見9|5=13

~為單目運算符,具有右結合性。其功能是對參與運算的數的各二進位按位求反
例如:~9
~(0000000000001001)結果為:1111111111110110

按位異或運算符」 ^ 」是雙目運算符。其功能是參與運算的兩數各對應的二進位相異或。當兩對應的二進位相異時,結果為1。參與運算數仍以補碼出現
例如:9^5
00001001
^ 00000101
00001100(十進制為12)

左移運算符」 << 」是雙目運算符。其功能是把 」 << 」左邊的運算數的各二進位全部左移若干位,由」 << 」右邊的數指定移動的位數,高位丟棄,低位補0
例如:a=00000011(十進制3),a << 4,結果為:00110000(十進制48)

右移運算符」 >> 」是雙目運算符。其功能是把」 >> 」左邊的運算數的各二進制全部右移若干位,」 >> 」右邊的數指定移動的位數
例如:a=15(00001111),a >>2,結果為00000011(十進制3)

計算方法例:

※CRC碼計算還有一個好處:
我們希望不管m是多少位的,但是冗餘位r是越短越好,而且最好位數是固定的。用這CRC碼的好處就是生成多項式是多少階的,那麼最後的余數(冗餘位)的位數就是多少位。如果是n階的,那麼最後就是4位

循環冗餘校驗法檢驗不出來的錯的情況:收到的位串雖然是錯誤的,但是恰巧能被生成多項式整除,這個時候檢測不出來

適用於高層協議,如IP,TCP,UDP等
校驗碼放在前面或後面影響都不大,所以絕大多數是放在前面的
檢錯率低於循環冗餘校驗法
在↓例子中,如果第1位和第9位同時出錯,或者第2位和第10位同時出錯···出錯,那麼它們取反相加的數是不變的,這個時候是檢查不出錯的。但是網路當中連續突發的錯占絕大部分,這種跳躍性的出錯概率很小,所以檢驗和的檢錯率還是比較高的
高層不用冗餘校驗法的原因是,冗餘校驗法主要採用除的計算方式,比累加的(校驗和)計算方式效率要低,而數據鏈路層用這種方法可以用硬體實現,但是網路層和傳輸層一般只能通過軟體實現,那麼效率就降低了。而且數據鏈路層已經提供了比較可靠的支持,所以高層就可以用這種檢錯率相對低一點的檢錯法

檢驗欄位初值置0,數據拆分成與檢驗欄位等長的分片,不足部分補0,將所有分片逐位取反,並連續累加,丟棄最高進位,計算結果置於檢驗欄位。接收端執行相同的過程(分段處理,取反累加,把累加出的校驗和與校驗碼欄位當中保存的校驗和進行比對,如果是完全一致就沒錯),並將計算結果和傳輸過來的檢驗和進行比較以確定是數據是否出現差錯

D. 什麼是奇偶效驗碼

奇偶校驗,內存中最小的單位是比特,也稱為「位」,位有隻有兩種狀態分別以1和0來標示,每8個連續的比特叫做一個位元組(byte)。不帶奇偶校驗的內存每個位元組只有8位,如果其某一位存儲了錯誤的值,就會導致其存儲的相應數據發生變化,進而導致應用程序發生錯誤。而奇偶校驗就是在每一位元組(8位)之外又增加了一位作為錯誤檢測位。在某位元組中存儲數據之後,在其8個位上存儲的數據是固定的,因為位只能有兩種狀態1或0,假設存儲的數據用位標示為1、1、1、0、0、1、0、1,那麼把每個位相加(1+1+1+0+0+1+0+1=1),結果是奇數,那麼在校驗位定義為1,反之為0。當CPU讀取存儲的數據時,它會再次把前8位中存儲的數據相加,計算結果是否與校驗位相一致。從而一定程度上能檢測出內存錯誤,奇偶校驗只能檢測出錯誤而無法對其進行修正,同時雖然雙位同時發生錯誤的概率相當低,但奇偶校驗卻無法檢測出雙位錯誤。
奇偶校驗碼是奇校驗碼和偶校驗碼的統稱,是一種最基本的檢錯碼。它是由n-1位信息元和1位校驗元組成,可以表示成為(n,n-1)。如果是奇校驗碼,在附加上一個校驗元以後,碼長為n的碼字中「1」的個數為奇數個;如果是偶校驗碼,在附加上一個校驗元以後,碼長為n的碼字中「1」的個數為偶數個。設:如果一個偶校驗碼的碼字用A=[an-1,an-2,…,a1,a0]表示,則:
Bk064553j-1.jpg
式中 為校驗元,「+」為模二和(以後也這樣表示,請注意)。式(1)通常被稱為校驗方程。利用式(1),由信息元即可求出校驗元。另外,如果發生單個(或奇數個)錯誤,就會破壞這個關系式,因此通過該式能檢測碼字中是否發生了單個或奇數個錯誤。
其中,在實際應用中,又可分為垂直奇偶校驗、水平奇偶校驗和水平奇偶校驗。

E. 計算機網路中的 奇偶校驗問題

ls說的不太嚴謹,奇偶校驗能夠校驗出奇數位的錯誤,注意是檢錯,不是糾錯更不是防止。

F. 1.簡述計算機網路的主要功能 2.什麼是奇偶校驗有何特點如果採用奇校驗,數據「01000011」的校驗位

主要功能:數據通信,資源共享,負載均衡與分布處理。
奇偶校驗:是一種通過增加冗餘位使得碼字中「1」的個數恆為奇數或偶數的校驗方法。
特點:是一種檢錯法,且查錯能力只能是一位,無糾錯能力(因為它不能指出出錯的是哪一位)。
採用奇校驗,數據「01000011」中「1」的個數為3,是奇數,故校驗位為0(就是該數據中的最高位)

G. 奇偶檢驗碼的工作原理和具體流程

一、工作原理

奇偶校驗碼由n-1位信息元和1位校驗元組成,可以表示成為(n,n-1)。如果是奇校驗碼,在附加上一個校驗元以後,碼長為n的碼字中「1」的個數為奇數個;如果是偶校驗碼,在附加上一個校驗元以後,碼長為n的碼字中「1」的個數為偶數個。

設:如果一個偶校驗碼的碼字用A=[an-1,an-2,…,a1,a0]表示,則:(1)式中 為校驗元,「+」為模二和(以後也這樣表示,請注意)。

式(1)通常被稱為校驗方程。利用式(1),由信息元即可求出校驗元。另外,如果發生單個(或奇數個)錯誤,就會破壞這個關系式,因此通過該式能檢測碼字中是否發生了單個或奇數個錯誤。

二、流程

1、奇校驗:就是讓原有數據序列中(包括你要加上的一位)1的個數為奇數

1000110(0)必須添0。原來有3個1已經是奇數了所以添上0之後1的個數還是奇數個。

2、偶校驗:就是讓原有數據序列中(包括你要加上的一位)1的個數為偶數

1000110(1)必須加1。原來有3個1要想1的個數為偶數就只能再添加1。

(7)計算機網路水平奇偶校驗碼擴展閱讀

校驗碼的存在:

計算機系統運行時,各個部之間要進行數據交換.交換的過程中,會有發生誤碼的可能(即0變成1或1變成0),由於計算機的儲存是通過二進制代碼來實現的的,誤碼會導致儲存的內容發生改變。為確保數據在傳送過程正確無誤,常使用檢驗碼。

優點:簡單,易於硬體實現

缺點:如上述,只能檢測出奇數個錯誤。

因為在某些場合,發生錯誤的情況下,絕大多數都是出現一個錯誤,所以奇偶校驗碼有著很大的實用性。

H. 奇偶校驗碼的特點是什麼為什麼說它是可靠性代碼

奇偶校驗碼是 奇校驗碼 和 偶校驗碼 的統稱.
它們都是通過在要校驗的編碼上加一位校驗位組成.
如果是 奇校驗 加上校驗位後,編碼中1的個數為 奇數個
如果是 偶校驗 加上校驗位後,編碼中1的個數為 偶數個

例:
原編碼 奇校驗 偶校驗
0000 0000 1 0000 0
0010 0010 0 0010 1
1100 1100 1 1100 0
1010 1010 1 1010 0
如果發生 奇數 個位傳輸出錯,那麼編碼中1的個數就會發生變化.
從而校驗出錯誤. 要求從新傳輸數據.

目前應用的 奇偶校驗碼 有3種.
水平奇偶校驗碼
對每一個數據的編碼添加校驗位,使信息位與校驗位處於同一行.

垂直奇偶校驗碼
把數據分成若干組,一組數據排成一行,再加一行校驗碼.
針對每一行列採用 奇校驗 或 偶校驗
例: 有32位數據10100101 00110110 11001100 10101011
垂直奇校驗 垂直偶校驗
數據10100101 10100101
00110110 00110110
11001100 11001100
10101011 10101011
校驗為00001011 11110100

水平垂直奇偶校驗碼
就是同時用水平校驗和垂直校驗
例:
奇校驗 奇水平 偶校驗 偶水平
數據 10100101 1 10100101 0
00110110 1 00110110 0
11001100 1 11001100 0
10101011 0 10101011 1
校驗 00001011 0 11110100 1

I. 什麼是奇偶校驗

奇偶校驗(Parity Check)是一種校驗代碼傳輸正確性的方法。根據被傳輸的一組二進制代碼的數位中"1"的個數是奇數或偶數來進行校驗。採用奇數的稱為奇校驗,反之,稱為偶校驗。採用何種校驗是事先規定好的。通常專門設置一個奇偶校驗位,用它使這組代碼中"1"的個數為奇數或偶數。若用奇校驗,則當接收端收到這組代碼時,校驗"1"的個數是否為奇數,從而確定傳輸代碼的正確性。

奇偶校驗需要一位校驗位,即使用串口通信的方式2或方式3(8位數據位+1位校驗位)。奇校驗(odd parity):讓傳輸的數據(包含校驗位)中1的個數為奇數。即:如果傳輸位元組中1的個數是偶數,則校驗位為「1」,奇數相反。以發送字元:10101010為例

數據和校驗位發送給接受方後,接收方再次對數據中1的個數進行計算,如果為奇數則校驗通過,表示此次傳輸過程未發生錯誤。如果不是奇數,則表示有錯誤發生,此時接收方可以向發送方發送請求,要求重新發送一遍數據。

優缺點:

閱讀全文

與計算機網路水平奇偶校驗碼相關的資料

熱點內容
4g移動網路首選類型 瀏覽:800
買新的路由器網路快嗎 瀏覽:147
移動路由器聯通網路可不可以使用 瀏覽:111
網路教育手機報名不了嗎 瀏覽:361
網路安全態勢可視化 瀏覽:803
西域風光的網路游戲有哪些 瀏覽:531
沈陽網路商城系統哪裡好 瀏覽:135
聯通怎麼查網路 瀏覽:497
網路用WiFi一鍵連安全嗎 瀏覽:39
順德什麼時候可以用5g網路 瀏覽:465
移動網路怎麼設置電視盒子 瀏覽:844
ios15無線網路轉圈圈 瀏覽:119
手機怎麼打開手機的無線網路共享 瀏覽:911
電信寬頻網路信號弱 瀏覽:188
ipad怎麼網路共享 瀏覽:545
手機網路類型不能改 瀏覽:68
網路鎖蘋果怎麼看 瀏覽:40
伺服器組建網路安全書籍 瀏覽:781
網路安全專題部署會 瀏覽:672
汽車怎樣共享藍牙網路 瀏覽:191

友情鏈接