[2편] IP 주소·MAC 주소·패킷 4겹 양파 — 바이브코더 CS심화코스

이 글은 IP 주소를 32비트의 약속부터 풀어가는 바이브코더 CS심화코스(전체 약 42편 예정) 네트워크편 2A편입니다.

매일 보던 192.168.0.10 이라는 IP 주소가 사실 32비트 한 정수의 사람용 표기라는 사실부터, MAC 주소가 공장 출하 시 칩에 박힌 281조 가지의 영구 식별자라는 자리까지. 패킷의 4겹 양파를 한 문장으로 외우는 결로 정리합니다.

Table of Contents

“192.168.0.10 은 무엇인가” — 매일 보는 숫자의 정체

ifconfig 를 칠 때마다 같은 숫자가 첫 줄에 뜬다.

inet 192.168.0.10.

이 숫자가 정확히 무엇인지 자기 말로 설명할 수 있는가?

“내 IP 주소” 라고 답할 수 있어도, 그게 사설인지 공인인지, 32비트라는 단어와 어떻게 연결되는지, 학교 와이파이의 IP 주소와 같은 번호여도 충돌이 안 나는 이유까지 자기 입에서 한 번에 나오는가.

이 한 줄을 풀기 위해 2편이 통째로 쓰인다.

그리고 그것보다 먼저, 한 가지 장면이 있다.

마이클은 1편을 다 읽고 나서 5단 동심원 그림을 머리에 박아두었다. 그날 밤 잠들기 전에 한 가지가 이상했다. 그림에는 “디바이스 [1]” 이 있고 “LAN [2]” 이 있는데, 자기 노트북이 정확히 어떻게 [2] 안의 한 자리를 차지하는지 안 그려졌다. 자기 노트북에 도장처럼 박힌 어떤 번호가 있을까. 그 번호로 [2] 안에서 식별되는 걸까. 만약 그 번호가 있다면, 1편에서 본 192.168.0.10 같은 숫자랑 무슨 관계일까.

마이클의 의문이 이 2편 전체의 출발점이다. 그리고 답은 의외로 두 개의 다른 주소가 한 노트북에 동시에 박혀 있다는 것에서 시작한다.

이 글을 읽고 나면 (예상 24분)
  • 192.168.0.10 같은 IP 주소가 32비트 정수의 사람용 표기라는 사실이 손에 잡힌다
  • MAC 주소가 281조 가지의 영구 식별자라는 자리의 산수가 풀린다
  • 패킷의 4겹 양파를 한 문장으로 외울 수 있게 된다

IP 주소 = 32비트의 약속

TL;DR: 192.168.0.10 은 점으로 끊긴 4토막이 아니라 32비트짜리 한 정수의 사람용 표기다.

먼저 1편에서 윤곽만 잡았던 자리를 정공법으로 풀어보자.

IP 주소의 진짜 정체

192.168.0.10 을 보면 사람 머릿속에는 “192” “168” “0” “10” 네 숫자로 들어온다. 점으로 끊긴 네 토막. 그게 IP 주소의 모양이라고 학교에서 배웠다면 그렇다.

진실은 다르다.

IP 주소는 사실 32비트짜리 한 덩어리 숫자다. 점 세 개는 사람이 보기 좋게 끊은 표기일 뿐.

사람이 보는 모양:
  192 . 168 . 0 . 10

컴퓨터가 보는 모양:
  11000000 . 10101000 . 00000000 . 00001010
  ↑ 8비트 × 4 = 32비트

10진수 한 덩어리:
  3,232,235,530

이게 같은 IP 주소의 세 가지 표기. 컴퓨터가 다루는 진짜 형태는 3,232,235,530 이라는 한 정수다.

왜 점 세 개로 끊었나

3232235530 같은 숫자를 사람이 외울 수 있나? 못 외운다.

그래서 32비트를 8비트씩 4토막 으로 끊고, 각 토막을 10진수로 적기로 했다. 8비트 = 0~255 까지의 숫자. 그래서 IP 주소의 각 토막은 0~255 사이의 값을 가진다.

이걸 한 번 머리에 박아두면 192.168.300.10 은 잘못된 IP 주소 라는 게 즉시 보인다. 300 은 8비트로 표현 못 한다 (8비트의 최대는 255).

비유 — 전화번호와 우편번호의 결합

IP 주소가 32비트 한 덩어리지만 우리가 점으로 끊어 보는 건, 마치 전화번호 01012345678010-1234-5678 로 끊어 적는 것과 비슷하다. 끊은 게 의미 있어서가 아니라, 사람이 외우기 쉽게.

다만 IP 주소는 한 가지가 더 있다. 점이 의미를 가지는 자리도 있다. 어디까지가 “네트워크 부분” 이고 어디부터가 “호스트 부분” 인지의 경계가 점과 (대부분) 일치한다. 그건 다음 단원에서.

32비트 → 43억의 산수

학습자 다수가 막히는 자리가 여기다. “32비트면 왜 43억인가?”

손으로 계산하면:

1비트  = 2가지 상태 (0 또는 1)
2비트  = 4가지 상태 (00, 01, 10, 11)
3비트  = 8가지 상태
...
n비트  = 2^n 가지 상태

32비트 = 2^32

2^10 = 1,024 (≈ 1천)
2^20 = 1,048,576 (≈ 100만)
2^30 = 1,073,741,824 (≈ 10억)
2^32 = 2^30 × 2^2 = 약 10억 × 4 = 약 40억

정확히는 4,294,967,296 = 약 42억 9천만 ≈ 43억

32비트 = 약 43억 가지의 다른 IP 주소. 이게 IPv4 의 한계.

43억이 왜 부족하나

지구 인구 80억. 인터넷 연결 기기는 그보다 더 많다 (사람당 평균 3~4대 + IoT). 추정 300억 개.

가능한 IPv4: 43억
실제 사용 가능: 약 37억 (사설 대역·localhost·예약 빼고)
필요: 300억+

→ 약 8배 부족

이 부족을 1990년대부터 NAT 라는 임시방편으로 막아왔고 (1편에서 5단 동심원의 [2]→[3] 경계로 본 자리), 근본 해결책으로 IPv6 (128비트, 사실상 무한) 가 나왔다. IPv6 의 가능한 주소는 2^128 = 3.4 × 10^38 — 지구 인구 한 명당 수경 개씩 줘도 남는다.

지금도 인터넷은 IPv4 위에서 굴러간다. IPv6 로의 전환이 30년 가까이 진행 중이지만 아직 절반 미만.

자기 환경에서 직접 확인

IP 주소 사설 IP 주소와 loopback — ifconfig 결과 풍경
노트북에 동시에 박힌 사설 IP 주소와 loopback (127.0.0.1)

맥북 터미널에서 ifconfig | grep inet 을 치면 자기 IP 주소가 보인다.

inet 192.168.0.10
inet 127.0.0.1

첫 줄의 192.168.0.10 이 자기 노트북이 와이파이에서 받은 사설 IP 주소. 두 번째 127.0.0.1 은 loopback (자기 자신, 7편에서 정공법).

이 한 줄의 숫자가 32비트짜리 정수의 사람용 표기 라는 사실이 머리에 박히면, 다음 단원이 자연스럽게 이어진다.

사설 IP 주소 vs 공인 IP 주소 — 호텔 객실 번호와 호텔 주소

TL;DR: 한 노트북에 두 IP 주소가 동시에 박혀 있고, 둘은 호텔 주소와 호텔 객실 번호의 관계다.

같은 노트북이 동시에 두 개의 IP 주소를 가진다. 위에서 본 192.168.0.10 은 그 중 하나일 뿐.

두 IP 주소의 위치

사설 IP 주소 (Private IP):
  └ 우리 집 안에서만 통하는 주소
  └ 공유기가 자기 멋대로 나눠줌
  └ 예: 192.168.0.10
  └ 인터넷에서 안 보임

공인 IP 주소 (Public IP):
  └ 인터넷 전체에서 유일한 주소
  └ KT·SKT 가 우리 집에 1개 할당
  └ 예: 211.234.56.78
  └ 외부에서 그 주소로 도달 가능

같은 노트북이 두 IP 주소를 동시에 가진다고? 정확히 말하면 노트북 자체는 사설 IP 주소만 가진다. 공인 IP 주소는 노트북이 아니라 공유기 (집 전체) 에 부여되어 있다. 외부에서 우리 집에 우편을 보내려면 공인 IP 주소로 와야 하고, 공유기가 받아서 노트북에게 사설 IP 주소로 전달한다.

