, , 䳿, , . CRC.
CRC 䳿 . , .
:
1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | ||||||||
+ | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | |||||||
0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 |
4 :
0 | + | 0 | = | 0 | ||||||
0 | + | 1 | = | 1 | ||||||
1 | + | 0 | = | 1 | ||||||
1 | + | 1 | = | 0 | () |
:
1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | ||||||||
1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | ||||||||
0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 |
4 :
0 | 0 | = | 0 | |||||||
0 | 1 | = | 1 | () | ||||||
1 | 0 | = | 1 | |||||||
1 | 1 | = | 0 |
, , CRC " " (eXclusive OR XOR), 2 ( ) 䳺, , . .
, CRC , . , 1010 , 10, , , 1010 , 1001.
, 1010 1001, :
1 | 0 | 1 | 0 | ||||||||||||
+ | 0 | 0 | 1 | 1 | |||||||||||
1 | 0 | 0 | 1 | ||||||||||||
1 | 0 | 1 | 0 | ||||||||||||
0 | 0 | 1 | 1 | ||||||||||||
1 | 0 | 0 | 1 |
|
|
. , . , , , .
1 | 1 | 0 | 1 | |||||||
1 | 0 | 1 | 1 | |||||||
1 | 1 | 0 | 1 | |||||||
CRC+ | 1 | 1 | 0 | 1 | . | |||||
0 | 0 | 0 | 0 | . | . | |||||
1 | 1 | 0 | 1 | . | . | . | ||||
1 | 1 | 1 | 1 | 1 | 1 | 1 |
: CRC .
ij , , " ". , : X Y, X ( ) Y. .1.4.
1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | |||||
1 | 0 | 0 | 1 | 1 | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | ||||||||||
→ | 1 | 0 | 0 | 1 | 1 | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | 1 | |||||||||
= | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | ||||||||||
→ | 1 | 0 | 0 | 1 | 1 | ↓ | ↓ | ↓ | 0 | ||||||||||||||
→ | 1 | 0 | 0 | 1 | 1 | 0 | |||||||||||||||||
→ | 1 | 0 | 0 | 1 | 1 | 0 | |||||||||||||||||
→ | 1 | 0 | 0 | 1 | 1 | 0 | |||||||||||||||||
→ | 1 | 0 | 0 | 1 | 1 | 1 | |||||||||||||||||
= | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | |||||||||||||||
→ | 1 | 0 | 0 | 1 | 1 | ↓ | 0 | ||||||||||||||||
→ | 1 | 0 | 0 | 1 | 1 | 1 | |||||||||||||||||
= | 0 | 0 | CRC | ||||||||||||||||||||
→ | 1 | 0 | 0 | 1 | 1 | 0 |
|
|
.1.4
, 䳿 . , A+0=A i A0=A.
A B, CRC , A , XOR B, , . , A 0111010110, B 11, A B :
.1.1 XOR
0 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | ||||||
= | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | |||||
+ | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | |||||
+ | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | |||||
+ | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
, 0111010111, , CRC B.
, , CRC " " .
CRC , CRC , .
CRC, . , , , - CRC . CRC . CRC - . W (Width ) ( ) , . 16 32, '. , , 10011 4, 5.
(Width) ( ) CRC ( ). , 11010, 4. , 8.
. , CRC , . , , W .
: 1101011011
: 10011
, W : 1101011011 0000
, CRC . .
1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | |||||
1 | 0 | 0 | 1 | 1 | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | ||||||||||
→ | 1 | 0 | 0 | 1 | 1 | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | 1 | |||||||||
= | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | ||||||||||
→ | 1 | 0 | 0 | 1 | 1 | ↓ | ↓ | ↓ | 0 | ||||||||||||||
→ | 1 | 0 | 0 | 1 | 1 | 0 | |||||||||||||||||
→ | 1 | 0 | 0 | 1 | 1 | 0 | |||||||||||||||||
→ | 1 | 0 | 0 | 1 | 1 | 0 | |||||||||||||||||
→ | 1 | 0 | 0 | 1 | 1 | 1 | |||||||||||||||||
= | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | |||||||||||||||
→ | 1 | 0 | 0 | 1 | 1 | ↓ | 0 | ||||||||||||||||
→ | 1 | 0 | 0 | 1 | 1 | 1 | |||||||||||||||||
= | 0 | 0 | CRC | ||||||||||||||||||||
→ | 1 | 0 | 0 | 1 | 1 | 0 |
|
|
.1.5 CRC
, , , , , . . , '. :
1101011011 + 1110 → 11010110111110
:
1. , ( W ), .
2. ( ), , .
.
, CRC 䳿:
1. W G (W).
2. W . M'.
3. M' G CRC . .
, T . , , ) W , ) , . , T_E, E , '_' CRC ( XOR). , T_E G. T mod G = 0, (T_E) mod G = E mod G. , , , G, , E G, . , , G, ( ). , .
. , E=1000...0000. , , G 2 "1". - G , , 1 , 1 , 2 .
|
|
. - 100...000100...000 ( E 2 ) G, 11, 101, 1001, 10001, . 15, 14 1, 1...1, "..." 32767 .
. - , E , G , . ) CRC XOR ; ) XOR ; ) XOR , . , E=111 3 "0" XOR 11 (, "E=E XOR 011" "E=E XOR 110"). , - . CRC .
. E=000...000111...11110000...00, E . E=(10000...00)(1111111...111), z n . G 1. , G. , G , .
.1.2
16 | (16,12,5,0) | "X25" |
(16,15,2,0) | "CRC 16" | |
32 | (32,26,23,22,16,12,11,10,8,7,5,4,2,1,0) | Ethernet |
̲
, m , ( ). n (n-m+). - , m , . - , 10001001 10110001, , . . , 1 . , , . d, , d , . , 11110001 00110000 3, 3 . ' m- , , , 2m . n , 2 2" . ' , ' , . , . . . d , d+1, d . ³, d , 2d+l, , d , , - , .
, . , 1 ( ). 2, - . , . . ' , , . , .
|
|
:
0000000000, 0000011111, 1111100000 1111111111
5. , . ' 0000000111, ' , 0000011111 ( ). , , , 0000000000 0000000111, . , m , . 2r n , . n n- . , 2r +1 , ( ). 2n, (n+l) 2m < 2n.
n=m+r, , (m+r+1)< 2r. , . . 1.3 .
.1.3
ʳ | % | ||
ֳ , г . , m , r , m+r . ( ), . , , ; . , 16- 5 . 1, 2, 4, 8 16 , - . 21 (16 5 ). ( ). . 1 , . :
1 1,3,5,7,9,11,13,15,17,19,21.
2 2,3,6,7,10, 11, 14,15,18,19.
4 4,5,6,7,12,13,14,15,20,21.
8 8,9, 10, 11,12,13,14,15.
16 16,17,18,19,20,21.
● | ● | ● | ● | ● | ● | ● | ● | ● | ● | ● | |||||||||||
● | ● | ● | ● | ● | ● | ● | ● | ● | ● | ||||||||||||
● | ● | ● | ● | ● | ● | ● | ● | ● | ● | ||||||||||||
● | ● | ● | ● | ● | ● | ● | ● | ||||||||||||||
● | ● | ● | ● | ● | ● |
.1.6
b b1, b2,..., bj, b1+b2+...+bj=b.
, 5 1 4, 1+4=5. 15 1,2,4 8, 1+2+4+8=15 . .
. 1.10 16-
³ 21-
001011100000101101110
, , , , 5 .
0010 1 1100000101101110 0010 0 1100000101101110
5 . :
1 ( 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21 ' ).
2 ( 2,3,6,7,10,11,14,15,18,19 ).
4 ( 4,5,6,7,12,13,14,15,20,21 ' ).
8 ( 8,9,10,11,12,13,14,15 ).
16 ( 16,17,18,19,20,21 ).
.1.7
.1.8
● | ◌ | ● | ◌ | ● | |||||||||||||||||
● | ◌ | ● | |||||||||||||||||||
● | ◌ |
.1.9
1, 3, 5, 7, 9, 11, 13, 15, 17, 19 21 , . , 1 ( 1,3,5,7,9,11,13,15,17,19 21). 4 . , : 4,5,6,7,12,13,14,15,20,21. , . 5,7,13,15 21. 2 , 7 15 . 8 13. , 21 , 16 . 5, . 1, 0. .
. 1.10 1111000010101110 5
, . , ( , ). , . , , . , 1 4 , 2, 8 16 , 5 (1+4).
г -
г- . X Y, :
():
1 + 2 + 3 + X + Y = 0
1 + 2 * 2 + 3 * 3 + 4 * X + 5 * Y = 0
X Y :
Y = 3 * 1 + 2 * 2 + 3 = 4 * 1 3 * 2 2 * 3
' :
_ = 1 + 2 + 3 + X + Y
( ) 0, , . , _ = 0. :
N = 1 + 2 * 2 + 3 * 3 + 4 * X + 5 * Y
__ = N / _
' , _ = 0 , .
г- 3 , ( 16 ):
Y = 16 * 1 + 15 * 2 + 14 * 3 +... + 16 = 17 * 1 16 * *2 15 * 3 ... 2 * 16
_ = 1 + 2 + 3 +... + X + YN = 1 + 2 * 2 + 3 * 3 +... + 16 * 16 + 17 * X * Y + 18
4 , X Y 4 , 2 (DW) X 2 Y, , 4 4 .
, ? __ , 2 ( ), , __ = 3.5 4 , 3, 4 5 __ = 4.
ֲ
, . - 5551.