奇偶檢測
奇偶檢測[1](粵拼:gei1 ngau5 gim2 caak1;英文:parity check)係一種數據通訊用到嘅簡單嘅錯誤偵測技巧;原理係將數據睇成一大串位元(亦即係當佢做二進制數字),然後斬件,之後逐件睇(例如逐個位元組睇),數下入面有幾多個 1(個結果係奇數定偶數叫奇偶性[1],parity),再加一個附加嘅位元,務求加咗附加位元之後,一係有奇數嘅 1,一係有偶數嘅 1,而呢個附加嘅位元就叫奇偶檢驗位[1](parity bit)[2]:86。
接收方收到數據之後,就會撇除收到嘅奇偶檢驗位,自己再做一次奇偶檢測,睇下奇偶檢驗位應該係乜,如果同收到嘅奇偶檢驗位一樣,就假定收到嘅嘢冇問題,如果唔夾,就肯定收到咗無效數據;不過如果遇到嘅情形係後者,接收方都只係知道數據無效,而唔會知邊度錯咗[2]:87。另外,如果有數量係偶數嘅錯誤發生咗,奇偶檢測亦唔會測到有問題[2]:88。
將數據斬件有兩個方法,最明顯嘅方法係將數據就咁切開,例如每8個位元切一刀,又或者每256個位元切一刀咁,呢種方法叫縱向冗餘檢測[暫譯](VRC,vertical redundancy check),另一個方法係首先將數據分成某個大細嘅段落(block;例如每8位元一段,又或者每256個位元一段咁),然後每段相同位置嘅位元當成一個單元,呢種方法叫横向冗餘檢測[暫譯](LRC,longitudinal redundancy check)[2]:86。
應用
編輯奇偶檢測喺串行通訊常見,用嘅係縱向冗餘檢測,以前用 ASCII 嘅年代,7位元嘅 ASCII 碼好多時都會附加奇偶檢驗位,凑夠8個位元一個位元組[2]:86。
並行通訊亦有時會用奇偶檢測,例如 SCSI 通常都會做奇偶檢測[3]。
奇偶檢測未必用喺通訊,亦用喺儲存,例如佢用咗喺 RAID-5 同 RAID-6[4],同 ECC RAM[5],不過呢啲應用都唔係純粹係奇偶檢測,而係用某種演算法將佢變成可以更正錯誤。
例
編輯假設用統一碼嘅 UCS-2 形式,但係低位元組行先(little endian,例如微軟視窗),再假設8個位元一組,如果訊息係 「粵語」,即係 U+7CB5 U+8A9E,實際表示方法十六進制 B5 7C 9E 8A,二進制 1011,0101 0111,1100 1001,1110 1000,1010,咁嘅話:
位元組 位元 奇偶性
(VRC)7 6 5 4 3 2 1 0 0 1 0 1 1 0 1 0 1 奇 1 0 1 1 1 1 1 0 0 奇 2 1 0 0 1 1 1 1 0 奇 3 1 0 0 0 1 0 1 0 奇 奇偶性
(LRC)奇 奇 偶 奇 奇 奇 偶 奇
假設用8位元嘅頻道傳輸7位元嘅 ASCII 數據,數據單元係字元,而且奇偶檢測位嵌入字元嘅位元7(每位元組嘅第八位元);如果要傳輸嘅字串係 「Yue」,佢嘅 ASCII 碼係十六進制 57 75 65,二進制 101,1001 111,0101 110,0101。咁嘅話:
- 如果協議係奇偶性要係奇數(odd parity),實際傳輸嘅會係 1101,1001 0111,0101 1110,0101,即係十六進制 D7 75 E5
- 如果協議係奇偶性要係偶數(even parity),實際傳輸嘅會係 0101,1001 1111,0101 0110,0101,即係十六進制 57 F5 65
攷
編輯- ↑ 1.0 1.1 1.2 〈中學資訊及通訊科技科常用英漢辭彙〉 (PDF) (香港中文)。香港特別行政區政府教育局課程發展處科技教育組。2023年1月。喺2023年10月30號搵到。
- ↑ 2.0 2.1 2.2 2.3 2.4 2.5 Carne, E. Bryan (1995). Telecommunications Primer (美國英文). Prentice Hall; IEEE Press. ISBN 0-13-490426-5.
- ↑ "Interface Circuits for SCSI" (design notes) (美國英文). Texas Instruments. November 1998. 喺2023年10月31號搵到.
- ↑ Plank, James S. (2008). The RAID-6 Liberation Codes (PDF). FAST ’08: 6th USENIX Conference on File and Storage Technologies (美國英文). 喺2023年10月31號搵到.
- ↑ Harding, Scharon (December 31, 2020). "What Is ECC Memory in RAM? A Basic Definition" (美國英文). Tom’s Hardware. 喺2023年10月31號搵到.