Fact-checked by Grok 2 weeks ago

Address Resolution Protocol

The Address Resolution Protocol (ARP) is a communications protocol used within local area networks to discover the link-layer hardware address, such as a Media Access Control (MAC) address, that corresponds to a known internet-layer address, typically an IPv4 address. Defined in RFC 826 in 1982 by David C. Plummer, ARP enables devices on the same network segment to communicate by dynamically resolving these mappings without requiring manual configuration. It operates at the of the and is essential for IPv4 packet transmission over Ethernet or similar broadcast networks, where IP addresses alone are insufficient for hardware-level delivery. ARP functions through a request-response mechanism: when a device needs to send data to an IP address but lacks the associated MAC address, it broadcasts an ARP request packet to all devices on the local network, asking the target device to reply with its hardware address. The target device, upon recognizing its IP address in the request, responds directly (unicast) with an ARP reply containing its MAC address, allowing the sender to update its local ARP cache—a temporary table storing these IP-to-MAC mappings to avoid repeated broadcasts. This cache typically has a timeout mechanism to refresh entries, balancing efficiency and accuracy in dynamic environments. ARP packets include fields for hardware type (e.g., Ethernet), protocol type (e.g., IPv4), address lengths, operation code (request or reply), and the sender/target addresses, ensuring compatibility across diverse network protocols like CHAOSnet or Xerox PUP alongside IP. While integral to IPv4 networking, ARP is not used in IPv6, where the (NDP) replaces it, incorporating address resolution along with enhanced features like router discovery, autoconfiguration, and secure neighbor unreachability detection via messages and multicast addressing. NDP addresses ARP's limitations, such as reliance on broadcasts that can overload networks and vulnerability to off-link attacks, by using scoped multicasts and hop-limit verification. However, ARP's simplicity has made it susceptible to threats, notably (or poisoning), where an attacker sends forged replies to associate their with a legitimate , enabling man-in-the-middle interception of traffic. This lack of authentication in ARP—accepting unsolicited replies without verification—highlights the need for mitigations like dynamic ARP inspection or encryption in modern networks.

Fundamentals

Purpose and Operating Scope

The Address Resolution Protocol (ARP) serves as a foundational mechanism in the TCP/IP protocol suite for dynamically mapping network-layer addresses, such as IPv4 addresses, to link-layer addresses, particularly 48-bit on Ethernet networks. It achieves this by broadcasting ARP request packets to query the associated with a IPv4 address within the local , prompting the to respond with a unicast containing its . This process enables devices to encapsulate IP packets into Ethernet frames for transmission on shared media. ARP's operational scope is confined to a single , such as a local area network (LAN) segment connected by a shared Ethernet cable or switch, where all hosts can receive broadcast traffic. It does not inherently support resolution across routed boundaries, as ARP requests are not forwarded by routers; instead, inter-subnet communication relies on the router's own ARP interactions or extensions like , where a router responds on behalf of remote hosts. This limitation ensures ARP remains lightweight for local use but necessitates additional mechanisms for larger, segmented networks. Developed in November 1982 by David C. Plummer, was introduced as part of the early TCP/ suite to facilitate communication on Ethernet-like networks, initially tailored for the 10 Mbit/s DEC// Ethernet standard but generalized for other local network hardware. Its design addressed the need for address translation in environments where addresses were assigned independently of fixed hardware addresses. A key limitation of is the broadcast overhead it generates, as each request floods the entire , potentially leading to in networks with many hosts—for instance, if 100 workstations each broadcast an packet once every 10 minutes, the aggregate traffic across the network would amount to one packet every 6 seconds. Additionally, assumes a flat without subnetworking, which can complicate its use in modern hierarchical or virtualized environments unless mitigated by caching or alternative protocols.

OSI Layering and Integration

