Seus hosts não estão diretamente conectados uns aos outros, eles estão conectados a um roteador, que está servindo como um gateway.
Quando você tem dados para enviar, primeiro envie-os para o seu roteador com um endereço IP especificado como o destino que os dados devem seguir. Em seguida, se os dados não forem destinados à mesma rede local e a uma rede externa, o roteador verifica sua tabela de roteamento e, com base nas entradas dessa tabela, encaminha os dados para fora de uma interface que aponta para esse endereço de rede.
E se os dados forem destinados à mesma rede local, eles serão encaminhados para o outro host.
Os dados não podem viajar diretamente entre dois hosts sem interceptação de um roteador, a menos que você esteja em uma rede local.
Por que isso acontece? Quando você tem uma rede configurada com um roteador, todos os hosts obtêm uma rota de gateway padrão e enviam automaticamente todos os dados para onde rota estados. No entanto, se essa rota for menos específica, ou ausente, o host usaria seu ARP tabela para enviar os dados diretamente para o outro host (se na rede local e diretamente conectado).
Observação: O SSH não é uma conexão direta entre dois hosts. O roteador ainda encaminha quaisquer dados que estão sendo enviados através da conexão SSH. Uma conexão direta refere-se a uma conexão direta física , portanto, os dados são sempre sendo "guiado" por um roteador.
Veja também:
Os pacotes serão enviados para o mesmo subnet passar por roteadores? @ superuser.com
Um guia mais detalhado sobre como funciona o roteamento
Modelo OSI @ wikipedia