Network_13 : ARP와 IP

이준익·2026년 5월 24일

IP 주소, 서브넷 마스크, 기본 게이트웨이, DNS 서버 주소.

이 정보들이 있어야 내 컴퓨터는 이런 판단을 할 수 있다.

“내 IP는 무엇인가?”
“상대방이 나와 같은 네트워크에 있는가?”
“다른 네트워크라면 어디로 보내야 하는가?”
“도메인 이름은 어떤 IP 주소로 바꿔야 하는가?”

그런데 여기서 한 가지 문제가 남는다.

IP 주소를 알아냈다고 해서 바로 데이터를 보낼 수 있을까?

결론부터 말하면, 같은 LAN 안에서 실제로 프레임을 보내려면 MAC 주소가 필요하다.

IP 주소는 목적지를 찾기 위한 주소이고, MAC 주소는 지금 이 네트워크 안에서 실제로 프레임을 전달하기 위한 주소다.

IP 주소만으로는 프레임을 보낼 수 없다

예를 들어 내 컴퓨터가 어떤 서버로 데이터를 보내려고 한다고 해보자.

브라우저는 도메인을 입력받고, DNS를 통해 서버의 IP 주소를 알아낸다.

이제 내 컴퓨터는 이렇게 생각할 수 있다.

“좋아. 최종 목적지 IP 주소는 알겠어.”

하지만 실제 이더넷 LAN 안에서 데이터는 IP 패킷 그대로 날아다니지 않는다.
IP 패킷은 이더넷 프레임 안에 담겨서 이동한다.

그리고 이더넷 프레임에는 출발지 MAC 주소와 목적지 MAC 주소가 들어간다.

여기서 문제가 생긴다.

내 컴퓨터는 최종 목적지 IP 주소는 알고 있지만, 지금 당장 프레임을 보낼 대상의 MAC 주소는 모를 수 있다.

이때 필요한 과정이 ARP다.

ARP란 무엇인가

ARP는 IP 주소에 해당하는 MAC 주소를 알아내는 프로토콜이다.

조금 더 정확히 말하면, 같은 LAN 안에서 어떤 IP 주소를 가진 장비의 MAC 주소를 알아내기 위한 과정이다.

비유하자면 IP 주소는 사람의 집 주소에 가깝고, MAC 주소는 지금 눈앞에서 직접 물건을 건네줄 사람의 이름표 같은 느낌이다.

택배를 보낼 때 최종 주소를 아는 것도 중요하지만, 실제로는 중간중간 물건을 넘겨줄 대상이 필요하다.
네트워크에서도 마찬가지다.

IP 주소는 최종 목적지를 가리킨다.
하지만 이더넷 프레임을 보내려면 “지금 같은 LAN 안에서 누구에게 프레임을 건네야 하는지”를 알아야 한다.

여기서 중요한 건, ARP가 아무 IP의 MAC 주소나 알아내는 마법 같은 기능은 아니라는 점이다.

ARP는 같은 LAN 안에서만 동작한다.

같은 네트워크에 있는 경우

내 컴퓨터의 IP가 192.168.0.10이고, 같은 네트워크 안에 있는 다른 컴퓨터의 IP가 192.168.0.20이라고 해보자.

내 컴퓨터가 192.168.0.20으로 데이터를 보내려면 먼저 판단한다.

“목적지 IP가 나와 같은 네트워크에 있나?”

서브넷 마스크를 기준으로 계산해보니 같은 네트워크라고 판단되었다.

그러면 내 컴퓨터는 이렇게 생각한다.

“그럼 게이트웨이로 보낼 필요는 없고, 저 IP를 가진 장비에게 직접 프레임을 보내면 되겠네.”

그런데 아직 192.168.0.20의 MAC 주소를 모른다.

이때 ARP Request를 보낸다.

ARP Request

ARP Request는 쉽게 말하면 이런 질문이다.

192.168.0.20 쓰는 장비 있으면, 네 MAC 주소 좀 알려줘.”

이 요청은 브로드캐스트로 전송된다.

브로드캐스트라는 것은 같은 LAN 안에 있는 모든 장비에게 보내는 방식이다.

즉, 내 컴퓨터가 스위치에게 프레임을 보내면 스위치는 이 프레임을 같은 네트워크 안의 여러 포트로 뿌린다.

각 장비는 이 요청을 받아보고 이렇게 판단한다.

“ARP 요청이 왔네.”
“찾는 IP가 내 IP인가?”
“아니면 무시.”
“내 IP라면 응답.”

여기서 192.168.0.20을 가진 장비만 응답한다.

ARP Reply

192.168.0.20을 가진 장비는 ARP Reply를 보낸다.

내용은 대략 이렇다.

“내가 192.168.0.20이고, 내 MAC 주소는 AA:BB:CC:DD:EE:FF야.”

ARP Reply는 보통 요청을 보낸 장비에게 직접 전달된다.

이제 내 컴퓨터는 알게 된다.

“아, 192.168.0.20으로 보내려면 목적지 MAC 주소를 AA:BB:CC:DD:EE:FF로 넣으면 되겠구나.”

그 다음부터는 이 MAC 주소를 이더넷 프레임의 목적지 MAC 주소로 넣고 데이터를 보낸다.

다른 네트워크에 있는 경우

이번에는 목적지 서버 IP가 8.8.8.8이라고 해보자.

