MAC 주소 쉽게 이해하기: 네트워크 식별자의 역할과 의미

하드웨어 식별자, MAC 주소와 역할과 구조

🔍 MAC 주소란?

MAC 주소(Media Access Control Address)는 네트워크와 연결된 각 장치(Network Interface Card, NIC)의 고유 식별자다.

이는 하드웨어 수준에서 장치를 식별하기 위한 값으로, 보통 16진수 형식의 48bit(6bytes) 주소로 표현된다.

각 바이트는 : 또는 -를 사용해 구분하며, 샘플은 다음과 같다.

00:1A:2B:3C:4D:5E


🧬 MAC 주소 구조

MAC 주소는 일반적으로 다음과 같이 구성된다.

OUI (Organizationally Unique Identifier): 앞의 3바이트는 제조사 식별 코드 (예: Apple, Intel 등)로 위 샘플에서는 00:1A:2B가 OUI이다.

Device Identifier: 뒤의 3바이트는 각 제조사가 장치에 부여하는 고유 번호

MAC 주소는 제조 시 하드웨어에 고정되어 부여되며, 중복이 거의 없도록 관리된다.

3바이트(24비트)는 이론적으로 최대 16,777,215개의 고유 번호를 구분할 수 있지만, 실제로는 브로드캐스트·멀티캐스트 등 특수 용도로 예약된 비트와 주소 범위가 존재하므로, 하나의 식별 코드로 관리 가능한 고유 번호의 수는 이보다 훨씬 적다.

단적인 예로, 아이폰의 경우 한 대의 기기 안에도 Wi-Fi MAC 주소와 Bluetooth MAC 주소 두 개가 존재한다. 지금까지 판매된 아이폰의 누적 대수가 수억 대에 달하기 때문에, 단일 OUI만으로는 모든 기기를 식별하기 어려워 여러 개의 OUI를 사용하고 있다.

MAC 주소는 IEEE(Institute of Electrical and Electronics Engineers)에서 관리하고 있으며, 애플에서만 수백 개 이상의 OUI를 보유한 것으로 알려져 있다.


📡 MAC 주소는 어디서 사용될까?

MAC 주소는 주로 **데이터링크 계층(OSI 2계층)**에서 사용된다.

예를 들어:

  • 같은 네트워크(서브넷) 내에서 A → B로 데이터를 전송할 때, IP 주소는 목적지를 논리적으로 식별하지만 실제 이더넷 프레임은 MAC 주소를 통해 정확한 장비를 찾아 전송한다.

    IP 주소와 MAC 주소의 데이터 전달 방식

📘 MAC vs IP 주소의 차이

항목MAC 주소IP 주소
계층OSI 2계층 (데이터링크)OSI 3계층 (네트워크)
성격물리적(고유) 식별자논리적(변경 가능) 식별자
예시00:1A:2B:3C:4D:5E192.168.1.1
변경 가능성일반적으로 불변 (수정도 가능하긴 함)네트워크 변경에 따라 변동

🔄 통신 과정에서의 MAC 주소 역할

  1. A 컴퓨터가 B의 IP 주소를 알고 있을 때,
  2. 같은 네트워크라면 **ARP(Address Resolution Protocol)**를 통해 해당 IP에 대응하는 MAC 주소를 요청
  3. B가 MAC 주소를 응답하고, A는 그 MAC 주소를 프레임의 목적지 주소로 설정하여 전송
  4. 이 프레임은 MAC 주소를 기준으로 B에 도달

💡 MAC 주소는 인터넷 전체에서 사용될까?

MAC 주소는 로컬 네트워크(같은 서브넷) 내에서만 사용된다.

서브넷을 넘어서는 통신에서는 IP 주소 기반 라우팅이 작동하며, 라우터는 다음 홉(HOP)의 MAC 주소만 사용하여 전달을 이어간다.

따라서 MAC 주소는 직접 연결된 네트워크에서만 의미를 가진다.


