PoC: attach acks to pad messages (halve number of messages) #286
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Proof of concept for removing standalone ack messages under normal operation. Acks messages are attached to pad messages and hold the "departure delay", that is, the amount of time the ack message's departure was delayed compared to when it would normally have been sent as a standalone message.
The ping calculation becomes (time of arrival of the ack - time of departure of the message - ack departure delay).
Attaching the acks works by mean of sending composite messages whose structure is (compositeMessageId (lengthOfNextMessage [Standard Slippi message])* )
In this PoC one pad message can hold up to 2 acks so acks can't permanently lag behind by a few frames.
Buffering 5 acks in the outgoing ack FIFO queue causes flushing all acks in a dedicated message.
This halves the number of network messages used by Slippi during a match. I don't have any improvement measures though.