비유 — 호텔 객실 번호

공인 IP 주소 = 호텔 건물 주소
  서울시 강남구 테헤란로 123 (신라호텔)
  → 외부에서 우편 보낼 때

사설 IP 주소 = 그 호텔의 객실 번호
  305호
  → 호텔 안에서만 의미 있는 번호

신라호텔 305호와 롯데호텔 305호는 같은 번호여도 부딪히지 않는다. 호텔이 다르니까. 외부에서 우편 보낼 때는 “신라호텔 305호” 라고 호텔 주소까지 같이 적는다.

이게 집 와이파이의 사설 IP 주소가 옆집·학교·전 세계 누군가의 사설 IP 주소와 같은 번호여도 충돌 안 나는 이유다.

두 IP 주소 직접 확인

IP 주소 공인 IP 주소 확인 — KT 가 부여한 단 하나의 주소
외부 (구글·OpenAI 같은 서버) 에서 보는 우리 집의 단 하나의 IP 주소

브라우저에서 “내 IP 주소 확인” 으로 검색하면 큰 글씨로 공인 IP 주소가 뜬다. 211.234.56.78 같은 숫자.

이게 외부 (구글·OpenAI 같은 서버) 에서 보는 우리 집의 단 하나의 주소. 노트북·핸드폰·아이패드 모두가 외부에서는 이 한 IP 주소로 보인다.

사설 IP 주소의 정해진 대역

사설로 쓸 수 있는 IP 주소는 약속 (RFC 1918) 으로 정해져 있다.

10.0.0.0 ~ 10.255.255.255         (Class A 사설, 약 1677만 개)
172.16.0.0 ~ 172.31.255.255       (Class B 사설, 약 100만 개)
192.168.0.0 ~ 192.168.255.255     (Class C 사설, 약 65,536개)

이 세 대역의 어느 IP 주소라도 보면 즉시 “사설” 이라고 진단할 수 있다.

192.168.0.10  → 사설 (가정용)
10.10.45.123  → 사설 (학교·회사)
172.16.5.20   → 사설 (중간 규모)
211.234.56.78 → 공인 (외부에서 보이는)

가정용 공유기는 거의 다 192.168.x.x 를 디폴트로 쓰는데, 이건 RFC 의 강제가 아니라 제조사들의 관행이다. 학교·회사는 기기가 많아 더 큰 풀 (10.x.x.x) 을 쓴다.

신라호텔과 롯데호텔의 305호 — 학습자가 박아둘 한 줄

같은 사설 IP 주소가 전 세계 수백만 LAN 에서 동시에 사용되어도 안 부딪힌다. 호텔이 다르면 객실 번호 같아도 안 부딪힌다. 외부로 나갈 때 “호텔 주소 + 객실 번호” 가 합쳐지는 변환 (NAT) 이 일어나기 때문이다. 그 변환은 3편 (공유기·NAT·DHCP) 에서 정공법으로 다룬다.

지금은 한 줄만 박아두면 된다.

사설 IP 주소 = 호텔 안 객실 번호. 호텔 안에서만 의미 있음. 공인 IP 주소 = 호텔 주소. 외부에서 보이는 단 하나. 같은 객실 번호가 다른 호텔에 있어도 안 부딪힘.

같은 LAN 의 정의 — 네트워크 부분이 같은 기기들

TL;DR: 같은 LAN = IP 주소의 앞부분 (네트워크 부분) 이 같은 기기들이라는 한 줄로 정리된다.

1편에서는 “같은 공유기에 연결된 기기들 = 같은 LAN” 이라고 했다. 이번 편에서 한 단계 더 들어간다.

두 정의의 동치

정의 A (1편): "같은 공유기에 연결된 기기들"
정의 B (2편): "IP 의 네트워크 부분이 같은 기기들"

→ 둘이 정확히 같은 얘기.

왜 같은가? 공유기가 자기에게 연결된 기기들에게 같은 네트워크 부분의 IP 주소만 분배 하기 때문.

IP 주소의 두 부분

IP 주소 32비트는 두 부분으로 나뉜다.

192 . 168 . 0 . 10

[ 네트워크 부분 ] . [ 호스트 부분 ]
   192.168.0       .        10

네트워크 부분 (앞) = 어느 LAN 인지. 같은 LAN 의 모든 기기가 똑같다. 호스트 부분 (뒤) = 그 LAN 안의 어느 기기인지. 각 기기마다 다르다.

집 와이파이의 두 기기:

노트북:  192.168.0.10
아이폰:  192.168.0.11

공통 (네트워크 부분): 192.168.0
다름 (호스트 부분):    .10  vs  .11

같은 LAN 안에서는 네트워크 부분이 항상 같다. 호스트 부분만 기기마다 다르다.

어디까지가 네트워크 부분인가 — 서브넷 마스크 입문

192.168.0.10 에서 어디까지가 네트워크 부분인가? 192.168.0 까지? 192.168 까지? 192 만? 이걸 결정하는 게 서브넷 마스크 다.

서브넷 마스크: 255.255.255.0
이진수로:      11111111.11111111.11111111.00000000
              │←── 24비트 1 ──→│←── 8비트 0 ──→│
              │   네트워크      │     호스트     │

→ IP 주소의 앞 24비트가 네트워크 부분
→ IP 주소의 뒤 8비트가 호스트 부분

192.168.0.10 의 경우:
  네트워크 부분: 192.168.0 (앞 24비트)
  호스트 부분:   10        (뒤 8비트)

서브넷 마스크의 1 부분이 네트워크, 0 부분이 호스트. 단순한 약속.

CIDR 표기 — /24 한 줄로

서브넷 마스크 255.255.255.0 을 매번 적는 건 길다. 그래서 /24 로 줄여 쓴다.

192.168.0.0/24
= 앞 24비트가 네트워크 부분
= 192.168.0.0 ~ 192.168.0.255 의 256개 IP 가 한 LAN

192.168.0.0/16
= 앞 16비트가 네트워크 부분
= 192.168.0.0 ~ 192.168.255.255 의 65,536개 IP 가 한 LAN

10.0.0.0/8
= 앞 8비트가 네트워크 부분
= 10.0.0.0 ~ 10.255.255.255 의 약 1677만 IP 가 한 LAN

/N 의 N 이 클수록 좁은 LAN, 작을수록 넓은 LAN. 이게 처음 보면 헷갈리는 자리다.

비유 — 우편번호와 같음

우편번호 5자리에서 앞자리만 같으면 큰 지역, 뒷자리까지 같으면 좁은 동네인 것과 같다.

우편번호 06000   (강남 일부)
우편번호 06234   (그 안의 더 좁은 동네)

앞자리만 같음 = 큰 영역
뒷자리까지 같음 = 좁은 영역

/24 (앞 24비트) = 좁은 LAN (256개 IP). /8 (앞 8비트) = 매우 넓은 LAN (1677만 개 IP).

학교 와이파이의 풍경

학교는 보통 10.0.0.0/8 같은 큰 사설 대역을 받지만, 그걸 통째로 안 쓴다. 건물별로 잘게 쪼갠다 (서브넷팅).

고려대 전체:    10.0.0.0/8 (1677만 IP 가능)
  ├─ 도서관:   10.10.0.0/16 (65,536개)
  ├─ 공학관:   10.20.0.0/16 (65,536개)
  ├─ 정경관:   10.12.0.0/16
  └─ 기숙사:   10.30.0.0/16

같은 학교 안에서도 건물별로 다른 서브넷. 도서관에서 와이파이 잡으면 10.10.x.x 어딘가, 공학관에서 잡으면 10.20.x.x 어딘가 받는다. 같은 노트북도 위치마다 다른 IP 주소.

이걸 박아두면 같은 학교 안에서 자리 옮기다가 와이파이가 일시 끊기는 이유가 보인다 — 새 건물의 서브넷에서 새 IP 주소를 받아야 하니까 DHCP 가 다시 작동한다.

deferred: 서브넷 마스크의 본격 산수 (네트워크 주소 계산·브로드캐스트 주소·사용 가능 호스트 수) 는 3편 (공유기·NAT·DHCP) 에서 깊이 다룬다. 여기서는 좌표만 잡고 넘어간다.

MAC 주소 = 주민등록번호

TL;DR: MAC 주소는 공장 출하 시 통신 칩에 새겨지는 영구 식별자고, IP 주소와는 완전히 다른 결의 주소다.

