icon

안동민 개발노트

3장 : 물리 계층과 데이터 링크 계층

이더넷과 MAC 주소


물리 계층이 비트를 신호로 변환해서 전송한다는 것을 이해했습니다. 하지만 비트의 나열만으로는 통신이 성립하지 않습니다. 이 비트들이 어디서부터 어디까지가 하나의 데이터인지, 이 데이터를 누구에게 보내는 것인지를 알아야 합니다.

이 역할을 담당하는 것이 데이터 링크 계층이고, 그 핵심 기술이 바로 이더넷(Ethernet)입니다.


이더넷의 역사와 발전

이더넷 진화 타임라인
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

1973  Xerox PARC에서 Bob Metcalfe가 발명
      2.94 Mbps, 동축 케이블, 버스 토폴로지

1980  DIX 표준 (DEC + Intel + Xerox)
      10 Mbps (10BASE-5, 굵은 동축)

1985  IEEE 802.3 표준화
      10BASE-2 (얇은 동축), 10BASE-T (꼬임 쌍선)

1995  Fast Ethernet (100BASE-TX)
      100 Mbps, Cat5 케이블, 스위치 대중화

1999  Gigabit Ethernet (1000BASE-T)
      1 Gbps, 서버/백본 → 현재 가정 표준

2002  10 Gigabit Ethernet (10GBASE-T)
      데이터센터 표준

2017  25G/50G/100G/400G Ethernet
      클라우드 데이터센터 내부 연결

초기 이더넷은 하나의 동축 케이블(버스)을 공유하는 구조였습니다. 여러 장치가 같은 매체를 공유하므로, 동시에 전송하면 충돌이 발생합니다. 이를 해결하기 위해 CSMA/CD(Carrier Sense Multiple Access with Collision Detection)라는 매체 접근 제어 방식을 사용했습니다.

현대의 스위치 기반 이더넷에서는 각 포트가 독립적인 충돌 도메인이 되므로, 전이중(Full Duplex) 통신이 가능하고 CSMA/CD가 사실상 필요 없습니다.


이더넷 프레임 구조

이더넷은 데이터를 프레임(Frame)이라는 단위로 묶어 전달합니다.

이더넷 II 프레임 구조 (IEEE 802.3)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

┌──────────┬─────┬──────┬──────┬──────┬──────────────┬─────┐
│ Preamble │ SFD │ DST  │ SRC  │ Type │   Payload    │ FCS │
│ 7 bytes  │ 1B  │ MAC  │ MAC  │  2B  │  46~1500 B   │ 4B  │
│          │     │  6B  │  6B  │      │              │     │
└──────────┴─────┴──────┴──────┴──────┴──────────────┴─────┘
│← 물리 계층 →│←─────── 데이터 링크 계층 ───────────────────→│

총 크기: 최소 64B ~ 최대 1518B (프리앰블/SFD 제외)
필드크기설명
Preamble7 B10101010 반복, 클록 동기화
SFD1 B10101011, 프레임 시작 표시
Destination MAC6 B수신자 MAC 주소
Source MAC6 B송신자 MAC 주소
EtherType / Length2 B0x0800=IPv4, 0x86DD=IPv6, 0x0806=ARP
Payload46~1500 B상위 계층 데이터 (IP 패킷 등)
FCS4 BCRC-32 오류 검출 코드

페이로드가 46바이트 미만이면 패딩(padding)을 추가합니다. 최소 크기가 보장되어야 충돌 감지가 정상적으로 동작하기 때문입니다. 최대 페이로드 크기 1500바이트를 MTU(Maximum Transmission Unit)라고 합니다.

점보 프레임

데이터센터에서는 MTU를 9000바이트로 확대한 점보 프레임(Jumbo Frame)을 사용하기도 합니다.

구분표준 프레임점보 프레임
MTU1500 B9000 B
헤더 비율~3.6%~0.6%
장점호환성높은 효율, 낮은 CPU 부하
단점-경로 전체 장비가 지원해야 함

MAC 주소의 구조와 역할

MAC(Media Access Control) 주소는 네트워크 인터페이스 카드(NIC)에 할당된 고유한 물리적 주소입니다.

MAC 주소 구조 (48비트 = 6바이트)

   00 : 1A : 2B : 3C : 4D : 5E
    └─────────┘    └─────────┘
     OUI (24비트)    NIC 고유번호 (24비트)
     제조사 식별       제조사가 순차 할당

   첫 바이트의 비트 의미
   │ x x x x x x I G │
                  │ │
                  │ └─ 0: 유니캐스트, 1: 멀티캐스트
                  └─── 0: 전역(BIA), 1: 로컬 관리
