ARP – Address Resolution Protocol

 

Objetivo

 

Descobrir o endereço físico (MAC Address) de um host, a partir de seu endereço lógico (IP Address).

 

Cada hosts mantém uma lista, camada arp cache que pode ser vista com o comando arp –a.

 

Se o endereço necessário não estiver aí, um broadcast será propagado.

 

A máquina possuidora do endereço responderá com um unicast, informando seu endereço físico.

 

 

 

A máquina solicitante irá armazenar esta informação em seu arp cache.

 

 

Formado do cabeçalho – RFC 826

 

Verifique o formato conforme decodificado pelo Ethereal neste trace file.

 

Repare que o ARP não é encapsulado pelo protoloco IP, ficando diretamente sobre o cabeçalho Ethernet.

 

Hardware type: tipo de interface procurada; 1 para Ethernet.

 

Protocol type: protocolo cujo endereço lógico é fornecido; segue a mesma numeração do cabeçalho Ethernet – 0800 = IP

 

Hardware size e Protocol size: permitem que o ARP seja usado para protocolos de vários tamanhos de endereços. No caso do Ethernet, são 6 bytes, e do IP, 4 bytes.

 

Operation Code: indica se é um request ou um reply.

 

Funcionamento

 

Usando a figura ao lado teremos os seguintes passos:

 

1. A máquina A verifica que o destino do ping está em outra rede.

 

2. A máquina A consulta o endereço lógico do seu default gateway, que é 10.0.0.254.

 

3. A máquina A verifica seu arp cache para descobrir o endereço físico do roteador.

 

4. Caso não encontrar, ela propagará um broadcast arp perguntando o endereço físico da máquina 10.0.0.254.

 

5. O roteador responde com um unicast à máquina A informando seu endereço físico.

 

6. A máquina A termina de montar o frame com o  endereço físico do roteador e envia para ele.

 

7. O roteador recebe o pacote, e o processo se repete até a máquina B.

 

8. Para responder, a máquina B terá que fazer um processo semelhante, se ela não tiver em cache o endereço MAC do servidor.

 

Referências

 

ARP Tutorial - http://www.inetdaemon.com/tutorials/lan/arp.html