SHOCK - протокол передачи данных для распределенных вычислений внутри кластеров Detonation.
Автор: Сообщество Solenopsys
Загружено: 2025-01-14
Просмотров: 165
Описание:
Протокол SHOCK: Бинарный протокол для распределённых вычислений
Введение
SHOCK - это стриминговый протокол, разработанный для распределённых вычислений. По сравнению с существующими решениями, такими как ATP протокол, он отличается простотой и схож в некоторых аспектах с протоколом ZQ. Название "SHOCK" происходит от первоначальной идеи назвать кластеры "Shock Waves" вместо "Detonation", хотя позже название пришлось изменить из-за торговых марок.
Основные характеристики
SHOCK является протоколом уровня приложения, а не транспортным протоколом. Его основная задача - максимально быстрая передача пакетов данных. Протокол полностью бинарный и предназначен для:
Обмена данных в кластере
Коммуникации между различными устройствами (планшеты, смартфоны)
Взаимодействия с аппаратным обеспечением
Протокол может работать через различные транспортные механизмы:
WebSocket
TCP соединения
UDP протокол
Другие виды транспорта
Структура протокола
Протокол состоит из трёх основных частей:
1. Мета-заголовок
2. Заголовок
3. Тело сообщения
Мета-заголовок
Мета-заголовок состоит из одного или двух байтов и содержит критическую информацию о сообщении:
Первый бит определяет размер поля заголовка (0 = 1 байт, 1 = 2 байта)
Второй бит указывает на наличие следующего пакета в потоке
Следующие биты определяют размер поля ID сообщения (до 3 байт)
Максимальный размер сообщения может достигать 64 КБ, хотя стандартно используется около 512 байт для оптимального соответствия сетевому фрейму (около 1.5 КБ).
Идентификация объектов
В протоколе предусмотрена гибкая система идентификации объектов. В случае работы с оборудованием объект указывает на конкретный микроконтроллер на плате. При работе с кластером объект определяет конкретный контейнер-получатель сообщения.
Предназначение и применение
Протокол SHOCK специально разработан для промышленного применения:
Управление промышленным оборудованием
Распределённые вычисления
Высокоскоростной обмен данными (миллионы сообщений в секунду)
Минимальные задержки (сотни наносекунд при межпроцессной коммуникации)
Особенности обработки
Одно из главных преимуществ протокола - быстрый анализ пакетов. В отличие от других протоколов, где требуется полный парсинг данных перед обработкой, SHOCK позволяет мгновенно определять назначение сообщения и перенаправлять его нужному обработчику.
Расширяемость
Протокол спроектирован с учётом будущих изменений. Специальный флаг в мета-заголовке позволяет добавлять новые версии протокола, сохраняя обратную совместимость. При получении сообщения с неподдерживаемой версией, обработчик может либо вернуть ошибку, либо обработать сообщение, если поддерживает новую версию протокола.
Контекст и сессии
Протокол поддерживает концепции контекста и сессий:
Сессии используются для авторизации и управления доступом
Контексты процессов организованы в виде дерева
Поддерживается до 16 миллионов вариантов контекстов
Заключение
SHOCK представляет собой эффективное решение для высокопроизводительных распределённых систем, где критически важны скорость обработки и минимальные задержки. Его простая бинарная структура и продуманная система заголовков обеспечивают как высокую производительность, так и гибкость в применении.
Реализация на zig: https://github.com/solenopsys/zig-shock
Присоединяйтесь в Telegram: https://t.me/solenopsys
Сайт: https://solenopsys.org
Репозитория: https://github.com/solenopsys
Повторяем попытку...
Доступные форматы для скачивания:
Скачать видео
-
Информация по загрузке: