В интернет-связи одного IP-адреса недостаточно, чтобы полностью определить назначение связи.
IP-адрес — это информация для поиска другой стороны в сети. Но внутри одного сервера или устройства одновременно работают Web, DNS, почта, чат, облачная синхронизация и другие связи.
Поэтому даже если IP-адрес назначения известен, из него одного не понятно, какому сервису или приложению передать связь.
Для такого различения используются номера портов.
Один IP-адрес не различает приложения
IP-адрес показывает положение другой стороны в сети.
Например, при доступе к Web-серверу связь сначала направляется к IP-адресу этого сервера. Но на сервере одновременно могут работать не только Web-сервер, но и DNS, почта, сервис управления, API-сервер и другое.
В этот момент по одному IP-адресу нельзя понять, какой сервис сервера должен принять связь.
Поэтому на транспортном уровне, например TCP или UDP, для различения получателя связи используются номера портов.
Номер порта различает вход связи
Номер порта — число, используемое в TCP- или UDP-связи.
Часто говорят, что порт — это «вход связи». В целом это правильное понимание. Точнее, номер порта — идентификатор, с помощью которого OS распределяет связь к нужному процессу или сервису.
Например, даже при одном IP-адресе назначения порт 443 обычно указывает на HTTPS Web-сервер, порт 53 — на DNS-сервер, порт 25 — на сервис доставки почты.
Назначение
Частый номер порта
Основной протокол
Описание
HTTP
80
TCP
Часто используется для незашифрованной Web-связи
HTTPS
443
TCP / UDP
Обычный HTTPS использует TCP, HTTP/3 использует QUIC поверх UDP
DNS
53
UDP / TCP
В обычных запросах часто UDP; для больших ответов и отдельных случаев также TCP
SMTP
25
TCP
В основном доставка между почтовыми серверами
SMTP Submission
587
TCP
Отправка от почтового клиента к серверу отправки
IMAPS
993
TCP
Получение почты по IMAP, защищенному TLS
У номеров портов есть стандартные часто используемые значения. Но номер порта не доказывает тип сервиса абсолютно.
Например, на порту 443 обычно используется HTTPS, но при настройках сервера другое приложение тоже может использовать 443. И наоборот, Web-сервер может работать на нестандартном порту.
То есть номер порта — сильный признак для предположения цели связи, но не доказательство содержимого.
Почему на одном сервере могут работать несколько сервисов
Благодаря номерам портов один сервер может одновременно предоставлять несколько сервисов.
Например, сервер с одним IP-адресом может одновременно предоставлять HTTPS, DNS и сервисы почты, ожидая связь на разных портах.
IP-адрес назначения
Номер порта назначения
Протокол связи
Пример получателя
IP того же сервера
443
TCP
HTTPS Web-сервер
IP того же сервера
53
UDP / TCP
DNS-сервер
IP того же сервера
25
TCP
Сервис доставки между почтовыми серверами
IP того же сервера
587
TCP
Submission-сервис для отправки почты
IP-адрес используется, чтобы найти хост связи, а номер порта — чтобы различить сервис внутри этого хоста.
Однако на практике решение не основано только на IP-адресе или только на номере порта. Важно и то, TCP это или UDP.
Даже один и тот же порт 53 в UDP и TCP рассматривается как разная связь.
На одном устройстве несколько приложений тоже могут общаться одновременно
Номера портов используются не только на стороне сервера. Они используются и на ПК или смартфоне пользователя.
Например, на одном ПК открыт браузер, работает чат, синхронизируется облачное хранилище и OS проверяет обновления. Внутри устройства одновременно возникает несколько связей.
OS должна различать эти связи и передавать вернувшиеся данные правильному приложению.
Для этого используется сочетание IP-адреса источника, порта источника, IP-адреса назначения, порта назначения и протокола связи.
Связь различается пятью сведениями
Для понимания TCP- и UDP-связи важны пять сведений.
Информация
Смысл
Пример
IP-адрес источника
IP-адрес отправляющей стороны
IP-адрес устройства пользователя
Номер исходного порта
Номер порта, используемый стороной, начавшей связь
Временно назначенный номер на устройстве
IP-адрес назначения
IP-адрес принимающей стороны
IP-адрес Web-сервера
Номер порта назначения
Номер порта принимающего сервиса
Например 443 для HTTPS
Протокол связи
Тип, например TCP или UDP
TCP, UDP
Это сочетание называется 5-tuple, или 5-кортеж.
Например, когда браузер подключается к HTTPS Web-серверу, порт назначения часто 443. А исходный порт назначается устройством пользователя для конкретной связи.
Исходный порт позволяет различать несколько связей с одного устройства к одному Web-серверу.
Порт назначения и исходный порт выполняют разные роли
При понимании портов важно разделять порт назначения и исходный порт.
Вид
Основная роль
Пример
Номер порта назначения
Показывает сервис назначения
443 для HTTPS, 53 для DNS
Номер исходного порта
Различает, в какую связь вернуть ответ
Временно назначается на стороне устройства
При доступе к сайту устройство пользователя часто отправляет связь на порт назначения 443. Но чтобы принять ответ, на стороне устройства тоже нужен исходный порт.
С точки зрения сервера ответ возвращается к IP-адресу пользователя и номеру порта, используемому на стороне пользователя.
Так одно устройство может одновременно обрабатывать несколько связей.
Что такое сокет
Сокет — это представление входа-выхода для сетевой связи.
В программировании сокет — механизм, который приложение просит OS создать для сетевой связи. Но для понимания структуры связи удобно думать о сокете как о конечной точке связи, выраженной сочетанием IP-адреса, номера порта и протокола связи.
Например, на стороне сервера Web-сервер создает состояние «слушать TCP-порт 443». Это значит, что сервер подготовил вход для приема HTTPS-связи.
На стороне клиента браузер при начале связи получает от OS исходный номер порта.
Сторона
Как понимать сокет
Пример
Сервер
Ожидает связь на конкретном IP-адресе, порте и протоколе
Ожидание HTTPS на TCP 443
Клиент
Управляет подключением с временным исходным портом для каждой связи
Браузер подключается с временного исходного порта
Вся связь
Одна связь различается сочетанием источника и назначения
IP источника, порт источника, IP назначения, порт назначения, протокол
Строго говоря, значение слова «сокет» немного меняется по контексту.
Оно может означать сокет, на котором сервер ожидает подключения, или конечную точку после установки связи. Кроме того, TCP с установлением соединения и UDP без установки соединения обрабатывают сокеты по-разному.
Но как основа достаточно понимать сокет как сетевой вход OS, которым приложение пользуется для связи.
В TCP и UDP смысл портов отличается
Номера портов используются и в TCP, и в UDP, но свойства связи отличаются.
TCP сначала устанавливает соединение, затем передает данные. Он используется в HTTPS, отправке почты, SSH и многой другой связи.
UDP не предполагает установление соединения как TCP. Он используется в DNS-запросах, QUIC, связи реального времени и другом.
Пункт
TCP
UDP
Свойство связи
Связь после установления соединения
Без предпосылки установления соединения
Роль порта
Используется для сервиса назначения и различения связи
Используется для различения получателя данных
Типичные примеры
HTTPS, SSH, SMTP, IMAPS
DNS, QUIC, часть связи реального времени
Даже один и тот же номер порта в TCP и UDP считается разной связью.
Например, TCP 443 и UDP 443 используют одно число «443», но из-за разного протокола OS и сетевое оборудование рассматривают их отдельно.
По номеру порта можно предполагать цель связи
Понимание портов помогает читать журналы связи и поведение сети.
Например, порт назначения 443 может указывать на Web-связь вроде HTTPS или HTTP/3. Порт 53 может указывать на DNS-запрос. Порт 587 может быть связан с отправкой почты.
Однако по одному номеру порта нельзя полностью определить содержимое связи.
В зашифрованной связи содержимое труднее увидеть. Сервис может работать на нестандартном порту. Кроме того, через широко разрешаемый порт 443 может идти не только обычный Web.
Поэтому номер порта — материал для предположения цели связи, а не доказательство содержимого.
Номера портов при понимании анонимности
, , DNS, HTTPS и другие механизмы на практике работают через сочетание IP-адресов, портов и протоколов.
Например, для HTTPS часто используется 443. Для DNS часто используется 53. VPN использует разные порты и протоколы в зависимости от способа. Tor тоже меняет видимость связи в зависимости от среды и назначения.
Для анонимности и приватности важно не только содержимое связи, но и внешняя информация.
Даже если содержимое зашифровано, в зависимости от точки наблюдения могут быть видны такие сведения:
Что может быть видно
Смысл
Внимание
IP-адрес назначения
К какому серверу идет связь
При CDN или прокси не всегда совпадает с конечным сервисом
Номер порта назначения
Какой тип связи предполагается
443 не доказывает обычный Web-просмотр
Протокол связи
TCP, UDP и т.п.
Web на HTTP/3 тоже может использовать UDP 443
Объем связи
Сколько данных отправлено и получено
Объем может наблюдаться даже при шифровании
Время связи
Когда была связь
Может быть материалом для предположения поведения
Номер порта сам по себе не решает анонимность, но важен для понимания структуры связи.
Если вы можете разложить, какое приложение, к какому IP, каким протоколом и каким портом общается, легче понимать VPN, Tor, DNS, HTTPS и другие механизмы.
Здесь мы ограничиваемся структурой связи
Понимание портов и сокетов сильно меняет видение сети. Но здесь мы не углубляемся в следующее:
Что не рассматривается
Причина
Программирование сокетов
Это ближе к реализации и уводит от понимания структуры связи
Детали временных портов
Диапазоны и поведение зависят от OS и расширяют тему
Детали таблиц NAT
Это углубляется в преобразования роутеров и файрволов
Практика сканирования портов
Это конкретика атак и диагностики, вне цели статьи
Здесь важно понять, что одного IP-адреса недостаточно для различения связи, а порт и протокол вместе управляют получателем и обратным путем.
Итоги
IP-адрес — информация для поиска другой стороны в сети.
Но на одном устройстве или сервере одновременно работают несколько сервисов и приложений. Поэтому по одному IP нельзя решить, какому приложению или сервису передать связь.
Номер порта используется в TCP- и UDP-связи, чтобы OS распределяла связь к нужному сервису или приложению.
В Web могут использоваться 80 и 443, в DNS — 53, в почтовых механизмах — 25, 587, 993 и другие. Однако номер порта не доказывает содержимое связи полностью.
Связь различается сочетанием IP-адреса источника, исходного порта, IP-адреса назначения, порта назначения и протокола связи. Понимание этого сочетания объясняет, почему одно устройство может вести несколько связей, а один сервер — несколько сервисов.
Сокет — коммуникационный вход, которым приложение пользуется для сетевой связи. Для понимания структуры связи его удобно видеть как конечную точку, объединяющую IP-адрес, порт и протокол.
Понимание портов и сокетов помогает читать, куда идет связь, какому сервису она доставляется и как управляется. Это важная база для понимания HTTPS, DNS, VPN, Tor и другой связи.
Связанные инструменты
Public IP Check
WhatIsMyIP
Внешний ресурс, связанный с этой статьей. Открывайте его только если он подходит вашей ситуации и модели угроз.
Почему указано здесь: Он может помочь с темой статьи, но находится вне Anonymity Sense, поэтому перед использованием его нужно проверить.