[NETWORK] 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)에서 관리

Leave a Reply

Your email address will not be published. Required fields are marked *