Flow Distributor Hash Modification for Symmetrical Multi-Core Routing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Multi-core systems face challenges in balancing network traffic distribution across cores, leading to uneven processing and functionality, especially when handling fragmented data packets and requiring symmetry in request and response routing to maintain core consistency.
Innovation Solution
A method and system that utilize a packet engine and flow distributor to symmetrically distribute network traffic by modifying tuples, such as source IP addresses and ports, and handling fragmented packets across multiple cores in a multi-core system, ensuring even processing and maintaining core consistency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a Receive Side Scaler distributes packets to cores based on a predetermined function, then network traffic can be distributed across multiple cores, but the distribution becomes uneven and asymmetrical between requests and responses
Solution Approach 1:
The system performs preliminary actions by modifying the source IP address and/or source port in the request packet before forwarding it to the server. This pre-modification ensures that the response packet will be routed to the same core that processed the original request, achieving symmetrical distribution without requiring real-time coordination between cores.
Solution Approach 2:
The patent introduces an intermediary mechanism (the flow distributor with hash-based routing) that mediates between the incoming request and the core selection. By using a hash of the destination IP address and port to determine the target core, the system ensures both request and response are handled by the same core, resolving the asymmetry problem.
2Manufacturing precision
If the source IP address and source port are modified to achieve symmetrical distribution, then request-response routing consistency is improved, but backend systems may require these attributes to remain un-modified
Solution Approach 1:
The patent applies local quality by modifying the source IP address and/or source port only in specific contexts where symmetrical distribution is needed, while leaving these attributes unchanged in other contexts. The flow distributor selectively applies modifications based on the specific packet and routing requirements, maintaining compatibility with backend systems that require unmodified attributes.
Solution Approach 2:
The system dynamically changes parameters (source IP address and/or source port) based on the specific routing requirements. By adjusting these parameters selectively rather than universally, the system achieves symmetrical distribution where needed while maintaining compatibility with backend systems that require standard unmodified packets.
3Quantity of substance
If network packets are fragmented, then data transmission can handle large payloads, but the multi-core system receives fragments rather than whole packets making symmetric distribution difficult
Solution Approach 1:
The patent acknowledges and works with the segmented nature of fragmented packets by applying the hash-based routing mechanism to each fragment individually. The flow distributor uses the destination IP address and port from each fragment's header to determine the target core, ensuring all fragments of the same original packet are routed to the same core for reassembly, thus maintaining symmetry despite fragmentation.
Data Source
AI summary
Described herein is a method and system for distributing request and responses across a multi-core system. Each core executes a packet engine that further processes data packets allocated to that core. A flow distributor executing within the multi-core system forwards client requests to a packet engine on a core that is selected based on a value generated when a hash is applied to a tuple comprising a client IP address, a client port, a server IP address and a server port identified in the request. The packet engine selects a first IP address and a first port of the core, and determines whether a hash of a tuple comprising those values identifies the selected core. A modification is then made to the client request so that the client request includes a tuple comprising the first IP address, the server IP address, the first port and the server port.


