Per-Packet Load-Balancing with Sequence Numbers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional load-balancing techniques are inadequate for handling high-capacity network traffic due to bandwidth limitations and inefficiencies, particularly in scenarios where packets have identical flow information, leading to bandwidth issues and packet reordering challenges across multiple network paths.
Innovation Solution
Implementing per-packet load-balancing techniques that assign sequence numbers to packets and distribute them across multiple network paths based on available bandwidth and packet delays, allowing for intelligent and efficient traffic engineering to ensure optimal bandwidth utilization and correct packet ordering.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If conventional flow-based load-balancing is used, then packets with identical flow information are routed over the same path, but this causes bandwidth underutilization and cannot handle high-capacity traffic efficiently
Solution Approach 1:
The patent segments the packet stream into individual packets for independent routing decisions. Instead of treating packets with identical flow information as a single flow unit, each packet is segmented and evaluated independently, allowing different packets to take different paths and thereby utilizing bandwidth across multiple network paths more effectively.
Solution Approach 2:
The load-balancing approach transitions from a static flow-based routing decision to a dynamic per-packet routing decision. The system dynamically selects paths for each packet based on current network conditions, packet sequence numbers, and available bandwidth, enabling adaptive bandwidth utilization that responds to changing traffic patterns.
2Productivity
If packets are distributed across multiple network paths, then bandwidth utilization improves, but packet reordering occurs which degrades service quality
Solution Approach 1:
The ingress network node performs preliminary actions by assigning sequence numbers to packets before distributing them across multiple paths. This pre-labeling enables the egress node to reconstruct the original packet order even when packets arrive out of sequence, thereby maintaining reliability while allowing parallel path transmission.
Solution Approach 2:
Sequence numbers act as an intermediary mechanism between the distributed packet transmission and the required ordered delivery. The sequence numbers carry ordering information through the network paths, enabling the egress node to mediate the reordering process and deliver packets in the correct sequence to the destination.
3Productivity
If per-packet load-balancing is implemented, then high-capacity traffic can be transferred efficiently across bandwidth-limited interfaces, but this requires complex sequencing and reordering mechanisms
Solution Approach 1:
The patent changes the parameter space for load-balancing decisions by incorporating packet sequence numbers as an additional parameter. Instead of relying solely on flow information, the system uses sequence numbers to make per-packet routing decisions, enabling efficient traffic distribution while providing the necessary information for accurate reordering at the egress node.
4Productivity
If multiple network paths are used for packet distribution, then bandwidth capacity increases, but packet delay variation and reordering challenges increase
Solution Approach 1:
The system implements feedback through sequence number tracking and monitoring of packet arrival times across different paths. The egress node uses this feedback information to identify out-of-order packets and trigger reordering operations, allowing the system to accommodate delay variation while maintaining delivery correctness.
Data Source
AI summary
Techniques are presented herein for load-balancing a sequence of packets over multiple network paths on a per-packet basis. In one example, a first network node assigns sequence numbers to a sequence of packets and load-balances the sequence of packets on a per-packet basis over multiple network paths of a network to a second network node. The second network node buffers received packets that are received over the multiple network paths of the network from the first network node and re-orders the received packets according to sequence numbers of the received packets.


