Divergence Histograms for Network Packet Matching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing pattern matching algorithms are inefficient in determining mismatches between data blocks and patterns, particularly in high-traffic network environments, as they require a large number of comparisons, which can lead to increased processing time and resource utilization.

Innovation Solution

The implementation of divergence histograms, which are meta-data driven and applied prior to pattern scanning, to reduce the average number of comparisons needed by identifying points of divergence between training data blocks and patterns, allowing for rapid pre-processing of incoming data blocks and efficient mismatch determination.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional pattern matching algorithms are used to determine mismatches between data blocks and patterns, then comprehensive pattern matching can be achieved, but the number of comparisons required increases, leading to increased processing time and resource utilization

Engineering Contradiction:
Improvemismatch determination accuracyVSAvoidprocessing throughput
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent applies preliminary action by pre-processing training data blocks to identify and store points of divergence before actual pattern matching occurs. Divergence histograms are computed in advance, capturing historical mismatch patterns, which then guide the rapid elimination of non-matching data blocks during runtime without sacrificing accuracy

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent segments the pattern matching process into two distinct phases: a pre-processing phase that computes divergence histograms from training data, and a runtime phase that uses these histograms for rapid mismatch determination. This segmentation allows comprehensive analysis to be performed offline while enabling fast processing during actual operation

Inventive Principle:
Principle #1Segmentation

2Reliability

If comprehensive pattern scanning is performed on all data blocks, then accurate match determination can be achieved, but processing time increases

Engineering Contradiction:
Improvematch determination reliabilityVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The divergence histograms are computed in advance from training data, storing pre-analyzed divergence patterns. During runtime, these pre-computed histograms enable rapid mismatch determination without performing complete pattern scans, thereby maintaining reliability while significantly reducing processing time

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies partial action by using only the most informative divergence points stored in histograms for mismatch determination, rather than performing exhaustive pattern scanning. This partial analysis at strategic points achieves reliable mismatch detection with reduced time investment

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10348650B2Augmentation of pattern matching with divergence histograms
Publication Date: 2019.07.09 AT&T INTELLECTUAL PROPERTY I L P
  • US10348650B2 patent drawing
  • US10348650B2 patent drawing
  • US10348650B2 patent drawing

AI summary

A processor may apply data blocks of a training data set to a pattern matching algorithm to identify whether the data blocks match a pattern, determine points of divergence between the data blocks and the pattern, count a number of times that each of a plurality of positions in the pattern is determined to be a point of divergence, and determine a position with a highest count of a number of times that the position is determined to be a point of divergence. The processor may further receive an incoming data block, compare a data value at the position in the pattern with the highest count to a data value at a corresponding position in the incoming data block, and determine a mismatch when the data value at the position in the pattern and the data value at the corresponding position in the incoming data block are different.