Что такое порт в компьютерных сетях

Сетевые порты – что это такое?

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

Сетевой порт – это некое виртуальное расширение, дополнение к сетевому адресу (IP-адресу). Для большего понимания можно сказать, что без сетевого порта информация с другого устройства вряд ли дойдет до нашего компьютера, так как она будет идти только по IP. Компьютер просто не поймёт, как обработать её, с помощью какого приложения.

Но с технической точки зрения также можно выделить и другое понятие – это натуральное число от 0 до 65535, которое записывается в заголовках протоколов транспортного уровня сетевой модели OSI.

Для передачи данных используются транспортные протоколы, самые популярные – это TCP/IP (Transmission Control Protocol/Internet Protocol) и UDP (User Datagram Protocol). Обычно приложение либо ожидает входящие данные (или запроса на соединение), либо посылает данные (или запрос на соединение) на известный порт, открытый приложением-сервером (роль клиента).

По умолчанию приложению выдается порт с произвольным номером (к примеру, ближайшим свободным, большим 1234). При необходимости приложение может запросить конкретный (предопределённый) номер порта. Так веб-серверы обычно открывают для ожидания соединения предопределённый порт 80 протокола TCP.

Порты TCP не пересекаются с портами UDP. То есть, порт 1234 протокола TCP не будет мешать обмену по UDP через порт 1234.

В компьютере точное количество портов – 65 535. И ух них есть своя градация. То есть порты с номерами до 1023 Линукс и Unix-подобными ОС считаются за «критически важные» для сетевой деятельности системы, так что для доступа к ним и службам, с ними связанными часто требуются root права. Windows также их считает системными и пристально следит за ними.

Читайте также:  Понятие назначение и возможности компьютерных сетей

Порты от 1024 до 49151 имеют статус «готовые к регистрации». Это значит, что эти порты зарезервированы или могут быть зарезервированы за определёнными службами. Однако стоит отметить, что они за этими сервисами не закреплены прочными правилами, но могут дать ключ для распознавания запущенной программы на стороне хоста.

Остальные (начиная с 49152) порты не зарегистрированы и используются по усмотрению пользователей ОС и имеют название – «динамические» порты. Так что запоминать, какой порт для какой службы установлен, просто бесполезно.

Однако есть несколько уже хорошо известных портов:

  • FTP-Data. Канал данных файлового транспортного протокола, используется для передачи файлов между системами по протоколу TCP. Используется 21 порт;
  • FTP. Управляющий канал FTP. Используется участниками сеанса этого канала для обмена командами и откликами на них по протоколу TCP. Использует 20 порт;
  • Telnet. Используется для выполнения команд на удаленном компьютере через порт № 23 через протокол TCP;
  • SMTP. Простой почтовый протокол для передачи данных по email. Раньше использовался порт под номером 25, сейчас используется шифрование и номер порта уже другой. Зависит от поставщика услуг;
  • Domain. Использует 53 порт по протоколам UDP и TCP для получения запросов на разрешение имен хостов;
  • HTTP. Транспортный протокол для гипертекстовой разметки. Используется для передачи запросов от браузера (например, ваши запросы в Яндексе). Используется 80 порт;
  • POP3. Используется для получения электронной почты. до шифрования использовал 110 порт, сейчас номер изменился. Номера портов нужно уточнять у поставщика услуг.

Возьмем пример: на сервере с одним IP может быть размещен сайт и установлены дополнительные программы, кроме самого сайта. Как в таком случае получить доступ к конкретному сервису? Необходимо указать при обращении не только IP-адрес, но и соответственно порт. Сайту отводится один порт, каждому другому сервису назначается другой уникальный порт. В результате по одному IP-адресу доступно множество сервисов.

При обращении к сайту браузер обычно не указывает порт в строке адреса, он подставляет его автоматически. Например, запрос к сайту https://example.com на самом деле выглядит как https://fenix.host:443. Порт в URL-адресе указывается после двоеточия, в данном примере 443 – для https (если бы использовался http – порт был бы 80).

Читайте также:  Аппаратные средства передачи информации по компьютерной сети

Когда трафик перенаправляется другой системе, TCP/IP использует комбинацию IP адреса и определенного порта. Такая связка называется сокетом. Сокет – это файловые дескрипторы, конкретизирующие IP адрес и ассоциированный с ним номер порта плюс специальный протокол передачи, который будет работать с данными. К примеру, из Интернета можно получить доступ к папке FTP-сервера, указав через двоеточие IP-адрес и порт.

Порты хоть и обеспечивают доступ в глобальную сеть программам, возможны ситуации, когда вредоносные программы устанавливаются в систему и открывают порт без ведома пользователя. И именно с помощью открытого порта считывают информацию, поэтому необходимо быть осведомленным, какие основные порты требуются пользователю и как их можно открывать/закрывать.

Источник

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

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

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

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

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

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

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

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

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

Читайте также:  Типы коммутации в компьютерных сетях

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

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

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

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

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

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

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

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

Источник

Оцените статью
Adblock
detector