CRC (순환 중복 검사)

2019. 6. 18. 20:39·기타/잡동사니

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
'기타/잡동사니' 카테고리의 다른 글
  • vagrant 설치하기 & Error
  • HDLC Protocol
  • 비밀번호에 영문+숫자+특수문자를 조합하는 이유 (2)
  • 비밀번호에 영문+숫자+특수문자를 조합하라는 이유 (1)
M_Falcon
M_Falcon
  • M_Falcon
    Falcon
    M_Falcon
  • 전체
    오늘
    어제
    • 분류 전체보기 (429)
      • Web (16)
        • Nodejs (14)
        • Javascript (23)
        • FrontEnd (4)
      • DataBase (39)
        • Fundamental (1)
        • Redis (4)
        • PostgreSQL (10)
        • NoSQL (4)
        • MySQL (9)
        • MSSQL (3)
        • Error (4)
      • Algorithm (79)
        • Algorithm (문제풀이) (56)
        • Algorithm (이론) (23)
      • JVM (64)
        • Spring (13)
        • JPA (5)
        • Kotlin (13)
        • Java (23)
        • Error (7)
      • 기타 (68)
        • Kafka (3)
        • Kubernetes (3)
        • Docker (12)
        • git (19)
        • 잡동사니 (26)
      • 재테크 (11)
        • 세무 (4)
        • 투자 (3)
        • 보험 (0)
      • BlockChain (2)
        • BitCoin (0)
      • C (32)
        • C (10)
        • C++ (17)
        • Error (3)
      • Low Level (8)
        • OS (3)
        • 시스템 보안 (5)
      • 네트워크 (3)
      • LINUX (30)
        • Linux (26)
        • Error (4)
      • 저작권과 스마트폰의 이해 (0)
      • 생각 뭉치 (6)
      • 궁금증 (2)
      • Private (4)
        • 이직 경험 (0)
        • 꿈을 찾아서 (1)
      • Android (21)
        • OS (4)
  • 블로그 메뉴

    • 홈
    • WEB
    • 알고리즘
    • DataBase
    • Linux
    • Mobile
    • C
    • 방명록
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    Git
    프로그래머스
    docker
    algorithm
    Bitcoin
    linux
    java
    Spring
    백준
    javascript
    C++
    ubuntu
    JPA
    Kotlin
    android
    kafka
    알고리즘
    Programmers
    database
    PostgreSQL
  • hELLO· Designed By정상우.v4.10.3
M_Falcon
CRC (순환 중복 검사)
상단으로

티스토리툴바