Термин · Глоссарий B2B-ПО

Sockets (Sockets)

Сокет (Socket) – программный интерфейс, обеспечивающий двунаправленное взаимодействие между процессами по сети или внутри одного компьютера. Сокет определяется парой «IP-адрес + порт» и поддерживает транспортные протоколы TCP (с установлением соединения) и UDP (без установления соединения). Является основным механизмом сетевого программирования в Unix/Linux и Windows.

Буква «S» В категориях: 3 Платформ: 6+

Введение

Сокет (Socket) – абстракция конечной точки двустороннего коммуникационного канала между двумя процессами, взаимодействующими по сети или в пределах одной машины. В терминах TCP/IP сокет однозначно идентифицируется пятёркой: протокол, локальный IP-адрес, локальный порт, удалённый IP-адрес, удалённый порт.

Концепция сокетов была разработана в рамках BSD Unix в 1983 году (Berkeley Sockets). Это de facto стандарт сетевого программирования, поддерживаемый всеми операционными системами: POSIX-сокеты в Unix/Linux/macOS, WinSock (Windows Sockets API) в Windows.

История и контекст

Berkeley Sockets API появился в 4.2BSD Unix (1983) как результат работы команды Билла Джоя в Калифорнийском университете Беркли. Задача состояла в создании универсального интерфейса для работы с протоколом TCP/IP, разработанным DARPA. В 1986 году появилась библиотека WINSOCK.DLL для Windows, в 1996 году стандартизированная как WinSock 2.

С развитием веб-приложений появился стандарт WebSocket (RFC 6455, 2011) – протокол полнодуплексной связи поверх HTTP/HTTPS для браузерных приложений. WebSocket устранил ограничения HTTP-polling, позволив серверу инициировать отправку данных клиенту без запроса.

Как это работает

Жизненный цикл TCP-сокета проходит следующие стадии:

  1. Создание (socket()): системный вызов создаёт дескриптор сокета, указывается домен (AF_INET/AF_INET6), тип (SOCK_STREAM/SOCK_DGRAM) и протокол
  2. Привязка (bind()): сокет привязывается к конкретному IP-адресу и порту
  3. Ожидание (listen()): серверный сокет переходит в состояние ожидания входящих соединений с очередью backlog
  4. Принятие соединения (accept()): сервер принимает соединение, создаётся новый сокет для конкретного клиента
  5. Передача данных (send/recv или write/read): двунаправленная передача данных через установленное соединение
  6. Закрытие (close/shutdown()): четырёхшаговое завершение TCP-соединения (FIN/ACK)

UDP-сокеты (SOCK_DGRAM) не требуют установления соединения: данные отправляются датаграммами без гарантии доставки и порядка. Используются в DNS, DHCP, стриминге медиа, онлайн-играх.

Типы сокетов

  • Stream Socket (SOCK_STREAM): TCP – надёжная доставка, контроль потока, двунаправленный поток байтов
  • Datagram Socket (SOCK_DGRAM): UDP – без соединения, нет гарантии доставки, низкая задержка
  • Raw Socket (SOCK_RAW): прямой доступ к транспортному/сетевому уровню, используется в Ping, Traceroute, сниферах
  • Unix Domain Socket (AF_UNIX): межпроцессное взаимодействие в пределах одного хоста через файловую систему, выше пропускная способность, меньше overhead
  • WebSocket: полнодуплексный протокол для браузерных приложений поверх HTTP/HTTPS

Где применяется

  • Веб-серверы: каждый HTTP/HTTPS запрос – TCP-сокетное соединение
  • СУБД: PostgreSQL, MySQL принимают соединения через TCP-сокеты или Unix domain sockets
  • Real-time приложения: чаты, онлайн-игры, биржевые торговые платформы используют WebSocket
  • Микросервисная архитектура: gRPC (над TCP), межсервисное взаимодействие
  • Телекоммуникации: VoIP, медиастриминг через UDP-сокеты с RTP

Связь с другими понятиями

