Packet Reordering via Sequence Number Buffering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Packets sent through packet switched networks often arrive out of order due to varying transmission paths, which can disrupt applications that require packets to be processed in their original order, such as those carrying TDM payloads.

Innovation Solution

A method and system for reordering packets by assigning sequence numbers based on the original order, writing packets to a buffer based on these sequence numbers, and reading them back in sequential order to restore the original order, while also detecting packet loss using sequence number subfields.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If packets are sent through different paths in a packet switched network, then network flexibility and throughput are improved, but packets arrive out of order which disrupts applications sensitive to packet order

Engineering Contradiction:
Improvenetwork throughputVSAvoidpacket order delivery
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The transmitter assigns sequence numbers to packets before transmission, establishing the original order. The receiver uses these pre-assigned sequence numbers to identify and reorder packets after they arrive through different paths, ensuring correct ordering without disrupting the flexible routing that enables high throughput.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If packets are reordered at the receiver to restore original order, then application processing correctness is improved, but device complexity and computational power requirements increase

Engineering Contradiction:
Improvepacket processing correctnessVSAvoidreceiver logic complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

A buffer is introduced as an intermediary storage mechanism between the out-of-order packet arrival and the sequential processing requirement. Packets are written to buffer positions based on their sequence numbers and then read sequentially, simplifying the reordering logic while ensuring correct packet order for applications.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If sequential reading from buffer is implemented, then reading logic is simplified, but buffer write operations become complex due to non-sequential buffer positions

Engineering Contradiction:
Improvereading logic simplicityVSAvoidbuffer write complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The buffer is segmented into multiple positions that can be independently addressed. Each packet is written to a specific buffer position determined by its sequence number, allowing non-sequential writes. The read operation then simply proceeds sequentially through buffer positions, separating the complexity of random access writes from simple sequential reads.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS7522606B1Passive packet re-ordering and packet loss detection
Publication Date: 2009.04.21 RIBBON COMMUNICATIONS OPERATING CO INC
  • US7522606B1 patent drawing
  • US7522606B1 patent drawing
  • US7522606B1 patent drawing

AI summary

A plurality of packets are received at a receiver. The plurality of packets are sent in a first ordering from a transmitter and received in a second ordering. The second ordering is different from the first ordering. The packets, when they were sent, are assigned sequence numbers based on the first ordering. As each of the plurality of packets is received in the second ordering, a packet is written to a buffer position in a buffer based on the sequence number associated with the packet. The writes to the buffer positions are out of order or in a non-sequential order as compared to a sequential ordering of buffer positions in the buffer. Packets are then read from the buffer in a sequential order. As packets are read from the buffer, they are read in the first ordering that the packets were sent in.