Skip to Content

네트워킹의 순환 중복성 검사(CRC)란?

순환 중복 검사란?

순환 중복 검사(CRC)는 원본 정보에 체크섬이라는 특수 코드를 추가하여 전송된 데이터의 오류를 감지하는 방법을 제공하는 수학적 기법입니다. 그런 다음, 데이터의 무결성을 확인하기 위해 수신 종료 시 이 체크섬을 다시 계산합니다. CRC는 안정적인 데이터 전송이 가장 중요한 네트워킹에서 잠재적인 데이터 손상을 식별하고 수정하는 데 중요한 역할을 합니다. 또한 하드 드라이브 및 플래시 메모리를 포함한 데이터 스토리지 시스템에서 저장된 데이터의 정확성을 검증하는 데 사용됩니다. CRC는 Modbus, 컨트롤러 영역 네트워크(CAN) 및 안정적인 데이터 전송이 필수적인 기타 많은 프로토콜에서 매우 중요합니다.

CRC는 어떻게 작동하나요?

CRC는 전송할 데이터를 다항식으로 처리하는 것을 기반으로 합니다. 송신자와 수신기는 종종 발전기 다항식이라고 하는 고정 제수 다항식에 동의합니다. 데이터는 발전기 다항식에 의한 원본 데이터의 다항식 분할의 나머지 부분인 체크섬으로 증강됩니다. 전송자의 말미에 CRC 체크섬이 계산되어 전송 전 데이터에 추가됩니다. 수신기의 끝에서 체크섬과 함께 수신된 데이터는 동일한 발전기 다항식으로 나뉩니다. 나머지가 0이면 데이터는 오류가 없는 것으로 가정되며, 그렇지 않으면 오류가 감지됩니다.

CRC 다항식과 주기적 코드를 사용하면 복잡해 보일 수 있지만, 개념은 생각보다 간단합니다. 이러한 다항식은 기본적으로 오류 감지 프로세스에 도움이 되는 수학적 표현입니다. CRC의 맥락에서 순환 코드는 유효한 코드워드의 순환 시프트가 다른 유효한 코드워드를 생성하는 코드를 의미합니다.

더 잘 이해하려면 기본 체크섬을 사용한 오류 수정의 간단한 예를 생각해 보십시오. 바이너리 번호를 전송하고 원래 비트의 패리티 또는 합계를 나타내는 비트를 추가하는 것을 상상해 보십시오. 수신된 데이터가 예상 패리티와 일치하지 않으면 오류가 감지됩니다.

CRC는 이 프로세스의 보다 정교한 버전입니다. CRC 다항식은 간단한 합계 대신 보다 복잡한 계산을 수행하여 중복성을 높이고 오류 감지 기능을 향상시킵니다. 이러한 복잡성 증가는 보다 미묘한 오류를 처리하고 보다 강력한 오류 확인 메커니즘을 제공하는 데 매우 중요합니다.

플래시어레이(FlashArray) 체험하기

퓨어스토리지가 셀프 서비스 환경에서 블록 및 파일을 획기적으로 간소화하는 방법을 경험해 보세요.

지금 체험하기

왜 CRC를 사용해야 할까요?

CRC는 메시지의 비트 순서를 변경할 수 있는 오류를 감지하는 데 특히 효과적입니다. 이는 정확한 비트 시퀀스를 유지하는 것이 데이터를 올바르게 해석하는 데 필수적인 시나리오에서 매우 중요합니다.

CRC의 주요 장점 중 하나는 구현, 특히 바이너리 하드웨어의 단순성입니다. 알고리즘에는 간단한 비트 단위 작업이 포함되므로 하드웨어 기반 오류 검사를 효율적으로 수행할 수 있습니다.

CRC는 구현이 간단할 뿐만 아니라 수학적으로도 쉽게 분석할 수 있습니다. 따라서 시스템의 오류 확인 기능을 이해하고 최적화해야 하는 설계자와 엔지니어에게 매력적인 선택이 될 수 있습니다. CRC의 수학적 특성은 성능 특성에 대한 심층적인 통찰력을 제공하여 특정 애플리케이션에 대한 파라미터의 미세 조정을 지원합니다.

실제 통신 채널에서 노이즈는 불가피한 동반자입니다. CRC는 데이터 전송 중 노이즈로 인해 발생하는 일반적인 오류를 감지하는 데 특히 강력합니다. 주기적 특성과 다항식 부문에 대한 의존성을 통해 신호의 임의 변동 또는 장애로 인한 오류를 효과적으로 식별할 수 있습니다.

올바른 다항식 선택

CRC의 핵심은 체크섬의 생성 및 검증에 사용되는 다항식입니다. 다항식은 CRC의 오류 감지 기능에 상당한 영향을 미칩니다. 다항식은 다항식 분할의 디바이저로 작용하여 체크섬의 구조를 결정합니다.

올바른 다항식 선택은 여러 가지 요소를 고려하는 것입니다. 예를 들어, 다항식의 정도는 체크섬의 길이에 영향을 미치며, 결과적으로 오류 감지 기능에 영향을 미칩니다. 더 긴 체크섬(오류 감지 향상)에 대한 욕구와 계산 비용의 균형을 맞추는 것은 매우 중요한 고려 사항입니다.

