Cover V02, I01
Article
Figure 1
Figure 2
Figure 3
Sidebar 1
Sidebar 2

jan93.tar


Sidebar: ARP Economics

A question that arises frequently is, "If ethernet is already a broadcast medium, why can't IP addresses be shared for local machines? Why can't a machine sending to 87.65.43.21 simply broadcast the address to all machines (which is exactly what happens at the ethernet level anyway) and then let each machine to whom the packet is not addressed discard the packet?"

The problem (and the answer) lies in economics. In terms of machine cycles, it is too expensive for every machine to not only read every packet at the ethernet level, but to then pass the packet up into the kernel itself for an addressing decision. With ARP, though, that is exactly what happens. Each ethernet card sees the ones-filled ethernet address, copies it into its local register, sees from the "Type" field that it is an ARP request, and passes it up to the ARP module, which resides in the kernel. Generally, only one machine will reply to the ARP request, but every machine will spend the CPU cycles to read the request into kernel memory so the operating system can decide what to do with it. This is one good reason why ARP requests are kept to a minimum and the resultant answers are cached for later use.