Hash-Based TCP Connection Allocation for Multi-Core Processor Load Balancing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In packet switched networks, concurrency issues arise when multiple processors attempt to process packets for the same TCP connection, leading to inaccurate data updates and potential stalling due to unsynchronized access to TCP connection data.

Innovation Solution

Implementing a hash function to uniquely associate each TCP connection with a specific processor core, ensuring that all packets for a connection are processed by the same processor and distributed evenly among multiple processors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple processors process packets for the same TCP connection, then processing capacity is improved, but data consistency deteriorates due to unsynchronized access

Engineering Contradiction:
Improveprocessing capacityVSAvoiddata consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments TCP connections by distributing them across multiple processor cores using a hash function. Each processor core is assigned a specific subset of TCP connections, ensuring that all packets for a given connection are processed by the same processor. This segmentation resolves the contradiction by maintaining data consistency within each segment while achieving parallel processing across segments.

Inventive Principle:
Principle #1Segmentation

2Productivity

If processor allocation is optimized for speed, then processing efficiency is improved, but complexity of allocation increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidallocation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements a self-service allocation mechanism where the hash function automatically assigns TCP connections to processor cores based on connection characteristics. This eliminates the need for complex manual allocation or dynamic scheduling algorithms, achieving efficient processor utilization through a simple, deterministic function that requires minimal overhead.

Inventive Principle:
Principle #25Self-service

3Productivity

If hash function distributes connections evenly, then load balance is improved, but risk of collision increases

Engineering Contradiction:
Improveload balanceVSAvoidcollision risk
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent modifies the hash function parameters by incorporating multiple TCP connection identifiers (source IP, destination IP, source port, destination port) into the hashing process. This expansion of input parameters increases the hash space, reducing collision probability while maintaining even distribution across processor cores. The modified hash function transforms the connection tuple into a distributed hash value that minimizes collisions.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9319441B2Processor allocation for multi-core architectures
Publication Date: 2016.04.19 KEYSIGHT TECH SINGAPORE (SALES) PTE LTD
  • US9319441B2 patent drawing
  • US9319441B2 patent drawing
  • US9319441B2 patent drawing

AI summary

Methods, computing devices, and computer readable storage media for testing network connections are disclosed. A first processor of a plurality of processors may define a new TCP connection to be opened. The first processor may apply a hash function to determine a second processor of the plurality of processors to open the new TCP connection. The first processor may provide data defining the new TCP connection to the second processor. The second processor may open the new TCP connection in accordance with the data provided by the first processor.