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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

localhost:1313

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

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

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

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

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

Художник:

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

Корректор:

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

Вёрстка:

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

Соцсети:

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

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
Богдан Овсиюк: из пограничника в тестировщики за полгода
Богдан Овсиюк: из пограничника в тестировщики за полгода

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

Асимметричное шифрование
Асимметричное шифрование

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

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

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

medium
Стрелочные функции в JavaScript
Стрелочные функции в JavaScript

Почти как обычные функции, только стрелочные.

easy
Что такое AJAX
Что такое AJAX

Как добавить что-то новое на страницу без перезагрузки

easy
Что под капотом у ChatGPT и других чатов с большими языковыми моделями
Что под капотом у ChatGPT и других чатов с большими языковыми моделями

Почему это работает так хорошо

hard
Кто такой дата-сайентист

Если вы не знаете, чем заняться ближайшие 15 лет, — идите в дата-сайенс, помогите нейросетям захватить мир.

easy
9 признаков плохой вакансии в ИТ
9 признаков плохой вакансии в ИТ

Лучше узнать про это заранее

easy
Нейронки-2024: обзор лучших для создания изображений
Нейронки-2024: обзор лучших для создания изображений

Классика, хехе

easy
easy
[anycomment]
Exit mobile version