Skip to content

Packet Types

The packet type field in BMPacket indicates the purpose of the packet.

Code Name Description
0 Data Application data payload (the default for all game traffic)
1 Ping Latency probe sent by one peer, expects an Echo in response
2 Ack Acknowledgment of a received connection request
3 Echo Response to a Ping packet
4 Analysis Performance/diagnostic metrics
5 KeepAlive Connection liveness signal, no response expected

Notes

  • Nearly all protocol traffic uses Data (0). The other types are for connection health and diagnostics.
  • Ping packets are responded to with Echo. The original Android app measured round-trip time using timestamps embedded in the Ping payload. The same Ping packet is sent back as an Echo packet type.
  • Ack is used with AckPacket (class ID 9). The game sends an Ack after receiving a connection request relayed through the server. This is not to be confused with a TCP ACK.
  • KeepAlive is fire-and-forget. It keeps NAT mappings alive and detects dead connections via timeout, but does not require a response.