다른 요인으로는 비환납성과 같은 다항식의 수학적 특성이 있습니다. 비환원성 다항식은 CRC 알고리즘이 광범위한 오류를 감지할 수 있도록 합니다. 또한, 일부 애플리케이션은 버스트 오류 감지와 같은 특정 속성을 요구할 수 있으며, 이는 다항식 선택의 영향을 받을 수 있습니다.

CRC 계산에는 여러 표준 다항식이 일반적으로 사용됩니다. 다항식의 선택은 애플리케이션의 특정 요구 사항에 따라 달라집니다. 예를 들어, CRC-32 다항식(0x04C11DB7)은 네트워크 통신 프로토콜에 자주 사용되는 반면, CRC-16 다항식(0x8005)은 스토리지 시스템에서 애플리케이션을 찾습니다. CRC-CCITT 다항식(0x1021)은 통신 분야에서 널리 알려져 있습니다.

각 다항식은 고유한 특성을 제공하며, 적절한 다항식은 애플리케이션의 요구 사항과 오류 감지 기능과 계산 효율성 간의 원하는 균형을 신중하게 고려해야 합니다.

CRC 성능 최적화

CRC는 강력한 오류 확인 알고리즘이지만, 다음과 같은 방법으로 성능을 향상시킬 수 있습니다.

  • 테이블 기반 사전 계산 - CRC 값을 사전 계산하고 일반적으로 사용되는 입력에 대한 테이블에 저장합니다. 이를 통해 반복적인 계산이 필요하지 않아 전반적인 성능이 크게 향상됩니다.
  • 병렬화 - 병렬 처리를 활용하여 여러 코어 또는 프로세서에 걸쳐 CRC 계산을 분산시킵니다. 이는 특히 대규모 데이터 세트가 있는 시나리오에서 CRC 검사에 필요한 시간을 크게 줄일 수 있습니다.
  • XOR 및 시프트와 같은 비트 단위 연산은 전통적인 산술 연산보다 더 효율적입니다.

운영의 복잡성을 줄이기 위해서는 올바른 CRC 다항식을 선택하는 것이 매우 중요합니다. 일부 다항식은 최소한의 연산 오버헤드로 더 나은 오류 감지 기능을 제공합니다. 시스템 아키텍처에 맞게 CRC 워드 크기를 조정하여 성능을 향상시킬 수도 있습니다.

CRC 성능을 최적화할 때 고려해야 할 몇 가지 단점은 다음과 같습니다.

1. 메모리 사용량 대 계산

사전 계산된 테이블은 계산을 줄일 수 있지만 메모리 사용량을 증가시킬 수 있습니다. 시스템 제약 조건에 따라 메모리 활용률과 컴퓨팅 효율성 간의 균형을 측정합니다.

2. 복잡성과 속도 비교

보다 복잡한 CRC 다항식은 더 나은 오류 감지를 제공할 수 있지만 계산 비용이 많이 들 수 있습니다. 복잡성과 속도 간의 균형을 유지하면서 최적화 작업을 특정 사용 사례에 맞게 조정하세요.

결론

CRC는 네트워킹 프로토콜, 스토리지 시스템 및 통신 프로토콜을 포함한 실제 애플리케이션에서 광범위하게 사용되고 있습니다. CRC는 데이터 전송 중 오류를 탐지하는 데 탁월하며, 버스트 및 랜덤 오류를 모두 식별하는 기능은 수신된 데이터가 전송된 데이터와 일치하도록 보장합니다. CRC는 스토리지 시스템의 데이터 손상으로부터 보호해 줍니다. CRC는 오류를 조기에 감지하여 저장된 정보의 무결성과 복원성을 유지하는 데 도움을 주며, 이는 장기적인 데이터 안정성에 매우 중요합니다.

CRC는 데이터 전송 및 스토리지의 안정성에 대한 확신을 심어주지만, 연산 오버헤드가 수반되므로 오류 확인의 이점과 CRC 계산에 소비된 리소스 간의 균형을 평가해야 합니다.

또한 CRC는 현대적인 데이터 보호에 대한 더 큰 그림에서 한 가지 역할만 한다는 점을 기억하십시오. 퓨어스토리지의 현대적 데이터 보호 솔루션은 가장 중요한 시기에 데이터를 복구하고, 공격으로부터 비즈니스를 보호하며, 중단 없이 비즈니스를 운영하고, 환경을 제어하며, 깨끗한 스토리지 환경을 보장할 수 있도록 지원합니다.

08/2024
Maximizing SAP HANA Performance and Reliability with Pure Storage
A reference architecture for SAP bundled application suites on SAP HANA with Pure Storage.
레퍼런스 아키텍처
27 페이지
연락처
질문하기

퓨어스토리지 제품이나 인증 관련 질문이나 코멘트가 있으신가요?   저희가 도와드립니다.

데모 예약

라이브 데모를 예약하고 퓨어스토리지가 데이터를 어떻게 강력한 결과로 전환해주는지 직접 확인해 보세요. 

연락하기: +82 2 6001-3330

언론홍보팀:  pr@purestorage.com

 

퓨어스토리지코리아 주소

30F 아셈타워,

517 영동대로,

강남구, 서울

대한민국

korea@purestorage.com

닫기
지원하지 않는 브라우저입니다.

오래된 브라우저는 보안상 위험을 초래할 수 있습니다. 최상의 경험을 위해서는 다음과 같은 최신 브라우저로 업데이트하세요.