ARP(Address Resolution Protocol) 영어로 해석하면 주소를 결정해주는 프로토콜?

 

최초로 통신 할 때(이더넷 환경), 목적지 MAC주소를 알아내기 위한 프로토콜이 ARP이다.

 

예시로 알아보자.

위와 같은 네트워크 구성에서, R1 -> R2 PING 통신하려고 한다.

 

R1이 핑 요청 패킷을 R2로 보내려면 IP 패킷(L3)을 이더넷 프레임(L2)에 실어서 전송해야 한다.

 

R1이 만들 이더넷 프레임을 보자.

출발지 IP 주소 출발지 MAC 주소 목적지 IP 주소 목적지 MAC 주소 데이터
10.10.10.1 0000.0000.0000.0001 10.10.10.2 ??? 0101....

위 정보가 모두 필요한데, 목적지 MAC 주소를 모르는 상황이다. 

 

 

 

 

 

때문에 목적지 MAC 주소를 알아내기 위해 R1은 ARP 요청 프레임을 전송한다.

 

출발지 IP 주소 출발지 MAC 주소 목적지 IP 주소 목적지 MAC 주소 데이터
10.10.10.1 0000.0000.0000.0001 10.10.10.2 FFFF.FFFF.FFFF.FFFF ARP 요청

(MAC주소가 브로드캐스트 MAC주소(FFFF.FFFF.FFFF.FFFF)로 세팅된다.)

 

 

 

 

 

스위치는 프레임을 수신 포트를 제외한 모든 포트로 전송한다.( 목적지 MAC 주소가 브로드캐스트이기 때문)

 

 

 

 

R2와 R3가 ARP 요청 패킷을 수신한다.

R3는 IP 주소가 자신의 것이 아님을 알고, 프레임을 버린다.

R2은 IP 주소가 자신의 것임을 알고, 자신의 MAC 주소를 넣어 ARP 응답 프레임을 보낸다.

출발지 IP 주소 출발지 MAC 주소 목적지 IP 주소 목적지 MAC 주소 데이터
10.10.10.2 0000.0000.0000.0002 10.10.10.2 FFFF.FFFF.FFFF.FFFF ARP 응답

 

 

 

ARP응답 프레임을 받은 R1은 목적지 IP주소(10.10.10.2)의 MAC주소를 알게 되었다.

(이때,  R1과 R2는 상대방 IP주소와 MAC 주소에 대한 ARP 결과를 ARP 테이블에 저장한다.)

 

 

 

 

 

이로써, R1은 R2에게 PING 요청패킷을 보낼 준비가 되었다.

출발지 IP 주소 출발지 MAC 주소 목적지 IP 주소 목적지 MAC 주소 데이터
10.10.10.1 0000.0000.0000.0001 10.10.10.2 0000.0000.0000.0002 0101....

 

 

+

ARP 요청시, 항상 목적지 IP 주소의 MAC 주소를 요청하는 것은 아니다.

 

목적지 IP 주소가 자신과 동일한 서브넷 소속이면 해당 IP주소를 가진 장비에게 직접 MAC 주소를 요청한다.

(위 예시의 경우)

 

하지만, 목적지 IP 주소가 자신과 다른 서브넷 소속이면 게이트웨이의 MAC 주소를 요청한다.

위 네트워크 구성에서 PC1 -> IP 8.8.8.8 (구글DNS)로 PING 통신 시도를 한다면,

PC1은 목적지 IP 8.8.8.8에 대한 MAC 주소를 요청하는 것이 아닌, 게이트웨이 (10.10.10.254)에 대한 MAC 주소를 요청한다.

 

 

 

★질문해주세여!!!

 

 

[참고문헌]

킹-오브-네트워킹 / 피터 전 지음

+ Recent posts