CRC   Cyclic Redundancy Checking   순환중복검사

(2017-09-25)
Top > [기술공통]
[기초과학]
[진동/파동]
[방송/멀티미디어/정보이론]
[전기전자공학]
[통신/네트워킹]
[정보기술(IT)]
[공업일반(기계,재료등)]
[표준/계측/품질]
[기술경영]
통신/네트워킹 >   1. 통신 이란?
  2. 신뢰적 통신
[통신이론]
[선로/전송]
[통신망 일반]
[회선교환(PSTN)]
[무선/이동통신]
[광통신]
[인터넷/데이터통신]
선로/전송 > [선로/케이블]
[전송 기초기술]
[전송 장비/회선]
[동기식전송방식]
전송 기초기술 >   1. 전송
  2. 전송망
[주요전송기술]
[다중화(Multiplexing)]
[다중접속(Multiple Access)]
[이중화(Duplexing)]
[에러제어(검출/정정)]
[디지털 오류/성능]
[전송속도/신호계위]
[PCM]
[전송(기타)]
에러제어(검출/정정) >   1. 에러 제어
[재전송 기반]
[에러 검출]
[에러 정정]
에러 검출   1. 에러검출
  2. CRC(순환중복검사)
  3. FCS(프레임 검사 시퀸스)
  4. 패리티검사
  5. 체크섬
  6. UDP,TCP 체크섬
  7. HEC(헤더오류제어)
  8. BEC(후진에러수정)

Top > [기술공통]
[기초과학]
[진동/파동]
[방송/멀티미디어/정보이론]
[전기전자공학]
[통신/네트워킹]
[정보기술(IT)]
[공업일반(기계,재료등)]
[표준/계측/품질]
[기술경영]
방송/멀티미디어/정보이론 > [비디오]
[오디오]
[멀티미디어]
[방송]
[디스플레이]
[조명]
[정보이론/코딩]
정보이론/코딩 > [정보이론]
[코드이론]
[부호화]
[소스부호화]
[채널부호화]
채널부호화 >   1. 채널 부호
  2. 채널 부호화 분류
[채널모델]
[오류 능력]
[블록 부호]
[길쌈 부호]
[채널부호화(기타일반)]
블록 부호 >   1. 블록 부호
  2. 체계적 블록부호
[블록부호 용어]
[선형 블록부호]
[오류 패턴]
[수학적 표현]
[순회부호]
순회부호   1. 순회 부호
  2. CRC(순환중복검사)
  3. CRC 생성 다항식 종류
  4. BCH 부호
  5. RS 부호
  6. PN 코드
  7. 최장 수열

1. 순환중복검사(CRC)에러검출 능력이 우수한 `순회부호`의 일종


2. CRC 특징

  ㅇ 산발 에러(Random Error) 뿐만 아니라, 연집 에러(Burst Error)에서도 검출 능력 우수
     - 통상 데이터링크 계층에서 많이 사용되는, 비트 지향적인 에러검출 기술
     - 이 기술은 강력하면서도 하드웨어로 구현하기 쉬움

  ㅇ 순회부호에 기반한 오류검출부호
     - 송신측에서 데이터에 대해 특정 다항식으로 나눈 결과를 여분의 FCS에 덧붙여 보내면, 
     - 수신측에서 동일한 방법으로 계산한 결과와의 일치성으로 오류검사를 하는 기술


3. CRC 생성 및 검사 방법

  ㅇ 송신단
     - 전송할 원래 데이터 프레임 (k bits)에 대해,
        . `미리 정의된 CRC 다항식(생성다항식)`으로 나누고,
        . 그 나머지 값을 원래의 데이터 프레임 뒤에 FCS (n-k bits)로 붙임
           .. 이때, 그 결과 프레임(원래의 데이터 + FCS)이 미리 정의된 CRC 다항식에 의하여
                    정확히 나누어 떨어질 수 있게됨
     - 그 결과 프레임 (원래의 데이터 + FCS) (n bits)을 송신함

  ㅇ 수신단
     - 수신된 프레임 (n bits)을 받은 후에 CRC 검사를 하게 되는데, 
        . 수신된 전체 데이터를 송신시와 같은 `미리 정의된 CRC 다항식`으로 나누어서
          나머지를 검사함
     - 오류검출 방법
        . 수신단에서 잉여분(FCS)을 포함한 전체 데이터를 `미리 정의된 CRC 다항식`으로 나눌 때,
           .. 나머지가 0 이면, 무 오류
           .. 나머지가 0 이 아닌 수가 되면, 전송시에 오류가 발생한 것임


4. CRC 계산 방법 

  ㅇ 대상 항목들
     - 원래 데이터                      : D(x) (k bits)
     - 잉여 데이터                      : F(x) (n-k bits)
     - 전송 데이터                      : T(x) (n bits)
     - 미리 정의된 CRC 다항식 (Divisor) : P(x) (n-k+1 bits)
        . (n–k+1 bits)의 비트 패턴 (생성 다항식)
     - 나눗셈 몫 (Quotient)             : Q(x) (k bits)     (버려짐)
     - 나머지 (Reminder)                : R(x) (n-k bits)   (덧붙여짐)

  ㅇ 다항식 표현
     - (원 데이터의 prescale)   D'(x) = xn-kD(x)
        . 원래 데이터에 생성 다항식의 가장 큰 차수를 곱함 (즉, 그만큼 0 값을 덧붙이는 것)

     - (이것을 생성다항식으로 나눔)   D'(x)/P(x) = xn-kD(x)/P(x)
        .  xn-kD(x)/P(x) = Q(x) + R(x)/P(x)
        .  xn-kD(x) = Q(x)P(x) + R(x)

     - (위에서 xn-kD(x)을 전송)   T(x) = xn-kD(x) + R(x)
        . T(x) = xn-kD(x) + R(x) = Q(x)P(x)
        . 즉, 전송 비트 패턴 T(x)가 생성다항식 P(x)에 의해 정확히 나누어 떨어짐

  ㅇ CRC 계산 및 비트 처리 방법
     - 나눗셈 연산은, 
        . 캐리(overflow 및 borrow)를 무시하고, XOR (mod-2) 수행
     - 나누는 수인 제수(Divisor)는,
        . 미리 정의된 이진 소수(Divisor)에 의해 나눔
        . 이때의 제수 길이는 `(덧붙이는 비트수 n-k) + 1`
     - 나머지(Reminder)는,
        . 나눗셈의 나머지(Reminder)프레임에 덧붙여 송신함
        . 이때의 나머지 길이는 `n-k`


5. CRC 계산 例)

    


6. CRC 생성 다항식

  ※ 여러가지 CRC 생성다항식 g(X) 例) ☞ CRC 생성 다항식 종류 참조
     - CRC-8, CRC-10, CRC-12, CRC-16, CRC-32 등


[에러 검출] 1. 에러검출 2. CRC(순환중복검사) 3. FCS(프레임 검사 시퀸스) 4. 패리티검사 5. 체크섬 6. UDP,TCP 체크섬 7. HEC(헤더오류제어) 8. BEC(후진에러수정)

 
        최근수정     요약목록(시험중)     참고문헌