L3 ▶ ARP

2024. 5. 24. 19:03CS/네트워크

참고 자료 : 널널한 개발자님의 외워서 끝내는 네트워크 핵심이론 - 기초

ARP (Address Resolution Protocol)

멍청한 질문부터 던져보자.

현재 PC에서 네이버 서버로 네트워크 요청을 보내고 싶다. DHCP를 통해 내가 사용할 수 있는 IP주소를 할당받았고, 네이버의 서버 IP주소도 알고 있다. 3.3.3.3이다. 그런데 네트워크 요청을 보내려면 목적지의 IP주소와 MAC주소도 알고 있어야한다. 현재 나는 네이버 서버의 MAC주소를 모른다. 네트워크 요청을 보낼 수 없는 것일까?

 

결론부터 말하면 접근이 잘못되었다. 목적지의 MAC주소에는 네이버의 MAC주소가 들어가는 게 아니라 Gateway의 MAC주소가 들어간다.

 

이 부분을 전제로 깔고 들어가자. 내가 알고 싶은 것은 목적 Host의 MAC주소가 아니라 Gateway의 MAC주소를 찾아야한다.

이를 위해서 컴퓨터를 부팅하면 ARP Request를 Broadcast한다. 그리고 Gateway로부터 응답을 받는데, 이때 Gateway의 IP주소와 MAC주소를 응답받는다. 그리고 PC에는 Gateway의 MAC주소가 캐싱된다. 

 

이 과정을 절차적으로 정리한다면 다음과 같다.

  1. PC는 ARP 브로드캐스트를 통해 같은 네트워크 192.168.0.0에 목적지 IP주소에 해당하는 호스트가 있는지 확인한다. 이 과정이 게이트웨이의 IP주소와 MAC주소를 얻어내는 과정이다. 만약 게이트웨이가 설정되어있다면 게이트웨이의 IP주소를 가지고 ARP를 호출한다.
    1. 만약 패킷의 목적지 IP주소가 다른 네트워크라면 ARP를 호출해도 MAC주소를 얻지 못한다.
    2. 이때 패킷에 입력된 목적지 IP는 여전히 3.3.3.3이다. 게이트웨이의 IP주소는 오직 ARP호출을 통해 게이트웨이 장비의 MAC주소를 얻어내는 용도이다.
  2. 게이트웨이는 자신의 MAC주소를 전달한다.
  3. MAC주소를 전달받았으면 Frame헤더의 시작 MAC주소에는 PC의 MAC주소가 명시되고, 도착 MAC주소에는 게이트웨이의 MAC주소가 들어가게된다.

 

요약

  • ARP는 IP주소로 MAC주소를 알아내려할 때 활용된다.
  • ARP Request를 발생하여 Gateway의 MAC주소를 찾아내려한다. Gateway는 Reply로 자신의 MAC주소를 알려준다.

'CS > 네트워크' 카테고리의 다른 글

L4 ▶ TCP / UDP  (0) 2024.05.26
L3 ▶ Ping과 RTT  (0) 2024.05.24
L3 ▶ DHCP  (0) 2024.05.24
L3 ▶ TTL과 단편화  (0) 2024.05.24
L3 ▶ 특별한 IP 주소 (Broadcast IP Address, Loop back Address)  (0) 2024.05.24