Protocolo — Cliente ↔ Servidor
La especificación completa de cada byte intercambiado en el puerto del cliente (por defecto 5225). Consta del protocolo de autenticación, realizado una vez justo después de conectar, seguido del protocolo binario de tramas de bloqueo. Todos los clientes oficiales implementan esta especificación de forma idéntica, byte a byte.
En cada página de mensaje, Estructura muestra la disposición de los campos, y Ejemplo muestra los bytes reales enviados (los valores cambian con refresh).
Notación de bytes:
opse muestra como un carácter ASCII (p. ej.A);waityleaseson valores binarios u8, mientrastokenyownerson valores binarios u64 big-endian. Se muestran en hexadecimal (p. ej.wait=5→05).keyyaddrson texto UTF-8, yreasones texto ASCII — todos ellos de longitud variable, mostrados comoNen la estructura. El\n(salto de línea) final termina la trama como0A. Los campos se envían uno tras otro sin ningún delimitador.Las cabeceras fijas (
wait,lease,token,owner) son valores binarios y pueden contener0x0A— el parser debe consumir primero la cabecera fija según el número de bytes de cada op y solo después buscar el salto de línea. Los tamaños son: solicitudesA= 10B /R= 8B; respuestasA= 16B /T·B·R·N= 8B /M·L·E= 0B.
Índice
- Capa de transporte
- Protocolo de autenticación — compartido con el puerto Raft del clúster, por eso vive en la página Protocolo (común)
- Solicitudes
- Respuestas
- Restricciones de campos
- Matriz de solicitud × estado de clave
- Token de fencing
- Reglas de emparejamiento de respuestas
- Sesión de ejemplo
El protocolo de consenso de clúster (Raft) entre servidores se trata en una página aparte.