A pilha de rede primeiro pesquisa o IP de destino em sua tabela de roteamento, a partir disso, determina duas coisas.
- Qual interface o pacote deve ser enviado.
- Qual é o endereço IP do próximo salto. Se nenhum salto seguinte for especificado na tabela de roteamento, o IP do destino será usado como o próximo salto.
Observe que o endereço IP do próximo salto é um conceito puramente local, nunca se torna parte de um pacote enviado na conexão.
Se o pacote for enviado em uma camada de link multiponto (por exemplo, Ethernet etc), o sistema operacional procurará o próximo salto na tabela arp (ipv4) ou discovery do vizinho (ipv6). Se encontrar uma entrada não obsoleta lá, ele terá o endereço MAC necessário e poderá enviar o pacote.
Se não tiver uma entrada utilizável, coloca os pacotes destinados ao salto seguinte em espera e envia uma solicitação para encontrar o endereço MAC. Os mecanismos aqui diferem um pouco entre v4 e v6.
Na v4, as solicitações arp são enviadas. Isso normalmente é transmitido, mas em alguns casos, se o host tiver uma entrada obsoleta, ele poderá tentar uma solicitação de unicast primeiro e só voltará a transmitir se isso falhar. A resposta é normalmente unicast.
Na v6, as solicitações de solicitação de vizinhos são enviadas para um endereço multicast gerado a partir do endereço do próximo salto. O destino responde com um anúncio de vizinho unicast. Os hosts também podem enviar anúncios vizinhos ao grupo "multicast de todos os nós" (também conhecido como broadcast eficaz) para atualizar as entradas nos caches de descoberta de vizinhos de mesmo nível.