Address Resolution Protocol (ARP)
Assumindo que estamos a utilizar redes Ethernet, identificando-se assim a arquitectura utilizada para os PCs comunicarem
enter si.
Acontece que uma rede ñ identifica PCs com base no endereço IP utilizado pelo TCP/IP, mas sim com base num endereço
designado "MAC address ou physical address" que pode ser consultado através da
execução do comando "ipconfig /all".
Para que uma placa de rede decida passar o conteúdo dos frames Ethernet à camada superior do modelo Internet, é necessário
que o campo destinado à identificação do destino, dentro do frame, seja igual ao endereço MAC da placa. Caso contrário, nada
é feito, excepto "ouvir" o que está a passar na rede.
Como o TCP/IP utiliza endereços IP para identificar os hosts, quando numa rede local é necessário estabelecer a comunicação
entre 2 hosts, é necessário conhecer o endereço MAC do destinatário, que será
indicado no header (cabeçalho) dos frames Ethernet que lhe são destinados. O papel do ARP é fornecer o endereço MAC em função
de 1 endereço IP fornecido.
O processamento do frame só se verifica no PC cujo MAC address da placa de rede coincide com o endereço especificado
no frame, ou quando passam frames destinados a todos os PCs, designados por broadcasts. Trata-se de mensagens que pretendem
comunicar algo a todos os PCs, como o início da eleição de um "master browser", ou uma solicitação a todos os PCs, no sentido
de saber, por exemplo, qual é o endereço IP de 1 PC designado por "main_server". Aliás, a requesição de 1 endereço MAC através
do ARP é feita sob a forma de broadcast, já que, à partida, ñ se sabe quem é o destinatário, pelo que é necessário questionar
todos os hosts.
Os PCs mantêm 1 tabela com equivalências entre endereços IP e endereços MAC, à medida que estas vão sendo obtidas.
Deste modo, evita-se a utilização repetida de broadcasts, que obrigam a um esforço acrescido de todas as workstations e servers.
A referida tabela é conhecida por "arp cache". Depois de obtido o MAC address correspondente a 1 endereço IP, ele é aplicado
em todos os frames ethernet destinados ao host com este endereço. Isto é válido no mesmo segmento apenas.