当数据包通过网络层向下发送时,路由确定数据包的下一跳的协议地址,以及它希望在哪个硬件上找到具有直接目标协议地址的站。在以太网情况下,需要地址解析,更低层,可能是硬件驱动程序,必须查询地址解析模块,把<协议类型,目标协议地址>转换成48位以太网地址。
地址解析模块试图在表中找到这对。如果找到这对,它将相应的 48位以太网地址返回,给然后传输数据包的调用者(硬件驱动程序)。如果它没有,它可能会通知调用者它正在抛出数据包离开(假设数据包将被重新传输由更高的网络层),并生成一个以太网数据包ether_type$ADDRESS_RESOLUTION 的类型字段。地址解析模块然后将 ar$hrd 字段设置为
ares_hrd$Ethernet, ar$pro 到正在使用的协议类型已解决,ar$hln 为 6(48 位以太网中的字节数
地址),ar$pln 到该协议中地址的长度,ar$op 到 ares_op$REQUEST,ar$sha 与 48.bit 以太网地址本身,带有自身协议地址的 ar$spa,以及 ar$tpa与试图成为的机器的协议地址访问。它没有将 ar$tha 设置为任何特别的东西,因为它正试图确定这个值。它可以将 ar$tha 设置为硬件的广播地址(所有在 10Mbit 以太网的情况下)如果这样做便于实现的某些方面。然后导致此数据包将广播到以太网电缆上的所有站点最初由路由机制决定。
地址解析协议 (ARP) 是一种通信协议,用于发现链路层地址,例如 MAC 地址。该链路层地址与一个Internet层地址相关联。典型地,Internet层地址是一个IP肆元地址。
ARP 于 1982 年由 RFC 826定义,