Сокеты работают на транспортном уровне модели OSI (уровень 4), используя протоколы TCP и UDP. В контексте Softswitch Architecture сокеты обеспечивают транспортировку сигнальных (SIP) и медиапотоков (RTP). Software-Defined Networks (SDN) управляют сетевым трафиком, который в конечном счёте передаётся через сокетные соединения на уровне конечных узлов.

В микросервисных архитектурах сокеты – базовый транспортный примитив для межсервисного взаимодействия через HTTP/2, gRPC или брокеры сообщений. Source Routing определяет путь пакетов по сети, тогда как сокеты определяют конечные точки взаимодействия.

Понятия из глоссария Цифрового маркетплейса, которые часто встречаются вместе с термином «Sockets».

Платформы класса «Sockets»

Решения из каталога Цифрового маркетплейса, относящиеся к этому классу ПО. Карточки ведут на полные карточки платформ с тарифами, обзорами и кейсами внедрения.

Онколинк

Онколинк

Разработка ПО
Платформа для управления онкологическими пациентами и координации медицинского обслуживания. Входит в Единый р...
Цена по запросу
Подробнее →
MO

Moon

Разработка ПО
Moon - platforma avtomatizirovannogo testirovaniya veb-prilozheniy v nastol'nykh i mobil'nykh brauzerakh po pr...
Цена по запросу
★ 4.2
Подробнее →
Модуль обмена C3D Converter

Модуль обмена C3D Converter

Разработка ПО
Модуль обмена C3D Converter отвечает за чтение и запись 3D-моделей в файлах нейтральных форматов и в собственн...
Цена по запросу
Подробнее →
JaCarta АРМ УЦ

JaCarta АРМ УЦ

Разработка ПО
ПО JaCarta АРМ УЦ - приложение, позволяющее генерировать ключевые пары с использованием встроенных криптографи...
Цена по запросу
★ 4.7
Подробнее →
АВ

Автограмма

Разработка ПО
Автограмма — визуальная среда разработки встраиваемых систем управления (No-Code/IDE) для промышленной автомат...
Цена по запросу
Подробнее →

Категории каталога

Разделы каталога Цифрового маркетплейса, в которые входят решения, использующие «Sockets».

Где применяется

Отрасли, в которых «Sockets» используется на практике. Откройте отраслевой раздел Цифрового маркетплейса, чтобы увидеть подходящие решения, кейсы и новости.

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

Чем отличается TCP-сокет от UDP-сокета?

TCP-сокет обеспечивает надёжную доставку с установлением соединения и контролем потока. UDP-сокет отправляет датаграммы без гарантии доставки, но с минимальной задержкой. TCP – для HTTP, СУБД; UDP – для DNS, стриминга, игр.

Что такое WebSocket и как он отличается от обычного сокета?

WebSocket – стандарт полнодуплексной связи браузера с сервером (RFC 6455, 2011). Начинается как HTTP-запрос, затем происходит upgrade до протокола WebSocket. Позволяет серверу инициативно отправлять данные без polling.

Что такое Unix Domain Socket?

IPC-механизм в Unix-подобных системах: взаимодействие процессов через псевдофайл в ФС (например, /var/run/postgres.sock). Работает быстрее TCP-сокетов на одном хосте за счёт отсутствия сетевого стека.

Что такое порт в контексте сокетов?

16-битное число (0–65535), идентифицирующее конкретный процесс или сервис на хосте. Порты 0–1023 – привилегированные (HTTP:80, HTTPS:443, SSH:22). Эфемерные порты (49152–65535) выделяются клиентам динамически.

Что такое Socket.io?

JavaScript-библиотека для real-time коммуникации браузер-сервер. Использует WebSocket как основной транспорт с автоматическим fallback на HTTP long-polling. Поддерживает rooms, namespaces, автореконнект.

Как сокеты связаны с firewall?

Firewall фильтрует трафик по правилам, основанным на IP-адресах и портах сокетных соединений. Stateful firewall отслеживает состояние TCP-соединений (SYN, ESTABLISHED, FIN) для применения политик безопасности.