여기서부터 새 자리. 노트북에는 두 종류의 다른 주소 가 동시에 박혀 있다. IP 주소는 위에서 봤다. 다른 하나가 MAC 주소.

MAC 주소의 정체

먼저 이름부터 풀어보자.

MAC = Media Access Control

직역: “매체 접근 제어 (주소)”.

풀이: “네트워크 매체 (Wi-Fi·이더넷) 를 사용할 권한이 있는 기기의 영구 식별자”.

한 가지 짚고 가자. MAC 주소는 맥북의 Mac 과 무관하다. 맥북의 Mac 은 Macintosh (Apple 컴퓨터 브랜드), MAC 주소의 MAC 주소는 Media Access Control. 우연히 같은 글자. 영어로는 MAC address (전부 대문자), Mac (Macintosh, 첫 글자만 대문자) 으로 구분되지만 한국어로는 둘 다 “맥” 으로 읽혀서 헷갈린다.

모양

00:1A:2B:3C:4D:5E
= 6바이트 = 48비트
= 16진수 12자리
= 콜론으로 6쌍 구분

12자리 16진수. 대시 (-) 또는 점 (.) 으로 끊는 표기도 있다 (00-1A-2B-3C-4D-5E).

결정적 특성 4가지

1. 영구 (Permanent)

MAC 주소는 공장 출하 시 칩에 새겨진다. 와이파이 칩·이더넷 칩 자체에 박혀 있다. 운영체제가 만들거나 사용자가 바꾸는 게 아니라, 하드웨어에 영구.

이 점이 IP 주소와 결정적으로 다르다. IP 주소는 와이파이 옮길 때마다 새로 받지만, MAC 주소는 그 기기를 폐기할 때까지 안 바뀐다.

2. 같은 LAN 안에서만 의미

MAC 주소는 한 hop 만 살아 있다. 라우터·공유기를 넘어가는 순간 사라진다.

이게 처음 보면 이상하다. IP 주소는 출발부터 끝까지 안 바뀌는데 MAC 주소는 매 hop 마다 바뀐다. 왜 그런지는 다음 단원 (패킷 4겹 양파) 에서 풀린다.

3. Layer 2 (데이터 링크 계층) 의 주소

OSI 7계층 좌표계에서 MAC 주소는 Layer 2, IP 주소는 Layer 3. MAC 주소가 한 단계 더 아래.

Layer 3 (네트워크):    IP 주소 — 어디로 (전체 여정)
Layer 2 (데이터 링크): MAC 주소 — 다음 hop 의 누구
Layer 1 (물리):         실제 신호 (전기·빛·전파)

4. 변경 가능 (소프트웨어로)

영구라고 했지만 OS 가 가짜 MAC 주소를 송출하게 만들 수 있다 (MAC spoofing). iPhone 의 “프라이빗 Wi-Fi 주소” 가 그 예. 이건 와이파이마다 다른 랜덤 MAC 주소를 쓰는 기능으로, 추적 방지가 목적. 본격은 이 편의 11번째 단원 (“iPhone Private Wi-Fi 주소”) 에서.

자기 환경에서 직접 확인

$ ifconfig en0 | grep ether
  ether 14:7d:da:11:22:33

이 한 줄이 자기 노트북 와이파이 칩의 MAC 주소다. 영원히 안 바뀐다 (프라이빗 Wi-Fi 주소를 안 켰다면).

학교·회사 와이파이가 “MAC 주소 등록” 을 요구하는 자리가 있다. 등록된 MAC 주소만 와이파이 허용하는 정책 (MAC 화이트리스트). 노트북 바꾸면 새 MAC 등록해야 한다.

MAC = 주민등록번호 / IP 주소 = 현재 주소

이 비유 하나가 두 주소의 차이를 정리한다.

MAC 주소 = 주민등록번호
  - 평생 안 바뀜
  - 본인 식별
  - 아무한테나 공유하면 안 됨

IP 주소 = 현재 주소
  - 이사하면 바뀜
  - 우편물 받는 자리
  - 외부에 알려야 우편 받을 수 있음

집에 우편을 받으려면 현재 주소 (IP 주소) 가 필요하다. 본인 확인이 필요하면 주민번호 (MAC). 둘 다 필요한 정보지만 서로 다른 자리에 쓰인다.

이게 1편에서 5단 동심원 그림으로 봤던 “[1] 디바이스 → [2] LAN” 의 [1] 안의 진짜 풍경이다. 노트북에 두 개의 다른 종류의 주소가 동시에 박혀 있고, 둘이 다른 일을 한다.

MAC 주소 281조 개의 산수 — 16진수 12자리의 진짜 크기

TL;DR: 16진수 12자리 = 48비트 = 약 281조 가지. IPv4 의 43억과는 비트 수 16개 차이로 6만 5천 배가 벌어진다.

위에서 MAC 주소가 16진수 12자리라고 짚고 넘어갔다. 이 숫자가 얼마나 큰지 산수로 풀어보면, 왜 전 세계의 모든 통신 칩이 평생 다른 번호를 받을 수 있는지가 손에 잡힌다.

16진수 12자리 = 281조

16진수 한 자리 = 0~F = 16가지.

1자리   = 16
2자리   = 16 × 16 = 256
3자리   = 16^3 = 4,096
6자리   = 16^6 = 16,777,216 (약 1,677만)
12자리  = 16^12 = 281,474,976,710,656 (약 281조)

48비트로 다시 보면:

2^48 = 281,474,976,710,656 ≈ 281조

같은 수다. 16진수 12자리 = 48비트 = 약 281조 가지.

281조가 얼마나 큰가

지구 인구 80억. 사람당 통신 칩 평균 5~10개 (스마트폰·노트북·이어폰·스마트워치·차량 모뎀 등). 추정 약 800억 개.

필요한 MAC 수: 약 800억 (8 × 10^10)
가능한 MAC 수: 약 281조 (2.8 × 10^14)

남는 비율: 281조 / 800억 = 약 3,500배

지금 사용량의 3,500배까지 감당 가능하다. 적어도 다음 세대까지는 안 부족하다.

비교용으로 IPv4 가 43억인 것과 나란히 두면 차이가 보인다.

IPv4:  43억 가지   (이미 부족, 사람 수보다 적음)
MAC:   281조 가지  (사람 수의 3.5만 배, 한참 남음)

IP 주소가 부족한 이유와 MAC 주소가 안 부족한 이유는 비트 수의 차이 (32 vs 48) 한 줄로 정리된다. 16비트가 늘어나면 2^16 = 65,536배가 늘어나니까.

앞 6자리·뒤 6자리의 분업

MAC 주소 12자리는 의미상 앞 6자리 + 뒤 6자리 로 나뉜다.

00 : 1A : 2B : 3C : 4D : 5E
[ 앞 6자리 OUI ] [ 뒤 6자리 일련번호 ]
   제조사 코드        그 회사의 일련번호

앞 6자리 (OUI, Organizationally Unique Identifier) = 제조사를 식별. IEEE 라는 국제 표준 단체가 회사들에 발급한다. 한 회사가 한 OUI 를 받으면, 그 회사가 만드는 모든 칩의 MAC 주소 앞 6자리가 같아진다.

뒤 6자리 (NIC, Network Interface Controller) = 그 회사의 일련번호. 그 회사가 자기 마음대로 부여한다.

OUI 의 산수 — 1677만 가지의 회사 슬롯

앞 6자리 = 16^6 = 약 1,677만.

이론적으로 1,677만 개의 회사가 각자 다른 OUI 를 받을 수 있다. 실제로 등록된 OUI 는 약 4만 개. 아직 99.7% 가 비어 있다. 회사가 OUI 를 받으려면 IEEE 에 약 $3,000 의 등록비를 낸다.

가능한 OUI:    1,677만 슬롯
실제 등록:     약 4만 슬롯 (0.3%)

대표적 OUI:

00:1A:2B → Intel
00:23:DF → Apple (구형)
14:7D:DA → Apple (현재)
18:65:90 → Samsung
A4:5E:60 → Apple (또 다른)

큰 회사는 OUI 를 여러 개 보유한다. 한 OUI 의 뒤 6자리 (1,677만) 만으로 부족하면 새 OUI 를 더 받는다. Apple 은 약 850개의 OUI 를 보유한다고 알려져 있다.

Apple 만의 가능한 칩 수:
  850 OUI × 1,677만 일련번호 = 약 142억 개

