들어가며
이번 글에서는 ARP의 기본 개념부터 시작해서, MAC 주소란 무엇인지, 스위치가 MAC 주소를 어떻게 학습하고 관리하는지 살펴보겠습니다. 또한 ARP의 실제 동작 과정을 단계별로 분석하고, 같은 서브넷과 다른 서브넷 간 통신에서 ARP가 어떻게 다르게 작동하는지 다양한 예시를 통해 정리해보도록 하겠습니다.
1. ARP 개요

ARP란?
ARP(Address Resolution Protocol)는 네트워크 계층(Layer 3)의 IP 주소를 데이터 링크 계층(Layer 2)의 MAC 주소로 변환하는 프로토콜입니다. 네트워크에서 실제 데이터를 전송하기 위해서는 최종적으로 MAC 주소가 필요한데, ARP는 이러한 주소 해석 과정을 담당합니다.
왜 ARP가 필요한가?
네트워크 통신을 할 때 우리는 일반적으로 IP 주소를 사용합니다. 하지만 실제 물리적인 네트워크 전송은 MAC 주소를 기반으로 이루어집니다. 송신자가 패킷을 전송하기 위해서는 수신자의 IP 주소와 함께 MAC 주소도 반드시 알아야 하는데, ARP는 바로 이 IP 주소를 MAC 주소로 변환해주는 역할을 수행합니다.
송신자가 패킷 전송 시 필요한 정보:
- 수신자의 IP 주소
- 수신자의 MAC 주소
2. MAC 주소의 이해
MAC 주소란?
ARP의 동작 원리에 들어가기 앞서 MAC 주소가 무엇인지 대해서 간략하게 짚고 넘어가도록 하겠습니다.
MAC(Media Access Control) 주소는 네트워크 인터페이스 카드(NIC)에 할당된 고유한 물리적 주소입니다. 48비트(6바이트) 길이로 구성되며, 일반적으로 16진수 형태로 표현됩니다.
MAC 주소 표기 방식:
Cisco 형식: 1111.2222.3333
Windows/Linux 형식: 11:11:22:22:33:33
다른 표기법: 11-11-22-22-33-33
MAC 주소의 구조

MAC 주소는 두 부분으로 나뉩니다. 앞 24비트는 제조사를 식별하는 OUI(Organizationally Unique Identifier)이며, 뒤 24비트는 제조사가 각 장치에 부여하는 고유 번호입니다.
IP 주소 vs MAC 주소
두 주소 체계는 서로 다른 계층에서 다른 목적을 수행합니다.
IP 주소:
- 논리적 주소 (변경 가능)
- 네트워크 계층(Layer 3)에서 사용
- 네트워크 간 라우팅 담당
MAC 주소:
- 물리적 주소 (하드웨어에 고정)
- 데이터 링크 계층(Layer 2)에서 사용
- 로컬 네트워크 내 전달 담당
특수한 MAC 주소
브로드캐스트 MAC 주소:
FFFF.FFFF.FFFF
동일 네트워크 세그먼트의 모든 장치에 전송할 때 사용되며, ARP 요청에서 활용됩니다.
멀티캐스트 MAC 주소:
첫 바이트의 마지막 비트가 1
예: 0100.5E00.0000
특정 그룹의 장치들에게 전송할 때 사용됩니다.
3. ARP의 동작 원리
ARP는 요청(Request)과 응답(Reply) 두 단계로 동작합니다. 간단한 네트워크 환경을 예로 들어 ARP 동작 과정을 살펴보겠습니다.
네트워크 구성 예시
Sender (172.23.4.1)
MAC: 1111.2222.3333
↓
[Switch]
↓
Receiver (172.23.4.2)
MAC: 2222.3333.4444
ARP Request (요청)
송신자가 수신자의 MAC 주소를 모르는 상황에서 ARP 요청을 보냅니다.
ARP 요청 메시지:
"172.23.4.2를 찾고 있습니다. MAC 주소가 무엇인가요?"
출발지 MAC: 1111.2222.3333
목적지 MAC: FFFF.FFFF.FFFF (브로드캐스트)
출발지 IP: 172.23.4.1
목적지 IP: 172.23.4.2
ARP 요청의 가장 큰 특징은 브로드캐스트 방식으로 전송된다는 것입니다. 목적지 MAC 주소를 FFFF.FFFF.FFFF로 설정하여 동일 네트워크 세그먼트 내의 모든 호스트가 이 메시지를 수신하게 됩니다.
ARP Reply (응답)
요청을 받은 호스트 중 해당 IP 주소를 가진 호스트만 응답합니다.
ARP 응답 메시지:
"저는 172.23.4.2입니다. 제 MAC 주소는 2222.3333.4444입니다."
출발지 MAC: 2222.3333.4444
목적지 MAC: 1111.2222.3333 (유니캐스트)
출발지 IP: 172.23.4.2
목적지 IP: 172.23.4.1
ARP 응답은 유니캐스트 방식으로 전송됩니다. 요청자에게만 직접 응답을 보내며, 이제 송신자는 수신자의 MAC 주소를 알게 되어 정상적인 통신이 가능해집니다.
이때, 중간에 있는 스위치 포트로 MAC 주소가 들어오게 되면 MAC 주소 테이블(MAC Address Table) 안에 해당 MAC 주소가 저장되어 ARP 캐시의 기능할 수 있게 되어 다음 Request를 보낼 때는 브로드캐스트로 보내지 않고, 유니캐스트로 바로 보낼 수 있게 됩니다.
4. ARP 캐시
ARP 캐시의 역할
매번 통신할 때마다 ARP 요청을 보내는 것은 비효율적입니다. 이를 해결하기 위해 운영체제는 ARP 캐시(ARP Cache)를 유지합니다. ARP 캐시는 한 번 해석한 IP-MAC 주소 매핑 정보를 일정 시간 동안 저장하여, 동일한 목적지로 통신할 때 ARP 요청 없이 바로 MAC 주소를 사용할 수 있게 합니다.
ARP 캐시의 장점:
- 불필요한 브로드캐스트 트래픽 감소
- 통신 지연 시간 단축
- 네트워크 효율성 향상
ARP 캐시 관리 명령어
Windows 환경:
# ARP 캐시 조회
arp -a
# ARP 캐시 삭제
netsh interface ip delete arpcache
Linux 환경:
# ARP 캐시 조회
arp -n
# ARP 캐시 삭제
ip -s -s neigh flush all
Cisco 라우터/스위치:
# ARP 캐시 조회
show arp
# ARP 캐시 삭제
clear arp-cache
5. 라우팅 환경에서의 ARP
다른 서브넷 간 통신
같은 서브넷 내에서는 ARP를 통해 직접 MAC 주소를 해석하여 통신하지만, 서로 다른 서브넷 간 통신에서는 라우터를 거쳐야 합니다. 이때 ARP의 동작 방식이 달라집니다.
네트워크 구성 예시

