Como é que os PC’s se descobrem uns aos outros?
No mundo das redes informáticas existem muitos protocolos e tecnologias. Ao longo de alguns artigos que temos vindo a publicar no pplware (ver aqui), temos tentado explicar alguns desses termos/conceitos e funcionamento de várias tecnologias, por forma a que os nossos leitores estejam mais contextualizados com o mundo das redes de dados.
Hoje vamos explicar o que é e para que serve o protocolo ARP.
Antes de passar a explicação do protocolo ARP propriamente dito, apenas recordar o que são endereços físicos e endereços lógicos.
Endereços físicos – Um endereço físico é o endereço MAC (Media Access Control) que está associado a um determinado equipamento. Esse endereço é composto por 48 bits (12 caracteres hexadecimais) Saber mais aqui.
Endereços lógicos – Os endereços lógicos são os endereços IP (IPv4 ou IPv6) que configuramos num determinado terminal. Saber mais aqui.
O que é e como funciona o protocolo ARP
Recentemente um leitor enviou-me um e-mail com a seguinte questão: “Numa rede ethernet, como é que os PC’s se descobrem uns aos outros?”. Quem trabalha com redes a resposta seria directa: o protocolo ARP (Address Resolution Protocol – RFC 826) permite que um PC obtenha o endereço físico de uma máquina, usando o endereço IP (da máquina de destino).
Percebido? hum…confuso. Então vamos a três questões essenciais:
1) Quando pretendemos comunicar com outra máquina, o que precisamos de saber?
Endereço IP (ou o nome que depois é traduzido num endereço IP).
2) Qual a informação que é inserida numa frame relativamente ao destinatário?
O MAC Address do PC de destino (endereço físico) é incluído na frame (PDU da camada 2, saber mais aqui).
3) Mas se eu só sei o IP, como descobrir o MAC do PC de destino?
Recorrendo ao protocolo ARP, que permite obter o endereço MAC (do PC de destino) usando o endereço IP (do PC de destino).
Vamos a um exemplo de funcionamento do protocolo ARP
- Vamos considerar que o PC-A com o endereço IP: 192.168.0.1 quer comunicar com o PC-B que tem o endereço IP: 192.168.0.3 (os PCs estão na mesma rede).
- O PC-A verifica a sua tabela ARP (podem ver esta informação através do comando arp –a) para saber se já existe alguma informação relativamente ao endereço físico do PC-B. Caso exista, esse endereço é usado.
- Caso o PC-A não tenha qualquer informação na tabela ARP do PC-B, o protocolo ARP envia uma mensagem de broadcast (para o endereço FF:FF:FF:FF:FF:FF) a “questionar” (ARP Request) a quem pertence o endereço IP (neste caso o endereço IP do PC-B).
- O PC-B responderá à mensagem ARP enviada pelo PC-A, enviando o seu endereço físico.O PC-A guardará essa informação na sua tabela ARP (que fica guardada na memória RAM do PC)
Nota: No caso do envio de informação para fora do domínio da rede local,o endereço físico a ser registado na tabela ARP de um PC local será o endereço físico do gateway.
A resolução de endereços físicos em endereços lógicos também é possível, sendo para isso necessário recorrer ao protocolo RARP (Reverse Address Resolution Protocol – RFC 903).
Num próximo artigo apresentaremos uma simulação relativamente ao uso do protocolo ARP por parte dos PCs.
Há alguma dúvida? Para quem não conhecia o protocolo ARP tinha ideia que as coisas funcionavam assim?