Load Balancer Protocol-Agnostic Routing via Source Destination Hashing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing load balancing systems fail to efficiently route requests using different protocols to the same destination, leading to inconsistent endpoint hashing and potential misdirection of network traffic.
Innovation Solution
A computer-implemented method and system that identifies and hashes request source and destination identifiers across various protocols, generating a unique hash value to ensure consistent routing of requests to the same endpoint, regardless of the protocol used, using modules within a load balancer to manage and store routing entries.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If load balancers send similar requests received over different protocols to different locations, then protocol-specific routing can be implemented, but consistent endpoint hashing and network traffic stability deteriorate
Solution Approach 1:
The load balancer implements a universal hashing mechanism that works across multiple protocols (TCP, UDP, SCTP, DCB). The hash function is designed to be protocol-agnostic, accepting requests from different protocols and routing them consistently to the same endpoint based on a common hashing algorithm that considers source/destination IP addresses and ports without being protocol-specific.
Solution Approach 2:
The system changes the hashing parameters to exclude protocol-specific variables and focus on universal identifiers such as source IP, destination IP, source port, and destination port. This parameter transformation ensures that the same set of parameters produces consistent hash values across different protocols, maintaining routing stability while supporting protocol diversity.
2Adaptability or versatility
If protocol-specific routing is implemented, then protocol handling flexibility improves, but request routing consistency to the same destination deteriorates
Solution Approach 1:
The load balancing system employs a universal hashing function that serves multiple protocols simultaneously. The same hashing logic and endpoint selection mechanism handles TCP, UDP, SCTP, and DCB requests, ensuring that requests with identical source/destination identifiers are routed to the same endpoint regardless of the protocol used, thereby maintaining routing consistency across diverse protocols.
Solution Approach 2:
The routing decision is segmented into protocol-independent and protocol-specific components. The critical routing determination (which endpoint to use) is made based on protocol-independent parameters through hashing, while protocol-specific processing occurs at the endpoint. This segmentation ensures routing consistency is maintained at the load balancer level while allowing protocol flexibility at the application level.
3Productivity
If different protocols are routed to different locations, then protocol optimization can be achieved, but network traffic misdirection and performance deterioration occur
Solution Approach 1:
The load balancer implements a universal routing mechanism that optimizes for routing consistency across protocols rather than protocol-specific optimization. The hashing function uniformly processes requests from TCP, UDP, SCTP, and DCB protocols, ensuring they reach the appropriate endpoint based on destination requirements rather than protocol type, thereby preventing misdirection and maintaining network performance.
Solution Approach 2:
The load balancer acts as an intermediary that mediates between diverse protocols and the backend endpoints. It translates protocol diversity into a unified routing decision through hashing, allowing endpoints to handle multiple protocols without requiring protocol-specific routing logic, thus preventing misdirection while maintaining optimization capabilities.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Embodiments are directed to routing requests with different protocols to the same destination. In one scenario, a computer system receives a request that uses a specified protocol. The request includes a request source identifier and a request destination identifier. The computer system identifies, based on both the request source identifier and the request destination identifier, a destination to send the request to and generates a routing entry for the request that indicates which destination the first request was sent to. The computer system receives another request that uses a different protocol. This request includes a request source identifier and a request destination identifier of its own. The computer system determines that the request source identifier and request destination identifier of the subsequent request match those of the generated routing entry, and routes the subsequent request to the destination indicated in the routing entry.