ARP
Address Resolution Protocol

O endereço IP é utilizado para roteamento, ou seja, a escolha do caminho ideal em determinada circunstância e o instante para a conexão entre dois nós.
Para solucionar o problema de mapear o endereço de nível superior (IP) para endereço físico (Ethernet) foi proposto (e aceito) através da RFC826 o Address Resolution Protocol (ARP). O ARP permite que um host encontre o endereço físico de um host destino, tendo apenas o seu endereço IP.

Apesar de ter sido criado especificamente para uso com IP sobre Ethernet, devido à forma que foi implementado, seu uso não está restrito a este ambiente.
O mapeamento de endereços pode ser feito de duas maneiras:
- mapeamento direto
- mapeamento dinâmico.


O ARP é dividido em duas partes: a primeira determina endereços físicos quando manda um pacote, e a segunda responde os pedidos de outros hosts.
Geralmente antes de enviar, o host consulta seu cache ARP procurando o endereço físico. Se encontrar o endereço, anexa-o no frame e envia acrescentando os dados. Se o host não encontrar o endereço, é realizado um broadcast de pedido ARP.
A segunda parte do código do ARP manuseia os pacotes recebidos da rede. Quando chega um pacote, o programa extrai e examina o endereço físico e IP para verificar se já existe a entrada no cache e atualiza novamente sobreescrevendo os endereços. Depois, o receptor começa a processar o resto do pacote.
O receptor processa dois tipos de entrada de pacotes ARP:
pedido ARP de um outro host : o receptor envia o endereço físico ao emissor e armazena o endereço do emissor no cache. Se o endereço IP do pacote recebido não for igual do receptor, o pacote ARP é ignorado.