Hash Engine NIC Load Balancing and Failover

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing network communication systems fail to efficiently distribute and redistribute network connections across network interface cards (NICs) to avoid overloaded or unreliable NICs, leading to reduced performance and computational overhead.

Innovation Solution

A method that intercepts and modifies Address Resolution Protocol (ARP) packets to redirect network traffic to a NIC selected by a hash engine based on utilization and error rate data, allowing for intelligent load balancing, failover, and failback operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a sophisticated data structure containing connection state is maintained to identify overloaded NICs, then network connection distribution can be optimized, but computational expense increases and degrades performance

Engineering Contradiction:
Improvenetwork connection distribution efficiencyVSAvoidcomputational expense
Core Design Contradiction:
ProductivityVSUse of energy by stationary object

Solution Approach 1:

The patent extracts the essential information needed for NIC selection (connection identifiers and NIC identifiers) from the complex connection state data structure and stores only these extracted identifiers in a hash table. This eliminates the need to maintain and analyze the full sophisticated data structure, reducing computational expense while preserving the ability to efficiently identify which NIC handles which connection.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent pre-computes and stores the mapping between connection identifiers and NIC identifiers in a hash table before connections are established. This preliminary action allows the system to quickly determine NIC assignment without performing expensive analysis of connection state during runtime, thereby improving distribution efficiency while minimizing computational overhead.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If the operating system selects NICs for network connections without considering utilization or error rates, then connection establishment is simple and fast, but connections are assigned to overloaded or unreliable NICs reducing network performance

Engineering Contradiction:
Improveconnection establishment simplicityVSAvoidnetwork performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent introduces a hash table as an intermediary data structure that bridges the simple OS NIC selection mechanism and the sophisticated load balancing requirements. The hash table stores pre-computed mappings that allow the system to redirect connections to appropriate NICs based on utilization and error rate data without complicating the OS selection process, thus maintaining ease of operation while improving network performance.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If connection state data structure is analyzed to determine NIC overload status, then overloaded NICs can be identified, but the analysis is computationally expensive and degrades performance

Engineering Contradiction:
Improveoverloaded NIC identification accuracyVSAvoidcomputational performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts only the necessary identifiers (connection identifier and NIC identifier) from the complex connection state and stores them in a hash table. This extraction eliminates the need for expensive analysis of the full connection state data structure while maintaining the ability to accurately identify which NIC handles which connection, thereby preserving reliability while improving computational performance.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8300647B2Intelligent load balancing and failover of network traffic
Publication Date: 2012.10.30 NVIDIA CORP
  • US8300647B2 patent drawing
  • US8300647B2 patent drawing
  • US8300647B2 patent drawing

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.