Socket Buffer List for Multicast Latency Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional network operating systems face performance degradation and high latency in multicast traffic reception due to the need for cloning and copying socket buffers for multiple destination queues, which requires slow memory allocation and locking, leading to bottlenecks in packet processing.
Innovation Solution
The implementation of a socket buffer list that utilizes internally fragmented storage to create socket queue objects without cloning, using extra space in memory allocations to reduce latency by making opportunistic use of available memory, thereby eliminating the need for time-consuming cloning and copying processes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If socket buffer cloning is used to support multiple destination queues, then multicast traffic can be delivered to multiple applications, but memory allocation latency increases and processing performance degrades
Solution Approach 1:
The socket buffer is divided into a shared data portion and separate queue entries. The shared data portion contains the actual packet data, while separate queue entries are created for each destination queue. This segmentation allows multiple queues to access the same data without requiring full buffer cloning, reducing memory allocation latency while maintaining multicast delivery capability.
Solution Approach 2:
A single socket buffer structure serves multiple functions by being shared across multiple destination queues through references rather than copies. The buffer acts as a universal data source that can be accessed by any number of applications simultaneously, eliminating the need for redundant data copies while preserving multicast versatility.
2Adaptability or versatility
If socket buffer cloning is performed for each destination, then multiple applications can receive multicast data, but processing speed decreases due to copy operations
Solution Approach 1:
The buffer is segmented into shared data and separate queue metadata. Only the lightweight queue entries are copied/allocated per destination, while the heavy packet data remains shared. This reduces the copying workload significantly, improving packet processing speed while maintaining the ability to deliver to multiple applications.
Solution Approach 2:
Instead of copying the entire socket buffer for each destination, only essential metadata and queue information are copied or allocated separately. The actual packet data is referenced by all queues, eliminating the expensive full buffer copy operation and dramatically improving processing throughput.
3Reliability
If locking is used for mutual exclusion during buffer cloning, then data integrity is maintained, but processing latency increases
Solution Approach 1:
The locking mechanism is segmented and applied only at the queue entry level rather than the entire buffer level. Since the buffer data is shared and locked only once, while queue entries are independently managed, the critical section is minimized. This reduces the impact of locking on overall processing latency while maintaining data integrity through controlled access.
Data Source
AI summary
A computing device identifies a data packet received at a computing device. The computing device allocates memory having a fixed size to store the network data packet. A latency reducer identifies a free space in the memory allocation, the free space comprising a difference between the fixed size of the memory allocation and a size of the network data packet. The latency reducer creates a socket buffer list for the network data packet in the free space, the socket buffer list comprising a plurality of entries to serve as socket queue objects for a plurality of applications.


