앞선 포스팅에서 ARP에 대해 간단히 IP를 이용하여 MAC주소를 알아내는 방식이라고만 짧게 설명했었는데 

이번에 ARP와 RARP에 대해 자세히 살펴보겠습니다.


-       개요

주소 결정 프로토콜(Address Resolution Protocol, ARP)네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응(bind)시키기 위해 사용되는 프로토콜입니. 여기서 물리적 네트워크 주소는 이더넷 또는 토큰링 48 비트 네트워크 카드 주소를 뜻합니다.


-       사용하는 이유?

ARP Layer 2계층 이더넷 환경에서 목적지 IP주소에 대한 MAC주소 변환 동작을 담당합니다. 단 목적지 MAC주소 정보가 없다면, ARP주소 변환이 불가능하기 때문에 데이터를 전송할 수 없습니다. 상대방은 MAC 주소가 없는 패킷을 받으면 2계층 (Datalink-Layer)에서 폐기해 버리기 때문에 상대방의 MAC주소를 알아야 프레임이 만들어져서 통신을 할 수 있게 됩니다.

 

-       간단하게 동작방법을 알아보겠습니다.

이를테면, IP 호스트 A IP 호스트 B에게 IP 패킷을 전송하려고 할 때 IP 호스트 B의 물리적 네트워크 주소를 모른다면, ARP 프로토콜을 사용하여 목적지 IP 주소 B브로드캐스팅 물리적 네트워크 주소 FFFFFFFFFFFF를 가지는 ARP 패킷을 네트워크 상에 전송합니다. IP 호스트 B는 자신의 IP 주소가 목적지에 있는 ARP 패킷을 수신하면 자신의 물리적 네트워크 주소를 A에게 응답하게 됩니다.

이와 같은 방식으로 수집된 IP 주소와 이에 해당하는 물리적 네트워크 주소 정보는, 각 IP 호스트의 ARP 캐시라 불리는 메모리에 테이블 형태로 저장된 다음, 패킷을 전송할 때에 다시 사용됩니다

ARP와는 반대로, IP 호스트가 자신의 물리 네트워크 주소는 알지만 IP 주소를 모르는 경우, 서버로부터 IP주소를 요청하기 위해 RARP를 사용하게 됩니다.


-       동작 방법


. 송신자는 목적지 IP주소는 알고 있으나, 물리주소는 모름

. 물리주소를 알아내기 위해 ARP 요청 메시지 생성

= ARP 요청 메시지 (송신자 물리주소, 송신자 IP주소, 00-00-00-00-00, 수신자 IP주소)

. 요청메시지를 데이터링크 계층으로 전달, 프레임 생성

= 송신자 물리주소를 발신지 주소, 수신자 물리주소를 브로드캐스트 주소로 지정

. 모든 호스트나 라우터는 이 프레임을 수신하여 자신의 ARP로 전달

. 요청 메시지에 해당되는 호스트나 라우터만 ARP응답 메시지 생성

= 자신의 물리주소를 포함하는 응답 메시지

. ARP 응답메시지를 유니캐스트로 ARP 요청 메시지를 보낸 송신자에게 전송

= 유니캐스트를 이용하는 이유는 송신자가 요청메시지에 물리주소를 포함했기 때문

. 송신자는 ARP 응답메시지를 받고 목적지 물리주소를 획득

. 목적지에게 전송할 IP데이터그램을 획득한 물리주소를 이용해 프레임으로 캡슐화

. 캡슐화된 프레임을 유니캐스트로 목적지로 전송


WRITTEN BY
SiriusJ

,