Network Tap Packet Ordering via Push-Sequence 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, leading to uncertainties in packet order and inefficiencies in data transfer, particularly in remote access applications where bandwidth is limited.

Innovation Solution

A system and method that utilize hardware processors and software modules to receive and separate data packets from a network tap, maintaining push-sequence values for each queue to ensure consecutive sequence numbering, and generate gap packets when necessary to maintain order, thereby providing ordered data to the application layer.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If network tapping technologies are used to capture traffic, then a copy of the packet stream can be extracted, but the packet order cannot be accurately determined from the third-party perspective

Engineering Contradiction:
Improvepacket order informationVSAvoidordering mechanism complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary ordering mechanism that acts as a mediator between the network tap and the analysis system. This intermediary maintains separate queues for each direction of communication and uses push-sequence values to mediate the ordering process, resolving the packet order uncertainty without requiring complex end-point coordination.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the packet stream into two separate queues based on communication direction. By dividing the traffic flow into distinct segments (forward and reverse directions), the system can independently track and order packets in each direction using push-sequence values, making the ordering process more manageable and accurate.

Inventive Principle:
Principle #1Segmentation

2Reliability

If packets are transmitted asynchronously over the network, then network protocols can handle packet loss and corruption, but the packet arrival order does not match the byte stream order required by the application

Engineering Contradiction:
Improvedata delivery reliabilityVSAvoidpacket reordering time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary ordering actions by maintaining push-sequence values and queues before data analysis. By pre-organizing packets in the correct byte stream order using sequence numbers and push-sequence tracking, the system eliminates the need for time-consuming reordering operations during data processing, thus reducing loss of time.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If remote access applications use dial-up connections, then bandwidth is limited, but retransmitted packets consume precious bandwidth inefficiently

Engineering Contradiction:
Improvedata transfer efficiencyVSAvoidbandwidth consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent implements a feedback mechanism by tracking push-sequence values and comparing them with actual packet sequence numbers. This feedback allows the system to identify and eliminate redundant retransmitted packets before they consume bandwidth, thereby improving data transfer efficiency and reducing unnecessary bandwidth consumption in remote access applications.

Inventive Principle:
Principle #23Feedback

Data Source

PatentEP3078175B1Ordering traffic captured on a data connection
Publication Date: 2019.11.27 DB CYBERTECH INC
  • EP3078175B1 patent drawingFigure 1
  • EP3078175B1 patent drawingFigure 2A~2C
  • EP3078175B1 patent drawingFigure 2D~2F

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 time stamp 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.