Bidirectional Receive Side Scaling Using Commutative Hashing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current receive side scaling technologies, such as MS® RSS, are limited in their ability to balance network load across multiple processors bidirectionally, as they assume traffic is terminated at the system where scaling is performed, and are cryptographically secure, preventing remote systems from predicting hash results, which hinders efficient processing of packets belonging to the same flow.
Innovation Solution
Implementing a commutative hash function that generates the same hash result when swapping source and destination network addresses and port numbers, allowing packets belonging to the same flow to be hashed to the same processor, thereby enabling bidirectional receive side scaling.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a cryptographically secure hash function is used in MS® RSS, then security is improved and hash results are unpredictable, but bidirectional receive side scaling cannot be achieved and packets of the same flow cannot be routed to the same processor
Solution Approach 1:
The patent changes the fundamental parameter of the hash function from cryptographically secure (one-way) to commutative (symmetric). This allows the hash function to produce identical results for both forward and reverse packet directions while maintaining security through the use of secret keys that are not transmitted over the network.
Solution Approach 2:
The patent introduces an intermediary secret key that is shared between communicating parties but not transmitted over the network. This key is used to generate session-specific hash functions that maintain security while enabling bidirectional scaling, acting as a mediator between the conflicting requirements of security and scalability.
2Device complexity
If traffic is assumed to be terminated at the system where scaling is performed, then implementation is simplified, but bidirectional packet handling cannot be achieved
Solution Approach 1:
The patent makes the hash function universal by designing it to work for both forward and reverse packet directions. The commutative property ensures that the same hashing mechanism can handle traffic in either direction, eliminating the need for separate handling logic and enabling bidirectional scaling without significantly increasing implementation complexity.
3Productivity
If packets of the same flow are hashed to different processors, then load balancing is achieved, but synchronization overhead increases and processing efficiency decreases
Solution Approach 1:
The patent segments network traffic handling by assigning different session hashes to different processor queues. This segmentation ensures that packets of the same flow (identified by the same session hash) are always routed to the same processor, eliminating synchronization overhead while still achieving load balancing across multiple processors through the distribution of different sessions.
Data Source
AI summary
In an embodiment, a method is provided. The method of this embodiment provides in response to receiving a packet, determining a packet tuple; generating a hash result by performing a commutative hash function on the packet tuple; and processing the packet on one of a plurality of processors based, at least in part, on the hash result.


