Network Load Balancing and Packet Re-sequencing via Channel Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current network load balancing methods, such as ECMP and per-packet load balancing, face challenges in balancing link loads effectively, leading to low bandwidth utilization and network performance issues due to load imbalance and data packet disorder.

Innovation Solution

A method and apparatus that allocate channel identifiers and sequence numbers to packet flows based on forwarding tables and network topology, enabling per-packet load sharing and re-sequencing to balance network link loads and reorder packets correctly.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If per-packet load balancing is used, then bandwidth utilization and load balancing effect are improved, but data packet disorder occurs on receiver side

Engineering Contradiction:
Improvebandwidth utilizationVSAvoidpacket ordering
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments packets into different groups based on flow identifiers, and assigns each group to different transmission paths. This segmentation allows parallel transmission while maintaining order within each segment, resolving the contradiction between load balancing and packet ordering.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary classification of packets into different queues based on flow identifiers before transmission. This preliminary action enables the system to pre-determine transmission paths for different packet groups, ensuring both load balancing and correct reassembly order at the receiver.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If ECMP routing is used, then multi-link load balancing and link backup are achieved, but serious load imbalance occurs between network links

Engineering Contradiction:
Improvelink backup capabilityVSAvoidbandwidth utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies different routing policies to different packet flows based on local conditions. By analyzing flow characteristics and network state, it dynamically selects optimal paths for each flow, achieving both load balancing and high bandwidth utilization while maintaining link backup capability.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent implements dynamic path selection that adapts to changing network conditions. The routing decision is not static but adjusts based on current link loads and flow characteristics, resolving the load imbalance problem while maintaining the benefits of ECMP.

Inventive Principle:
Principle #15Dynamics

3Quantity of substance

If per-flow ECMP is used, then transmission bandwidth is increased, but load imbalance occurs due to different flow sizes

Engineering Contradiction:
Improvetransmission bandwidthVSAvoidnetwork performance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent changes the routing parameters dynamically based on flow characteristics and network state. By adjusting path selection parameters according to flow size and current link conditions, it achieves optimal bandwidth utilization and network performance simultaneously.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11736407B2Method and apparatus for load balancing and packet re-sequencing on network
Publication Date: 2023.08.22 HUAWEI TECH CO LTD
  • US11736407B2 patent drawing
  • US11736407B2 patent drawing
  • US11736407B2 patent drawing

AI summary

A method for load balancing and packet re-sequencing on a network includes an ingress node that determines an identifier of a destination chip based on a destination address of a packet flow and a forwarding table, allocates, based on the identifier of the destination chip, a channel identifier and a sequence number of each packet that is in the packet flow and that enters a channel, to generate an updated packet flow, where each packet in the updated packet flow includes a packet in a corresponding packet flow, a sequence number of the packet, and the channel identifier, and the updated packet flow is sent in a per-packet load sharing manner.