IP-стек операционной системы определяет, куда его отправлять, следующим образом.
Во-первых, вам нужно понять некоторые основные адреса. Это будет не очень тщательно, но, надеюсь, достаточно хорошо, чтобы вы могли в этом разобраться.
Для IPv4 у вас есть сетевой адрес и адрес хоста.
Таким образом, для адреса 192.168.1.10 с маской подсети 255.255.255.0 у вас есть первые 3 байта, используемые для адресации сети. то есть часть 255.255.255. Бит 0 в конце представляет хост-часть адреса. На самом деле вы также можете иметь маски подсетей 255.255.255.240. Но для простоты я просто скажу, что эти числа используются для определения того, как 4 байта или октета, которые составляют адрес, распределяются между сетью и хостами.
В случае маски подсети 255.255.255.0, часть 0 в конце означает, что мы можем иметь 255 хостов.
Теперь о маршрутизации.
Если мы отправляем пакет на 192.168.1.11, то стек IP будет знать, что это локальный адрес, и просто отправит его непосредственно на адрес 192.168.1.11, потому что первые 3 октета соответствуют моей локальной сети. Тем не менее, если бы я должен был отправить пакет в 1.1.1.1, то он был бы отправлен на то, что определено как маршрут по умолчанию в моей операционной системе. Маршрут по умолчанию - это маршрутизатор, который будет обрабатывать сообщение «Я хочу отправить пакет в 1.1.1.1 для меня». Поэтому все, что не является локальным и не начинается с 192.168.1, будет отправлено на маршрутизатор по умолчанию. То, как маршрутизатор знает, как достичь 1.1.1.1, - вот что такое протоколы маршрутизации. Но вы просто спросили, как пакеты "выходят из сети", поэтому я надеюсь, что этот ответ объяснит это достаточно хорошо для вас.