Eu escrevi sobre sub-redes e roteamento IPv4 em uma publicação anterior. Eu não falei sobre interação camada 2 / camada 3 então, sendo que eu estou preso em um hospital esperando o nascimento de um amigo nascer, eu vou em frente e exponho aqui um pouco.
O IP, sendo um protocolo da camada 3, é encapsulado em um protocolo da camada 2 quando os datagramas IP são colocados em um meio físico (camada 1). O Address Resolution Protocol (ARP) ajuda a facilitar a comunicação da camada 2 para encapsular o tráfego da camada 3 entre os hosts. (O ARP pode ser usado por protocolos da camada 3 diferentes de IP e por protocolos de camada 2 que não sejam Ethernet, mas, para os propósitos deste exemplo, estou mantendo o IP sobre Ethernet.)
Como exemplo simplista, imagine dois hosts com endereços IP e máscaras de sub-rede configurados para que ambos os hosts estejam na mesma sub-rede. Esses hosts estão conectados ao mesmo domínio de transmissão Ethernet. Seria possível que esses hosts se comuniquem por meio de transmissões Ethernet, no entanto, isso tornaria o uso ineficiente do meio de transmissão (comutadores inundando os quadros para todos os destinos, o que também é um risco de segurança, embora confiando nos switches Ethernet não encaminhar o tráfego unicast como um mecanismo de segurança é risível). O uso mais eficiente do meio Ethernet seria que cada host se comunicasse com o outro por meio de pacotes endereçados ao endereço de controle de acesso de mídia unicast (MAC) do outro host. O ARP permite que os hosts "aprendam" uns com os outros endereços MAC para facilitar essa comunicação unicast.
- Host A: endereço IP 10.0.0.1/24, endereço MAC 00: 01: de: ad: be: ef
- Host B: endereço IP 10.0.0.2/24, endereço MAC 00: 01: 0b: ad: f0: 0d
O host A tem um datagrama a ser entregue ao host B. O Host A consulta seu cache de mapeamentos de endereços MAC previamente aprendidos para IP (conhecido como cache ARP ) e não encontra entrada correspondente ao destino do datagrama endereço (10.0.0.2). O host A transmite um pacote ARP, endereçado ao endereço de destino de transmissão Ethernet (ff: ff: ff: ff: ff: ff), essencialmente "perguntando" a pergunta "Quem tem o endereço IP 10.0.0.2 atribuído?". Como esse é um pacote de transmissão, o switch Ethernet inunda esse quadro em todos os destinos.
O Host B recebe este pacote, detecta que seu próprio endereço IP está no campo "target protocol address" deste pacote ARP de broadcast (a "pergunta") e responde com um pacote ARP, endereçado ao endereço MAC do host A (que "aprendeu" a partir da requisição ARP de broadcast, enviada do endereço MAC do host A) com seu próprio endereço MAC substituído no campo "target hardware address" do pacote ARP.
O host A recebe a resposta ARP do host B. Com as informações contidas na resposta, ele tem conhecimento suficiente para endereçar o datagrama IP, quando encapsulado em um quadro Ethernet, para o endereço MAC do host B. Isso resulta em unicast tráfego do host A para o host B.
Para evitar a necessidade de uma troca ARP para cada datagrama, cada host mantém um cache dos mapeamentos IP para MAC que "aprende" por um período de tempo. O cache geralmente tem um tamanho máximo possível e a expiração dos mapeamentos impede o preenchimento da tabela. A expiração dos mapeamentos também permite que um host se comunique com um endereço MAC diferente (possivelmente como resultado da troca de uma placa de interface de rede ou por outros motivos). Tempos de expiração de cache ARP típicos variam de menos de um minuto a vários minutos.
No caso de hosts separados por roteadores, o processo ARP é o mesmo que o processo descrito acima, exceto que ocorre entre o host de envio e o roteador para o qual ele enviará os pacotes para a entrega final. Normalmente, um host seria o ARP para seu gateway padrão (já que a maioria dos hosts não tem várias rotas estáticas configuradas, mas, em vez disso, tem apenas um único roteador para um gateway padrão configurado). Uma vez que um host tenha o mapeamento IP para MAC para seu gateway padrão, os datagramas IP vinculados a hosts em outras sub-redes serão encapsulados em quadros Ethernet endereçados ao endereço MAC do roteador do gateway padrão.