IP Library Granted Patent US 9,191,342
Granted Patent B2
US 9,191,342 · App. 14/549,425 · Granted Nov 17, 2015

Data matching using flow based packet data storage

Inventors: David Anthony Hughes (Los Altos Hills, CA); John Burns (Los Altos, CA); Zhigang Yin (Mountain View, CA)
Assignee: Silver Peak Systems, Inc.
H04L49/901H04L43/062H04L45/745H04L47/2483H04L49/90H04L49/9047H04L49/9057H04L49/9094
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,191,342
App. No.
14/549,425
Granted
Nov 17, 2015
Kind
B2
Abstract

A system for matching data using flow based packet data storage includes a communications interface and a processor. A communications interface receives a packet between a source and a destination. The processor identifies a flow between the source and the destination based on the packet. The processor determines whether some of packet data of the packet indicates a potential match to data in storage using hashes. The processor then stores the data from the most likely data match and second most likely data match without a packet header in a block of memory in the storage based on the flow.

Claims (35)

1. A system for matching data using flow based packet data storage, the system comprising:

a communications interface that receives at least one data packet at a network device between a source and a destination, the at least one data packet including data and flow information; and

a processor that:

identifies a flow between the source and the destination based on the flow information in the at least one data packet;

determines whether at least a portion of the data from the received at least one data packet indicates one or more potential matches to data in storage;

retrieves a list of possible data matches;

determines match sizes of the most likely data match and a second most likely data match by directly comparing packet bytes and matched data bytes; and

stores the data from the at least one data packet without a packet header in a block of memory allocated for the flow, or

generates a retrieve instruction for the data match depending on the match sizes.

2. The system of claim 1 , wherein the processor moves the storage data between a fast memory and a slow memory.

3. The system of claim 1 , wherein the flow comprises a session between the source and the destination.

4. The system of claim 1 , wherein the processor allocates the block of the memory for the identified flow.

5. The system of claim 1 , wherein the processor transmits the packet data.

6. The system of claim 1 , wherein the block of memory allocated for the flow is allocated from a list of partially filled blocks of memory.

7. A method for matching data using flow based packet data storage, the method comprising:

receiving at least one data packet at a network device between a source and a destination, the at least one data packet including data and flow information;

identifying a flow between the source and the destination based on the flow information in of the at least one data packet;

determining whether at least a portion of the data from the received at least one data packet indicates one or more potential matches to data in storage;

retrieving a list of possible data matches;

determining match sizes of the most likely data match and a second most likely data match by directly comparing packet bytes and matched data bytes; and

storing the data from the at least one data packet without a packet header in a block of memory allocated for the flow, or

generating a retrieve instruction for the data match depending on the match sizes.

8. The method of claim 7 , further comprising moving the storage data between a fast memory and a slow memory.

9. The method of claim 7 , wherein the flow comprises a session between the source and the destination.

10. The method of claim 7 , further comprising allocating the block of the memory for the identified flow.

11. The method of claim 7 , further comprising transmitting the packet data.

12. The method of claim 7 , further comprising allocating the block of memory for the identified flow from a list of partially filled blocks of memory.

13. A software product for processing packets, the software product comprising:

software operational when executed by a processor to direct the processor to receive at least one data packet at a network device between a source and a destination, the at least one data packet including data and flow information; to identify a flow between the source and the destination based on the flow information in the at least one data packet; to determine whether at least a portion of the data from the received at least one data packet indicates one or more potential matches to data in storage; to retrieve a list of possible data matches; to determine match sizes of the most likely data match and a second most likely data match, by directly comparing packet bytes and matched data bytes; and to store the data from the at least one data packet without a packet header in a block of memory allocated for the flow, or to generate a retrieve instruction for the data match depending on the match sizes; and

a non-transitory computer-readable storage medium configured to store the software.

14. The software product of claim 13 , wherein the software is operational when executed by the processor to direct the processor to move the storage data between a fast memory and a slow memory.

15. The software product of claim 13 , wherein the flow comprises a session between the source and the destination.

16. The software product of claim 13 , wherein the software is operational when executed by the processor to direct the processor to allocate the block of the memory for the identified flow.

17. The software product of claim 13 , wherein the software is operational when executed by the processor to direct the processor to transmit the packet data.

18. The software product of claim 13 , wherein the block of memory allocated for the flow is allocated from a list of partially filled blocks of memory.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2022
From: SILVER PEAK SYSTEMS, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 059684/0663 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2022
From: SILVER PEAK SYSTEMS, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 058985/0279 →
RELEASE OF SECURITY INTEREST Recorded Sep 22, 2020
From: GOLUB CAPITAL LLC
To: SILVER PEAK SYSTEMS, INC.
Reel/Frame 053852/0231 →
SECURITY INTEREST Recorded Apr 16, 2019
From: SILVER PEAK SYSTEMS, INC.
To: GOLUB CAPITAL LLC, AS AGENT
Reel/Frame 048921/0455 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2014
From: HUGHES, DAVID ANTHONY; BURNS, JOHN; YIN, ZHIGANG
To: SILVER PEAK SYSTEMS, INC.
Reel/Frame 034467/0645 →
Continuity (3)
Continuation 14270101 · May 5, 2014
Continuation 11498473 · Aug 2, 2006
Related Publication 20150078397A1 · Mar 19, 2015