LLUDP ClientStack
From OpenSimulator
Introduction
These are draft notes on OpenSimulator's implementation of the LLUDP ClientStack, a chunk of code which is used to send and receive packets from viewers (clients) implementing the Linden Labs virtual environment protocol.
As such, this stack handles
- Initial setup of an instance of the stack for a viewer.
- Handling of inbound UDP messages from a connected viewer.
- Sending of outbound UDP messages to a connected viewer.
- Throttling of outbound messages.
- Sending and receive of ack messages, both inline within other messages and as standalone messages.
- Resending of messages that are marked as reliable but for which receipt has not been acknowledged by the viewer.
- Throttling of outgoing UDP messages.
- Pooling of clientstack structures (e.g. classes representing messages) in order to improve efficiency and reduce memory usage.
Other references
- Sim Throttles contains very old information on the implementation of throttles. This has likely changed considerably but could still be useful.