라우팅 과정에서의 ARP 동작
1단계: 기본 게이트웨이의 MAC 주소 해석
송신자는 목적지가 다른 서브넷에 있음을 인식하고, 기본 게이트웨이(Default Gateway, DG)의 MAC 주소를 ARP로 요청합니다.
ARP Request: "172.23.4.254의 MAC 주소를 알려주세요"
출발지 MAC: 1111.2222.3333
목적지 MAC: FFFF.FFFF.FFFF (브로드캐스트)
ARP Reply: "저는 172.23.4.254입니다. MAC은 4444.5555.6666입니다"
2단계: 라우터로 패킷 전송
송신자는 이제 패킷을 라우터로 전송합니다. 주목할 점은 IP 헤더와 이더넷 헤더의 주소 설정입니다.
IP 헤더:
출발지 IP: 172.23.4.1
목적지 IP: 192.168.10.1 (최종 목적지)
이더넷 헤더:
출발지 MAC: 1111.2222.3333
목적지 MAC: 4444.5555.6666 (라우터의 MAC)
3단계: 라우터의 ARP 동작
라우터는 목적지 네트워크로 패킷을 전달하기 위해 수신자의 MAC 주소를 ARP로 요청합니다.
ARP Request: "192.168.10.1의 MAC 주소를 알려주세요"
출발지 MAC: 4444.5555.7777
목적지 MAC: FFFF.FFFF.FFFF (브로드캐스트)
ARP Reply: "저는 192.168.10.1입니다. MAC은 2222.3333.4444입니다"
4단계: 최종 목적지로 패킷 전송
라우터는 패킷의 이더넷 헤더를 재작성하여 최종 목적지로 전송합니다.
IP 헤더:
출발지 IP: 172.23.4.1 (변경 없음)
목적지 IP: 192.168.10.1 (변경 없음)
이더넷 헤더:
출발지 MAC: 4444.5555.7777 (라우터의 우측 인터페이스)
목적지 MAC: 2222.3333.4444 (수신자의 MAC)
6. ARP와 DNS의 관계
DNS의 역할
실제 네트워크 통신에서 사용자는 IP 주소가 아닌 도메인 이름(FQDN)을 주로 사용합니다. DNS(Domain Name System)는 도메인 이름을 IP 주소로 변환하는 역할을 수행합니다.
주소 해석의 전체 과정:
1. 사용자: "www.cisco.com에 접속하고 싶어요"
↓
2. DNS: "www.cisco.com의 IP 주소는 198.18.1.1입니다"
↓
3. ARP: "198.18.1.1의 MAC 주소는 무엇인가요?"
↓
4. 통신 시작
DNS는 사람이 이해하기 쉬운 도메인 이름을 컴퓨터가 이해하는 IP 주소로 변환하고, ARP는 IP 주소를 실제 물리적 통신에 필요한 MAC 주소로 변환합니다. 두 프로토콜은 서로 다른 계층에서 주소 해석을 담당하며, 함께 협력하여 원활한 네트워크 통신을 가능하게 합니다.
마무리 및 정리
ARP는 네트워크 통신에서 필수적인 프로토콜로, IP 주소와 MAC 주소 간의 매핑을 담당합니다. 브로드캐스트 방식의 요청과 유니캐스트 방식의 응답을 통해 주소 해석을 수행하며, ARP 캐시를 활용하여 네트워크 효율성을 높입니다.
특히 라우팅 환경에서는 IP 주소가 End-to-End로 유지되는 반면, MAC 주소는 각 홉마다 변경된다는 점을 이해하는 것이 중요합니다. 이는 Layer 2와 Layer 3의 역할 차이를 명확히 보여주는 좋은 예시입니다.
다음 글에서는 DNS(Domain Name System)에 대해 자세히 다뤄보겠습니다.
'Network Concepts' 카테고리의 다른 글
| [Network] CDP와 LLDP (네트워크 발견 프로토콜) (0) | 2025.10.30 |
|---|---|
| [Network] DNS (Domain Name System) - 도메인 이름 시스템 (1) | 2025.10.29 |
| [Network] 서브넷 마스크와 서브네팅 (feat. FLSM, VLSM) (1) | 2025.10.27 |
| [Network] IP 주소 체계 (IPv4) (0) | 2025.10.26 |
| [Network] Unicast, Broadcast, Multicast (0) | 2025.10.24 |