Apple 이 지금까지 만든 모든 통신 칩 (iPhone·Mac·iPad·AirPods·Apple Watch·HomePod 등) 의 합이 약 30~40억 개로 추정된다. 142억 가능 / 35억 사용 = 약 4배 여유. 부족해지면 OUI 를 더 받으면 된다.

뒤 6자리의 진짜 의미

뒤 6자리가 한 회사의 일련번호라는 건, 그 회사 안에서는 절대 중복되면 안 된다는 뜻이다. Apple 의 모든 통신 칩은 하나도 같은 MAC 주소를 안 가진다. 공장 출하 시점에 일련번호가 부여되고, 그게 칩에 영구히 새겨진다.

이게 MAC 주소가 “전 세계에서 유일” 한 메커니즘이다.

앞 6자리 (회사 식별):     IEEE 가 보장
뒤 6자리 (회사 안 유일성): 회사가 보장
→ 결과: 전 세계의 모든 칩이 다른 MAC 주소

이중 보장. 한 군데라도 무너지면 충돌이 난다.

비유 — 차량 번호판의 지역 코드

지역 코드 + 일련번호 구조로 차량 번호판도 같은 식이다.

서울 71너 1234
[지역] [일련번호]

서울은 한 자리. 그 안의 일련번호로 다른 차들이 구분된다. 지역이 같은 차들끼리는 일련번호가 절대 안 겹친다. 서울이 다 차면 새 코드를 받는다.

MAC 주소도 똑같다. OUI 가 지역 코드, 뒤 6자리가 일련번호. 회사가 다 차면 새 OUI 를 받는다.

한 줄로 박아둘 산수

MAC 전체:    281조 가지
앞 6자리:    1,677만 회사 슬롯 (실제 4만 사용)
뒤 6자리:    1,677만 일련번호 (한 회사 안)
Apple:       850 OUI × 1,677만 = 142억 개 칩 가능

이 산수가 손에 잡히면, MAC 주소가 왜 “공장 출하 시 영구” 일 수 있는지 자기 입에서 답이 나온다 — 숫자가 충분히 크니까.

칩이란 무엇인가 — MAC 주소가 박힌 칩과 안 박힌 칩

TL;DR: 통신 매체에 직접 접근하는 칩에만 MAC 주소가 박히고, 한 노트북에 통신 칩 수만큼 MAC 주소가 있다.

MAC 주소가 “공장 출하 시 칩에 박힌다” 고 했는데, 칩이라는 단어 자체가 익숙하지 않을 수 있다. 한 단원으로 정공법.

칩 ≠ 반도체

먼저 자주 헷갈리는 자리부터.

반도체 (Semiconductor) = 재료의 한 종류. 전기를 잘 통하는 도체와 안 통하는 부도체의 중간. 실리콘이 대표적.

칩 (Chip) = 반도체 회로가 한 패키지로 묶인 단위. 하드웨어 부품의 한 단위.

반도체 = 재료 (밀가루 같은 원자재)
칩    = 그 재료로 만든 완제품 (만두 한 봉지)

뉴스에서 “반도체 산업” 이라고 하면 칩 산업까지 포함해 부르는 결이지만, 엄밀히는 다른 층위다.

더 풀어쓰면

실리콘     : 원자재 (모래에서 정제)
웨이퍼     : 실리콘을 얇게 자른 원판
트랜지스터 : 반도체로 만든 가장 작은 스위치 한 알
회로       : 트랜지스터 수십억 개를 연결한 설계
다이 (die) : 웨이퍼에서 잘라낸 회로 한 조각
칩 (chip)  : 다이를 패키지로 감싸 핀까지 단 완제품

칩 = 패키지화된 완제품. 핀이 박힌 검은 사각형이 칩이다.

노트북에 박힌 칩들

맥북 한 대를 열면 다음 칩들이 들어 있다.

CPU  (M3·M4 등) — 연산
GPU  (CPU 안에 통합 또는 별도) — 그래픽
RAM  (메모리 칩 4~8개) — 임시 저장
SSD  (저장 칩) — 영구 저장
Wi-Fi 칩 — 무선 통신
Bluetooth 칩 (Wi-Fi 와 통합인 경우 많음)
Ethernet 컨트롤러 (LAN 포트 있는 경우)
카메라 센서 칩
디스플레이 컨트롤러 칩
오디오 칩
전력 관리 칩 (PMIC)
보안 칩 (Secure Enclave)

이 중에서 MAC 주소가 박힌 칩 은 한정된다.

MAC 박힌 칩 / 안 박힌 칩

[MAC 박힌 칩]
- Wi-Fi 칩
- Ethernet 컨트롤러
- Bluetooth 칩
- 셀룰러 모뎀 (4G·5G 모뎀)

[MAC 안 박힌 칩]
- CPU·GPU·RAM·SSD
- 카메라·디스플레이·오디오
- 전력 관리·보안 칩

기준은 단순하다. 네트워크 매체 (Wi-Fi 전파·이더넷 케이블·Bluetooth) 에 직접 접근하는 칩에만 MAC 주소가 박힌다. 나머지는 외부와 통신을 안 하니 식별자가 필요 없다.

한 노트북 = MAC 주소 여러 개

이 결과가 처음 보면 살짝 의외다. 노트북 한 대가 MAC 주소를 한 개만 가진 게 아니라 통신 칩 수만큼 가진다.

맥북의 경우:

Wi-Fi 칩      → MAC 1개  (예: 14:7D:DA:11:22:33)
Bluetooth 칩  → MAC 1개  (예: 14:7D:DA:11:22:34)
Ethernet 컨트롤러 (있다면) → MAC 1개

ifconfig 를 치면 여러 인터페이스가 보이는 이유가 이거다 (en0, en1, bluetooth…). 각 인터페이스마다 다른 MAC.

$ ifconfig | grep ether
  ether 14:7d:da:11:22:33   (en0 — Wi-Fi)
  ether 14:7d:da:11:22:34   (Bluetooth)

공유기에는 MAC 주소가 몇 개

같은 논리로 공유기를 분해해 보면 통신 인터페이스가 더 많다.

공유기 통신 인터페이스
- WAN 포트 (인터넷 회선 연결)        → MAC 1개
- LAN 포트 ×4 (집 안 기기 연결)     → MAC 1~4개 (스위치 칩 결에 따라)
- 2.4GHz Wi-Fi                       → MAC 1개
- 5GHz Wi-Fi                         → MAC 1개
- (있다면) 6GHz Wi-Fi               → MAC 1개

가정용 공유기 1대가 보통 MAC 4~8개를 가진다. 같은 공유기 안의 MAC 들끼리도 다 다르다 (각 칩이 별도 일련번호).

한 줄 정리

칩 = 반도체로 만든 완제품 한 단위. 통신 칩에만 MAC 박힘. CPU·RAM 같은 비통신 칩에는 MAC 없음. 한 노트북·공유기에 MAC 여러 개 (통신 칩 수만큼).

MAC vs IP — 둘 다 주소인데 4가지 결정적 차이

TL;DR: MAC 주소는 주민등록번호, IP 주소는 현재 주소. 부여 시점·유효 범위·계층·용도가 한 줄씩 다르다.

여기서 두 주소를 옆에 놓고 비교한다. 표 한 장으로 결이 보이지만 그 다음에 한 줄씩 풀어야 머리에 박힌다.

비교표

기준 MAC 주소 IP 주소
부여 시점 공장 출하 시 (영구) 네트워크 연결 시 (임시)
변경 빈도 거의 안 바뀜 와이파이마다 바뀜
유효 범위 같은 LAN 안에서만 전 세계
계층 Layer 2 (데이터 링크) Layer 3 (네트워크)
용도 다음 hop 의 기기 전체 여정 출발·도착

차이 1 — 부여 시점이 다르다

MAC 주소는 공장 출하 시 칩에 박힌다. 하드웨어 단계.

IP 주소는 네트워크에 연결할 때 부여받는다. 소프트웨어 단계.

집 와이파이에 연결하면 공유기가 IP 주소를 임대한다 (DHCP). 카페 와이파이에 연결하면 카페 공유기가 다른 IP 주소를 임대한다. 같은 노트북이 위치마다 다른 IP. MAC 주소는 그동안 안 바뀐다.

집:    IP=192.168.0.10  / MAC=14:7D:DA:11:22:33
카페:  IP=10.0.5.42     / MAC=14:7D:DA:11:22:33
회사:  IP=172.16.3.7    / MAC=14:7D:DA:11:22:33

→ IP 만 바뀜. MAC 은 영구.

차이 2 — 유효 범위가 다르다