The Address Resolution Protocol (ARP) functions as a link-layer protocol that operates at the boundary between the OSI model's Layer 3 () and Layer 2 (), facilitating the mapping of network-layer protocol addresses, such as (IP) addresses, to data link-layer hardware addresses, like Media Access Control (MAC) addresses. This positioning allows ARP to resolve addresses necessary for frame transmission on local networks without altering the core functions of either layer. ARP integrates closely with the protocol at Layer 3, where it is invoked whenever an module requires the hardware address corresponding to a next-hop for outgoing packets. Upon resolution, the resulting IP-to-MAC mapping is stored in an —a dynamic table of address bindings—for reuse in subsequent transmissions, thereby reducing network overhead from repeated queries. This cache typically holds entries as triplets consisting of the protocol type, sender protocol address, and sender hardware address, which are updated or expired based on timeouts to maintain accuracy. In terms of encapsulation, ARP packets are embedded within data link-layer frames, such as Ethernet frames, using an field value of 0x0806 to identify them distinctly from other traffic. This framing ensures ARP messages are transmitted over the physical medium while adhering to the underlying link protocol's structure. ARP exhibits cross-layer dependencies by relying on Layer 1 (Physical) and Layer 2 addressing conventions for and , while delivering the resolved addresses to Layer 3 processes for decisions.

Protocol Mechanics

Packet Structure

The Address Resolution Protocol (ARP) packet consists of a 28-byte payload encapsulated within a link-layer frame, such as an Ethernet frame, which provides the mechanism for mapping protocol addresses to hardware addresses. This payload follows a fixed sequence of fields without padding, ensuring a compact byte stream format suitable for transmission over hardware like 10 Mbit Ethernet. The packet begins with a 16-bit hardware type field (arhrd), which identifies the type of hardware address being used; for Ethernet, this value is 1.[1] Immediately following is a 16-bit protocol type field (arpro), specifying the protocol address format, such as 0x0800 for IPv4 (). Next are two 8-bit length fields: the hardware address length (arhln), set to 6 for 48-bit Ethernet MAC addresses, and the protocol address length (arpln), set to 4 for 32-bit IPv4 addresses. The 16-bit operation code field (arop) indicates the packet's purpose, with 1 denoting a request and 2 a reply.[1] This is followed by the sender hardware address (arsha, 6 bytes for Ethernet), sender protocol address (arspa, 4 bytes for IPv4), target hardware address (artha, 6 bytes, often zero in requests), and target protocol address (ar$tpa, 4 bytes for IPv4). While the core ARP specification defines operation codes 1 and 2, the protocol supports extensions with additional opcodes, such as 8 for Inverse ARP (InARP) requests and 9 for InARP replies, allowing mappings from hardware to protocol addresses in environments like . For a standard Ethernet request packet (op=1), the fields align as follows in a byte-level , assuming a sender of 00:11:22:33:44:55, sender of 192.168.1.1, and target of 192.168.1.2 (target MAC unknown, set to 00:00:00:00:00:00):
Bytes 0-1:  Hardware Type = 0x0001 (Ethernet)
Bytes 2-3:  Protocol Type = 0x0800 (IPv4)
Byte 4:     Hardware Length = 0x06
Byte 5:     Protocol Length = 0x04
Bytes 6-7:  Operation = 0x0001 (Request)
Bytes 8-13: Sender MAC = 00:11:22:33:44:55
Bytes 14-17: Sender IP = C0:A8:01:01 (192.168.1.1)
Bytes 18-23: Target MAC = 00:00:00:00:00:00
Bytes 24-27: Target IP = C0:A8:01:02 (192.168.1.2)
This structure totals 28 bytes and is broadcast within an Ethernet frame for requests, with the frame's destination MAC set to the broadcast address FF:FF:FF:FF:FF:FF.

Request and Reply Process

