Что такое порт в программировании

С ними компьютер не путает, что и куда отправлять

Что такое порт в программировании

Какие бывают порты

В компьютерах есть два вида портов — физические и программные. 

Физический порт — это разъём на компьютере или в ноутбуке, куда можно подключить флешку, сетевой кабель, принтер, наушники и что угодно ещё. Физический порт обменивается электричеством с чем-то, что в этот порт вставлено. В электричестве закодированы какие-то данные.

Программный порт — это «виртуальный разъём» в программе, через которую она может обмениваться данными с системой и другими программами. У него нет физического устройства, а есть только число от 0 до 65 535 — оно называется адресом порта. Мы будем говорить именно про них.

Что такое порт в программировании
Типичный набор портов в современной материнской плате

Для чего нужны порты

Представьте, что у вас в компьютере есть разъём для локальной сети и интернета. В него воткнут всего один кабель. Но одновременно сетью и интернетом пользуются разные программы:

  • операционная система запрашивает обновления безопасности на сервере;
  • браузер загружает очередную страничку в соцсети;
  • телеграм отправляет и принимает сообщения;
  • фоном висит созвон с коллегой по зуму и тоже отправляет видеоданные;
  • Яндекс.Диск синхронизирует данные с облаком.

👉 С вайфаем всё то же самое — всё это идёт через один разьём на материнской плате. То, что нет проводов, ничего не меняет — все данные всё равно сыпятся в один физический порт.

Чтобы при работе в сети программы и сервисы не путали данные между собой, разработчики придумали порты — они определяют, к какой программе относятся те данные, которые получает сетевая плата.

Как выглядит виртуальный порт

Мы уже работали с портами, когда собирали статичный сайт на Hugo, и тогда мы открывали в браузере такой адрес:

localhost:1313

«Локалхост» означает, что браузер будет искать страницу на своём компьютере по адресу 127.0.0.1, а 1313 — это как раз порт. Порт от адреса отделяется двоеточием.

С технической точки зрения порт — это просто число, которое прикрепляется к каждому пакету с данными, поступающими в компьютер. Система смотрит, какой номер порта стоит на пакете, находит программу, которая его использует, и отправляет ей. В этом и смысл портов — чтобы система всегда знала, кому какие данные отдавать и кто их отправляет.

Что можно сделать с портом

  • Порт можно открыть — чтобы система знала, куда отдавать данные, пришедшие по этому адресу.
  • Порт можно закрыть — чтобы данные больше не передавались. Они будут игнорироваться. 
  • Порт можно пробросить — например, можно научить систему, что если запрос пришёл на порт 1212 — отправить его на порт 2121. Так устроены многие сетевые маршрутизаторы и, в частности, ваш интернет-провайдер. 
  • Порты можно просканировать — перебрать все числа от 0 до 65535, чтобы посмотреть, придёт ли с какого-нибудь из них ответ. Если придёт — на этом порте сидит какая-то программа. 
  • Порт можно заблокировать — сказать вашему роутеру на работе или дома, чтобы все запросы на определённый порт либо выбрасывались, либо переадресовывались. 
  • Порт можно задать: если вы знаете, что какой-то порт у вас заблокирован, а вам жуть как надо запустить программу — можно задать для этой программы другой порт и общаться через него. Не все программы это поддерживают. 

Можно ничего не делать — с точки зрения пользователя всё работает само. И правильно, и хорошо. 

Художник:

Даня Берковский

Корректор:

Ирина Михеева

Вёрстка:

Кирилл Климентьев

Соцсети:

Олег Вешкурцев

Через год — лучше работа, выше зарплата
В «Яндекс Практикуме» становятся разработчиками с нуля. Выберите язык — веб, Python, Java, C++ — и учитесь. Джуны зарабатывают от 80 000 ₽, мидлы — от 150 000 ₽. Дальше — программы трудоустройства и компенсация, если пойдёте в Яндекс.
Через год — лучше работа, выше зарплата Через год — лучше работа, выше зарплата Через год — лучше работа, выше зарплата Через год — лучше работа, выше зарплата
Вам может быть интересно
Асимметричное шифрование
Асимметричное шифрование

Сложное, но очень полезное.

medium
Богдан Овсиюк: из пограничника в тестировщики за полгода
Богдан Овсиюк: из пограничника в тестировщики за полгода

История выпускника Практикума.

Большой разбор: как ИИ играет в змейку
Большой разбор: как ИИ играет в змейку

Современные технологии против игры прошлого века.

medium
Почему внутри компьютера разное напряжение и что от чего питается
Почему внутри компьютера разное напряжение и что от чего питается

Как ток из розетки попадает на видеокарту и процессор

easy
119 тысяч рублей за то, чтобы делать приложухи — это справедливо?
119 тысяч рублей за то, чтобы делать приложухи — это справедливо?

Краткий гид по работе мобильного разработчика

easy
Внезапно: нейросети общаются друг с другом на человеческом языке
Внезапно: нейросети общаются друг с другом на человеческом языке

Оказывается, так тоже бывает

easy
Создаём и наполняем базу данных SQLite в Python
Создаём и наполняем базу данных SQLite в Python

Ничего сложного, нужен только SQL

easy
Зачем вообще нужны алгоритмы сортировки
Зачем вообще нужны алгоритмы сортировки

Чтобы быстро находить нужное среди множества данных

easy
Подборка нейронок, которые напишут за вас текст
Подборка нейронок, которые напишут за вас текст

Откройте для себя что-то кроме ChatGPT

easy
Как работает сортировка слиянием
Как работает сортировка слиянием

Одна из самых стабильных сортировок

medium
easy