NIC-Based Network Address Translation for CPU Offload
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing network address translation methods in software incur performance penalties, security risks, and inefficiencies due to high message volumes and rates, particularly in high-performance computing environments, leading to CPU resource diversion and cache misses.
Innovation Solution
Implementing network address translation in hardware, specifically through a network interface controller (NIC), using a multi-part translation process that combines table lookup with a translation algorithm to efficiently convert logical network addresses to physical addresses, reducing table size and offloading CPU workload.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If network address translation is performed in software, then flexibility and ease of implementation are improved, but CPU performance deteriorates due to high message volumes and cache misses
Solution Approach 1:
The patent replaces the software-based network address translation mechanism with a hardware-based implementation in the NIC. This substitution moves the translation function from the CPU's software environment to dedicated hardware circuitry within the network interface controller, eliminating the performance penalties of software processing while maintaining the translation functionality.
2Adaptability or versatility
If network address translation is performed in software, then adaptability to different addressing schemes is improved, but security deteriorates due to untrusted software access
Solution Approach 1:
The patent introduces the NIC as an intermediary device between the CPU and the network. The NIC contains a trusted translation component that mediates the address translation process, isolating the untrusted user-space software from direct access to physical addresses. This intermediary structure maintains security while enabling adaptability through configuration options.
3Quantity of substance
If large translation tables are used to support many endpoints, then address coverage is improved, but memory usage and cache efficiency deteriorate
Solution Approach 1:
The patent segments the logical network address into multiple fields (endpoint identifier, process identifier, etc.) and uses selective translation only for messages requiring it. The translation table stores only the necessary mappings rather than complete address translations, reducing memory requirements while supporting a large number of endpoints through hierarchical address management.
4Productivity
If network address translation is offloaded to hardware, then CPU performance is improved, but device complexity increases
Solution Approach 1:
The patent implements a universal translation component within the NIC that can handle multiple translation scenarios (logical to physical address, different address formats, various message types) through a single hardware mechanism. This multi-functional approach consolidates what would otherwise require multiple separate components, managing the complexity increase while delivering CPU performance benefits.
Data Source
AI summary
In certain implementations, a method includes receiving, by a network interface controller (NIC), a request for inter-process communication associated with a sending process of a distributed application. The request includes a logical network address for a destination process of the distributed application. The method includes executing, by the NIC, a network address translation process to translate the logical network address for the destination process to a translated network address for the destination process. The network address translation process includes executing, using a first portion of the logical network address, a lookup of a network address translation table to determine a first address; determining a translation modifier by executing a translation algorithm using a second portion of the logical network address; and determining the translated network address using the first address and the translation modifier. The method includes processing, by the NIC, a first message using the translated network address.


