NIC Kernel Bypass Packet Routing for Low-Latency Servers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The inefficiency of data transmission in large-scale computer clusters due to processor overhead from kernel-mode processing of packets, leading to reduced network transmission performance and increased access delays.
Innovation Solution
A packet processing method that bypasses the kernel for certain packet types, utilizing a network interface card to parse and store data directly in shared storage, reducing reliance on kernel operations and implementing direct memory access for data transfer.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If packets are processed by the kernel mode processor, then security and privilege control are maintained, but processing efficiency and network transmission performance deteriorate
Solution Approach 1:
The patent segments packet processing into two paths: control packets are processed by the kernel mode processor to maintain security, while data packets are processed by the user mode network interface card. This segmentation allows security-critical operations to remain in kernel mode while bulk data processing occurs in user mode, resolving the contradiction between security and efficiency.
Solution Approach 2:
The patent introduces a shared memory buffer as an intermediary between the user mode network interface card and the kernel mode processor. The network interface card writes processed data packets directly to this shared buffer, which the application then reads. This intermediary mechanism enables efficient data transfer without requiring kernel mode intervention for each packet, maintaining security while improving throughput.
2Reliability
If all packets are processed by the processor, then complete control and security are maintained, but network access delay and processing overhead increase
Solution Approach 1:
The patent divides packet processing responsibilities between the user mode network interface card and the kernel mode processor. The network interface card handles time-critical data packet processing in user mode, reducing processor involvement and access delays. The processor retains control over control packets and overall system security, maintaining complete control while reducing time loss.
Solution Approach 2:
The network interface card performs self-service by processing data packets autonomously in user mode without requiring kernel mode processor intervention. It parses packets, extracts data, and stores results in shared memory independently. This self-service capability eliminates processor bottlenecks and reduces network access delay while the processor maintains supervisory control.
3Productivity
If the processor processes large quantities of packets, then comprehensive packet handling is achieved, but processing capability and network transmission performance become insufficient
Solution Approach 1:
The patent segments the packet processing workload: the user mode network interface card handles high-volume data packet processing, while the kernel mode processor handles lower-volume control packets. This segmentation distributes processing power requirements, allowing large quantities of packets to be processed without overwhelming the processor's processing capability.
Solution Approach 2:
The shared memory buffer acts as an intermediary that decouples the high-speed packet processing from the processor. The network interface card writes directly to this buffer at high speed, and the application reads from it. This intermediary mechanism enables comprehensive packet handling at high volumes without requiring proportional processor processing capability.
Data Source
Figure 1
Figure 2~3
Figure 4
AI summary
A packet processing method, performed by a network interface card of a computer device. The method includes: The network interface card receives a first packet and determines a type of the first packet, and then performs a first bypass processing operation on the first packet based on the type of the first packet. Therefore, a part of packets are not processed by a kernel. In other words, processing of a part of packets bypasses a bloated kernel, thereby improving packet processing efficiency, improving network transmission performance, and reducing a network access delay.