Learn

284 статейКатегория: Все
Сеть

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

В интернет-связи одного 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 — на сервис доставки почты.

НазначениеЧастый номер портаОсновной протоколОписание
HTTP80TCPЧасто используется для незашифрованной Web-связи
HTTPS443TCP / UDPОбычный HTTPS использует TCP, HTTP/3 использует QUIC поверх UDP
DNS53UDP / TCPВ обычных запросах часто UDP; для больших ответов и отдельных случаев также TCP
SMTP25TCPВ основном доставка между почтовыми серверами
SMTP Submission587TCPОтправка от почтового клиента к серверу отправки
IMAPS993TCPПолучение почты по IMAP, защищенному TLS

У номеров портов есть стандартные часто используемые значения. Но номер порта не доказывает тип сервиса абсолютно.

Например, на порту 443 обычно используется HTTPS, но при настройках сервера другое приложение тоже может использовать 443. И наоборот, Web-сервер может работать на нестандартном порту.

То есть номер порта — сильный признак для предположения цели связи, но не доказательство содержимого.

Почему на одном сервере могут работать несколько сервисов

Благодаря номерам портов один сервер может одновременно предоставлять несколько сервисов.

Например, сервер с одним IP-адресом может одновременно предоставлять HTTPS, DNS и сервисы почты, ожидая связь на разных портах.

IP-адрес назначенияНомер порта назначенияПротокол связиПример получателя
IP того же сервера443TCPHTTPS Web-сервер
IP того же сервера53UDP / TCPDNS-сервер
IP того же сервера25TCPСервис доставки между почтовыми серверами
IP того же сервера587TCPSubmission-сервис для отправки почты

IP-адрес используется, чтобы найти хост связи, а номер порта — чтобы различить сервис внутри этого хоста.

Однако на практике решение не основано только на IP-адресе или только на номере порта. Важно и то, TCP это или UDP.

Даже один и тот же порт 53 в UDP и TCP рассматривается как разная связь.

На одном устройстве несколько приложений тоже могут общаться одновременно

Номера портов используются не только на стороне сервера. Они используются и на ПК или смартфоне пользователя.

Например, на одном ПК открыт браузер, работает чат, синхронизируется облачное хранилище и OS проверяет обновления. Внутри устройства одновременно возникает несколько связей.

OS должна различать эти связи и передавать вернувшиеся данные правильному приложению.

Для этого используется сочетание IP-адреса источника, порта источника, IP-адреса назначения, порта назначения и протокола связи.

Связь различается пятью сведениями

Для понимания TCP- и UDP-связи важны пять сведений.

ИнформацияСмыслПример
IP-адрес источникаIP-адрес отправляющей стороныIP-адрес устройства пользователя
Номер исходного портаНомер порта, используемый стороной, начавшей связьВременно назначенный номер на устройстве
IP-адрес назначенияIP-адрес принимающей стороныIP-адрес Web-сервера
Номер порта назначенияНомер порта принимающего сервисаНапример 443 для HTTPS
Протокол связиТип, например TCP или UDPTCP, 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, связи реального времени и другом.

ПунктTCPUDP
Свойство связиСвязь после установления соединенияБез предпосылки установления соединения
Роль портаИспользуется для сервиса назначения и различения связиИспользуется для различения получателя данных
Типичные примерыHTTPS, SSH, SMTP, IMAPSDNS, 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, поэтому перед использованием его нужно проверить.

URL : https://www.whatismyip.com/

Открыть внешний сайт

Связанные статьи