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

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

한눈에 보기

이더넷 프레임은 같은 네트워크 안에서 한 기기가 다른 기기에게 데이터를 보낼 때 쓰는 포장 단위입니다. 앞에는 도착지·출발지 주소와 내용물 종류를 알리는 머리말이, 뒤에는 오류를 알아차리기 위한 검사 값이 붙습니다. 이 글에서는 필드를 순서대로 해부하고, 최소·최대 크기가 왜 정해졌는지, 실제 전송선에서는 프리앰블과 프레임 간 간격까지 더해져 얼마나 차지하는지 직접 계산해 봅니다.

어디서 왔나: 공유 케이블에서 시작된 포맷

이더넷은 1972~1973년 무렵 제록스 PARC의 로버트 메트칼프와 데이비드 보그스가 하나의 동축 케이블을 여러 컴퓨터가 함께 쓰는 방식으로 만든 데서 출발합니다(위키백과 기준). 메트칼프가 '이더 네트워크'라는 이름을 붙인 메모는 1973년 5월 22일자이고, 첫 가동은 같은 해 11월 11일 2.94Mbit/s였다고 정리되어 있습니다. 이후 DEC·인텔·제록스가 1980년 'DIX' 규격을, IEEE 802.3 위원회가 1980년대에 표준을 발표했습니다. 같은 선을 여러 장치가 나눠 쓰던 시절의 충돌 감지 설계가 지금의 최소 프레임 크기 규칙에 흔적으로 남아 있습니다.

필드를 순서대로 해부하기

아래 카드는 프레임의 각 필드를 앞에서부터 설명합니다. 카드를 읽기 전에 아래 표로 전체 구조를 먼저 보세요.

순서필드크기역할프레임 크기에 포함
1프리앰블7B수신 동기화아니오
2SFD1B프레임 시작 표시아니오
3목적지 MAC6B받을 기기예
4출발지 MAC6B보낸 기기예
5(선택) 802.1Q 태그4BVLAN 식별예, 있을 때만
6EtherType/길이2B상위 프로토콜 표시예
7페이로드46~1500B실제 데이터(태그가 있으면 최소 42B)예
8FCS4BCRC-32 오류 검출예
📦

프레임이란 무엇인가

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 메시지가 들어있다는 뜻입니다. 수신 측 장비는 이 값을 보고 프레임 안의 데이터를 어떤 방식으로 해석해야 할지 판단합니다. 이 자리는 값이 1500 이하이면 데이터 길이로, 1536 이상이면 EtherType으로 해석합니다.

💾

페이로드(데이터)

실제로 전달하려는 상위 계층의 패킷이 담기는 부분으로, 최소 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계층 모델 완전정복을 참고해보세요.

숫자로 확인하기: 크기와 효율 계산

표준에 정해진 값(헤더 14B, FCS 4B, 페이로드 46~1500B, 프리앰블+SFD 8B, 프레임 간 간격 최소 96비트=12B)으로 계산하면 다음과 같습니다. 계산은 node로 검산했습니다.

상황계산식결과
최소 프레임14 + 46 + 464B
최대 프레임(태그 없음)14 + 1500 + 41518B
최대 프레임(802.1Q 태그)1518 + 41522B
선 위 최소 점유64 + 8 + 1284B = 672비트
선 위 최대 점유1518 + 8 + 121538B
최대 크기 효율1500 ÷ 1538약 97.53%
최소 크기 효율(페이로드 46B)46 ÷ 84약 54.76%

최소 크기 프레임만 계속 보내는 극단적 상황에서 한 초에 보낼 수 있는 프레임 수는 10Mbps에서 약 14,881개, 100Mbps에서 약 148,810개, 1Gbps에서 약 1,488,095개입니다(1초당 비트 수 ÷ 672). 또 위키백과는 최소 페이로드가 충돌 감지에 쓰이는 512비트 슬롯 시간에서 정해졌다고 설명합니다. 512비트를 보내는 시간은 10Mbps에서 51.2µs, 100Mbps에서 5.12µs, 1Gbps에서 0.512µs입니다. 이 계산은 이더넷 계층의 포장만 고려한 값이며, IP·TCP 헤더 등 상위 계층 오버헤드는 포함하지 않습니다.

사례로 보는 프레임

