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

Когда вы слышите слово «порт», первое, что приходит на ум, — это, вероятно, разъём для кабеля на компьютере или телефоне. Однако в контексте компьютерных сетей и интернета порт — это нечто иное. Это логическое, а не физическое понятие.

Если представить интернет-соединение как доставку почты в огромный офисный небоскрёб (ваш компьютер), то IP-адрес — это адрес здания. Но в здании сотни квартир и офисов (программ). Вот порт — это номер конкретной квартиры или офиса, куда должен попасть конверт с данными. Без этого номера почтальон (сетевой протокол) не будет знать, кому именно вручить письмо.

Порт (англ. port) — это целое неотрицательное число, которое записывается в заголовках протоколов транспортного уровня сетевой модели OSI. Он используется для идентификации процесса-получателя пакета данных в рамках одного сетевого адреса (IP-адреса).

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

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

Порты делятся на категории по диапазонам номеров (от 0 до 65535) и по типам протоколов, с которыми они работают.

1. По диапазонам номеров

  • Системные (well-known) порты (0-1023): Закреплены за фундаментальными сетевыми службами. Например:
    • 80/TCP — HTTP (веб-трафик).
    • 443/TCP — HTTPS (защищённый веб-трафик).
    • 53/TCP, UDP — DNS (преобразование доменных имён в IP-адреса).
    • 25/TCP — SMTP (отправка почты).
  • Пользовательские (registered) порты (1024-49151): Назначаются менее распространённым службам и приложениям по регистрации в IANA (Internet Assigned Numbers Authority).
  • Динамические/частные (dynamic/private) порты (49152-65535): Используются клиентскими программами для временных соединений. Когда вы открываете сайт, ваш браузер использует один из этих портов как «точку выхода» для запроса к порту 80 на сервере.

2. По протоколам транспортного уровня

Чаще всего порты ассоциируются с двумя ключевыми протоколами:

  • TCP-порты (Transmission Control Protocol): Используются для соединений, требующих надёжности. Протокол гарантирует доставку пакетов в правильном порядке, проверяет целостность данных. Подходит для веб-страниц, почты, файлов.
  • UDP-порты (User Datagram Protocol): Используются для быстрой передачи, где важнее скорость, чем абсолютная точность. Пакеты отправляются без предварительного установления соединения и гарантии доставки. Подходит для онлайн-видео, голосовой связи (VoIP), онлайн-игр.

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

Где и как встречаются порты?

Вы сталкиваетесь с портами постоянно, даже не замечая этого:

  1. Веб-сёрфинг: Набирая адрес сайта, браузер по умолчанию обращается к порту 80 (HTTP) или 443 (HTTPS) сервера.
  2. Электронная почта: Почтовые программы используют разные порты для отправки (SMTP, порт 25 или 587) и получения (IMAP/POP3, порты 143, 993, 110, 995) писем.
  3. Мессенджеры и онлайн-игры: Эти приложения используют определённые порты для установления соединения между клиентами и серверами.
  4. Сетевые настройки и диагностика: Администраторы и продвинутые пользователи настраивают правила в брандмауэре, разрешая или блокируя трафик на конкретные порты для безопасности.
  5. В адресной строке: Иногда вы можете видеть URL вида http://example.com:8080. Здесь :8080 — указание браузеру обратиться не к стандартному порту 80, а к альтернативному порту 8080.

Итог

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

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

  • Что такое «открытый порт» и чем он опасен? Открытый порт — это порт, ожидающий входящих подключений. Если на нём работает уязвимая служба, он может стать целью для хакеров. Брандмауэр контролирует открытые порты.
  • Как проверить, какие порты открыты на моём компьютере? Для этого используют команды в командной строке (например, netstat -an в Windows или Linux) или специальные утилиты для сканирования портов.
  • Что такое «проброс портов» (Port Forwarding) на роутере? Это настройка маршрутизатора, которая перенаправляет входящий трафик с определённого порта из интернета на конкретное устройство (например, игровую консоль или сервер) в вашей домашней сети.
  • Порт 80 и 443 — в чём разница? Порт 80 используется для обычного HTTP-соединения (данные передаются в открытом виде), а порт 443 — для HTTPS, где данные шифруются с помощью SSL/TLS, что обеспечивает безопасность (например, при вводе паролей или данных карты).
  • Может ли два приложения использовать один порт одновременно? Нет, на одном IP-адресе и для одного протокола (TCP или UDP) порт может быть занят только одним процессом. Конфликт портов приводит к ошибке запуска приложения.