# Обзор протокола

# Передача данных

| Заголовок | Содержание |
| A | B |C|D|E|F|G|H|I|...|

Все поля (заголовок и содержимое) записываются в литтл-эндианском (он же порядок байтов Intel). Это включает в себя как числовые, так и строковые поля.

# Заголовок

Единственное поле в заголовке пакета-это 2-байтовое целое число без знака, указывающее общий размер пакета.

| Заголовок | Содержание |
| Размер | |
| A | B |C|D|E|F|G|H|I|...|

Таким образом, самый большой размер пакета составляет 64 КБ (65535 байт), при этом 2 байта зарезервированы для размера. Самый маленький допустимый пакет имеет длину 2 байта и не имеет реального значения (поскольку TCP делает keep-alive избыточным).

# Содержание

Содержимое пакета-это то, что эмуляторы серверов обычно называют "пакетом". Содержимое начинается с уникального префикса динамического размера, идентифицирующего тип пакета, за которым следует фактическое содержимое пакета.

| Заголовок | Содержание |
| Размер | Код(ы) операции | Данные |
| A | B |C|D|E|F|G|H|I|J|K|...|

# Коды операций

Если мы отложим в сторону версии протоколов, предшествующие БЕТА-версии Prelude (336), то каждый "пакет" (с точки зрения эмулятора) начинается с 1-3 кодов операций, где 1 – й код операции – один байт, 2-й-два байта и 3-й-четыре байта.

| Заголовок | Содержание |
| Размер | Opcode1 | Opcode2 | Opcode3 | Данные |
| A | B | C | D | E | F | G | H | I |J|K|L|...