현재 테스트 중입니다: 완료되면 GitHub 코드를 오픈할 예정입니다.

프로토콜 — 클라이언트 ↔ 서버

클라이언트 포트(기본 5225)에서 오가는 모든 바이트의 규격입니다. 연결 직후 1회 수행되는 인증 핸드셰이크와, 그 이후의 바이너리 프레임 락 프로토콜로 구성됩니다. 모든 공식 클라이언트는 이 규격을 바이트 단위로 동일하게 구현합니다.

각 메시지 페이지의 구조는 필드 배치를, 예시는 실제 전송 바이트를 보여줍니다(refresh로 값이 바뀝니다).

바이트 표기: opASCII 문자(예: A)로, wait·lease·token·owner바이너리라 16진수(hex)로 표시합니다(예: wait=5 = 05). token·owner는 빅엔디안입니다. key·addrUTF-8 텍스트, reasonASCII 텍스트이며 모두 길이가 가변이라 구조에서 N으로 표기합니다. 마지막 \n(개행)은 0A로 프레임을 끝맺습니다. 필드는 구분자 없이 붙어서 전송됩니다.

고정 헤더(wait·lease·token·owner)는 이진 값이라 0x0A를 포함할 수 있습니다 — 파서는 개행을 찾기 전에 op별 고정 헤더 길이만큼 먼저 소비해야 합니다. 길이는 요청 A=10B / R=8B, 응답 A=16B / T·B·R·N=8B / M·L·E=0B입니다.

목차

서버 ↔ 서버 사이의 클러스터 합의(Raft) 프로토콜은 별도 페이지에서 다룹니다.