Hash Engine NIC Load Balancing and Failover
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing network systems lack an efficient method to distribute and redistribute network connections across multiple network interface cards (NICs), often assigning new connections to overloaded or unreliable NICs, leading to reduced performance and computational overhead in managing connection states.
Innovation Solution
A method that intercepts and modifies Address Resolution Protocol (ARP) packets to redirect network traffic to a different NIC using a hash engine, which intelligently selects a NIC based on utilization and error rates, allowing for load balancing, failover, and failback operations without the computational expense of managing complex connection states.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If the operating system selects a NIC for network connection without regard to utilization or error rate, then the connection can be established quickly, but the selected NIC may be overloaded or unreliable leading to reduced network performance
Solution Approach 1:
The system performs preliminary actions by pre-calculating hash values for connection identifiers and pre-establishing mapping relationships between connection identifiers and NICs. When a new connection is needed, the pre-computed hash value is directly queried to determine the assigned NIC, avoiding real-time analysis and enabling both quick connection establishment and reliable NIC selection based on historical performance data.
2Reliability
If a sophisticated data structure containing connection state is maintained to avoid assigning new connections to overloaded NICs, then network performance can be improved, but the computational cost increases degrading overall performance
Solution Approach 1:
The invention extracts only the essential information needed for NIC selection (connection identifier and its hash value) from the complex connection state data structure. By maintaining a simplified mapping between connection identifiers and NICs based on hash values, the system eliminates the need for sophisticated real-time analysis while preserving the ability to avoid overloaded NICs, thus improving computational performance.
Solution Approach 2:
The system replaces complex software-based connection state management with a more efficient hash-based indexing mechanism. Instead of maintaining and analyzing sophisticated data structures in software, the invention uses hash values to directly map connections to NICs, reducing computational overhead while achieving the same load balancing objective.
3Adaptability or versatility
If connection state data structure is maintained to track NIC utilization, then intelligent load balancing can be achieved, but the complexity of managing and analyzing connection state increases
Solution Approach 1:
The invention segments the connection state management into independent hash buckets based on connection identifier hash values. Each bucket independently stores the mapping between a specific connection identifier and its assigned NIC, eliminating the need to analyze the entire connection state structure. This segmentation enables intelligent load balancing while significantly reducing management complexity through localized, independent hash table operations.
Data Source
AI summary
A hash engine in a network device driver maintains data on the utilization and error rate for each network interface card (“NIC”) within a local computing device. From this data, the hash engine intelligently selects transmit NICs and receive NICs based on various networking parameters provided from a software driver program. Transmit packets sent from the operating system in a local computing device to a remote computing device are intercepted, modified and redirected to transmit NICs selected by the hash engine for transmission to remote computing devices. Similarly, address resolution protocol (“ARP”) response packets sent by the operating system in response to ARP request packets are intercepted, modified and redirected to receive NICs selected by the hash engine for transmission. By selecting receive NICs and transmit NICs in this fashion, the hash engine is able to intelligently load balance transmit and receive traffic in the local computing device, thereby improving overall network performance relative to prior art techniques.