특수 MAC 주소의미
FF:FF:FF:FF:FF:FF브로드캐스트 (모든 장치)
01:00:5E:xx:xx:xxIPv4 멀티캐스트
33:33:xx:xx:xx:xxIPv6 멀티캐스트
00:00:00:00:00:00미할당 (초기화 상태)
mac_check.sh
# 자신의 MAC 주소 확인
ip link show | grep ether

# OUI 확인 (제조사 조회)
# 방법: MAC 앞 3바이트를 IEEE OUI 데이터베이스에서 검색
# 예: 00:1A:2B → Ayecom Technology

# MAC 주소 변경 (테스트용)
# sudo ip link set eth0 address 02:42:ac:11:00:02

MAC 주소는 같은 네트워크(LAN) 내에서 장치를 식별합니다. IP 주소가 서울시 강남구 역삼동 123번지와 같은 논리적 주소라면, MAC 주소는 주민등록번호와 같은 물리적 식별자입니다.


IP 주소와 MAC 주소의 역할 분담

왜 IP 주소만으로 통신하지 않고 MAC 주소가 필요할까요?

PC(192.168.1.100) → Router → Internet → Router → Server(93.184.216.34)

IP 주소:  변하지 않음 (종단 간 경로 결정)
  출발: 192.168.1.100 → 목적: 93.184.216.34

MAC 주소: 홉마다 변함 (각 구간 전달)
  구간1: PC MAC → Router1 MAC
  구간2: Router1 MAC → Router2 MAC
  구간3: Router2 MAC → Server MAC

IP 주소는 네트워크 간의 경로를 결정합니다. MAC 주소는 같은 네트워크에 연결된 장치에게 프레임을 전달합니다. 라우터가 어느 네트워크로 보낼지 결정하고, 스위치가 어느 장치에 전달할지 결정하는 역할 분담입니다.


유니캐스트, 브로드캐스트, 멀티캐스트

전달 방식목적지 MAC수신자예시
유니캐스트특정 NIC 주소1대일반 HTTP 통신
브로드캐스트FF:FF:FF:FF:FF:FF같은 LAN 전체ARP 요청, DHCP
멀티캐스트01:00:5E:xx:xx:xx특정 그룹IPTV, 화상회의
frame_type_checker.py
"""MAC 주소에서 프레임 전달 방식 판별"""

def classify_mac(mac_str):
    """MAC 주소의 전달 방식을 판별"""
    mac_bytes = bytes.fromhex(mac_str.replace(":", ""))

    if mac_bytes == b"\xff\xff\xff\xff\xff\xff":
        return "브로드캐스트"
    elif mac_bytes[0] & 0x01:  # 첫 바이트 LSB = 1
        return "멀티캐스트"
    else:
        return "유니캐스트"

test_macs = [
    "00:1A:2B:3C:4D:5E",
    "FF:FF:FF:FF:FF:FF",
    "01:00:5E:7F:00:01",
    "33:33:00:00:00:01",
]

for mac in test_macs:
    print(f"{mac}{classify_mac(mac)}")

브로드캐스트는 네트워크의 모든 장치가 해당 프레임을 처리해야 하므로 트래픽이 증가합니다. 네트워크 규모가 커질수록 브로드캐스트 트래픽이 성능에 미치는 영향도 커지는데, 이것이 뒤에서 다룰 VLAN의 등장 배경입니다.


CSMA/CD와 전이중 통신

초기 공유 매체 이더넷에서의 CSMA/CD 동작 과정입니다.

  • CS (Carrier Sense): 전송 전에 매체가 사용 중인지 감지

  • MA (Multiple Access): 여러 장치가 같은 매체에 접근 가능

  • CD (Collision Detection): 충돌 감지 시 전송 중단, 잼 신호 전송, 랜덤 시간 후 재시도

현대 스위치 기반 네트워크에서는 각 포트가 독립적이므로 CSMA/CD가 비활성화됩니다. 전이중(Full Duplex) 모드에서는 송신과 수신이 동시에 가능하여, 1Gbps 이더넷이면 양방향 합산 2Gbps의 처리량을 제공합니다.

다음 절에서는 같은 네트워크 안에서 프레임이 정확히 어떻게 올바른 장치에 도달하는지, 스위치와 ARP의 동작을 살펴보겠습니다.

목차