핵심 인사이트 (3줄 요약)
- 본질: 우리가 흔히 말하는 이더넷 데이터 구조는 사실상 두 가지 표준, 즉 초창기 업계 표준인 **Ethernet II (DIX 2.0)**와 공식 국제 표준인 IEEE 802.3 프레임 포맷이 혼재된 상태로 사용된다.
- 차이점 (Type vs Length): 목적지/출발지 MAC 주소 바로 뒤에 오는 2바이트 필드가 **Type(페이로드의 프로토콜 종류, 0x0600 이상)**이면 Ethernet II이고, **Length(페이로드의 길이, 1500 이하)**이면 IEEE 802.3 프레임으로 구별한다.
- 현황 (Ethernet II 승리): 오늘날 전 세계 인터넷 트래픽의 99%인 IP 패킷(IPv4, IPv6)은 Length보다 Type 필드(내용물이 IP라는 식별표)가 필수적이므로, 사실상 Ethernet II 포맷이 시장의 표준(De facto standard)으로 천하통일하였다.
Ⅰ. 개요 및 필요성 (Context & Necessity)
-
개념: 이더넷 프레임은 물리적인 케이블로 전송되기 위해 네트워크 계층의 패킷을 포장하는 2계층 봉투다. 1980년대 DEC, Intel, Xerox 세 회사가 연합하여 만든 'DIX Ethernet II' 포맷이 있고, 이를 다듬어 IEEE에서 공식화한 'IEEE 802.3' 포맷이 있다.
-
필요성: 컴퓨터 A가 컴퓨터 B에게 0과 1의 전기 신호를 무작정 보낸다고 B가 이해할 수 없다. "어디서 시작해서, 누가 누구에게 보내고, 내용물이 무엇인지(IP인지 IPX인지), 에러는 없는지"를 약속된 순서대로 배치하는 프레임(틀) 구조가 있어야 수신 측 랜카드가 데이터를 조립해 CPU로 올릴 수 있다.
-
💡 비유: Ethernet II와 IEEE 802.3은 택배 박스에 송장을 붙이는 **"두 가지 양식의 스티커"**와 같습니다. 하나(DIX)는 "내용물이 책(Type)입니다"라고 적고, 다른 하나(IEEE)는 "내용물 무게가 1.5kg(Length)입니다"라고 적습니다. 우체국(수신자)은 송장 번호 크기만 보고 어떤 스티커가 붙었는지 바로 눈치챕니다.
📢 섹션 요약 비유: 두 프레임 포맷은 비디오테이프 시절의 "VHS 대 베타맥스" 표준 전쟁과 같습니다. 공식 기관(IEEE)이 베타맥스를 밀었지만, 실제 시장에서는 사용이 직관적인 VHS(Ethernet II)가 승리하여 현재까지 쓰이고 있습니다.
Ⅱ. 두 프레임의 구조 비교와 식별 원리 (Deep Dive)
1. 프레임 구조 비교
두 프레임 포맷은 프리앰블(Preamble), 목적지 MAC, 출발지 MAC, 데이터(Data), 그리고 에러 검출 필드(FCS)의 배치가 완전히 동일하다. 유일한 차이는 MAC 주소와 Data 사이의 2바이트 필드다.
┌─────────────────────────────────────────────────────────────┐
│ Ethernet II vs IEEE 802.3 프레임 구조 │
├─────────────────────────────────────────────────────────────┤
│ │
│ [Ethernet II (DIX 2.0)] - 현재 인터넷의 사실상 표준 │
│ ┌────┬─────────┬─────────┬──────┬─────────────────┬─────┐ │
│ │Pre-│목적지MAC │출발지MAC │ Type │ Data (Payload) │ FCS │ │
│ │(8) │ (6) │ (6) │ (2) │ (46 ~ 1500) │ (4) │ │
│ └────┴─────────┴─────────┴──────┴─────────────────┴─────┘ │
│ ▲ Type > 1536 (0x0600) │
│ │
│ [IEEE 802.3] - LLC(802.2) 헤더를 내부에 추가로 요구함 │
│ ┌────┬─────────┬─────────┬──────┬─────────────────┬─────┐ │
│ │Pre-│목적지MAC │출발지MAC │Length│LLC + SNAP + Data│ FCS │ │
│ │(8) │ (6) │ (6) │ (2) │ (46 ~ 1500) │ (4) │ │
│ └────┴─────────┴─────────┴──────┴─────────────────┴─────┘ │
│ ▲ Length <= 1500 (0x05DC) │
│ │
└─────────────────────────────────────────────────────────────┘
2. 수신 측의 식별 메커니즘 (0x0600 규칙)
수신 측 랜카드는 날아온 프레임이 Ethernet II인지 802.3인지 어떻게 구분할까? 바로 해당 2바이트 필드의 십진수 값을 확인한다.
- 값이 1500 (0x05DC) 이하일 때: 이 값은 데이터의 '길이(Length)'를 의미한다. 즉, IEEE 802.3 프레임으로 간주하고, 데이터 필드 맨 앞을 뜯어 LLC/SNAP 헤더가 있는지 확인한다. (STP 프로토콜 등에서 사용)
- 값이 1536 (0x0600) 이상일 때: 이 값은 길이로 불가능한 숫자(MTU가 1500이므로)이므로, 내용물의 '종류(Type)'를 나타낸다고 판단한다. 즉, Ethernet II 프레임으로 간주한다. (IPv4 = 0x0800, ARP = 0x0806)
3. Ethernet II가 지배한 이유
초기 IEEE 802.3은 Length만 명시했기 때문에, 수신자가 데이터가 IP인지 뭔지 알 수 없었다. 이를 보완하기 위해 802.2(LLC)라는 별도의 헤더를 데이터 필드 안에 추가로 넣어야 해서 복잡했다. 반면 Ethernet II는 Type 필드 하나로 "안에 든 건 IPv4 패킷이야!"라고 명쾌하게 알려주었기에 TCP/IP의 폭발적 성장과 함께 시장의 표준으로 굳어졌다.
📢 섹션 요약 비유: 수신자(랜카드)는 2바이트짜리 칸의 숫자를 보고 **"숫자가 1500보다 작으면 박스의 무게(Length)구나! 숫자가 1536보다 크면 물건의 바코드(Type)구나!"**라고 눈치껏 해석하는 아주 똑똑한 꼼수를 부리는 셈입니다.