문제

각각 1,000바이트의 데이터 단위를 보내는 가상의 상황이 있습니다.실패율은 드물지만 오류가 발생하면 단일 비트 오류일 가능성이 낮고 연속된 몇 비트의 오류일 가능성이 더 높습니다.

처음에는 체크섬을 사용하려고 생각했지만 단일 비트보다 큰 비트 오류를 ​​놓칠 수 있는 것 같습니다.패리티 검사도 작동하지 않으므로 CRC가 최선의 선택일 수 있습니다.

천 바이트에 대한 순환 중복 검사를 사용하는 것이 효율적인가요?아니면 더 잘 작동하는 다른 방법이 있습니까?

도움이 되었습니까?

해결책

순환 중복 검사(CRC)가 널리 사용됩니다. 구체적으로 이는 보장된 정확도로 여러 비트 오류를 ​​효율적으로 감지할 수 있기 때문입니다.

정확성과 정확도를 절충하는 CRC 다항식을 생성하는 다양한 설계가 있습니다.계산 복잡성.귀하의 경우에는 정확성 요구 사항을 충족하는 "가장 빠른" 것을 선택할 수 있습니다.

이 Wikipedia 기사로 시작하고 싶을 수도 있습니다. 순환 중복 검사.

다른 팁

CRC는 여기에서 또 다른 질문으로 다뤄집니다.
MD5/SHA1보다 CRC를 사용하는 것이 더 적합한 경우는 언제입니까?
무작위 오류를 감지하는 데 적합하고 구현이 쉽습니다.

CRC를 사용하는 것이 일반적입니다.'효율성'이 무엇을 의미하는지 잘 모르겠지만 때로는 CRC가 하드웨어로 구현되는 경우도 있다고 생각합니다(예:이더넷 카드에 있음).그렇지 않으면 (조회 테이블을 사용하여) '최적화된' 구현을 찾을 수 있습니다.

디스크 섹터의 ​​크기는 얼마나 됩니까?아마도 최소 512바이트일 것입니다.그리고 CRC는 하드웨어 수준 디스크 ECC에 대한 전통적인 방식입니다.

스톡 CRC 다항식 알고리즘은 적은 수의 비트 오류에 매우 효과적입니다.정확한 정밀도는 수학적으로 계산 가능합니다.CRC는 상대적으로 적은 수의 게이트와 시프트 레지스터로 즉시 작업을 관리할 수 있는 하드웨어에서도 매우 효율적입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top