When a device needs to resolve the MAC address corresponding to a target IP address on the local network, it initiates the ARP request process by broadcasting an ARP request packet to all devices on the Ethernet segment. The request packet includes the sender's own MAC and IP addresses, the target IP address, and zeros in the field for the target's MAC address, with the opcode set to 1 indicating a request. The target device, upon receiving and matching the ARP request to its own IP address, responds with an ARP reply packet. This reply is unicast directly to the sender's MAC address and contains the target's MAC address in the sender hardware address field, along with the target's IP address, the original sender's IP address, and the opcode set to 2 indicating a reply; the reply also includes the original sender's MAC address in the target hardware address field. The requesting device then uses this information to update its local ARP cache with the mapping. ARP requests are sent using the Ethernet broadcast MAC address ff:ff:ff:ff:ff:ff to reach all potential targets on the local network, whereas replies are unicast to ensure efficient delivery back to the requester without unnecessary network flooding. In typical implementations, the sender waits approximately 1 second for a reply before retrying the request, with 1 to 3 retries performed before declaring the resolution failed; these values can vary by operating system, such as Linux defaults of 1-second retransmission intervals and up to 3 broadcast attempts. If no ARP reply is received after the retries, the resolution fails, resulting in the pending packet being dropped or held until a higher-layer timeout occurs, depending on the implementation.

ARP Cache and Example Exchange

The is a maintained by each on an network, consisting of a table that maps addresses to corresponding addresses, along with additional such as protocol type and timestamps for entry validation. This cache enables efficient address resolution by storing previously resolved mappings, reducing the need for repeated broadcast requests on the network. Entries typically include a time-to-live () value, with implementations using timeouts ranging from 2 to 20 minutes to ensure periodic validation and prevent retention of stale data. Cache operations begin with a lookup: before transmitting an to a destination on the local , the host checks the for the target ; if found, the associated is used directly, avoiding an request. Dynamic population occurs when an reply is received, adding or updating the entry with the sender's IP-MAC pair, which supersedes any existing mapping for that IP. Implementations often support static entries, manually configured for critical destinations like default gateways to ensure reliability and override dynamic updates. Flushing mechanisms remove outdated entries via timeouts, refreshed upon cache access, or explicit invalidation when network changes are detected, such as through link-layer notifications. For unresolved addresses, the cache may mark an entry as incomplete during an ongoing attempt, queuing at least the most recent outbound packet destined for that to transmit immediately upon successful . This prevents packet loss while the ARP request is pending and limits flooding by enforcing a rate limit of no more than one request per second per destination. A typical ARP exchange involving the cache can be illustrated as follows, assuming host A (IP: 192.168.1.1, MAC: AA:BB:CC:DD:EE:FF) needs to send a packet to host B (IP: 192.168.1.2) on the same Ethernet :
  1. Host A performs a lookup for 192.168.1.2; assuming no entry exists, it creates an incomplete entry and queues the packet.
  2. Host A broadcasts an request: "Who has 192.168.1.2? Tell 192.168.1.1" (source MAC: AA:BB:CC:DD:EE:FF, target MAC: broadcast FF:FF:FF:FF:FF:FF).
  3. Host B receives the broadcast, matches its IP, and unicasts an reply: "192.168.1.2 is at 00:11:22:33:44:55" (source MAC: 00:11:22:33:44:55, destination MAC: AA:BB:CC:DD:EE:FF).
  4. Host A receives the reply, populates or updates its with the mapping (192.168.1.2 → 00:11:22:33:44:55, timestamped with ), marks the entry complete, and transmits the queued packet using B's MAC as the destination.
Host B may also cache A's mapping (192.168.1.1 → AA:BB:CC:DD:EE:FF) from the request for future use.

Advanced Operations

ARP Probe

