each packet is in this format:
[+|-]ID:COMMAND:PARAM1:PARAM2:<more params>
The +/- at the start of the packet indicates reliable (+) or unreliable (-)
If the packet is reliable, within a certain length of time this must be sent back:
ACK:<ID>
ID is a unique value used to track packets, can be completely arbitary
PING and PONG are used for keepalives
PONG has one param, the ID of the ping being replied to
e.g
node A sends -66787086:PING to node B
node B responds with -42637975:PONG:66787086
a more real example:
login server sends "+20663785:EXPECT:d464477e-c492-4cb7-b5b8-5b05a6d55b41:Test User" to a sim
sim responds with ACK:20663785
if the sim doesn't respond, login server resends after a certain length of time