IP 주소는 전 세계에서 유효. 공인 IP 주소라면 지구 반대편에서도 그 주소로 도달 가능. 사설 IP 주소도 자기 LAN 의 안에서는 유효.

MAC 주소는 같은 LAN 안에서만 유효. 라우터·공유기를 한 번 넘어가는 순간 의미가 사라진다.

이게 처음 보면 가장 이상한 자리다. 어떻게 한 hop 만 살아 있는 주소가 있을 수 있나?

답은 다음 단원 (패킷 4겹 양파) 에서 풀린다. 미리 한 줄로:

패킷이 라우터를 넘을 때마다 MAC 부분만 새 것으로 갈아끼워진다. IP 주소 부분은 안 바뀜.

이 갈아끼우기가 가능하려면 MAC 주소가 가장 바깥에 있어야 한다 (가장 바깥은 손이 닿는 자리). 그래서 패킷의 4겹 중 MAC 주소가 제일 바깥.

차이 3 — 계층이 다르다

OSI 7계층에서 MAC 주소는 Layer 2, IP 주소는 Layer 3.

Layer 4 (전송):       TCP·UDP·포트
Layer 3 (네트워크):   IP — 전체 여정의 출발·도착
Layer 2 (데이터 링크): MAC — 다음 hop 의 누구
Layer 1 (물리):       전기·빛·전파 신호

한 단계 차이. MAC 주소가 한 단계 더 아래 (물리에 가까움). IP 주소가 한 단계 위.

이 좌표계의 의미: 위 계층은 아래 계층을 모른다. IP 주소는 자기 밑이 와이파이인지 광케이블인지 모른다. 그게 좋은 구조 — 한 종류의 IP 주소 패킷이 모든 종류의 물리 매체 위에서 똑같이 흘러간다. 새로운 무선 기술이 나와도 IP 주소 부분은 안 바꿔도 된다.

차이 4 — 용도가 다르다

가장 중요한 차이.

IP 주소  = 전체 여정의 출발과 도착
         → 패킷이 한국→미국 가는 동안 안 바뀜
         → "어디서 어디로" 가 IP

MAC 주소 = 다음 hop 의 기기
         → 매 hop 마다 갈아끼워짐
         → "지금 한 발 다음 누구한테" 가 MAC

택시 비유로:

IP    = 출발지 (서울 강남) → 도착지 (뉴욕 맨해튼)
        — 택시 6대를 갈아타도 안 바뀜
MAC   = 지금 탄 택시의 다음 환승 지점
        — 택시 갈아탈 때마다 바뀜

여행 전체 = IP 주소의 일. 한 번의 환승 = MAC 주소의 일. 둘 다 필요하다.

비유 — 주민등록번호 vs 현재 주소

학습자 자생 비유. 한 줄로 모든 차이가 정리된다.

MAC = 주민등록번호
  - 평생 안 바뀜 (영구)
  - 본인 식별
  - 보통 안 보여줌 (한 LAN 안에서만 유의미)
  - 같은 번호의 사람이 전 세계 어디에도 없어야 함

IP = 현재 주소
  - 이사하면 바뀜 (임시)
  - 우편물 받는 자리
  - 외부에 알려야 우편 받을 수 있음
  - 같은 주소의 다른 집은 다른 도시면 OK (사설)

이 비유 한 줄을 머리에 박아두면 MAC vs IP 주소가 평생 안 헷갈린다.

한 줄로 박아둘 표

MAC IP 주소
비유 주민등록번호 현재 주소
변하나 평생 X 자주 O
어디까지 한 LAN 전 세계
다음 한 사람 전체 여정

패킷 4겹 양파 — 외울 정도로

TL;DR: 한 패킷은 MAC·IP 주소·포트·페이로드의 4겹 양파다. 자주 바뀌는 게 바깥, 영구한 게 안쪽.

여기서부터 이번 편의 가장 중요한 자리. 외우자. 외우기 전에 우선 결을 잡는다.

패킷이란 무엇인가

먼저 단어부터. 패킷 (Packet) = 네트워크에서 한 번에 보내는 데이터의 한 단위. 한 입에 보내는 한 봉투.

큰 데이터 (1MB 이미지, 100KB JSON, 10KB HTML) 는 한 번에 못 보낸다. 잘게 잘라서 패킷 여러 개로 나눠 보낸다. 네트워크는 패킷 단위로 흘러간다.

1 MB 이미지 → 약 700개 패킷으로 분할
각 패킷    → 약 1,500바이트 (이더넷 MTU)

한 패킷의 안쪽 풍경

여기가 핵심. 한 개의 패킷은 4겹 양파처럼 생겼다.

┌─────────────────────────────────────────┐
│  [Ethernet]  MAC src + MAC dst          │ ← 가장 바깥 (Layer 2)
│  ┌────────────────────────────────────┐ │
│  │  [IP]  IP src + IP dst             │ │ ← 한 겹 안 (Layer 3)
│  │  ┌─────────────────────────────┐   │ │
│  │  │  [TCP/UDP]  port + seq      │   │ │ ← 또 한 겹 안 (Layer 4)
│  │  │  ┌──────────────────────┐   │   │ │
│  │  │  │  [Payload]           │   │   │ │ ← 가장 안쪽 (Layer 7)
│  │  │  │  진짜 내용 (HTML 등) │   │   │ │
│  │  │  └──────────────────────┘   │   │ │
│  │  └─────────────────────────────┘   │ │
│  └────────────────────────────────────┘ │
└─────────────────────────────────────────┘
IP 주소 패킷 4겹 양파 — Ethernet/IP/TCP/Payload nested 구조
패킷의 4겹 양파 — MAC 주소 (가장 바깥) → IP 주소 → 포트 → Payload (가장 안쪽)

4겹의 의미

┌────────────┬──────────────────┬──────────────┐
│ 겹         │ 무엇이 들어있나   │ 누가 쓰나    │
├────────────┼──────────────────┼──────────────┤
│ 가장 바깥  │ MAC 주소 (src·dst)│ 같은 LAN 안 │
│            │                  │ 다음 hop     │
│ 한 겹 안   │ IP 주소 (src·dst)│ 전체 여정    │
│ 한 겹 더   │ 포트 (src·dst)   │ 어느 프로그램│
│ 가장 안쪽  │ Payload          │ 진짜 내용    │
└────────────┴──────────────────┴──────────────┘

가장 바깥 = MAC = 다음 사람. 한 겹 안 = IP 주소 = 전체 여정. 한 겹 더 = 포트 = 어느 프로그램 (브라우저인지·스카이프인지·게임인지). 가장 안쪽 = Payload = HTML·JSON·이미지 데이터 그 자체.

외울 한 문장

학습자 명시 — 외울 자리.

MAC 주소는 다음 사람, IP 주소는 전체 여정, 포트는 어느 프로그램, 페이로드는 진짜 내용.

💡 핵심: MAC 은 다음 사람, IP 주소는 전체 여정, 포트는 어느 프로그램, 페이로드는 진짜 내용.

이 한 문장을 입에서 자동으로 나오게 만들어두면, 앞으로 네트워크 어떤 자리를 만나도 “이건 4겹 중 어느 겹의 일인가” 를 즉시 좌표 잡을 수 있다.

왜 MAC 주소가 가장 바깥인가

이게 처음 보면 이상한 자리다. 영구한 IP 주소가 안에 있고, 매번 바뀌는 MAC 주소가 바깥에 있다. 보통은 영구한 게 안에 있을 것 같은데 반대다.

이유를 한 줄로:

자주 바뀌는 정보 = 가장 바깥 (손이 자주 닿는 자리). 영구 정보 = 안쪽 (안 만지게 보호).

라우터를 넘을 때마다 다음 hop 의 MAC 으로 갈아끼워야 한다. 가장 바깥에 있어야 갈아끼우기 쉽다. IP 주소·포트·페이로드는 안 만지고 통과시킨다.

hop 마다 일어나는 일

서울 노트북 → 미국 서버 패킷의 여정.

[hop 1] 서울 노트북 → 집 공유기
  바깥 MAC: 노트북 MAC → 공유기 MAC
  IP:        서울 IP → 미국 서버 IP (안 바뀜)

[hop 2] 집 공유기 → ISP 라우터
  바깥 MAC: 공유기 MAC → ISP 라우터 MAC (갈아끼움)
  IP:        서울 IP → 미국 서버 IP (안 바뀜)

[hop 3] ISP → 백본 라우터
  바깥 MAC: 또 갈아끼움
  IP:        안 바뀜

