이더넷 프레임 구조 완전정복

랜선을 타고 흐르는 데이터 한 덩어리는 어떻게 생겼을까요.

📦

프레임이란 무엇인가

OSI 2계층(데이터링크 계층)에서 주고받는 데이터 전송 단위로, 상위 계층에서 내려온 패킷을 감싸 같은 네트워크 안의 다음 기기까지 전달합니다.

이더넷 프레임은 네트워크 계층(3계층)에서 만들어진 IP 패킷을 그대로 감싸서, 목적지 MAC 주소가 있는 기기까지 전달하는 역할을 합니다. 스위치나 랜카드는 IP 주소가 아니라 프레임에 담긴 MAC 주소를 보고 어디로 전달할지를 판단합니다.

🔔

프리앰블과 SFD

프레임 맨 앞에 붙는 7바이트의 프리앰블과 1바이트의 SFD는 수신 장비가 신호의 시작 지점과 타이밍을 맞추는 데 사용됩니다.

프리앰블(Preamble)은 0과 1이 번갈아 반복되는 7바이트 패턴으로, 수신 측 장비가 신호가 시작되었음을 인식하고 타이밍을 동기화하도록 돕습니다. 바로 뒤에 붙는 1바이트의 SFD(Start Frame Delimiter)는 "이제부터 실제 프레임 데이터가 시작된다"는 것을 알리는 구분자 역할을 합니다. 이 8바이트는 프레임 크기를 계산할 때 보통 포함하지 않습니다.

🆔

목적지·출발지 MAC 주소

각각 6바이트씩 차지하는 목적지와 출발지 MAC 주소 필드로, 같은 네트워크 안에서 프레임을 주고받을 기기를 식별합니다.

이더넷 프레임은 목적지 MAC 주소를 먼저 적고, 그다음 출발지 MAC 주소를 적습니다. 스위치는 이 정보를 참고해 프레임을 어느 포트로 내보낼지 결정합니다. MAC 주소의 구조나 확인 방법이 궁금하다면 MAC 주소란? 확인하는 방법과 기초 개념에서 더 자세히 볼 수 있습니다.

🏷️

EtherType(타입) 필드

2바이트 크기의 이 필드는 프레임 안에 담긴 데이터가 어떤 상위 프로토콜에 속하는지를 나타내는 일종의 꼬리표입니다.

예를 들어 EtherType 값이 0x0800이면 IPv4 패킷이, 0x86DD이면 IPv6 패킷이, 0x0806이면 주소를 알아내는 ARP 메시지가 들어있다는 뜻입니다. 수신 측 장비는 이 값을 보고 프레임 안의 데이터를 어떤 방식으로 해석해야 할지 판단합니다.

💾

페이로드(데이터)

실제로 전달하려는 상위 계층의 패킷이 담기는 부분으로, 최소 46바이트에서 최대 1500바이트까지 담을 수 있습니다.

전달할 데이터가 46바이트보다 작으면, 프레임이 정상적으로 인식되도록 남는 공간을 의미 없는 값(패딩)으로 채워 최소 크기를 맞춥니다. 반대로 1500바이트를 넘는 데이터는 상위 계층(IP)에서 여러 조각으로 나누어 여러 개의 프레임에 나눠 담아 전송합니다.

FCS(프레임 검사 시퀀스)

프레임 맨 끝에 붙는 4바이트의 오류 검출 값으로, 전송 과정에서 데이터가 손상되지 않았는지 확인하는 역할을 합니다.

송신 측은 프레임 내용을 바탕으로 CRC(순환 중복 검사) 알고리즘을 이용해 FCS 값을 계산해 붙여 보냅니다. 수신 측은 받은 프레임으로 같은 계산을 다시 수행해 그 결과가 전달받은 FCS 값과 일치하는지 비교합니다. 값이 다르면 전송 중 오류가 생긴 것으로 보고 해당 프레임을 조용히 버리는데, 이는 오류를 고쳐주는 기능이 아니라 오류를 감지만 하는 기능입니다.

📏

프레임의 최소·최대 크기

표준 이더넷 프레임은 프리앰블을 제외하고 최소 64바이트, 최대 1518바이트로 정해져 있으며, VLAN 태그가 붙으면 조금 더 커질 수 있습니다.

프레임이 64바이트보다 작으면 정상적인 프레임인지 전송 중 충돌로 깨진 조각인지 구분하기 어려워지기 때문에 최소 크기가 정해져 있습니다. 최대 크기는 목적지·출발지 MAC(12바이트)+EtherType(2바이트)+데이터(최대 1500바이트)+FCS(4바이트)를 합한 1518바이트이며, VLAN 태그(802.1Q)가 추가되면 1522바이트까지 늘어날 수 있습니다. 이보다 훨씬 큰 "점보 프레임"은 표준을 벗어난 확장 기능으로, 지원하는 장비끼리만 사용할 수 있습니다.

🗂️

프레임 vs 패킷 vs 세그먼트, 용어 차이

같은 데이터라도 어느 계층을 기준으로 부르느냐에 따라 전송 계층에서는 세그먼트, 네트워크 계층에서는 패킷, 데이터링크 계층에서는 프레임이라고 부릅니다.

TCP가 데이터를 나눈 단위는 "세그먼트", 여기에 IP 주소 정보가 더해진 단위는 "패킷", 마지막으로 MAC 주소 정보까지 더해져 실제로 랜선이나 와이파이로 전송되는 단위가 "프레임"입니다. 각 계층을 지날 때마다 필요한 헤더가 하나씩 덧붙는 이 과정을 캡슐화라고 부르며, 계층별 역할이 더 궁금하다면 OSI 7계층 모델 완전정복을 참고해보세요.

목적지 MAC 주소는 어떻게 알아낼까

프레임에 적을 목적지 MAC 주소를 IP 주소만으로 알아내는 과정이 궁금하다면ARP(주소 결정 프로토콜)란? 개념과 ARP 스푸핑 주의사항을 확인해보세요.

실제 랜케이블 배선과 연결해서 보면

프레임이 전기 신호로 바뀌어 실려 나가는 랜케이블의 배선 규격이 궁금하다면랜케이블 배선(T568A·T568B) 완전정복도 참고해보세요.

자주 묻는 질문

Wi-Fi로 통신할 때도 이더넷 프레임을 그대로 쓰나요?

Wi-Fi(802.11)는 이더넷과 비슷하지만 세부 필드 구성이 조금 다른 자체 프레임 형식을 사용합니다. 다만 무선 구간을 벗어나 유선 스위치나 공유기 내부로 들어올 때는 대부분 이더넷 프레임 형식으로 변환되어 처리됩니다.

점보 프레임을 쓰면 무조건 좋은가요?

표준 크기(1500바이트)보다 훨씬 큰 점보 프레임은 헤더 오버헤드를 줄여 대용량 전송 효율을 높일 수 있지만, 경로에 있는 모든 장비(스위치, 랜카드 등)가 이를 지원해야 하며 지원하지 않는 장비를 거치면 프레임이 조각나거나 버려질 수 있어 구간 전체의 설정을 맞춰야 합니다.