Network Stream Distribution via Deterministic Port Mapping
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current computing device architectures face overload and data loss issues when handling high-speed network streams from industrial cameras, as the Receive Side Scaling (RSS) function distributes workload pseudo-randomly, leading to imbalance and reliability issues with gigabit connections.
Innovation Solution
A method that distributes network streams from cameras to processors or processor cores by generating a deterministic assignment of data packets to specific cores using a UDP port-based system, where a hash value is calculated to map data packets to processor cores, ensuring each core processes a unique connection and avoiding overload.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If RSS function is activated with pseudo-random distribution, then workload distribution across processors is achieved, but processor overload and data loss occur when single connection uses most bandwidth
Solution Approach 1:
The patent changes the parameter used for workload distribution from pseudo-random hash-based distribution to deterministic port-based distribution. By using UDP port numbers as the distribution key instead of random hashing, the system achieves predictable and controllable workload assignment, preventing the imbalance that occurs with pseudo-random distribution when single connections dominate bandwidth.
Solution Approach 2:
The system implements feedback by monitoring which ports are assigned to which processors and adjusting the distribution accordingly. The camera application can control which ports are used and ensure that high-bandwidth connections are distributed to appropriate processors, creating a feedback loop that prevents processor overload while maintaining connection reliability.
2Ease of operation
If fixed network connection to processor assignment is used, then processor registers do not need constant reloading, but processor overload occurs with high-speed data streams
Solution Approach 1:
The patent introduces dynamics to the fixed assignment model by enabling flexible port-to-processor mapping. Instead of a static fixed assignment, the system allows dynamic configuration where different ports can be assigned to different processors based on the specific data stream characteristics and bandwidth requirements, maintaining stability while preventing overload.
Solution Approach 2:
The system segments the network connection into multiple UDP ports, allowing different portions of the data stream to be handled by different processors. This segmentation enables high-speed data streams to be distributed across multiple processors rather than overloading a single processor, while maintaining the benefit of stable processor assignment through deterministic port-based routing.
3Productivity
If hash algorithm distributes connections pseudo-randomly, then approximate equal work distribution is achieved, but imbalance occurs with high-bandwidth single connections
Solution Approach 1:
The patent uses port numbers as a copy of connection identity to determine processor assignment. Instead of using the connection's source/destination addresses for hashing, the system copies the port number information and uses it directly for deterministic routing. This copying approach ensures that high-bandwidth connections are consistently routed to the same processor, preventing the imbalance that occurs with pseudo-random distribution.
Data Source
AI summary
The invention relates to a method for distributing a network stream from at least one data source to a plurality of processors or processor cores of a computing device. The computing device has a network card which supports the receive side scaling (RSS) function, wherein, when this function is activated, the network card or its device driver generates an RSS indirection table (25) in which there is stored, for each index, the number of a processor or processor core, which will process an incoming data packet assigned to this index, and subsequently the network card calculates a hash value for each incoming data packet and maps the hash value to an index in precisely this table, wherein the hash value is formed via the combination of source and destination IP addresses and ports and is thus static for the duration of the connection. The method comprises the steps of specifying (34) at least one processor or processor core of the computing device, selecting (35) a port of the at least one data source, generating (36) a data set assigned to the selected port, determining (37) the processor or processor core assigned to the data set, repeating the steps of selection (35), generation (36) and determination (37) until a port has been determined for each specified processor or processor core, and sending (39) data packets via the ports determined for the specified processors or processor cores.


