FCS와 CRC: 이더넷 프레임 오류를 검출하는 방식
FCS(Frame Check Sequence)의 CRC 기반 오류 검출 원리와 송수신 처리, 이더넷 프레임 구조, 운영 환경에서의 FCS Error 해석을 정리한다.
2026-08-14 · 최초 발행 2025-08-10
프레임 끝에서 전송 오류를 확인하는 FCS
FCS(Frame Check Sequence)는 데이터 전송 과정에서 생길 수 있는 오류를 검출하기 위해 프레임 마지막에 덧붙이는 필드다. 일반적으로 4바이트(32비트) 크기이며, 송신한 데이터가 수신측에 온전하게 도착했는지 확인하는 데 쓰인다.
이 값은 CRC(Cyclic Redundancy Check) 알고리즘으로 계산한다. FCS는 데이터의 무결성을 확인하는 장치이지, 손상된 데이터를 복구하는 기능은 아니다.
CRC 값이 FCS에 들어가는 과정
CRC는 데이터에 수학적 연산을 적용해 전송 오류를 감지하는 방식이다. 송신할 비트열을 생성 다항식으로 나눈 뒤 남는 값을 FCS 필드에 넣는다.
이더넷은 CRC-32, 즉 32비트 CRC를 사용한다. IEEE 802.3 표준에서 사용하는 다항식은 x^32 + x^26 + x^23 + ... + x^2 + x + 1이다.
송신측의 삽입과 수신측의 검증
송신측은 프레임을 만들 때 데이터의 CRC 값을 계산하고, 그 결과를 FCS 필드에 포함해 전송한다. 수신측은 헤더·데이터·FCS를 포함한 수신 프레임에 동일한 CRC 알고리즘을 적용한다.
재계산한 값과 프레임에 담긴 FCS가 같으면 프레임은 정상으로 판단해 상위 계층으로 넘긴다. 값이 다르면 전송 중 오류가 발생한 것으로 보고 프레임을 폐기한다.
FCS는 비트 전송 중 변형되거나 손실·추가된 비트를 검출할 수 있다. 단일 비트 오류뿐 아니라 연속된 비트 오류도 높은 확률로 찾아낸다. 다만 오류 감지 뒤의 처리는 FCS 자체가 담당하지 않는다. 오류 프레임은 폐기되며, TCP 같은 신뢰성 있는 상위 프로토콜이 누락된 데이터의 재전송을 요청한다.
이더넷 프레임에서 FCS가 놓이는 자리
이더넷 프레임은 프리앰블(8바이트), 목적지 MAC 주소(6바이트), 출발지 MAC 주소(6바이트), 타입/길이(2바이트), 데이터(46~1500바이트), FCS(4바이트)로 구성된다.
LAN 카드는 수신 프레임의 FCS 검증이 성공하면 FCS 필드를 제거하고, MAC 헤더와 데이터만 상위 계층으로 전달한다. FCS는 데이터 링크 계층에서 의미를 갖는 정보이기 때문이다.
검출 기능의 경계와 운영상 의미
FCS가 모든 오류를 100% 검출하는 것은 아니다. 특히 다중 비트 오류에는 검출 한계가 있으며, 오류를 수정할 수도 없다. CRC 계산에는 추가 처리 시간도 필요하다. 또한 고의적인 데이터 변조를 탐지하는 보안 기능은 아니다.
운영 환경에서는 네트워크 장비의 FCS Error 카운터가 물리적 연결 상태를 진단하는 지표가 될 수 있다. 높은 FCS 오류율은 케이블 손상, EMI(전자기 간섭), 네트워크 장비 불량 등을 나타낼 수 있다.
무선 통신은 간섭으로 데이터가 손상될 가능성이 높으므로 FCS의 역할이 더 중요하다. 802.11 프레임도 FCS 필드를 포함해 전송 오류를 검출한다. 공장 자동화와 전력 시스템처럼 고신뢰성이 필요한 환경에서도 데이터 무결성 검증에 활용되며, Modbus와 Profinet 등의 산업용 프로토콜에서도 FCS를 사용한다.