Введение

Рамочная структура для создания сетевых прикладных протоколов

Протокол расширяемого обмена блоками (BEEP) — это основа для создания сетевых прикладных протоколов. BEEP включает в себя строительные блоки, такие как обрамление, конвейеризация, мультиплексирование, отчетность и аутентификация для протоколов типа «один к одному» (P2P), ориентированных на установление соединения и обмен сообщениями, с поддержкой асинхронной двунаправленной связи. Синтаксис и семантика сообщений определяются профилями BEEP, связанными с одним или несколькими каналами BEEP, где каждый канал представляет собой двунаправленный канал связи. Механизм обрамления обеспечивает одновременную и независимую связь между участниками обмена. BEEP определяется независимо от базового транспортного механизма. Сопоставление BEEP с конкретной транспортной службой определяется в отдельном наборе документов.

Обзор

В BEEP для обмена различными типами сообщений используются профили, каналы и механизм формирования кадров. Спецификация задает значения по умолчанию только для типа контента и кодировки, предоставляя разработчику протокола полную свободу выбора между бинарным и текстовым форматами. Профили определяют функциональность протокола, а также синтаксис и семантику сообщений. Канал представляет собой полнодуплексный канал связи, подключенный к определенному профилю. Сообщения, передаваемые по разным каналам, независимы друг от друга (асинхронны). Несколько каналов могут использовать один и тот же профиль через одно соединение. BEEP также поддерживает TLS для шифрования и SASL для аутентификации.

Контроль потока

BEEP поддерживает последовательности кадров (SEQ) для реализации управления потоком на уровне канала. Последовательности кадров определены в RFC 3081, раздел 3.3. Протокол управления передачей (TCP) определяет механизм последовательности на уровне транспортного слоя и поддерживает управление потоком, связанное с соединением. BEEP нуждается в управлении потоком на уровне канала, чтобы ни один канал или большое сообщение не монополизировали соединение. Для этого используются последовательности кадров для поддержки качества обслуживания (QoS) и предотвращения ситуации, когда канал или процесс не получают ресурсы (starvation) и взаимной блокировки (deadlock).