Sparse Array Resequencing for Bonded Channel Data Segments

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Resequencing packets across multiple bonded channels is a time-intensive process that consumes considerable memory, as segments or packets may be received out of order, requiring significant memory resources to buffer missing segments until they are received.

Innovation Solution

A method and system for resequencing packets that uses a sparse array to efficiently manage and store segments, allowing for minimal memory usage and rapid processing by maintaining a counter for the next expected packet sequence number and using timeouts to determine if missing packets should be considered lost, thereby allowing continued processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a resequencing buffer is used to store missing segments, then data delivery order is ensured, but memory consumption increases significantly

Engineering Contradiction:
Improvedata delivery orderVSAvoidmemory consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The resequencing buffer is divided into multiple channels, each responsible for storing segments with specific sequence numbers. This segmentation allows the system to only buffer segments that are actually missing, rather than allocating memory for all possible segments, thereby reducing overall memory consumption while maintaining reliable data delivery order.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each channel in the bonded channel set maintains its own resequencing buffer with specific characteristics. The system applies different buffering strategies to different channels based on their individual segment reception patterns, allowing optimized memory usage for each channel's specific needs rather than using a uniform approach for all channels.

Inventive Principle:
Principle #3Local quality

2Reliability

If segments are buffered and resequenced, then correct data order is maintained, but processing time increases

Engineering Contradiction:
Improvedata orderVSAvoidresequencing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

By dividing the resequencing task across multiple channels, each channel independently processes its segments without blocking others. This parallel segmentation of the resequencing process reduces the total processing time while ensuring correct data order through the sequence number tracking mechanism in each channel's buffer.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Segments are immediately placed into the appropriate channel buffer upon reception, with sequence numbers recorded in advance. This preliminary organization of segments by channel and sequence number eliminates the need for complex sorting operations later, reducing processing time while maintaining data order integrity.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If all segments are stored in memory, then no data loss occurs, but system resources are depleted

Engineering Contradiction:
Improvedata completenessVSAvoidmemory resources
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The memory resource is segmented into multiple channel-specific buffers rather than a single large buffer. Each buffer only needs to store segments for its specific channel, reducing the memory footprint per channel while collectively maintaining the ability to store all necessary segments across the bonded channel set.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The resequencing buffers dynamically allocate and deallocate memory based on actual segment reception needs. When segments are received out of order, memory is allocated only for those specific segments in the appropriate channel buffer, rather than reserving memory for all possible segments, thereby reducing overall memory resource consumption while preventing data loss.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP2074756B1Method, system, and computer program product for resequencing of data segments received over a bonding channel set
Publication Date: 2010.03.24 BROADCOM INC
  • EP2074756B1 patent drawingFigure 1
  • EP2074756B1 patent drawingFigure 2
  • EP2074756B1 patent drawingFigure 3

AI summary

A method, system, and computer program product for receiving and resequencing a plurality of data segments received on a plurality of channels of a bonding channel set, comprising determining if a sequence number of a received segment matches an expected sequence number. If so, the process includes forwarding the segment for further processing, incrementing the expected sequence number, and forwarding any queued packets corresponding to the expected sequence number and immediately succeeding sequence numbers less than a sequence number of annexed missing segment. If the sequence number of the received segment does not match the expected sequence number, the received segment is queued at a memory location. The address of this location is converted to a segment index. The segment index is stored in a sparse array. The sparse array is indexed by hashing the sequence number of the received segment. The system can be applied to communications conforming to the Data Over Cable System Interface Specification (DOCSIS) or a similar standard.