TCP/IPプロトコルにおいて、IPアドレスからハードウェアアドレス(Ethernetアドレス)を得るためのプロトコル体系。
一般に、EthernetのようなLAN媒体では、2つのノード間で通信を行なう場合、 通信相手のMACアドレスを知らなければ通信することはできない。 なぜならパケットの宛先フィールドには通信相手のMACアドレスを指定しなければならないからだ。 しかしTelnetやFTPなどのTCP/IPアプリケーションでは、通信相手のIPアドレスは知っていても、MACアドレスは分からない。 これを求めるのはTCP/IPプロトコルスタックに組み込まれたARPの役割である。
IPパケットをLAN上へ送出するときに、通信相手のノードのMACアドレスが分からなければ、 TCP/IPプロトコルスタックはまずARPによって相手ノードのMACアドレスを調査する。
ARPの仕組みは簡単で、自分のEthernetアドレスと自分のIPアドレス、そして通信相手のIPアドレスの3つを、 「ARP問い合わせ」パケットに入れて、LAN上へブロードキャストする。ただしここでいうブロードキャストは、 IPレベルのブロードキャストではなく、MACレベルのブロードキャストです。単にイーサネット・ヘッダ中の宛先MACアドレスを 「ff:ff:ff:ff:ff:ff」にして送信します。同一ネットワーク上の全ノードがこれを受信します。
LAN上の各ノードはARP問い合わせのブロードキャストを見ており、もし自分のIPアドレスが指定されていれば、「ARP応答」 パケットに自分のMACアドレスを入れて応答を返す。これにより、発信元にMACアドレスが返されるので、 あとは2ノード間だけで通信することができる。