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

Представьте себе большой морской порт, куда одновременно заходят сотни кораблей. Каждый корабль следует к своему конкретному причалу, чтобы разгрузить или принять определённый груз. В мире компьютерных сетей и интернета роль таких «причалов» выполняют сетевые порты.

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

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

Как работают порты: техническая основа

Порты работают на транспортном уровне модели сетевого взаимодействия (например, в модели OSI или TCP/IP). Их основная задача — обеспечить мультиплексирование соединений. Это означает, что одно сетевое устройство (компьютер, сервер, роутер) может одновременно поддерживать множество сетевых сессий с разными приложениями.

Каждое сетевое соединение идентифицируется парой: IP-адрес + номер порта. Номера портов — это целые числа в диапазоне от 0 до 65535. Они указываются в заголовках сетевых пакетов протоколов TCP (Transmission Control Protocol) и UDP (User Datagram Protocol). Именно эти протоколы отвечают за доставку данных от одной программы к другой.

В заголовках протоколов TCP и UDP для хранения номеров портов выделены специальные поля. Это позволяет операционной системе точно определить, какому процессу (программе) предназначен каждый пришедший пакет данных.

Классификация и виды портов

Номера портов разделены на три основные категории, которые регулируются международной организацией IANA (Internet Assigned Numbers Authority):

1. Известные порты (Well-Known Ports)

Диапазон: от 0 до 1023. Эти порты зарезервированы для системных служб и наиболее распространённых сетевых протоколов. Их использование требует привилегий администратора. Примеры:

  • 80/TCP — HTTP (веб-серверы, передача веб-страниц).
  • 443/TCP — HTTPS (защищённый HTTP с шифрованием).
  • 53/TCP, UDP — DNS (система доменных имён, преобразует имена в IP-адреса).
  • 25/TCP — SMTP (отправка электронной почты).
  • 21/TCP — FTP (передача файлов).

2. Зарегистрированные порты (Registered Ports)

Диапазон: от 1024 до 49151. Эти порты могут быть официально зарегистрированы компаниями и разработчиками для своих приложений, но не являются системными. Например:

  • 3306/TCP — MySQL (база данных).
  • 3389/TCP — RDP (удалённый рабочий стол Windows).
  • 5432/TCP — PostgreSQL (другая система управления базами данных).

3. Динамические/частные порты (Dynamic/Private Ports)

Диапазон: от 49152 до 65535. Эти порты не регистрируются и используются клиентскими приложениями для временных соединений. Когда вы открываете браузер и заходите на сайт, ваша операционная система назначает для этого соединения случайный порт из этого диапазона.

TCP vs UDP: в чём разница для портов?

Хотя порты используются и в TCP, и в UDP, сами протоколы принципиально разные, и это влияет на работу портов:

  • TCP-порты используются для соединений с гарантированной доставкой. Перед передачей данных устанавливается соединение (так называемое «рукопожатие» — handshake). TCP контролирует целостность данных, порядок их доставки и повторно отправляет потерянные пакеты. Примеры: веб-сёрфинг, загрузка файлов, электронная почта.
  • UDP-порты используются для передачи данных без предварительного установления соединения. Это быстрее, но менее надёжно — пакеты могут теряться или приходить в неправильном порядке. Зато это идеально для сервисов, где скорость важнее абсолютной точности. Примеры: потоковое видео (Zoom, Skype), онлайн-игры, DNS-запросы.

Один и тот же номер порта может использоваться одновременно для TCP и UDP, но это будут два совершенно разных сервиса.

Где и как мы сталкиваемся с портами?

Порты — невидимая, но фундаментальная часть нашей повседневной работы в интернете:

  1. Веб-сёрфинг. Когда вы вводите адрес сайта, браузер по умолчанию подключается к порту 80 (HTTP) или 443 (HTTPS) сервера.
  2. Электронная почта. Почтовые клиенты используют порт 25 для отправки (SMTP) и порты 110 (POP3) или 143 (IMAP) для приёма писем.
  3. Игры и стриминг. Многопользовательские игры и сервисы видеосвязи активно используют UDP-порты для минимальных задержек.
  4. Безопасность. Фаерволы (межсетевые экраны) работают, в том числе, на уровне портов, блокируя или разрешая трафик на определённые номера, чтобы защитить компьютер от несанкционированного доступа.
  5. Администрирование сетей и серверов. Сетевые администраторы постоянно работают с портами, настраивая перенаправление (проброс портов) на роутерах или открывая доступ к внутренним службам.

Итог: зачем нужны порты

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

Частые вопросы по теме

1. Что такое «проброс портов» на роутере и зачем он нужен?
Это настройка, которая позволяет перенаправить входящий интернет-трафик с определённого порта роутера на порт конкретного устройства (например, компьютера или камеры) в вашей локальной сети. Нужен для доступа к домашнему серверу, видеонаблюдению или для онлайн-игр.

2. Что означает «порт закрыт» или «порт открыт»?
«Порт открыт» означает, что на устройстве есть служба, которая «слушает» этот порт и готова принимать входящие соединения. «Порт закрыт» — на этом порту нет работающего сервиса, и соединения будут отклоняться. Закрытие неиспользуемых портов — важная мера безопасности.

3. Как проверить, какие порты открыты на моём компьютере?
Для этого можно использовать встроенные системные утилиты. В Windows — команда netstat -an в командной строке или PowerShell. В Linux и macOS — та же команда netstat или ss в терминале.

4. Что такое «известные атаки на порты»?
Злоумышленники часто сканируют диапазоны портов на устройствах в интернете в поисках уязвимых или неправильно настроенных служб (например, старых версий ПО на порту 21 для FTP или 22 для SSH). Поэтому важно своевременно обновлять софт и использовать фаервол.

5. Встречаются ли порты в других протоколах, кроме TCP и UDP?
Да, концепция портов используется и в других транспортных протоколах, например, в SCTP (Stream Control Transmission Protocol) и DCCP (Datagram Congestion Control Protocol), где также применяются номера для идентификации соединений.

Источники