The Address Resolution Protocol () probe is a mechanism employed by IPv4 hosts to detect potential duplicate address conflicts prior to assigning an to an . This process, known as IPv4 Address Conflict Detection (ACD), involves broadcasting ARP Request packets to query whether the intended is already in use on the local link. If no response is received, the host can proceed with the address assignment; otherwise, it indicates a duplication, prompting the host to avoid using that address. In the probe mechanism, a host constructs an ARP Request with specific field configurations to minimize interference with existing network operations. The sender hardware address field is set to the probing host's own interface MAC address, while the sender protocol address (IP) is filled with all zeros (0.0.0.0) to prevent unintended updates to ARP caches on other devices. The target protocol address is set to the IP being probed, and the target hardware address is all zeros, as the goal is solely to solicit any existing claimant without specifying a known MAC. These probes are sent as Ethernet broadcasts to reach all devices on the local link, leveraging ARP's standard request format but adapted for conflict checking rather than routine resolution. The detection process unfolds over a series of probes: if any ARP Reply is received in response to a probe, it confirms the IP address is already in use by another host, triggering an error notification to the address configuration agent (e.g., aborting assignment). Conversely, if no replies arrive after the complete probing sequence, the address is deemed available, though the host typically waits an additional announcement period before finalizing use to allow for any delayed responses. Probing occurs during initialization, such as at time or during reconfiguration, with timing parameters designed to balance thoroughness and efficiency: an initial random delay of 0 to 1 second precedes the first probe, followed by up to 3 probes spaced at random intervals between 1 and 2 seconds. This randomization helps avoid synchronized collisions among multiple probing hosts. Standardized in RFC 5227, published in July 2008 as a Standards Track document, this probing method provides a lightweight, link-local precaution against address misconfigurations that could lead to connectivity issues or security vulnerabilities. It is particularly valuable in dynamic environments, such as DHCP clients verifying newly leased addresses before acceptance or in manual static configurations where administrators seek to preempt conflicts without relying on external servers. By integrating ACD into IPv4 address acquisition workflows, networks reduce the incidence of duplicate addresses, which historically caused intermittent outages in shared segments.

Gratuitous ARP Announcements

Gratuitous ARP announcements, also known as ARP announcements, are unsolicited ARP packets transmitted by a host to inform the local network of its IP-to-MAC address binding without an incoming ARP request triggering the transmission. These announcements typically take the form of an ARP request where the sender IP address and target IP address are identical, both set to the host's own IPv4 address, while the target hardware address is filled with zeros. This format leverages the broadcast nature of ARP requests to reach all devices on the link, allowing immediate dissemination of the binding information. The primary purposes of gratuitous ARP announcements include announcing a new IP address assignment to the network, flushing outdated ARP cache entries held by other hosts, and preemptively updating mappings to reflect changes in the host's hardware address. By broadcasting this information, the sending host ensures that neighboring devices associate its current with the IP, preventing communication disruptions due to stale data. Additionally, these announcements can help detect duplicate IP addresses if a conflicting reply is received, though the focus remains on proactive network synchronization rather than initial conflict probing. In terms of transmission, a host sends multiple gratuitous ARP requests—typically two packets spaced two seconds apart—after a brief waiting period following address configuration, such as two seconds after any prior activity. Receivers process these announcements by updating their ARP caches with the provided sender IP and MAC mapping, even without a prior request, thereby enabling immediate use of the new binding in subsequent communications. No response is expected or required from recipients, as the announcement serves a declarative rather than role. Common scenarios for gratuitous ARP announcements arise during network failover events, such as in (HSRP) where the newly active router broadcasts the announcement to redirect traffic using its virtual . They are also employed when a network interface undergoes changes, like a new network interface card (NIC) installation or IP reconfiguration via DHCP, to notify the network of the updated binding without interrupting ongoing sessions. In clustered environments, periodic announcements may maintain consistent mappings across redundant systems.

Proxy ARP Mediation

Proxy ARP, formally known as ARP mediation, is a technique that enables a router to respond to Address Resolution Protocol (ARP) requests on behalf of hosts located on remote subnets, thereby allowing transparent communication across subnet boundaries without requiring hosts to be explicitly configured with routing information. This method leverages the standard ARP process, where the router intercepts broadcast ARP requests and replies with its own MAC address instead of forwarding the request. Originally described to support subnetted networks in environments like early Internet deployments, Proxy ARP hides the existence of multiple subnets from end hosts, making the network appear as a single flat segment. Configuration of Proxy ARP typically occurs on router interfaces facing the local , where it is enabled to monitor and respond to ARP for remote addresses within the router's . For instance, on routers, it is activated using the ip proxy-arp command in interface configuration mode, allowing the router to answer ARP queries for any it can route to, provided the request originates from a directly connected . The feature requires consistent subnet masks across gateways and static routes in the router's table to direct properly, with minimal implementation overhead—such as about 110 lines of code in 4.3BSD systems. In operation, a on A attempting to reach an on B broadcasts an ARP request containing the target IP. The local router, configured for , intercepts this broadcast (as it does not propagate beyond the local network) and unicasts a reply to the requesting , substituting its own as the mapping for the remote IP. The then encapsulates its IP packets destined for the remote within Ethernet frames addressed to the router's MAC, which decapsulates and forwards them via standard to the target . This process extends the effective scope of ARP beyond a single while relying on the router for mediation. Proxy ARP offers advantages in legacy or simple network setups by eliminating the need for hosts to maintain configurations or be aware of divisions, thus simplifying deployment in environments with static hosts, such as university networks spanning multiple physical segments. It also supports redundancy through multiple gateways responding to the same requests for load balancing. However, it introduces disadvantages, including increased broadcast traffic on local due to per-destination ARP queries for remote hosts, potential loops from misconfigured routes, and obscured that complicates diagnostics. Additionally, it may circumvent certain -level mechanisms if not limited to local networks. Detection of Proxy ARP usage can be achieved by inspecting ARP caches for entries mapping remote IP addresses to the local router's or by monitoring ARP replies from the router for non-local targets.

