Протокол связи узлов
Узлы PRX взаимодействуют через зашифрованный, аутентифицированный протокол поверх TCP. На этой странице описан формат передачи и типы сообщений.
Транспорт
- Протокол: TCP с TLS 1.3 (взаимная аутентификация через сопряжённые ключи)
- Сериализация: Кадры MessagePack с префиксом длины
- Сжатие: Опциональное кадровое сжатие LZ4
Типы сообщений
| Тип | Направление | Описание |
|---|---|---|
TaskRequest | Контроллер -> Узел | Назначение задачи узлу |
TaskResult | Узел -> Контроллер | Возврат результата выполнения задачи |
StatusQuery | Контроллер -> Узел | Запрос статуса узла |
StatusReport | Узел -> Контроллер | Отчёт о здоровье и ёмкости узла |
Heartbeat | Двунаправленно | Keepalive и измерение задержки |
Cancel | Контроллер -> Узел | Отмена выполняющейся задачи |
Конфигурация
toml
[node.protocol]
tls_version = "1.3"
compression = "lz4" # "lz4" | "none"
max_frame_size_kb = 4096
heartbeat_interval_secs = 15
connection_timeout_secs = 10Жизненный цикл соединения
- Подключение -- установление TCP-соединения
- TLS-рукопожатие -- взаимная аутентификация сопряжёнными ключами
- Согласование протокола -- согласование версии и сжатия
- Активное состояние -- обмен сообщениями
- Корректное закрытие -- отправка сообщения отключения и закрытие