학습 목표
링크 계층이 같은 링크(홉) 위에서 프레임을 MAC 주소로 전달함을 설명할 수 있다.
이더넷 프레임의 주요 필드(dst/src MAC, EtherType, payload, FCS)를 설명할 수 있다.
ARP가 같은 서브넷에서 IP → MAC을 해석하는 방식을 설명할 수 있다.
허브와 스위치의 전달 범위·충돌 도메인 차이를 설명할 수 있다.
문제 상황
ping 192.168.1.50은 되는데 Wireshark에는 MAC 주소만 보이고 IP는 같은 서브넷 안에서만 의미 있다- 네트워크 계층(IP) 과 링크 계층(MAC) 은 다른 식별자
- 처음 통신할 때 ARP 패킷이 잠깐 튄다
- “왜 IP만 알면 되지 않나?” — 프레임은 MAC으로 보낸다
- 옛날 허브와 지금 스위치 — 둘 다 “연결 장치”인데 대역폭·보안이 다르다
ip neigh·arp -a에 STALE, REACHABLE — 캐시가 있다
IP·라우팅·NAT까지는 호스트 간 경로다. 같은 LAN 안에서 실제로 누구에게 프레임을 던지는지는 링크 계층 — 이더넷과 MAC이다.
1. 링크 계층과 이더넷
링크 계층은 인접 노드(같은 링크에 붙은 NIC)끼리 프레임을 주고받는다. 인터넷 LAN에서 사실상 표준은 이더넷(Ethernet, IEEE 802.3).
| 계층 | 단위 | 주소 예 |
|---|---|---|
| 네트워크 | IP 패킷 | 192.168.1.10 |
| 링크 | 이더넷 프레임 | aa:bb:cc:dd:ee:ff |
App data → TCP/UDP → IP packet → Ethernet frame → bits on wire
- 홉(hop) 마다 IP는 그대로, MAC은 다음 홉 NIC로 바뀜
- 라우터는 IP dst를 보고 포워딩 — 출력 링크에서 새 src/dst MAC으로 프레임 재구성
- MTU 1500 — 이더넷 payload 상한 (ICMP Path MTU와 연결)
2. MAC 주소
MAC(Media Access Control) 주소는 NIC(네트워크 인터페이스) 에 붙는 48비트 식별자. 보통 6옥텟 16진 표기.
| 종류 | 예 | 용도 |
|---|---|---|
| 유니캐스트 | aa:bb:cc:11:22:33 |
특정 NIC 하나 |
| 브로드캐스트 | ff:ff:ff:ff:ff:ff |
같은 LAN 전체 (ARP 요청 등) |
| 멀티캐스트 | 첫 옥텟 LSB=1 | 여러 수신자 (IPv4 멀티캐스트 MAC 매핑) |
- OUI — 앞 24비트는 제조사 할당, 뒤 24비트는 장비별
- 로컬 관리 주소 — VM·컨테이너·가상 NIC에서 소프트웨어 할당 흔함
- IP는 설정·DHCP로 바뀔 수 있음 — MAC은 인터페이스에 묶인다고 보면 됨
ip link show eth0
# link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff
3. 이더넷 프레임
이더넷 프레임은 링크에서 실제로 오가는 PDU. IP 패킷은 payload 안에 실린다.

| 필드 | 크기 | 설명 |
|---|---|---|
| Preamble/SFD | 8 B | 동기 (캡처에 안 보이기도 함) |
| Dst MAC | 6 B | 수신 NIC |
| Src MAC | 6 B | 송신 NIC |
| EtherType / Length | 2 B | 상위 프로토콜 (0x0800 IPv4, 0x0806 ARP) |
| Payload | 46–1500 B | IP 패킷 등 |
| FCS | 4 B | CRC — 오류 검출 (링크 계층) |
- 최소 프레임 — payload 46 B 미만이면 패딩
- VLAN tag (802.1Q) —
0x8100+ VLAN ID — 스위치·클라우드 VPC에서 흔함 - 캡슐화 — 한 IP 패킷이 한 이더넷 프레임에 실리는 경우가 일반 (단편화는 IP 계층)
4. ARP — IP를 MAC으로
ARP(Address Resolution Protocol) 는 같은 서브넷에서 목적지 IP에 대응하는 MAC을 알아낸다. IP 패킷을 프레임으로 싸려면 먼저 MAC이 필요하다.

Host A 192.168.1.10 wants to send to 192.168.1.50
1. Check ARP cache — miss
2. ARP Request (broadcast)
who has 192.168.1.50? tell 192.168.1.10
dst MAC ff:ff:ff:ff:ff:ff
3. Host B (192.168.1.50) ARP Reply (unicast)
192.168.1.50 is at bb:bb:bb:bb:bb:bb
4. A caches mapping, sends IP packet in Ethernet frame to bb:bb:...
| 항목 | 설명 |
|---|---|
| ARP cache | OS가 (IP → MAC) 일정 시간 보관 — ip neigh, arp -a |
| 브로드캐스트 요청 | 대상 MAC 모를 때 LAN 전체에 질의 |
| 유니캐스트 응답 | 대상 호스트만 자기 MAC 알려줌 |
| 다른 서브넷 | IP가 게이트웨이 쪽이면 ARP 대상은 게이트웨이 IP → 라우터 MAC |
- Gratuitous ARP — 자기 IP·MAC 알림 (IP 충돌 검사·MAC 변경)
- Reverse ARP(RARP) — 거의 안 씀
- IPv6 — Neighbor Discovery(NDP) 가 ARP 역할 (ICMPv6)
# Linux — 이웃(ARP) 테이블
ip neigh show
# 192.168.1.1 dev eth0 lladdr aa:aa:aa:aa:aa:01 REACHABLE
# 192.168.1.50 dev eth0 lladdr bb:bb:bb:bb:bb:bb STALE
# macOS
arp -a
5. 허브 vs 스위치
둘 다 여러 호스트를 물리적으로 묶지만, 프레임 전달 방식이 다르다.

| 허브 (Hub) | 스위치 (Switch, L2) | |
|---|---|---|
| 동작 계층 | 물리 계층에 가까움 (리피터) | 링크 계층 |
| 전달 | 한 포트 수신 → 모든 포트에 복제 | dst MAC 보고 해당 포트만 |
| 충돌 도메인 | 전체가 하나 (half-duplex 시) | 포트마다 분리 (full-duplex 일반) |
| MAC 학습 | 없음 | MAC address table — src MAC → 포트 |
| 보안·효율 | 다른 호스트 트래픽도 다 보임 | 유니캐스트는 해당 포트만 |
Switch learns:
frame from port 1, src MAC X → table: X on port 1
frame to dst MAC Y
Y known → forward that port only
Y unknown → flood (like hub) except ingress port
- 브로드캐스트·미지 MAC — 스위치도 플러딩(모든 포트) — ARP 요청이 전파되는 이유
- L3 스위치 — IP 라우팅까지 — 라우터 + 고속 스위칭
- Wi‑Fi AP — 무선 쪽은 공유 매체 — 이더넷 스위치와 충돌·도메인 개념이 조금 다름
6. IP·라우팅과 연결
IP와 라우팅에서 같은 서브넷 → direct (ARP) 를 언급했다. 전체 흐름:
Host A 192.168.1.10/24 → dest 192.168.1.50
same subnet → ARP 192.168.1.50 → frame to B's MAC
Host A 192.168.1.10/24 → dest 8.8.8.8
different subnet → ARP default gw 192.168.1.1 → frame to router MAC
router forwards IP toward 8.8.8.8, new MACs on each hop
| 증상 | 링크 계층 관점 |
|---|---|
| ping IP OK, 간헐적 지연 | ARP 재요청·캐시 만료 |
| 같은 LAN인데 안 됨 | 다른 VLAN·스위치 ACL·MAC 필터 |
| 게이트웨이 ARP fail | 라우터 down·잘못된 gw IP |
| Wireshark에 ARP storm | 루프·장비 오류·스캔 |
# ARP 캐시 삭제 (Linux, 디버깅)
sudo ip neigh flush dev eth0
# 인터페이스 통계 — errors, dropped
ip -s link show eth0
7. 정리
- 링크 계층 — MAC으로 프레임 전달, 홉마다 MAC 변경
- 이더넷 프레임 — dst/src MAC, EtherType, payload, FCS
- ARP — 같은 서브넷 IP → MAC, 브로드캐스트 요청
- 허브 — 전 포트 플러드 / 스위치 — MAC 테이블로 선별 전달
- IP는 엔드투엔드, MAC은 한 링크 — 둘 다 트러블슈팅에 필요
다음에 다룰 것
- 물리 계층과 매체
- 비트 전송, 대역폭·지연·처리량
해당 내용은 Computer Networking: A Top-Down Approach, 8/E (James Kurose, Keith Ross) 의 내용을 기반으로 합니다.
'네트워크 기초' 카테고리의 다른 글
| Wireshark로 HTTP/TCP 보기 (0) | 2026.07.05 |
|---|---|
| 물리 계층과 매체 (0) | 2026.07.04 |
| NAT와 IPv6 개요 (0) | 2026.07.02 |
| ICMP과 진단 (0) | 2026.07.01 |
| IP와 라우팅 (0) | 2026.06.30 |