Inverse ARP

Inverse Address Resolution Protocol (InARP) is an extension of the that enables a to discover the network layer , such as an , corresponding to a known , particularly in non-broadcast wide area networks like . Unlike standard , which resolves to , InARP performs the inverse mapping, allowing devices to automatically learn peer IP addresses associated with virtual circuits without manual configuration. InARP operates over established permanent virtual circuits (PVCs) in technologies such as and (ATM), where the hardware address—such as a Frame Relay Data Link Connection Identifier (DLCI)—is known but the remote protocol address is not. The protocol uses ARP packet opcodes of 8 for requests and 9 for replies, with requests sent to the specific virtual circuit rather than broadcast. In a typical exchange, a router initiates an InARP request by populating the packet with its own source hardware and protocol addresses, the target hardware address (e.g., the DLCI), and a zero-filled target protocol address field; the receiving station responds with its protocol address in the source protocol address field, enabling both parties to update their ARP caches for subsequent routing. RFC 2390, published in 1998, standardizes InARP for and networks, superseding and updating the earlier RFC 1293 from 1992, which initially defined the protocol specifically for environments using hardware type 15 (0x000F). The protocol employs NLPID/SNAP encapsulation for over , ensuring compatibility with existing ARP structures while adapting to switched contexts. In modern networks, InARP has diminished in relevance as and have been largely supplanted by more scalable technologies such as (MPLS) and Ethernet-based WAN services, which often rely on static mappings or integrated label distribution for address resolution.

Reverse ARP

