CRC(Cyclic Redundancy Check)
에러 검출 방식
n만큼의 0과 1의 비트가있다고 하면
n을 k자리만큼 올린다
그리고 약속한 k비트의 키 값으로 나눈다.
나머지: r
송신측 : n에서 k자리만큼 올린값 + r
->>> 수신측 : 송신측으로 부터 받은 값에 / k의 키값
수신측의 결과수식
n에서 k자리 만큼 올린값 + r / k의 키값
0: No Error
!0: Error
CRC 연산에 사용되는
[Modulo2 연산]
+ , - 모두 Carry Bit 고려 X
XOR 연산과 결과가 같아짐!
------------------------------------
T(x) = transmitting string |
B(x) = given bit string |
G(x) = generator polynomial |
R(x) = remainder |
------------------------------------
솔직히 말해봐
이런거 3줄이상 읽으면 머리아프지?
그냥 Generator (제수): 110101 이런식으로 6자리면
FCS길이는 0000 일단 이렇게 5자리로 고정이야
왜냐고? 그건 수학자들이 밝혀놨어 너는 그냥 믿고 쓰면돼.
보내고자 하는 메시지가 D 1010001101이면 여기서 G의 6자리 -1 =5자리를 0으로 채워서 넣으면됨
그럼 D: 1010001101 -> 5자리 올림 -> 101000110100000
5자리 올린 101000110100000 / Generator
하면 나머지 R이 나와
주의할건 계산도중 모두 나누기가 아니라 XOR (Exclusive OR) 로 계산해야해.
요 R이 01110 이 나왔어
요R이 의미하는건? FCS(Frame Check Sequence)와 같음.
아까구한 D + FCS = 송신측이 보낼 비트메시지
즉 101000110101110 을 보냄.
수신측은 저받은 101000110101110 / Generator 해서
나머지가 0: 오류 X
나머지가 not 0 : 오류 O
ㅇㅋ? 와 쉽다 솔직히 이거보다 쉽게 설명못해 앙 기모르딱딱
'기타 > 잡동사니' 카테고리의 다른 글
UTF-8, UTF-16, ANSI (0) | 2020.01.05 |
---|---|
vagrant 설치하기 & Error (0) | 2020.01.03 |
HDLC Protocol (0) | 2019.06.19 |
비밀번호에 영문+숫자+특수문자를 조합하는 이유 (2) (0) | 2019.06.01 |
비밀번호에 영문+숫자+특수문자를 조합하라는 이유 (1) (0) | 2019.06.01 |