본문 바로가기

Network

[Network] CRC(Cyclic Redundancy Check) 란?

반응형

 

CRC(Cyclic Redundancy Check) 란?

CRC는 "Cyclic Redundancy Check"의 약자로, 데이터 전송에서 오류를 감지하는 데 사용되는 방법입니다. 주로 네트워크 통신에서 데이터 무결성을 보장하기 위해 널리 사용됩니다.

CRC는 데이터에 대한 고유한 체크섬(검사합)을 생성합니다. 이 체크섬은 데이터의 비트 패턴에 기초하여 계산되며, 데이터 블록에 첨부됩니다. 수신 측에서는 동일한 CRC 알고리즘을 사용하여 받은 데이터의 체크섬을 계산하고, 이를 송신 측에서 첨부한 체크섬과 비교하여 오류를 감지할 수 있습니다.

CRC는 특히 무선 통신이나 노이즈가 있는 환경에서 신뢰성 있는 데이터 전송을 보장하는 데 사용됩니다. 이것은 데이터 전송의 오류를 감지하고 이를 수정할 수 있는 능력을 제공하여 통신의 신뢰성을 높이는 데 도움이 됩니다.

 

▶ 데이터를 전송하기 전에 주어진 데이터의 값에 따라 CRC 값을 계산하여 데이터에 붙여 전송하고, 데이터 전송이 끝난 후 받은 데이터의 값으로 다시 CRC 값을 계산하게 된다. 이어서 두 값을 비교하고, 이 두 값이 다르면 데이터 전송 과정에서 잡음 등에 의해 오류가 덧붙여 전송된 것 임을 알 수 있다.

▶ CRC는 이진법 기반의 하드웨어에서 구현하기 쉽고, 데이터 전송 과정에서 발생하는 오류들을 검출하는 데 탁월하다. 하지만 CRC의 구조 때문에 의도적으로 주어진 CRC 값을 갖는 다른 데이터를 만들기가 쉽고, 따라서 데이터 무결성을 검사하는 데는 사용될 수 없다. 이런 용도로는 MD5 등의 함수들이 사용된다.

 

CRC 오류의 일반적인 증상

1. 네트워크에 연결된 디바이스의 인터페이스에 대한 오류 카운터 증가 또는 0이 아닌 오류 카운터
2. 네트워크 연결 디바이스가 손상된 프레임을 삭제하여 네트워크를 통과하는 트래픽의 패킷/프레임 손실

 

반응형