🔐 보안과 MAC 주소

MAC 주소는 고유하지만 주의할 점이 있다.

  • 🛠️ 소프트웨어적으로 위조(Spoofing) 가능
  • 🔒 일부 네트워크에서는 MAC 주소 기반 접근 제어(ACL) 적용
  • 🧭 MAC 필터링을 사용하는 네트워크에서는 등록되지 않은 MAC은 접근 불가

🧪 MAC 주소 확인 방법

MAC OS

ifconfig | grep ether

혹은:

networksetup -listallhardwareports

WINDOWS OS

ipconfig /all

✍️ 마무리

MAC 주소는 네트워크의 시작점에서 중요한 역할을 한다.

하드웨어의 신분증 같은 MAC 주소 덕분에 우리는 수많은 장치 간 정확한 데이터 전송을 경험할 수 있다.

IP 주소와 MAC 주소를 통한 데이터 전달 방식

목적지를 알려주는 IP 주소, 길을 알려주는 MAC 주소

인터넷이나 사내 네트워크에서 우리가 데이터를 요청하거나 API 통신을 수행할 때, 실제로는 수많은 네트워크 장비와 프로토콜이 이 작업을 처리한다. 특히 중요한 두 가지 개념이 바로 IP 주소MAC 주소다.

OSI 7계층 중 네트워크 계층(IP 주소)과 데이터 링크 계층(MAC 주소)에서 실제 데이터 전송에 어떤 역할을 하고, 어떻게 협력하여 목적지까지 데이터를 정확히 전달하는지를 알아보자.


✅ IP 주소와 MAC 주소, 무엇이 다른가?

항목IP 주소MAC 주소
종류논리 주소 (변경 가능)물리 주소 (고유값)
용도목적지 찾기 (라우팅)실제 전송 대상 식별
계층네트워크 계층 (3계층)데이터 링크 계층 (2계층)
범위세계적 식별자 (라우팅용)동일 네트워크(서브넷) 내 식별자

🔁 실제 데이터 전송 흐름 요약

예시: A 기기(192.168.1.2) → B 기기(192.168.2.3)로 전송할 경우

1. 출발지 A는 B의 IP 주소만 알고 있다.

2. A는 자신의 서브넷 마스크(예: 255.255.255.0, 하단 설명 참고)를 기준으로 B가 같은 서브넷(동일 네트워크)에 있는지 판단한다.

3. A와 B가 다른 서브넷이라면, A는 우선 기본 게이트웨이(라우터)의 MAC 주소를 ARP(하단 설명 참고)로 요청한다.

4. ARP 응답으로 게이트웨이의 MAC 주소를 받아 프레임(데이터 링크 계층에서 사용되는 데이터 전송 단위)을 작성해 전송한다.

5. 게이트웨이 라우터는 패킷(네트워크 계층에서 사용되는 데이터 전송 단위)을 디캡슐화하고 목적지 IP 주소를 확인한다.

6. 자신의 라우팅 테이블(하단 설명 참고)을 검색해 다음 목적지를 결정하고, 그 다음 라우터의 MAC 주소를 찾아 전송한다.

7. 이 과정은 목적지에 도달할 때까지 각 라우터에서 반복된다.

8. 최종 목적지 라우터는 B와 같은 서브넷에 있는 경우, B의 MAC 주소를 찾아 마지막 전송을 한다.


🔁 이 모든 과정은 패킷마다 반복된다

데이터는 실제로 수백 개의 작은 패킷으로 나뉘어 전송되며, 패킷은 최대 1500bytes, 프레임은 최대 패킷에 헤더(14bytes)와 검증 데이터 FCS(4bytes)가 추가된 1518bytes 크기를 가질 수 있다.

각 패킷은:

– IP 헤더 + TCP/UDP 헤더 → 3계층
– MAC 헤더 → 2계층

으로 캡슐화되며, 전달 중 계층마다 디캡슐화 및 재캡슐화가 발생한다.


