ARP: Difference between revisions

No edit summary
No edit summary
Line 1: Line 1:
The Address Resolution Protocol (ARP) provides IPv4 hosts within a broadcast domain with a means to discover what (if any) other host owns a network address. It is replaced by the [[NDP|Neighbor Discovery Protocol]] in [[IPv6]].
==Arp packet types==
==Arp packet types==
This nomenclature comes from RFC 3927.
This nomenclature comes from RFC 3927, which specifies all-zero destination hardware addresses for broadcasting. All-ones is more common.
* ARP Announcement -- Source and destination network address are equal. Destination hardware address is all zeros. Source hardware address is the sending station's MAC.
* ARP Announcement -- Source and destination network address are equal. Destination hardware address is all zeros. Source hardware address is the sending station's MAC.
** Used to claim an address in LLMNR for [[Zeroconf|zero-configuration networking]]
* ARP Probe -- Source network address is all zeroes, as is destination hardware address. Source hardware address is the sending station's MAC. Destination network address is the address being probed.
* ARP Probe -- Source network address is all zeroes, as is destination hardware address. Source hardware address is the sending station's MAC. Destination network address is the address being probed.
** Used for LLMNR in [[Zeroconf|zero-configuration networking]]
** Used to check address suitability for LLMNR in [[Zeroconf|zero-configuration networking]]
* Gratuitous ARP -- ARP for which there was no request
* Inverse ARP -- Opcodes 8 and 9 allow for Inverse ARP: "I know this hardware address; what's the physical address?"
* Reverse ARP -- Opcodes 3 and 4 allow for Reverse ARP: "I know my hardware address; what's my physical address?" Replaced by [[DHCP|DHCP/BOOTP]].


==Linux ARP states==
==Linux ARP states==