(Address Resolution Protocol)
ARP é um protocolo que trabalha na camada de rede do modelo OSI e realiza a resolução de endereços permitindo a associação do endereço físico (MAC) das interfaces de rede com o endereço lógico da rede (IP). Na prática, quando um emissor quer se comunicar, difunde um pacote ARP, cujo endereço de destino do protocolo de enlace é em broadcast (para todos), perguntando o endereço MAC de um determinado endereço IP. Somente quem possuir aquele IP é quem irá responder. A resposta será um ARP dizendo qual é o MAC pretendido. A partir daí, o receptor e o emissor podem começar à trocar informações.
O que foi descrito, no parágrafo anterior, se faz necessário, pois a comunicação na mesma rede Ethernet só ocorre pela identificação do endereço MAC e não pelo IP. Palma e Prates (2003, p. 54) confirmam dizendo que essa resolução de endereço é necessária, pois os dispositivos de rede se identificam somente através de endereços MAC. Vale evidenciar que cada host mantém uma tabela ARP em cache, associando o endereço físico ao lógico, por um tempo determinado. O intuito disso é diminui o tráfego de rede. Na figura 7 é mostrado o cabeçalho ARP e em seguida o conceito de cada campo, sendo realizada uma síntese de acordo com Soares, Lemos e Colcher (1995); Tanenbaum (1997); Diógenes (2004); Comer (1998); Firewall.cx [200-?]:
Fonte: Granville (2002, p. 8) adaptado.
- Tipo de hardware: especifica um número para o protocolo usado na camada de enlace. Alguns tipos possíveis são: Ethernet, Token-Ring, FDDI etc. Por exemplo, se o campo contiver 0x0001, é o protocolo Ethernet. Este campo é de 16 bits;
- Tipo de protocolo: especifica um número para o protocolo utilizado na camada de rede. Alguns tipos possíveis são: IP, IPX etc. Por exemplo, se o campo contiver 0x0800, o é o IP. Este campo é de 16 bits;
- Hlen: também conhecido como Hardware Size, mostra o comprimento em bytes do endereço de hardware (físico). Os endereços ethernet são de seis bytes. Este campo é de 8 bits;
- Plen: também conhecido como Protocol Size, mostra o comprimento em bytes do endereço lógico (rede). Os endereços IPv4 são de quatro bytes. Este campo é de 8 bits;
- Operação: também conhecido como Opcode, especifica se a operação é uma requisição (arp request) ou uma resposta (arp reply). Se esse campo contiver 0x0001 é uma requisição ou se contiver 0x0002 é uma resposta. Este campo é de 16 bits;
- Endereço enlace do transmissor: endereço físico (MAC) do transmissor. Este campo é de 48 bits;
- Endereço IP do transmissor: endereço lógico (IP) do transmissor. Este campo é de 32 bits;
- Endereço enlace do destino: endereço físico (MAC) do destino. Este campo tem o valor 00:00:00:00:00:00 numa requisição. Este campo é de 48 bits;
- Endereço IP do destino: endereço lógico (IP) do destino. Este campo é de 32 bits;
Comandos Interessantes
# arp -n
# ip neigh show(necessário install o pacote "iproute" ou "iproute2")