3.1.1 Abstract Data Model

This section describes a conceptual model of possible data organization that an implementation maintains to participate in this protocol. The described organization is provided to facilitate the explanation of how the protocol behaves. This specification does not mandate that implementations adhere to this model as long as their external behavior is consistent with that described in this specification.

dwSessID:  The game session ID used to establish the connection. This value is referenced in HARD_DISCONNECT command frames (CFRAME) and KeepAlive data frames (DFRAME).

Local Secrets: The 64-bit current local secret and previous local secret values for use when sending over fast and full-signed connections.

Local Secret Modifier: The 64-bit current local secret modifier value for use when sending for full-signed connections. This is derived from the most recently sent reliable message with the lowest sequence ID.

Next Receive:  The next 8-bit packet sequence ID expected to be received, indicating acknowledgment (ACK) of all packets up to this ID.

Next Send: The next 8-bit packet sequence ID that will be sent.

Remote Secrets: The 64-bit current remote secret and previous remote secret values for use when receiving over fast and full-signed connections.

Remote Secret Modifier: The 64-bit current remote secret modifier value for use when receiving for full-signed connections. This is derived from the most recently received reliable message with the lowest sequence ID.

Retry Counter: A per-packet counter of how many times the individual CONNECT, CONNECTED, or reliable DFRAME has been retried.

RTT: A recent sample or running average of the round-trip time (RTT) for the connection. This is used to schedule retries.

Send Mask: A sliding window bitmask that indicates whether DFRAMEs that are not marked as reliable will not be retried. The window base reference is the current next send and work backward for up to 64 bits (messages).