내 컴퓨터는 먼저 서브넷 마스크를 보고 판단한다.

8.8.8.8은 나와 같은 네트워크가 아니네.”

그러면 내 컴퓨터는 목적지 서버에게 직접 프레임을 보내지 않는다.
대신 기본 게이트웨이로 보낸다.

여기서 헷갈리기 쉬운 부분이 있다.

최종 목적지 IP는 여전히 8.8.8.8이다.
하지만 이더넷 프레임의 목적지 MAC 주소는 8.8.8.8 서버의 MAC 주소가 아니다.

내 컴퓨터와 같은 LAN 안에 있는 기본 게이트웨이, 즉 라우터의 MAC 주소가 들어간다.

왜냐하면 지금 내 컴퓨터가 직접 프레임을 건넬 수 있는 대상은 같은 LAN 안에 있는 라우터이기 때문이다.

그래서 내 컴퓨터는 다시 ARP를 사용한다.

“기본 게이트웨이 IP를 쓰는 장비야, 네 MAC 주소가 뭐야?”

게이트웨이가 ARP Reply로 자신의 MAC 주소를 알려주면, 내 컴퓨터는 그 MAC 주소를 목적지 MAC 주소로 넣어 프레임을 보낸다.

IP 패킷의 목적지는 8.8.8.8이지만, 이더넷 프레임의 목적지는 게이트웨이의 MAC 주소다.

여기서 중요한 건 이 문장이다.

IP는 최종 목적지 관점이고, MAC은 다음 홉 관점이다.

다음 홉이라는 관점

네트워크에서 다음 홉은 패킷이 다음으로 전달될 장비를 의미한다.

내 컴퓨터에서 같은 LAN 안의 다른 PC로 보낼 때는 그 PC가 다음 홉이다.
내 컴퓨터에서 인터넷 서버로 보낼 때는 기본 게이트웨이가 다음 홉이다.

즉, MAC 주소는 최종 목적지 전체 경로를 표현하는 주소가 아니다.
지금 이 LAN 안에서 다음으로 누구에게 프레임을 넘길지를 나타내는 주소다.

그래서 라우터를 한 번 지날 때마다 이더넷 프레임의 MAC 주소는 바뀔 수 있다.

하지만 IP 패킷의 출발지 IP와 목적지 IP는 기본적으로 최종 통신 주체를 나타내므로, 라우팅되는 동안 계속 목적지 판단의 기준이 된다.

정리하면 이런 느낌이다.

내 컴퓨터가 데이터를 보낼 때 IP 주소를 보고 최종 목적지를 판단한다.
그리고 실제로 프레임을 보내기 직전에는 ARP를 통해 다음 홉의 MAC 주소를 알아낸다.
그 MAC 주소를 이더넷 프레임에 넣고 같은 LAN 안에서 전달한다.

ARP Cache

그런데 매번 데이터를 보낼 때마다 ARP Request를 날리면 비효율적이다.

같은 장비와 여러 번 통신할 때마다

“너 MAC 주소 뭐였지?”

라고 계속 물어보는 셈이기 때문이다.

그래서 운영체제는 ARP로 알아낸 IP 주소와 MAC 주소의 매핑 정보를 잠시 저장해둔다.

이 저장 공간을 ARP Cache라고 한다.

예를 들어 한 번 192.168.0.1 게이트웨이의 MAC 주소를 알아냈다면, 이후에는 매번 ARP Request를 보내지 않고 ARP Cache에 저장된 정보를 사용한다.

물론 이 정보가 영원히 유지되는 것은 아니다.

네트워크 환경은 바뀔 수 있다.
장비가 교체될 수도 있고, IP 주소를 다른 장비가 사용할 수도 있다.

그래서 ARP Cache의 항목은 일정 시간이 지나면 사라지거나 갱신된다.

내 컴퓨터는 이렇게 판단한다

브라우저에서 어떤 서버에 접속한다고 생각해보면, 내 컴퓨터는 대략 이런 식으로 움직인다.

먼저 DNS 등을 통해 목적지 IP 주소를 알아낸다.

그 다음 서브넷 마스크를 기준으로 목적지 IP가 나와 같은 네트워크인지 판단한다.

같은 네트워크라면 목적지 IP를 가진 장비의 MAC 주소를 ARP로 찾는다.

다른 네트워크라면 기본 게이트웨이의 MAC 주소를 ARP로 찾는다.

MAC 주소를 알아내면 IP 패킷을 이더넷 프레임에 담고, 목적지 MAC 주소를 채워서 전송한다.

이 흐름을 보면 ARP가 왜 필요한지 조금 더 분명해진다.

IP 주소는 “어디까지 가야 하는가”를 알려준다.
MAC 주소는 “지금 누구에게 넘겨야 하는가”를 알려준다.
ARP는 그 둘을 연결해주는 과정이다.

처음에는 IP 주소만 알면 통신이 될 것 같았다.

하지만 실제 네트워크에서는 계층마다 필요한 주소가 다르다.

네트워크 계층에서는 IP 주소를 보고 목적지를 판단하고, 데이터 링크 계층에서는 MAC 주소를 보고 같은 LAN 안에서 프레임을 전달한다.

ARP는 이 두 세계를 이어주는 다리 같은 역할을 한다.

profile
밥 잘 먹고 잠 잘 잡니다

0개의 댓글