사례 1. 가상 예시: 10바이트짜리 메시지는 얼마나 큰 프레임이 될까

아래는 실제 기록이 아닌 가상 예시입니다. 상위 계층이 만든 데이터가 10바이트라면, 이더넷은 이를 46바이트가 되도록 36바이트의 패딩으로 채워 프레임을 64바이트로 맞춥니다. 선 위에서는 8바이트와 12바이트가 더해져 84바이트를 차지하므로, 10바이트의 알짜 정보를 보내려고 84바이트의 선 시간을 쓰는 셈입니다. 작은 메시지가 매우 많은 환경에서는 전송 효율이 낮아지는 이유입니다.

사례 2. EtherType과 길이 필드가 하나의 자리를 나눠 쓰게 된 역사 (표준 통합의 사례)

DIX 규격은 이 2바이트를 '종류(Type)'로, IEEE 802.3은 '길이(Length)'로 정의했습니다. 위키백과는 1500 이하의 값을 길이로, 1536 이상의 값을 EtherType으로 해석하고 그 사이 값은 정의되지 않았다고 설명합니다. 그래서 0x0800(IPv4), 0x0806(ARP), 0x86DD(IPv6)처럼 1536(0x0600)을 넘는 값이 종류 표시로 쓰이고, 두 규격이 같은 선 위에서 공존할 수 있습니다. 배울 점은 다른 두 설계가 충돌할 때 값의 범위로 구분해 호환성을 유지한 사례라는 것입니다.

사례 3. VLAN 태그가 최대 프레임을 1522바이트로 만든 이유 (확장의 사례)

802.1Q VLAN 태그는 4바이트를 프레임 안(출발지 MAC 뒤)에 끼워 넣습니다. 위키백과는 이 태그가 최대 프레임 크기를 4바이트 늘리며, 태그의 식별자(TPID)는 0x8100(802.1Q), 0x88a8(802.1ad)이라고 정리합니다. 태그가 있으면 최소 페이로드는 42바이트로 줄어들어도 전체 프레임은 64바이트를 유지합니다. 표준 페이로드 상한 1500바이트는 그대로이므로, 장비가 최대 1518바이트까지만 받도록 설정된 구간에서는 태그 붙은 프레임이 잘못 처리될 수 있습니다. VLAN 자체는 VLAN 기초 가이드에서 이어서 볼 수 있습니다.

직접 확인해 보기

흔한 오해와 정정

한계와 더 알아볼 점

이 글의 수치는 이더넷(IEEE 802.3) 기본 프레임을 기준으로 위키백과의 정리에서 확인했습니다. 실제 장비는 점보 프레임, 이중 태그(802.1ad), 캡슐화 방식에 따라 다르게 동작하고, 무선 구간은 다른 프레임 형식을 쓰므로 정확한 규격은 IEEE 802.3 원문과 장비 문서를 참조하세요. 또한 선 위 효율은 이더넷 계층만의 값이라, 실제 파일 전송 속도는 TCP 흐름 제어와 장비 성능 등 다른 요인에 더 크게 좌우될 수 있습니다.

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

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

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

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

이어서 읽을 가이드

자주 묻는 질문

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

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

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

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

패킷 캡처에서 프리앰블이나 FCS가 안 보이는 이유는 무엇인가요?

대부분의 랜카드는 프리앰블·SFD를 하드웨어에서 처리하고 운영체제에 올리지 않으며, FCS도 검사 후 제거하거나 별도로 전달하는 경우가 많습니다. 그래서 일반 캡처 화면에는 목적지 MAC부터 보이는 것이 보통입니다.

프레임 간 간격(IPG)은 왜 필요한가요?

전송기는 프레임 사이에 최소 96비트(12바이트)의 유휴 구간을 두어야 한다고 설명됩니다. 수신 장비가 한 프레임을 처리하고 다음 프레임을 받을 준비를 하게 하기 위한 간격이며, 효율 계산에서 프레임 크기에 더해야 합니다.

최소 크기가 64바이트인 이유는 무엇인가요?

위키백과는 최소 페이로드가 충돌 감지에 쓰는 512비트 슬롯 시간에서 정해졌다고 설명합니다. 64바이트가 512비트에 해당하며, 너무 짧은 프레임이 충돌로 깨진 조각인지 구분하기 어려워지는 것을 막으려는 규칙입니다.