ARP(Address Resolution Protocol)은 RFC 826의 규격에 따라 IP 주소를 보내어 통신을 하고자 하는 상대방의 MAC 주소를 알아오는 프로토콜이다.

송신자가 ARP Request 구조(송신자의 물리 주소, 송신자 IP주소, 00-00-00-00-00, 수신자 IP 주소 등)를 브로드캐스트 방식으로 보내면 수신자가 ARP Reply 구조로 유니캐스트 방식으로 응답하여 MAC 주소를 받으면 패킷을 교환할 경로를 인식할 수 있다.

ARP 패킷 구조

Ethernet Layer 2 Packet 기준 Data 부분에 다음 형태의 데이터가 들어간다. IPv4 기준이다.

ARP 패킷 데이터그램의 구조
Hardware Type(16bit, 이더넷의 경우 1) Protocol Type(16bit, IPv4의 경우 0x0800)
Hardware Length(8bit) Protocol Length(8bit) Operation(16bit, ARP Request는 1, ARP Reply는 2)
Sender MAC Address(32bit)
Sender IP Address(32bit)
Receiver MAC Address(32bit, ARP Request의 경우 이 부분을 0으로 채운다)
Receiver IP Address(32bit)