Timer Scheduler for High-Throughput Packet Timeout Tracking
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Managing millions of network connections requires extensive system resources, leading to slowed packet throughput due to the difficulty in monitoring large numbers of timers in existing software packages like Netfilter.
Innovation Solution
A timer scheduler is used with a single hardware timer to generate timeout values, which are tracked in a linked list and connection state table, reducing the frequency of accessing the linked list and optimizing packet throughput by updating only the connection state table upon packet receipt.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If a separate hardware timer is used for every packet or connection, then timeout tracking accuracy is improved, but device complexity and system resource usage increase significantly
Solution Approach 1:
The patent merges thousands of individual timer functions into a single hardware timer that generates periodic interrupts. Instead of having separate timers for each connection, one shared timer service all timeout tracking needs by incrementing a global clock value that all connections reference, dramatically reducing hardware complexity while maintaining timing accuracy.
Solution Approach 2:
The single hardware timer is designed to be universal, serving multiple functions: it tracks timeouts for millions of connections, provides periodic interrupts for batch processing, and maintains a global time reference for all packet transmission tracking. This multi-functional design eliminates the need for dedicated timers per connection.
2Reliability
If the linked list is accessed frequently to update timeout values, then timeout tracking reliability is improved, but packet throughput decreases due to increased processing overhead
Solution Approach 1:
The system performs preliminary actions by pre-calculating timeout values and organizing connections in a linked list structure during idle periods or batch operations. Timeout values are预先 set based on connection state, allowing the system to defer expensive linked list traversals until necessary, reducing real-time packet processing overhead.
Solution Approach 2:
Instead of continuously accessing the linked list for every packet, the system uses periodic batch processing triggered by hardware timer interrupts. At these periodic intervals, the system efficiently traverses the linked list to check and update timeout values for active connections, rather than performing these operations on every packet arrival.
3Device complexity
If timeout values are tracked in a single large data structure, then device complexity is reduced, but access time increases making it difficult to monitor millions of connections
Solution Approach 1:
The patent segments the timeout tracking data structure into two parts: a compact linked list containing only active connections with their timeout values, and a separate connection state table. This segmentation allows efficient traversal of only active connections in the linked list rather than searching through all possible connections, reducing access time while maintaining structural simplicity.
Solution Approach 2:
The system adds a temporal dimension to timeout tracking by using a global clock value that increments over time. Instead of comparing timeout values against each other, the system compares the current clock value against stored timeout values, enabling efficient O(1) timeout checks without complex data structure traversals.
Data Source
AI summary
A timer scheduler is used to track timeout values for network connections. A single hardware timer generates timeout values that can be tracked per connection in a linked list that is processed at set time intervals. All tracked connections can have a future timeout scheduled. Future timeout values can be stored in both a linked list and a connection state table that cross-reference each other. The linked list is traversed at predetermined intervals to determine which entries have timed out. For each entry that timed out, a second check is made against a timeout value in the connection state table. If timeout value within the connection state table indicates that a timeout occurred, then the network connection is terminated.


