Distributed Device Packet Processing Using Port Allocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Distributed processing architectures face challenges in handling data with high change speed or large amounts, leading to inefficient resource utilization and failed packet processing due to the need for synchronous replication of data across processing units, especially in network devices like firewalls and server load balancers.
Innovation Solution
A packet processing method in a distributed device that uses offloading units and processing units to allocate IP addresses and port numbers based on data flow identifiers, ensuring that both uplink and downlink data streams are processed by the same processing unit, using a hash algorithm and adjustable values to optimize resource allocation and address translation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If synchronous replication of data is used on each processing unit, then data consistency is maintained, but resource consumption increases and scalability is limited for data with high change speed or large amount
Solution Approach 1:
The patent divides the session table data management into two parts: complete session table data is stored in a distributed storage system (external to processing units), while only session identifiers and mapping relationships are kept in memory on processing units. This segmentation allows multiple processing units to access session data without requiring full replication, reducing memory resource consumption while maintaining data consistency through centralized storage.
Solution Approach 2:
The patent introduces an intermediary mechanism (session manager or control plane) that handles session table synchronization and data distribution between the distributed storage system and processing units. This intermediary manages the complexity of data consistency without requiring each processing unit to maintain complete replicated copies, thereby reducing resource consumption while ensuring reliability.
2Ease of operation
If complete session table data is replicated on each processing unit, then packet processing can be performed independently, but storage resource consumption increases significantly
Solution Approach 1:
The patent applies local quality by having each processing unit store only the specific session data it needs for its assigned traffic flows, rather than replicating the complete session table. Session identifiers and mapping relationships are kept locally in memory for fast access, while the full session table resides in distributed storage. This approach enables independent packet processing for each unit's assigned flows while dramatically reducing storage resource consumption.
3Quantity of substance
If session table data is distributed across processing units, then resource consumption is reduced, but packet processing fails when uplink and downlink streams are offloaded to different processing units
Solution Approach 1:
The patent implements a feedback mechanism where session identifiers and mapping relationships are maintained in memory on each processing unit based on the distributed session table data. When a packet arrives, the processing unit queries its local memory for the session identifier, retrieves the mapping relationship if needed from distributed storage, and uses this information to determine the correct egress processing unit. This feedback loop ensures that even with distributed data, packets are correctly routed to the same processing unit for both uplink and downlink streams, maintaining processing reliability while keeping resource consumption low.
4Productivity
If distributed storage of session table is used, then scalability is improved, but data synchronization and maintenance complexity increases
Solution Approach 1:
The patent introduces an intermediary session manager that handles the complexity of session table synchronization and data distribution. This intermediary component manages the distributed storage system, handles data consistency protocols, and provides a simplified interface to processing units. By centralizing the synchronization logic in this intermediary layer, the system achieves scalability through distributed storage while the intermediary abstracts away the synchronization complexity from individual processing units.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
This application discloses a packet processing method in a distributed device, to resolve a problem of a packet processing failure. The distributed device includes a first offloading unit, a second offloading unit, and at least two processing units. The first offloading unit receives a first packet from a first network and sends the first packet to a first processing unit. The first processing unit allocates an IP address and a port number to the first packet, where the allocated port number satisfies a condition: Based on a data flow identifier of a reverse packet of an address-translated first packet and a second offloading algorithm, a second processing unit selected from the at least two processing units is a same processing unit as the first processing unit, a source port number of the address-translated first packet is the allocated port number, and the second offloading algorithm is an algorithm used by a second offloading unit to offload the reverse packet. The first processing unit performs address translation on the first packet. The second offloading unit sends the address-translated first packet to a second network.