Network Tap Packet Reordering via Directional Queues

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing network tapping technologies struggle to accurately order data packets captured from network connections between endpoints, as they receive a unique third-party view that may include subsets or supersets of packets, leading to uncertainties in the order of request data.

Innovation Solution

A system that utilizes hardware processors and software modules to receive data packets from a network tap, separate them into queues based on communication direction, maintain push-sequence values, and adjust packet output to maintain consecutive sequence numbers, generating gap packets when necessary to ensure correct ordering.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If network tapping technologies are used to capture traffic, then a third-party view of packets is obtained, but the packet order becomes uncertain and may not match the original sequence

Engineering Contradiction:
Improvepacket order informationVSAvoidpacket sequence accuracy
Core Design Contradiction:
Loss of informationVSMeasurement precision

Solution Approach 1:

The patent applies preliminary action by maintaining separate queues for packets from each endpoint before reordering them. The system pre-processes captured packets by organizing them into direction-specific queues with sequence numbers, then systematically reorders them to reconstruct the original transmission sequence. This preliminary organization enables accurate reconstruction of packet order despite the asynchronous nature of network captures.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If packets are captured from a network connection, then traffic data is obtained, but the asynchronous transmission causes packets to arrive in non-consecutive sequence numbers

Engineering Contradiction:
Improvedata capture efficiencyVSAvoiddata sequence accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements feedback mechanisms by continuously monitoring sequence numbers and acknowledgment numbers in captured packets. The system uses this feedback information to dynamically adjust the reordering process, ensuring that packets are delivered to the application layer in the correct sequence. The feedback loop validates that the reconstructed sequence matches the expected TCP protocol behavior.

Inventive Principle:
Principle #23Feedback

3Measurement precision

If TCP packets are reordered to maintain consecutive sequence numbers, then accurate data streaming is achieved, but complex queue management and sequence tracking are required

Engineering Contradiction:
Improvesequence number accuracyVSAvoidqueue management complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the packet reordering task into manageable components: separate queues for each endpoint, individual sequence number tracking for each queue, and systematic rules for selecting which packet to deliver next. This segmentation transforms the complex problem of reordering asynchronous TCP packets into a series of simple, rule-based operations that can be implemented efficiently.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9525642B2Ordering traffic captured on a data connection
Publication Date: 2016.12.20 KEYFACTOR INC
  • US9525642B2 patent drawing
  • US9525642B2 patent drawing
  • US9525642B2 patent drawing

AI summary

Ordering partial network traffic. In an embodiment, data packets are received from a network tap and separated into two queues. For each queue, a push-sequence is maintained to represent a sequence number that must be pushed in order to maintain a consecutive order. When both push-sequences are equal to the sequence number of their first packets, if the acknowledgement number of the first packet on one queue is greater than the push-sequence for the other queue and less than or equal to the push-sequence of the one queue, data is pushed off the other queue. Otherwise, a queue having the earlier timestamp is identified as a first queue, the existence of a next acknowledgement number is determined for the second (other) queue, and data is pushed off the first queue according to the existence of the next acknowledgement number. Gap packets may be generated to force progress.