механизм выглядит так:
При нажатии клавиши формируется пакет данных, там есть поля source и destination ip.
Далее сетевая подсистема смотрит находится ли destination ip в моей подсети (вообще вначале она смотрит принадлежит ли ip мне, но не важно). Если dst ip находится в подсети, компьютер обращается к своей arp таблице и смотрит за каким mac адресом dstip. и далее шлет на этот мак адрес. Если в arp нет искомого хоста, шлется broadcast сообщение кто здесь имеет dstip. Если ответили, то запись пишется в arp таблицу и далее по накатанной.
Если удаленный хост находится вне подсети компьютера, то хост проверяет свою таблицу маршрутизации есть ли у меня маршрут на эту подсеть. В большинстве случаев на хосте прописывается default gateway, он из себя представляет по сути маршрут 0,0,0,0/0 via ip_address_router. Далее происходит передача пакета как в первом случае до маршрутизатора. Маршрутизатор смотрит какой его маршрут наиболее близко подходит под dstip и шлет туда пакет по таким же правилам, как с хостом.