Reorder Buffer for Jitter Compensation in Network Packet Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Real-time electronic trading systems face challenges in maintaining deterministic chronological ordering of transactions due to jitter, which causes transactions to arrive out of order at the server, affecting the consistency and reliability of order execution.
Innovation Solution
Implementing a reorder buffer between the server and the network to re-order messages received at the server, ensuring that transactions are processed in the order they were received, by utilizing timestamping at gateways and servers to maintain accurate time sequencing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If network transmission speeds and system processing speeds are increased, then productivity is improved, but jitter becomes more significant causing transactions to arrive out of order
Solution Approach 1:
The system performs preliminary timestamping of transactions at the gateway before they enter the network, and preliminarily buffers them in reorder buffers at the server. This advance preparation allows the system to handle high-speed transactions while maintaining chronological order, as the timestamping and buffering are done before the network transmission variability affects the transaction flow.
Solution Approach 2:
The reorder buffer acts as an intermediary component between the network interface and the matching engine. It receives out-of-order transactions from the network, uses the pre-assigned timestamps to reorder them, and then delivers them in chronological order to the matching engine, thus mediating the conflict between high-speed network transmission and chronological processing requirements.
2Reliability
If transactions are buffered and reordered at the server, then chronological ordering is improved, but device complexity increases
Solution Approach 1:
The system segments the transaction processing function into distinct components: timestamping at the gateway, buffering in reorder structures at the server, and processing by the matching engine. This segmentation allows each component to be optimized independently - the gateway handles timestamping without needing reordering logic, while the server provides reordering without needing to modify the matching engine.
Solution Approach 2:
The reorder buffer serves as an intermediary layer that adds reordering capability without directly modifying the matching engine or gateway structures. This intermediary approach maintains the simplicity of the core processing components while providing the necessary chronological ordering function through a dedicated buffering and reordering mechanism.
3Reliability
If jitter is reduced through network path optimization, then chronological ordering is improved, but device complexity and network configuration complexity increase
Solution Approach 1:
Instead of requiring external network optimization to reduce jitter, the system implements self-service reordering at the server level. The reorder buffers automatically reorder transactions based on their timestamps without requiring network path optimization or complex network configuration, making the system independent of external network conditions.
Solution Approach 2:
The reorder buffer acts as an intermediary that compensates for network jitter without requiring changes to the network infrastructure. It absorbs the variability in network transmission times and delivers chronologically ordered transactions to the matching engine, eliminating the need for complex network path optimization.
Data Source
AI summary
The described technology relates to a real-time processing of network packets. An example system relates to reordering messages received at a server over a communication network from distributed clients, in order to, among other things, eliminate or at least substantially reduce the effects of jitter (delay variance) experienced in the network. The reordering of messages may enable the example data processing application to improve the consistency of processing packets in the time order of when the respective packets entered a geographically distributed network.


