The reliable sliding window ensures that all packets arrive and in the correct order. Large messages are fragmented. The reliable sliding window is used by the following protocols:
- Mesh protocol
- Session protocol
- Reliable protocol
- Broadcast reliable protocol
- Stream broadcast reliable protocol
When a reliable sliding window is used, messages are wrapped as follows:
Up to 5.12:
| Offset | Size | Description |
|---|---|---|
| 0x0 | 2 | Flags |
| 0x2 | 2 | Payload size |
| 0x4 | 4 | Padding |
| 0x8 | 4 | Sequence id |
| 0xC | 4 | Acknowledgement id |
| 0x10 | 8 | Extra acknowledgements |
| 0x18 | Payload |
5.14:
| Offset | Size | Description |
|---|---|---|
| 0x0 | 2 | Flags |
| 0x2 | 2 | Payload size |
| 0x4 | 2 | Sequence id |
| 0x6 | 8 | Unknown |
| 0xE | 8 | Unknown |
| 0x16 | Payload |
5.17 - 5.19:
| Offset | Size | Description |
|---|---|---|
| 0x0 | 1 | Flags |
| 0x1 | 1 | Stream id |
| 0x2 | 2 | Payload size |
| 0x4 | 2 | Sequence id |
| 0x6 | 2 | Lowest sequence id pending ack |
| 0x8 | 1 | Number of multicast constant ids (N) |
| 0x9 | 8*N | Multicast constant ids |
| Payload |
5.31:
| Offset | Size | Description |
|---|---|---|
| 0x0 | 1 | Flags |
| 0x1 | 1 | Stream id |
| 0x2 | 2 | Payload size |
| 0x4 | 2 | Sequence id |
| 0x6 | 2 | Unknown |
| 0x8 | 1 | Unknown |
| 0x9 | 4*N | Unknown |
| Payload |
Flags
| Flag | Description |
|---|---|
| 1 | Has payload |
| 2 | First fragment |
| 4 | Last fragment |
| 8 | Is initialize |
| 16 | Is compressed |
| 32 | Reset |
| 64 | Reset ack |