Как компьютер выбирает нужную программу

IP-адрес помогает доставить сетевой пакет на нужное устройство, но сам по себе не говорит, какой программе он предназначен. На компьютере одновременно могут работать браузер, почтовый клиент и другие приложения, обменивающиеся данными через сеть. Чтобы передать пришедшее сообщение нужному получателю внутри системы, сетевые протоколы используют номер порта.

Порт — не физический разъём и не отдельный канал в корпусе компьютера. Это числовая метка, которую операционная система учитывает вместе с сетевыми адресами и протоколом. По этим данным она определяет, какому процессу передать пакет. Процесс — это выполняющаяся программа или её часть.

Порт назначается не зданию, а соединению

У веб-сервера программа обычно ожидает запросы на известном порту: традиционный HTTP использует 80, а HTTPS — 443. Когда браузер устанавливает соединение с сайтом, он обращается к этому порту на сервере. Для самого браузера операционная система, как правило, выбирает временный исходящий порт. Поэтому одновременно открытые вкладки и соединения можно различать, даже если они идут через одну и ту же сетевую карту.

На практике соединение распознаётся не по одному номеру. Важны адреса отправителя и получателя, порты с обеих сторон и используемый транспортный протокол, например TCP или UDP. Такая комбинация позволяет компьютеру отличить одно сетевое общение от другого и направить данные нужному приложению.

Почему номер порта имеет значение

Порт помогает упорядочить сетевой трафик, но не гарантирует, что на устройстве действительно работает нужная служба. Если программа не слушает указанный порт, запрос некому принять; если доступ блокирует межсетевой экран, он может не пройти дальше. Поэтому при проблемах с подключением важно не только проверить IP-адрес: значение имеют и порт, и приложение, которое должно его обслуживать.