(RARP) enables diskless workstations and other devices that lack permanent storage for configuration to dynamically obtain their ( by broadcasting their known ( on a local network. Defined in 903, RARP reverses the mapping process of the () by resolving a hardware ( to a corresponding protocol (, facilitating initial network bootstrapping for devices that only recognize their physical interface details upon startup. This protocol was essential for early computing environments where devices booted from () or network servers without local disks. In operation, a client device initiates the process by constructing and broadcasting a RARP request packet, which includes its MAC address in the sender hardware address field, while leaving the sender protocol address field empty to indicate the unknown IP. The packet uses Ethernet EtherType value 0x8035 to distinguish it from ARP traffic (EtherType 0x0806) and employs opcode 3 for requests. A configured RARP server on the same broadcast domain, maintaining a static database of MAC-to-IP mappings, intercepts the request and responds with a unicast RARP reply packet containing the client's assigned IP address in the sender protocol address field, using opcode 4. The packet structure closely mirrors ARP's format, including fields for hardware type, protocol type, hardware and protocol address lengths, and operation code, allowing potential code reuse between implementations of the two protocols. This exchange occurs at the link layer, typically over Ethernet, and requires no prior IP configuration on the client. RARP saw primary historical use in the for thin clients and diskless workstations in local area networks, such as those in academic and research settings like , where it complemented for complete address resolution needs during system initialization. Proposed in June 1984, it addressed the immediate challenge of IP discovery in resource-constrained environments but remained limited to simple address assignment without additional boot file or server location information. Despite its utility, RARP exhibits significant limitations that hindered widespread adoption and scalability: it necessitates a dedicated RARP on every due to its reliance on link-layer broadcasts, which cannot cross routers without specialized hardware modifications, resulting in high deployment and maintenance costs. The protocol's broadcast-based requests also prove inefficient in larger , generating unnecessary traffic and exposing MAC and IP details to all devices on the segment, posing security risks through potential or spoofing. Furthermore, RARP provides no support for masks, default gateways, or other parameters, restricting its applicability in subdivided or routed environments. These constraints led to RARP's obsolescence by the late 1980s, as it was supplanted by the outlined in 951, which operates over / to enable relay agents for cross-subnet booting and includes vendor-specific extensions for richer . , in turn, evolved into the per 2131, which offers dynamic address leasing, automatic renewal, and comprehensive parameter distribution, rendering RARP unnecessary in modern TCP/ networks.

Alternatives to ARP

The IPv6 (NDP) serves as the primary successor to for address resolution in IPv6 networks, utilizing messages to perform functions such as neighbor solicitation and advertisement, router discovery, and stateless address autoconfiguration. Unlike , which relies on broadcast Ethernet frames, NDP incorporates mechanisms for duplicate address detection and supports optional security extensions like Secure Neighbor Discovery (SEND) for cryptographic of neighbors, addressing 's vulnerability to spoofing. NDP operates at the to map IPv6 addresses to link-layer addresses, ensuring efficient discovery on shared media while providing built-in support for mobile nodes and prefix delegation. For scenarios requiring proxying in IPv6 environments, such as bridging isolated network segments, NDProxy extends NDP by allowing intermediate nodes to relay neighbor discovery messages on behalf of hosts, preventing unnecessary broadcasts across links and enabling seamless connectivity in heterogeneous setups like transitions. This protocol intercepts and proxies NDP packets, maintaining state to avoid loops and supporting features like address handling, which enhances scalability in large or partitioned domains. In local networks without centralized DNS infrastructure, Multicast DNS (mDNS) provides zero-configuration name-to-IP address resolution using multicast queries over UDP port 5353 to discover services and hostnames directly on the link, often paired with DNS-Based Service Discovery (DNS-SD) for zero-configuration networking. mDNS resolves fully qualified domain names to IP addresses via link-local multicast, after which ARP (for IPv4) or NDP (for IPv6) handles subsequent MAC resolution in environments like home or small office setups. Modern (SDN) architectures centralize address resolution through controllers that maintain global views of , eliminating distributed ARP broadcasts by installing precise flow rules in switches for direct based on pre-learned mappings. This approach confines ARP-like operations to network edges, minimizing overhead and enabling programmable policies for resolution, as demonstrated in designs that use to proxy or suppress ARP traffic internally. VLAN-aware extensions, such as the GARP VLAN Registration Protocol (GVRP) built on the Generic Attribute Registration Protocol (GARP), facilitate dynamic registration of memberships across switches, indirectly supporting address resolution by pruning broadcast domains and optimizing floods in multi- Ethernet environments. GVRP advertises attributes to ensure frames reach only relevant ports, reducing unnecessary propagation compared to static configurations. In comparison to , alternatives like NDP introduce native through options for cryptographic and protection against replay attacks, while lacking ARP's simplicity but offering greater robustness in diverse topologies. Transition mechanisms, such as dual-stack configurations, allow networks to run ARP for IPv4 traffic alongside NDP for , enabling gradual migration without disrupting existing IPv4 resolution during coexistence phases.

Security and Optimizations

ARP Spoofing

ARP spoofing, also known as ARP poisoning or ARP cache poisoning, exploits the 's lack of authentication by having an attacker send forged ARP reply packets to network hosts, associating the attacker's with a legitimate such as that of a gateway or another . This poisons the ARP cache of victim devices, causing them to redirect traffic intended for the spoofed to the attacker's interface instead, enabling interception and manipulation of data in transit. The attack relies on the protocol's trust model, where devices accept unsolicited or gratuitous ARP replies without verification, as defined in RFC 826. There are two primary types of ARP spoofing: gratuitous spoofing, where the attacker broadcasts unsolicited ARP replies to poison multiple caches indiscriminately and maintain false bindings over time, and targeted spoofing, involving directed replies in response to legitimate ARP requests from specific victims to insert malicious mappings selectively. In gratuitous attacks, the forged packets mimic announcements to update caches broadly, while targeted ones exploit ongoing ARP queries to affect particular host-to-host communications. These methods allow attackers to position themselves between victims and gateways, facilitating man-in-the-middle (MITM) scenarios without altering higher-layer protocols. The impacts of ARP spoofing include session hijacking, where attackers intercept and potentially alter ongoing connections such as login credentials or file transfers; denial-of-service (DoS) through traffic loops or blackholing by redirecting packets to nonexistent destinations; and data interception in unsecured local area networks (LANs), exposing unencrypted traffic to sniffing or injection. In switched networks, this can lead to broader disruptions if the attacker floods ARP requests to overload switches, reverting them to hub-like behavior. Such attacks are particularly effective in environments without encryption, allowing theft of sensitive information like passwords unless protected by protocols such as . Detection of ARP spoofing can involve monitoring for inconsistencies, such as duplicate addresses mapped to the same when using tools like the arp -a command, or sudden changes in ARP cache entries without corresponding network events. Signs also include unexpected increases or anomalies indicating rerouting, verifiable through packet captures showing forged replies from unauthorized sources. To mitigate ARP spoofing, network administrators can implement Dynamic ARP Inspection (DAI) on switches to validate ARP packets against a trusted database, static ARP entries for critical devices, to limit MAC addresses per port, and encryption protocols like to protect traffic even if intercepted. These measures address ARP's inherent vulnerabilities while maintaining compatibility with existing IPv4 networks. ARP spoofing vulnerabilities were first documented in the late 1980s, with attacks becoming common in the 1990s and 2000s, especially in early unsecured networks where weak like WEP amplified LAN-based exploits. These persisted into legacy systems lacking modern safeguards, as evidenced by tools like dsniff developed around 2000 that simplified such attacks on Ethernet and wireless LANs. Despite awareness since Bellovin's 1989 analysis of TCP/IP flaws, ARP's design flaws continue to pose risks in non-upgraded environments.

References

  1. [1]
    RFC 826 - An Ethernet Address Resolution Protocol - IETF Datatracker
    The purpose of this RFC is to present a method of Converting Protocol Addresses (eg, IP addresses) to Local Network Addresses (eg, Ethernet addresses).
  2. [2]
    Address Resolution Protocol (ARP) - IBM
    The Address Resolution Protocol is a layer 2 protocol used to map MAC addresses to IP addresses. All hosts on a network are located by their IP address.
  3. [3]
    Comparison of Neighbor Discovery to ARP and Related IPv4 Protocols
    IPv6 Neighbor Discovery combines IPv4 ARP, ICMP, and Redirect. It has unreachability detection, autoconfiguration, and MTU advertisement, unlike IPv4. IPv6 ...
  4. [4]
    What is ARP Spoofing | ARP Cache Poisoning Attack Explained
    An ARP spoofing, also known as ARP poisoning, is a Man in the Middle (MitM) attack that allows attackers to intercept communication between network devices.Missing: authoritative | Show results with:authoritative
  5. [5]
    [PDF] Address Resolution Protocol - Cisco
    Jan 30, 2013 · IP addressing occurs at Layer 2 (data link) and Layer 3 (network) of the Open System Interconnection. (OSI) reference model. OSI is an ...Missing: integration EtherType
  6. [6]
    RFC 1209
    o The EtherType for IP is 2048 (decimal), 0800 (Internet hexadecimal). The EtherType for ARP is 2054 (decimal), 0806 (Internet hexadecimal). IEEE 802.2 LLC ...
  7. [7]
    Address Resolution Protocol (ARP) Parameters
    May 19, 2023 · Operation Codes ; 8, InARP-Request, [RFC2390] ; 9, InARP-Reply, [RFC2390] ; 10, ARP-NAK, [RFC1577] ; 11, MARS-Request, [Grenville_Armitage].
  8. [8]
    arp(7) - Linux manual page - man7.org
    retrans_time_ms (since Linux 2.6.12) The number of milliseconds to delay before retransmitting a request. Defaults to 1000 milliseconds. ucast_solicit (since ...Missing: retries | Show results with:retries
  9. [9]
  10. [10]
    RFC 7342 - Practices for Scaling ARP and Neighbor Discovery (ND ...
    This memo documents some operational practices that allow ARP and Neighbor Discovery (ND) to scale in data center environments.
  11. [11]
  12. [12]
    RFC 5227: IPv4 Address Conflict Detection
    This document describes (i) a simple precaution that a host can take in advance to help prevent this misconfiguration from happening, and (ii) if this ...
  13. [13]
    RFC 5227 - IETF
    The term "gratuitous reply" would seem to apply perfectly to an ARP Announcement: an answer to an implied question that in fact no one asked.
  14. [14]
  15. [15]
    Cisco IOS First Hop Redundancy Protocols Command Reference
    Aug 18, 2014 · Use the standby send arp command in EXEC mode to configure HSRP to send a single gratuitous ARP packet when an HSRP group becomes active.Missing: scenarios | Show results with:scenarios
  16. [16]
    RFC 1027 - Using ARP to implement transparent subnet gateways
    This RFC describes the use of the Ethernet Address Resolution Protocol (ARP) by subnet gateways to permit hosts on the connected subnets to communicate without ...
  17. [17]
    Understand Proxy ARP - Cisco
    Proxy ARP can help machines on a subnet reach remote subnets without the need to configure routing or a default gateway. Proxy ARP is defined in RFC 1027.
  18. [18]
    RFC 2390: Inverse Address Resolution Protocol
    Inverse Address Resolution Protocol (InARP) will allow a Frame Relay station to discover the protocol address of a station associated with the virtual circuit.
  19. [19]
    RFC 1293 - Inverse Address Resolution Protocol - IETF Datatracker
    Inverse Address Resolution Protocol (InARP) will allow a Frame Relay station to discover the protocol address of a station associated with the virtual circuit.
  20. [20]
    What is Frame Relay and use case of it? - Cisco Community
    Nov 11, 2021 · Frame Relay is an old technology. There may still be some networks somewhere that still use it. But it has been replaced by newer technologies.Missing: modern | Show results with:modern
  21. [21]
    MPLS vs Frame Relay: Network Solutions Compared - Lightyear.ai
    Aug 7, 2025 · MPLS uses labels for dynamic routing and better QoS, while Frame Relay uses fixed paths and has limited QoS. MPLS is more flexible and modern.
  22. [22]
    [PDF] SANS Institute InfoSec Reading Room - cs.wisc.edu
    Aug 27, 2011 · This paper is designed to introduce and explain ARP spoofing and its role in Man-in-the-Middle attacks. The term Man-in-the-Middle is historical ...
  23. [23]
    [PDF] Securing ARP From the Ground Up - UF CISE - University of Florida
    Mar 4, 2015 · Both spoofing and poisoning attacks attempt to insert a malicious MAC/IP binding in the victim's ARP cache. As shown in Figure 1, the attacks ...
  24. [24]
    [PDF] Securing ARP From the Bottom Up - University of Oregon
    ARP resolution has long been vulnerable to spoofing and other attacks, and past proposals to secure the protocol have focused on key owner- ship rather than ...
  25. [25]
    Address Resolution Protocol (ARP) Spoofing: What It Is and How to ...
    May 18, 2022 · Address Resolution Protocol (ARP) spoofing or ARP poisoning is a form of spoofing attack that hackers use to intercept data.Missing: authoritative | Show results with:authoritative
  26. [26]
    [PDF] PacketFence – version 1.7.5 - Inverse inc.
    This allows for the internal MAC to IP mappings to be populated quickly. [arp.stuffing] type: toggle options: enabled|disabled (default: disabled).
  27. [27]
    NEWS.old · maintenance/9.2 · Inverse inc. / packetfence - GitLab
    fixed small bug with arp stuffing using old trapping.blackholemac. fixed small bug with arp isolation. violation array is now unique. fixed violation_add() to ...