... (15~20 hop) ...

[hop N] 미국 서버 LAN 라우터 → 서버
  바깥 MAC: 마지막 갈아끼움 (서버의 MAC)
  IP:        도착

MAC 주소만 매번 바뀐다. IP 주소는 출발부터 끝까지 똑같다. 이게 바깥/안쪽 배치의 이유.

택배 박스 비유 — 4겹 라벨

학습자 자생 비유. 패킷 4겹을 가장 정확하게 잡는다.

[택배 박스 4겹 라벨]

┌─────────────────────────────────────┐
│ ▓▓▓ 가장 바깥 라벨 ▓▓▓               │
│ "오늘 운전 기사 김 씨 → 다음 거점     │
│  강남 물류센터"                       │
│ (대전 도착하면 박 씨 → 천안센터로     │
│  갈아끼움)                            │
│ → MAC 주소                            │
│                                      │
│ ┌─────────────────────────────────┐ │
│ │ ░░░ 한 겹 안 라벨 ░░░             │ │
│ │ "발송지: 서울 강남 → 도착지: 부산 │ │
│ │  해운대"                          │ │
│ │ (영구 — 절대 안 바꿈)             │ │
│ │ → IP 주소                         │ │
│ │                                  │ │
│ │ ┌────────────────────────────┐   │ │
│ │ │ ▒▒▒ 또 한 겹 안 라벨 ▒▒▒    │   │ │
│ │ │ "받는 집의 어느 방"          │   │ │
│ │ │ (안방·서재·아이방)           │   │ │
│ │ │ → 포트                       │   │ │
│ │ │                             │   │ │
│ │ │ ┌─────────────────────┐    │   │ │
│ │ │ │ 진짜 물건            │    │   │ │
│ │ │ │ (책·옷·전자제품)     │    │   │ │
│ │ │ │ → Payload (HTML 등) │    │   │ │
│ │ │ └─────────────────────┘    │   │ │
│ │ └────────────────────────────┘   │ │
│ └─────────────────────────────────┘ │
└─────────────────────────────────────┘

택배는 거점을 거칠 때마다 가장 바깥의 운전기사·다음 거점 라벨이 갈아끼워진다. 발송지·도착지 라벨은 한 번 붙이면 끝까지 같다. 안방·서재 라벨은 받는 집에 들어가서 분류할 때만 본다. 진짜 물건은 박스 안.

패킷 4겹과 정확히 1대1 대응.

운전기사·다음 거점 라벨   → MAC 주소 (가장 바깥)
발송지·도착지 라벨        → IP 주소 (한 겹 안)
안방·서재 라벨            → 포트 (또 한 겹 안)
진짜 물건                 → Payload (가장 안쪽)

이 비유를 한 번 머리에 그려두면, 패킷의 4겹이 왜 그렇게 배치됐는지 자기 입에서 답이 나온다 — 거점마다 갈아끼우는 라벨이 가장 바깥이니까.

4겹 헤더 크기

수치로 잡으면:

가장 바깥 MAC 헤더:    14 바이트
한 겹 안 IP 헤더:      20 바이트 (IPv4)
또 한 겹 안 TCP 헤더:  20 바이트 (TCP) / 8 바이트 (UDP)
가장 안쪽 Payload:     1,460 바이트까지 (MTU 기준)
─────────────────────────────────────
총                      약 1,500 바이트 (MTU)

한 패킷 1,500 바이트 중 헤더 54바이트 (3.6%) + 페이로드 1,460바이트 (96.4%). 헤더 비율이 작은 게 좋다 (오버헤드 적음).

한 줄 정리 — 외워라

MAC 주소는 다음 사람, IP 주소는 전체 여정, 포트는 어느 프로그램, 페이로드는 진짜 내용.

자주 바뀌는 게 바깥, 영구한 게 안쪽.

택배 박스의 4겹 라벨과 정확히 같다.

이 단원이 머리에 박히면 N3 (TCP·UDP·포트), N4 (HTTPS), N5 (DNS) 모두 같은 좌표계 위에서 풀린다.

FROM 바이브코딩 태일러 · 매주 월요일
바빠도 5분이면 읽는
이번 주 AI 흐름
태일러가 고른 AI 뉴스 TOP 3 · 벤치마크 순위 · 급상승 키워드 · 판단 기준 보너스. 광고 없는 클린 미디어입니다.

무료로 받아보기 →

선착순 100명 영구 무료 · 언제든 해지

iPhone Private Wi-Fi 주소 — MAC 추적의 결과 방어

TL;DR: MAC 주소가 영구라서 광고망 추적이 가능해졌고, Apple 이 2020년부터 와이파이마다 다른 랜덤 MAC 주소를 디폴트로 송출한다.

MAC 주소가 평생 안 바뀐다고 했다. 영구한 식별자라고 했다. 이게 좋은 면도 있고 나쁜 면도 있다. 나쁜 면이 점점 커져서, Apple·Google 이 디폴트 동작을 통째로 바꿨다.

카페·공항 와이파이가 MAC 주소를 본다

자기 노트북·아이폰이 어떤 와이파이에 연결될 때, 그 와이파이의 운영자 (스타벅스·공항·호텔) 는 MAC 주소를 로그로 남길 수 있다. 합법이고, 실제로 거의 다 남긴다.

그러면 다음 풍경이 가능해진다.

[2024-03-01 10:00] 강남 스타벅스
  → MAC 14:7D:DA:11:22:33 접속, 2시간 머무름

[2024-03-01 14:00] 명동 스타벅스
  → 같은 MAC 다시 접속

[2024-03-02 09:00] 인천공항
  → 같은 MAC 다시 접속

운영자가 같은 회사 (스타벅스 코리아) 거나 데이터를 광고망에 팔면, 한 사람의 동선이 MAC 한 줄로 따라 잡힌다. 이름·전화번호 없이도 기기 단위 추적이 가능하다.

이게 처음 나온 게 2010년대 초반. 2014년쯤부터 광고 업계가 본격적으로 사용. “당신이 어느 매장에 며칠에 한 번 가는지” 가 MAC 으로 추적되는 자리.

Apple 의 대응 — Private Wi-Fi Address (2020)

iOS 14 (2020년 9월) 부터 Apple 이 디폴트 동작을 바꿨다. 각 와이파이마다 다른 랜덤 MAC 주소를 송출.

집 와이파이:    랜덤 MAC = 16:23:5F:AA:BB:CC
스타벅스 강남:  랜덤 MAC = 7E:91:42:DD:EE:FF
스타벅스 명동:  랜덤 MAC = 3A:B1:88:11:22:33
인천공항:      랜덤 MAC = 92:5C:7D:44:55:66

같은 노트북·아이폰이 와이파이마다 다른 MAC 주소를 송출. 광고망이 같은 사람으로 못 잇는다.

[동작 확인] iPhone 설정 → Wi-Fi → 연결된 와이파이의 (i) → “프라이빗 Wi-Fi 주소” 가 켜져 있다. 디폴트 ON. macOS 도 Sonoma (2023년 9월) 부터 같은 결로 디폴트 ON.

“각 와이파이마다 일관” 의 의미

랜덤이지만 같은 와이파이에는 같은 랜덤 MAC 을 쓴다.

집 와이파이 첫 접속:    16:23:5F:AA:BB:CC 부여
집 와이파이 다음 접속:  같은 16:23:5F:AA:BB:CC 사용
집 와이파이 한 달 뒤:   같은 16:23:5F:AA:BB:CC 사용

왜 같은 와이파이엔 일관 MAC 주소를 쓰나? 이유 두 가지.

(1) DHCP 임대의 안정성: 매번 다른 MAC 으로 접속하면 공유기가 매번 새 IP 주소 임대를 발급. 같은 노트북인데 매번 새 사람으로 인식. 충돌·낭비. (DHCP 의 본격 정공법은 3편)

(2) MAC 화이트리스트와의 호환: 회사·학교·공유기에서 “이 MAC 주소만 허용” 정책을 쓰는 자리가 많다. 매번 랜덤이면 그 정책이 깨진다.

같은 와이파이엔 일관 MAC, 다른 와이파이엔 다른 MAC. 이 결로 추적 방지 + 호환성 둘 다.

실제 차이가 보이는 자리

ifconfig | grep ether 를 두 와이파이에서 쳐 보면:

[집 와이파이]
$ ifconfig en0 | grep ether
  ether 16:23:5f:aa:bb:cc

