Ambos, de certa forma. Em um nível de IP , seu computador sabe que está indo para um endereço externo e o envia diretamente para o roteador porque ele sabe que o roteador está agindo como um gateway para qualquer coisa que não esteja na sub-rede local (que ele determina usando o máscara de sub-rede ).
No entanto, switches e hubs operam um nível abaixo de IP, o nível de ethernet (especificamente, os dados camada de enlace, com IEEE 802 ethernet para ethernet com fio e dispositivos WiFi). Não sabe o que é um endereço IP ou o que eles significam. No entanto, ele entende algo chamado endereço MAC. Quando o seu computador envia um pacote, ele também inclui o endereço MAC do próximo dispositivo na rede que deve estar lidando com isso pacote. Neste caso, o roteador.
Quando um hub recebe um pacote, ele faz exatamente o que você descreveu - ele duplica o pacote e o envia todas as linhas na esperança de chegar ao seu destino. Qualquer dispositivo que receba o pacote, mas não seja o destinatário, simplesmente o descarte.
Um switch , por outro lado, é um pouco mais inteligente. Na verdade, ele mantém uma tabela de endereços MAC e os associa a cada porta, com base no tráfego de entrada. Dessa forma, quando tiver que enviar um pacote para um endereço MAC específico, ele saberá em qual porta ele precisa ser enviado. Isso ajuda a reduzir o congestionamento da rede.