탕구리's 블로그

ARP - 목적지의 MAC 주소를 알기위한 장치 본문

Conception/Computer Network

ARP - 목적지의 MAC 주소를 알기위한 장치

탕구리당 2019. 7. 30. 16:45
반응형

 

ARP (Address Resolution Protocol)

 

ARP는 MAC 주소와 IP 주소를 연결해주는 역할을 합니다. 여기서 연결이란 의미를 한번 생각해보면, 우리가 통신을 진행하기 위해 제3 계층을 지나 패킷을 만들고 되고 이 패킷의 헤더에는 출발지 IP 주소와 목적지 IP 주소를 담아줍니다. 출발지가 누구고 목적지가 어디인지는 Application 계층에 의해서 결정되기 때문에 헤더를 만드는 과정에서 큰 문제가 없습니다.

 

하지만! 제3 계층을 통해 내려온 패킷이 제2 계층에서 프레임을 만드는 경우는 어떨까요?

 

프레임의 이더넷 헤더에는 출발지의 MAC 주소, 목적지의 MAC 주소를 추가해주게 됩니다. 출발지의 MAC 주소는 호스트의 NIC에 적혀있는 MAC 주소를 통해 알 수 있지만 목적지의 MAC 주소는 알 수 없습니다. 목적지의 MAC 주소를 비워둔 채로 통신을 진행할 경우 수신 측의 제2 계층에서는 프레임을 파기해버립니다. 그렇다면 목적지의 MAC 주소를 어떻게 알아낼 수 있을까요? 이때 ARP 통신을 이용해 목적지의 MAC 주소를 알아낼 수 있습니다.

 

물론,  컴퓨터끼리 통신을 할 때 통신 데이터의 IP 주소를 출발지부터 목적지에 도착하기까지 변하지 않지만 MAC 주소는 NIC를 경유할 때마다 변경됩니다. 이 변경되는 MAC 주소를 통해 적절한 목적지를 찾아가는 것이죠!

 

 

ARP의 동작 과정

 

ARP가 동작하는 타이밍은 두 개의 호스트 A, B가 통신을 하기 전입니다.

 

ARP 통신 과정

ARP 통신이 발생하는 대략적이 구조는 위와 같습니다. 

 

1. ARP 통신이 발생한 경우 IP를 통해 호스트 내에 존재하는 ARP 테이블을 조회합니다.

1-1. 같은 네트워크에 존재하는 호스트의 경우 ARP를 통해 조회합니다. 다른 네트워크에 존재하는 호스트인 경우 게이트웨이(Router)의 IP 주소를 조회합니다.

 

2. ARP 테이블에서 목적지의 정보를 얻지 못한 경우 브로드캐스트를 통해 ARP 요청이 발생합니다.

 

3. 네트워크에 존재하는 호스트들은 브로드캐스트로 발생한 ARP 요청을 받고 해당하는 호스트는 자신의 ARP 테이블에 송신자의 정보를 갱신하고 유니캐스트를 통해 ARP Reply를 응답합니다. 해당하는 호스트를 제외한 나머지는 요청을 파기합니다. 

 

4.  응답을 받은 호스트는 ARP Reply를 통해 자신의 ARP 테이블에 내용을 추가하고 ARP Process 종료됩니다.

 

 

* 그림 한 장으로 보는 최신 서버 가이드북 - chapter 2를 기반으로 작성된 자료입니다.

반응형
Comments