Бинарный фреймовый протокол, которым сервер блокировок и клиент обмениваются поверх TCP. Все официальные клиенты реализуют эту спецификацию побайтово одинаково. Структуру (расположение полей) и Пример (реальные передаваемые байты, значение меняется по refresh) каждого сообщения смотрите на страницах ниже.
Обозначение байтов:
op— это ASCII-символ (например,A), аwait·lease·tokenявляются бинарными, поэтому показаны в шестнадцатеричном виде (hex, big-endian) (например,wait=5=00 05).key·addr— это UTF-8-текст,reason— ASCII-текст, и все они имеют переменную длину, поэтому в структуре обозначаются какN. Завершающий\n(перевод строки) — это0A, которым заканчивается фрейм. Поля передаются подряд, без разделителей.
Протокол репликации кластера сервер ↔ сервер рассматривается на отдельной странице.