🚥 홉(Hop)과 경로

– 각 라우터를 1홉(Hop)이라고 부른다.
– 한국에서 google.com까지는 대략 15~20홉 정도의 라우터를 거쳐 데이터가 전달된다.


🎯 MAC 주소만으로는 목적지를 못 찾는 이유

MAC 주소는 LAN(Local Area Network)에서만 유효하다.

라우터 밖의 MAC 주소는 알 수 없기 때문에 전 세계 통신은 IP 기반으로 경로를 계산하고, MAC 주소는 그때그때 다음 홉의 MAC 주소만 사용한다.


✍️ 예시 흐름 정리

[A] 192.168.1.2
  ↓ (ARP 요청 → 게이트웨이 MAC 획득)
[라우터 1] → [라우터 2] → ... → [최종 라우터]
  ↓ (B의 MAC 획득)
[B] 192.168.2.3

🧩 서브넷 마스크(Subnet Mask)란?

서브넷 마스크IP 주소를 네트워크 영역과 호스트 영역으로 나누기 위한 도구다.

즉, “이 IP 주소에서 어디까지가 네트워크고, 어디부터가 개별 장치(호스트)냐?“를 판단하는 기준이 된다.


🎯 왜 필요할까?

– IP 주소만 봐서는 이 기기가 **같은 네트워크(서브넷)**에 있는지 알 수 없다.
– 서브넷 마스크를 통해 IP 주소 범위를 구분하고, 같은 서브넷이면 직접 통신, 다르면 라우터(게이트웨이)를 통해 통신한다.


📘 예시로 이해하기

– IP 주소: 192.168.1.10
– 서브넷 마스크: 255.255.255.0 → /24

이 경우:

– 192.168.1까지가 네트워크 주소
– .10은 호스트 주소 (즉, 네트워크 내 개별 장치)

즉, 192.168.1.X는 모두 같은 서브넷


🧠 CIDR 표기

표기서브넷 마스크사용 가능한 호스트 수
/8255.0.0.0약 1,600만 개
/16255.255.0.0약 65,000개
/24255.255.255.0약 254개
/30255.255.255.2522개 (라우터 간 링크용)
/32255.255.255.2551개(단일 주소)


🧪 같은 서브넷인지 확인하는 방법

두 IP 주소가 같은 서브넷인지 확인하려면:

1. 두 IP 주소를 이진수로 변환
2. 서브넷 마스크를 이진수로 변환
3. IP & 서브넷 마스크 계산 → 나온 네트워크 주소가 같으면 같은 서브넷

예를 들어:
– A: 192.168.1.10
– B: 192.168.1.20
– 서브넷 마스크: 255.255.255.0
→ A와 B 모두 192.168.1.0 네트워크에 있음 → 같은 서브넷


🔍 ARP (Address Resolution Protocol)란?

ARP는 “이 IP 주소에 해당하는 MAC 주소를 알려줘!“라고 네트워크에 브로드캐스트 요청을 보내는 프로토콜.

– A → 네트워크 전체에 ARP Request
– 해당 IP 가진 기기 → ARP Reply로 MAC 주소 응답
– A는 받은 MAC 주소로 이더넷 프레임 구성하여 전송


🧠 라우팅 테이블이란?

라우터는 목적지 IP를 보고 “어느 방향으로 보내야 할지” 결정하는 라우팅 테이블을 가지고 있다.

예시

목적지 IP 범위넥스트 홉 (Next Hop)인터페이스
192.168.2.0/2410.1.1.2eth1
0.0.0.0/010.1.1.1 (기본 경로)eth0

– 192.168.2.3 → 192.168.2.0/24에 포함됨 → 해당 인터페이스로 전송
– 범위에 없으면 기본 경로로 전송 (보통 인터넷 게이트웨이)



MAC 주소(MAC Address)에 대한 공식적인 정보는 IEEE (Institute of Electrical and Electronics Engineers)에서 관리