[스타벅스 와이파이]
$ ifconfig en0 | grep ether
  ether 7e:91:42:dd:ee:ff

같은 노트북인데 MAC 주소가 다르다. 칩에 박힌 진짜 MAC 주소는 따로 있고, OS 가 송출만 가짜로 한다.

진짜 MAC 주소를 보려면 시스템 로그를 깊이 봐야 하고, 일반 사용자에겐 불필요. 자기 노트북도 자기에게 가짜 MAC 주소를 보여준다.

학습자 자생 비유 — 옷 갈아입고 카페 가기

영구 MAC = 자기 얼굴
랜덤 MAC = 매장마다 다른 옷·모자

옷·모자가 다르면 같은 매장 안에서는 일관 (CCTV 가 한 사람으로 추적), 다른 매장에서는 다른 사람으로 보임. 광고망이 매장 너머로 못 잇는다.

MAC 화이트리스트와 충돌

학교·회사 와이파이가 MAC 등록을 요구하면 Private Wi-Fi 가 방해된다. 매번 다른 MAC 이면 등록이 무의미.

해결: 그 와이파이에서만 Private Wi-Fi 를 끈다. iPhone 설정 → 그 Wi-Fi → “프라이빗 Wi-Fi 주소” 를 OFF.

[일반 와이파이 — 디폴트 ON]
  카페·공항·집 → 추적 방지 우선

[학교·회사 와이파이 — 수동 OFF]
  MAC 등록 정책과 호환 우선

이걸 안 끄면 학교 와이파이에 자꾸 접속이 안 되는 자리가 생긴다. 처음 만나는 사람이 자주 막히는 자리.

한 줄 정리

MAC 영구 → 광고망이 추적 가능 Apple iOS 14 (2020) 디폴트 ON: 와이파이마다 랜덤 MAC 같은 와이파이엔 일관 (DHCP·화이트리스트 호환), 다른 와이파이엔 다름 학교·회사 등록 정책 자리에선 OFF

deferred: Private Wi-Fi 가 DHCP 임대를 어떻게 다루는지의 본격 정공법은 3편 (공유기·NAT·DHCP) 에서. 추적·사생활 측면의 본격은 보안 트랙 (S 시리즈) 에서.

Wireshark 로 직접 까보기 — 자기 케이스 환원

TL;DR: Wireshark 한 번이면 4겹 양파가 자기 노트북에서 매 순간 흐르는 게 눈에 들어온다.

위에서 말한 4겹 양파를 자기 노트북에서 진짜로 본다. Wireshark 라는 도구로.

📌 참고: Wireshark 한 번 설치해두면 IP 주소·MAC 주소·포트·페이로드의 4겹이 자기 노트북에서 매 순간 흐르는 게 눈에 잡힌다.
IP 주소 패킷 4겹 양파 — Wireshark 로 본 Ethernet/IP/TCP/Payload 구조
한 IP 주소 패킷의 4겹 — MAC 다음 사람·IP 전체 여정·포트 어느 프로그램·페이로드 진짜 내용

Wireshark 설치

맥북:

$ brew install --cask wireshark

윈도우·리눅스: wireshark.org 에서 직접 다운로드.

설치 후 권한 (네트워크 패킷 캡처) 을 허용해야 한다. 첫 실행 시 안내가 뜬다.

첫 캡처

Wireshark 를 켠 뒤 자기 와이파이 인터페이스 (en0 또는 Wi-Fi) 를 더블클릭. 즉시 패킷이 폭포처럼 흐르기 시작한다 — 1초에 수십~수백 개.

너무 많아서 못 본다. 필터를 건다. 위쪽 필터창에:

http

라고 치면 HTTP 트래픽만 남는다. 또는 특정 도메인:

ip.dst == 142.250.71.46

(구글의 IP 주소 중 하나).

한 패킷의 4겹 펼쳐보기

캡처된 패킷 중 하나를 클릭하면 아래 창에 4겹이 펼쳐진다.

▶ Frame 42: 1500 bytes on wire
▶ Ethernet II, Src: 14:7d:da:11:22:33, Dst: a4:5e:60:aa:bb:cc
   ┌───────────────────────────────────┐
   │ ← 가장 바깥 (Layer 2): MAC 주소     │
   │   Src = 노트북 MAC                  │
   │   Dst = 공유기 MAC                  │
   └───────────────────────────────────┘

▶ Internet Protocol Version 4, Src: 192.168.0.10, Dst: 142.250.71.46
   ┌───────────────────────────────────┐
   │ ← 한 겹 안 (Layer 3): IP 주소        │
   │   Src = 노트북 사설 IP 주소              │
   │   Dst = 구글 서버 공인 IP 주소           │
   └───────────────────────────────────┘

▶ Transmission Control Protocol, Src Port: 52341, Dst Port: 443
   ┌───────────────────────────────────┐
   │ ← 또 한 겹 안 (Layer 4): 포트        │
   │   Src Port = 노트북의 임의 포트     │
   │   Dst Port = 443 (HTTPS)            │
   └───────────────────────────────────┘

▶ Transport Layer Security
   ┌───────────────────────────────────┐
   │ ← 가장 안쪽 (Layer 7): 진짜 내용     │
   │   (HTTPS 라서 암호화되어 안 보임)    │
   └───────────────────────────────────┘

위에서 그림으로만 봤던 4겹이 자기 노트북에서 매 순간 흐르고 있다. 이걸 한 번 직접 확인하면 패킷의 모양이 평생 안 잊힌다.

MAC 갈아끼움을 직접 보기

같은 패킷이 라우터 두 대를 넘을 때 MAC 주소가 바뀌는 걸 보려면 양쪽 라우터에 접근 권한이 있어야 한다 (실제로는 어렵다). 대신 한쪽에서:

  • 출발 패킷: Src MAC = 노트북, Dst MAC = 공유기
  • 도착 패킷 (응답): Src MAC = 공유기, Dst MAC = 노트북

같은 IP 주소끼리 주고받는 패킷의 MAC 부분만 출발/도착으로 바뀌어 있다. 이게 한 LAN 안 hop 의 풍경.

tcpdump — 터미널에서 더 가벼운 자리

Wireshark 가 GUI 라면 tcpdump 는 터미널 도구. 가볍게 한두 줄만 뽑을 때.

$ sudo tcpdump -i en0 -c 5
14:7d:da:11:22:33 > a4:5e:60:aa:bb:cc, IPv4, length 1500: ...

이 한 줄에서 앞 두 MAC 주소가 보인다. 첫 번째가 출발 MAC, 두 번째가 도착 MAC. 이게 4겹의 가장 바깥.

자기 환경에서 5분 환원

자기 케이스 환원 절차:

  1. Wireshark 설치
  2. en0 더블클릭으로 캡처 시작
  3. 브라우저에서 임의 사이트 한 번 방문
  4. 캡처 멈추기
  5. 임의 패킷 클릭 → 4겹 펼쳐 보기
  6. Ethernet → IP → TCP → 그 안의 내용 한 번씩 확인
  7. 한 줄 외우기: “MAC 다음 사람, IP 주소 전체 여정, 포트 어느 프로그램, 페이로드 진짜 내용”

이 5분이 이번 편의 모든 단원을 한 자리에 묶어준다.

핵심 3가지 — 이 편을 닫는 한 장

1. IP 주소 = 32비트의 약속

192.168.0.10 은 점으로 끊긴 4토막이 아니라 32비트 한 정수의 사람용 표기. 8비트씩 4토막으로 끊어 적기로 한 약속. 가능한 IP 주소는 약 43억, 인터넷 기기 수에 비해 부족 → NAT (3편) 와 IPv6 로 대처.

같은 IP 주소도 앞 (네트워크 부분) + 뒤 (호스트 부분) 으로 나뉘어, 같은 LAN 의 기기들끼리는 앞부분이 같다. 어디까지가 앞인지는 서브넷 마스크 (/24, /16, /8) 가 정한다.

2. MAC 주소 = 주민등록번호

MAC 주소는 공장 출하 시 통신 칩에 박힌 영구 식별자. 16진수 12자리 = 48비트 = 약 281조 가지. 앞 6자리는 제조사 (OUI), 뒤 6자리는 일련번호. 한 노트북에 통신 칩 수만큼 (보통 2~3개) 있고, 공유기에는 4~8개.

IP 주소와의 결정적 차이:

IP   = 현재 주소 (이사하면 바뀜, 전 세계 유효, 전체 여정)
MAC  = 주민등록번호 (평생 안 바뀜, 한 LAN 만 유효, 다음 hop)

