Deep Flow Packet Scheduling for Load Balancing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Multiprocessing systems face challenges in balancing flow affinity and load balancing, leading to inefficiencies in packet processing due to conflicts between maintaining CPU affinity and achieving uniform load distribution across CPU cores, especially in virtualization environments where high-speed internet traffic and virtualization increase server loads.
Innovation Solution
A scheduling method that groups processors into groups and dynamically allocates packets based on load states and processing capacities, using multiple schedulers to manage queues and allocate deep packets according to virtualization environment network layer information, thereby improving processor affinity and reducing latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If flow affinity is maintained by assigning same CPU to process packets of same flow, then packet processing efficiency is improved, but load balancing between CPUs deteriorates
Solution Approach 1:
The patent segments the packet processing task by introducing deep flow identification that divides traffic into different deep flows based on application layer characteristics. By segmenting at the deep flow level rather than just IP flow level, the system can distribute packets more evenly across CPUs while maintaining affinity for packets belonging to the same deep flow, thus resolving the contradiction between processing efficiency and load balancing.
Solution Approach 2:
The patent implements dynamic scheduling that adapts to changing network conditions and traffic patterns. The system dynamically determines deep flow boundaries and adjusts CPU assignment based on real-time load states, allowing the system to maintain optimal load balancing while preserving flow affinity for packets within the same deep flow, thereby resolving the static contradiction between these two objectives.
2Reliability
If load balancing is performed periodically between CPUs, then load distribution is improved, but packet processing efficiency deteriorates due to flow affinity loss and packet re-ordering
Solution Approach 1:
The patent performs preliminary deep flow identification and CPU assignment before packet processing begins. By pre-determining which CPU should handle which deep flow based on load prediction and affinity rules, the system avoids the need for periodic reassignment that causes packet re-ordering. This preliminary action maintains both load balancing and processing efficiency simultaneously.
Solution Approach 2:
The patent ensures continuous and stable CPU assignment for deep flows by implementing long-term affinity policies. Instead of periodic reassignment that disrupts packet processing, the system maintains continuous affinity relationships between CPUs and deep flows, allowing packets to be processed efficiently without re-ordering while still achieving load balancing through intelligent initial assignment and dynamic adjustment.
3Device complexity
If processor allocation considers only physical layers of virtualization environment, then queue management is simplified, but processor affinity is lost reducing parallel processing efficiency
Solution Approach 1:
The patent adds another dimension to queue management by introducing deep flow identification that operates at the application layer rather than just the physical network layer. This dimensional extension allows the system to maintain processor affinity at the deep flow level while managing queues in a way that preserves both simplicity and efficiency, resolving the contradiction between management complexity and processing efficiency.
Data Source
AI summary
A network interface unit for processing a packet and a method thereof are provided. The network interface unit includes a plurality of queues, if a packet is received through a physical network, identifies a flow of the packet, stores the packet in a plurality of queues in the unit of flow, and processes the packet in parallel through a multiprocessor.


