网络层数据包通常需要通过以太网传输,以太网传输信息时使用的不是网络层地址,而是以太网地址(如MAC地址),即主机或者路由器物理接口硬件(网卡)的地址。因此以太网中两台主机通信时,源主机必须知道目标主机的MAC地址。
一种简单的方法是把主机的物理地址编码到IP地址的主机部分。比如,当物理地址是二进制0010000101001001(十进制33 81)时,就可以把其IP地址设置为192.168.33.81。这种方法在某些网络中曾经使用,其缺点是物理地址长度限制为16比特以下,显然不适用于具有48比特地址的以太网。
更一般的方法是每个主机维护一个IP地址到物理地址的映射表。相比于由一个集中的管理者负责管理和分发这个映射表到网络上的每一台主机,更好的方法是每台主机动态获取这个映射表。
通过目标主机网络层地址获取目标主机MAC地址的协议就是地址解析协议(ARP)。ARP协议最早于1982年在RFC 826文档中提出,已经实现了多种网络层协议和链路层协议的转换。其包括IEEE 802、FDDI、X.25、Frame Relay和ATM之上的IPv4、DECnet以及Xerox等网络层协议;以及IEEE 802.3和IEEE 802.11之上的IPv4(见电气电子工程师学会802.11协议簇)。
ARP协议最典型的例子是IPv4中32位网络层地址到IEEE 802系列以太网48位MAC地址之间的转换。在IPv6中不再使用ARP协议,而是邻居发现协议(neighbor discovery protocol,NDP)。