3. 패킷 4겹 양파 — 외워라

가장 바깥  : MAC 주소  → 다음 사람 (매 hop 갈아끼움)
한 겹 안   : IP 주소   → 전체 여정 (영구)
또 한 겹   : 포트       → 어느 프로그램
가장 안쪽  : Payload   → 진짜 내용

택배 박스의 4겹 라벨과 정확히 같다. 자주 바뀌는 게 바깥, 영구한 게 안쪽.

암기 한 문장:

MAC 주소는 다음 사람, IP 주소는 전체 여정, 포트는 어느 프로그램, 페이로드는 진짜 내용.

이 한 문장이 입에서 자동으로 나오면 N3·N4·N5 가 같은 좌표계 위에 올라간다.

다음 편 예고 — 2B편 TCP·UDP·HTTP 진화·웹 동작

이번 편(2A)에서 짚기만 하고 더 깊이는 미뤄둔 자리가 있다. 2B편이 통째로 그 자리.

2B편이 정공법으로 푸는 자리

[프로토콜 계층 — 패킷의 한 겹 안쪽]
  TCP 가 4가지를 어떻게 보장하나 (신뢰성·순서·에러·흐름 제어)
  3-way handshake — SYN·ACK·시퀀스 번호의 정체
  SYN flood 공격 + SYN cookies 방어 (반쯤 열린 연결 자생 통찰)
  UDP — TCP 의 정반대 (게임·영상이 왜 UDP)
  TCP·UDP 비용 비교 (CPU·메모리·헤더·전력)

[표준의 결]
  RFC·IETF·OSI·TCP — 4단어 정공법
  RFC 가 시대마다 바뀌나 / AI 시대에도 안 변하는가
  HTTP 진화 사슬 — 1.0 / 1.1 / 2 / 3
  Stream — 1차선 → 8차선 → 8차선 독립
  HTTP/3 가 TCP 를 떠난 3가지 이유

[모바일·실전]
  모바일에 HTTP/3 가 좋은 4가지 — 김민수 카페→5G 시나리오
  Google 의 HTTP/3 $3B 투자 회수
  ChatGPT 가 HTTP/2 인 이유 (서버 간 통신의 결)
  ICMP·ping·게임 ping 끊김 4가지
  ARP — DNS 의 옆 자리

[웹의 실제 풍경]
  사이트가 깨지는 진짜 이유 4가지 (HTTP/2 가 아니다)
  같은 사이트 페이지 이동 시 keep-alive 의 결
  WebSocket = wss
  TTL 두 자리 + traceroute 가 작동하는 원리
  응용 계층 프로토콜 8가지 (HTTP·HTTPS·DNS·SMTP·FTP·SSH·WebSocket·gRPC)

2B편이 닫히면 패킷의 4겹 양파 중 안쪽 두 겹 (TCP·Payload) 이 손에 잡힌다. 2A·2B 가 한 묶음으로 IP 주소·MAC 주소·TCP·UDP·HTTP 의 좌표계가 완성됨.

그 다음 — 3편

2B 가 끝나면 3편으로 넘어간다.

[3편 — 공유기·LAN·NAT·DHCP]
  사설 IP 주소 가 외부로 나갈 때 어떻게 변환되는가 (NAT)
  공유기가 IP 를 어떻게 분배하는가 (DHCP DORA)
  공유기 = 집 비유 (5축) — 동시 접속·문 보안·신호 강도
  같은 학교 안 자리 옮길 때 와이파이 일시 끊기는 진짜 이유
  카페 와이파이가 갑자기 느려지는 자리
  공유기 살 때 "WAN 처리량" 같은 숫자가 무엇을 결정하는지
  ARP cache 의 본격 (2B 의 좌표 회수)

3편이 닫히면 N1~N3 (네트워크 입문 3부작) 가 통째로 닫힘. 그 다음 한 박자 쉬고 Docker (인프라 트랙 진입) 로 넘어간다.

FAQ

Q1. 노트북 MAC 주소가 평생 안 바뀐다는데, 그러면 추적당하지 않나요?

이 우려가 정확하다. 본문의 “iPhone Private Wi-Fi 주소” 단원에서 통째로 풀었다. 요약: Apple iOS 14 (2020) 부터 디폴트 ON. 와이파이마다 랜덤 MAC 송출, 같은 와이파이엔 일관 MAC. 학교·회사의 MAC 화이트리스트 와이파이에선 수동 OFF.

deferred: DHCP 임대 메커니즘과의 본격 정합은 3편. 사생활·추적의 본격 정공법은 보안 트랙 (S 시리즈).

Q2. IP 주소가 32비트면 IPv6 의 128비트는 몇 가지인가요?
IPv4 (32비트) = 2^32 ≈ 43억
IPv6 (128비트) = 2^128 ≈ 3.4 × 10^38

지구 위 모래알 수 (10^21 추정) 의 10^17 배. 사실상 무한.

Q3. MAC 주소를 일부러 바꿀 수 있나요?

OS 수준에서 가능하다 (MAC spoofing). 맥에서는:

$ sudo ifconfig en0 ether aa:bb:cc:dd:ee:ff

다만 재부팅하면 원래대로 돌아온다 (칩에 박힌 게 원래값). 실시간 변경만 가능.

Q4. 패킷 4겹 모두가 매번 4개로 정해져 있나요?

아니다. HTTPS 패킷에는 TLS 라는 추가 계층이 더 있다:

Ethernet → IP → TCP → TLS → HTTP → Payload

5겹 또는 6겹. 다만 MAC·IP·TCP·Payload 의 4축은 모든 패킷에 공통. 추가 계층이 있어도 이 4축의 좌표계는 유지된다.

Q6. 와이파이를 끄고 켜면 IP 주소가 바뀌는 자리가 있나요?

보통 같은 IP 주소 받음 (DHCP 임대 시간 안). 임대 시간이 만료된 뒤거나 공유기가 다른 기기에 그 IP 주소를 줬다면 다른 IP 주소 받는다. 임대 시간은 보통 12~24시간.

Q7. 한국·일본·미국 IP 주소의 풍경이 다른가요?

각국이 다른 IPv4 블록을 받는다. 한국은 211.x.x.x, 218.x.x.x 같은 대역. 미국은 72.x.x.x, 108.x.x.x. 일본은 133.x.x.x 등. 이게 GeoIP (IP 주소로 위치 추정) 의 원리. 100% 정확하지 않다 (VPN·이전·재할당).

Q8. WebSocket 의 패킷도 같은 4겹인가요?

같다. WebSocket 은 HTTP 로 시작해 Upgrade 로 전환되는 응용 계층. 밑의 Ethernet·IP·TCP 는 똑같다. WebSocket 자체는 Payload 의 일부.

소스 리스트 (Sources)

  • 진혜진, 『네트워크 개론 3판』, 한빛아카데미, 2023 — 메인 교재 (Ch.5 IP 주소 프로토콜·Ch.6 ARP)
  • 오키타 토시야, 『한 권으로 끝내는 네트워크 기초』, 길벗, 2022 — 보조 교재

RFC

  • RFC 791 — Internet Protocol (IPv4, 1981)
  • RFC 1918 — Address Allocation for Private Internets (사설 IP 주소 대역)
  • RFC 826 — ARP (Ethernet Address Resolution Protocol)
  • RFC 8200 — IPv6

도구

  • Wireshark (https://www.wireshark.org/) — 패킷 캡처·분석
  • tcpdump (man tcpdump) — 터미널 패킷 분석
  • IEEE OUI 등록부 (https://standards-oui.ieee.org/) — MAC 제조사 코드 조회

시리즈 안

AUTHOR · 저자
바이브코딩 태일러 (VibeCoding Tailor)
바이브코더 CS심화코스 시리즈 집필. 비전공자 학습자가 던진 30+개의 질문을 raw archive 로 받아 IP 주소·MAC 주소·패킷 4겹 양파의 좌표계로 풀어 정리. 2편은 학습자 마이클의 의문 — “노트북에 도장처럼 박힌 어떤 번호” — 한 줄에서 출발했다.
운영: 테일러의 은신처 (shuntailor.net) · Lovable 공식 앰배서더
바이브코딩 태일러
바이브코딩 태일러
AI의 작동 원리와 비즈니스 적용을 일본어·한국어로 기록합니다. 매주 월요일 뉴스레터 발행 중.
뉴스레터 구독하기 →

댓글

JAKO