본문으로 바로가기
728x90
반응형

ARP ( Address Resolution Protocol )은 네트워크에서 IP주소를 물리적 네트워크 주소인 맥주소에 대응시키기 위해 사용되는 포로토콜입니다.

A 장비에서 B장비에게 네트워크 패킷을 전달하려고 합니다.

여기서 A 장비는 B 장비의 IP주소를 알고 있지만, 물리적 네트워크 주소는 모릅니다.

이 때, A 장비에서 B 장비의 물리적 네트워크 주소를 얻기 위해서 ARP를 사용합니다.

이때 사용하는 ARP 프로토콜은 목적지 주소에 B 장비의 IP 주소와 브로드캐스팅 물리적 네트워크 주소인 FFFFFFFFFFFF를 설정합니다.

즉, 네트워크 상의 모든 장비들에게 ARP 프로토콜을 전송합니다.

그렇게 되면 ARP 프로토콜을 받은 모든 장비는 목적지 주소에 자신의 장비 IP가 대응된다면 목적지 주소에 자신의 물리적 네트워크 주소를 설정하여 응답합니다.

즉, 이 경우, B 장비만이 응답을 하게됩니다.

각각의 장비는 ARP 테이블이 존재합니다.

위의 경우 A 장비는 ARP 테이블에 B장비의 IP주소와 B장비의 물리적 네트워크 주소를 테이블에 추가합니다.

패킷을 전송할 떄, ARP 테이블을 참고하게됩니다.

반대로 물리적 네트워크 주소는 알고 있으나, IP주소를 모를 경우, RARP ( Reverse Address Resolution Protocol ) 프로토콜을 사용합니다.

ARP 프로토콜의 header는 아래와 같습니다.

 

ARP Request/Reply Packet Format

출처 : https://datatracker.ietf.org/doc/html/rfc6747


HT ( Hardware Type ) : 이더넷은 보통 0x0001값으로 설정
PT ( Protocol Type ) : 프로노콜을 정의합니다. IPv4일 경우 0x0800으로 설정
HAL ( Hardware Address Length ) : MAC 주소의 길이를 나타냅니다. 6byte로 설정
PAL ( Protocol Address Length ) : 프로토콜 길이를 나태내며, IPv4일 경우, 4byte로 설정
OP ( Operation Code ) : 명령 코드이며, ARP Request일 경우 1, ARP Reply일 경우 2로 설정
S_HA ( Sender Hardware Address ) : 출발지의 MAC 주소
S_L32 ( Sender L32 ) : 출발지의 IP 주소
S_NID ( Sender Node Identifier ) 출발 노드의 식별자
T_HA ( Target Hardware Address ) : 도착지의 MAC 주소
T_L32 ( Target L32 ) : 도착지의 IP 주소
T_NID ( Target Node Identifier ) : 도착 노드의 식별자

 

위의 값들이 모두 필수적이진 않습니다.

 

wireshark를 통해 arp 프로토콜을 보면서 직접 확인해보시기 바랍니다.

 

이상입니다.

728x90
반응형