IP Library Granted Patent US 9,549,048
Granted Patent B1
US 9,549,048 · App. 14/679,965 · Granted Jan 17, 2017

Transferring compressed packet data over a network

Inventor: David Anthony Hughes (Los Altos Hills, CA)
Assignee: Silver Peak Systems, Inc.
H04L69/04
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,549,048
App. No.
14/679,965
Granted
Jan 17, 2017
Kind
B1
Abstract

A system, method, and computer program for compressing packet data is provided. In exemplary embodiments, one or more blocks may be identified that include block data similar to packet data of one or more packets. The one or more blocks may comprise archives of previously transferred packets. The packet data may be compressed based, at least partially, on the block data. Accordingly, the compressed packet data may be transferred over a communication network.

Claims (37)

1. A method for transferring compressed packets over a communication network, comprising:

identifying block data from one or more blocks that include data similar to packet data from one or more packets to be transferred over the communication network, the block data comprising archives of data previously transferred over the communication network;

mapping the packet data to locations within the identified block data that include data similar to the packet data;

encoding the identified block data and the mapped packet data to generate compressed packet data, wherein the compressed packet data comprises a block indicator and an encoded portion comprising at least one length-distance pair of a length of each portion mapped and a distance from each of the portions in the packet data to the mapped location in the identified block data; and

transferring the compressed packet data over the communication network.

2. The method of claim 1 , wherein the encoding is Lempel-Ziv (LZ) based encoding.

3. The method of claim 1 , wherein the one or more blocks are stored in a network memory.

4. The method of claim 1 , further comprising dividing the one or more blocks into sub-blocks.

5. The method of claim 1 , further comprising generating one or more data structures associated with the packet data and the block data.

6. The method of claim 5 , wherein the one or more data structures are stored in a cache.

7. The method of claim 1 , wherein the encoding is further based on identifying similar data within the packet data itself.

8. The method of claim 1 , further comprising building a dictionary based on the one or more blocks.

9. The method of claim 1 , further comprising:

receiving the compressed packet data;

retrieving the one or more blocks based at least in part on the block indicator in the compressed packet data; and

decompressing the compressed packet data based at least in part on the block data from the one or more blocks and the at least one length-distance pair in the compressed packet data.

10. The method of claim 9 , wherein the decompressing comprises Lempel-Ziv (LZ) based decoding.

11. A system for transferring compressed packets over a communication network, comprising:

a network memory module executable by a processor and configured to store blocks in a memory, the blocks comprising archives of data previously transferred over the communication network;

a compression-decompression engine configured to:

identify block data from one or more blocks that include data similar to packet data from one or more packets to be transferred over the communication network;

map the packet data to locations within the identified block data that include data similar to the packet data via a map module; and

encode the identified block data and the mapped packet data to generate compressed packet data, wherein the compressed packet data comprises a block indicator and an encoded portion comprising at least one length-distance pair of a length of each portion mapped and a distance from each of the portions in the packet data to the mapped location in the identified block data; and

an interface module configured to transfer the compressed packet data over the communication network.

12. The system of claim 11 , wherein the interface module is further configured to intercept the one or more packets after the one or more packets are sent from a computer.

13. The system of claim 11 , wherein the compression-decompression engine is further configured to divide the one or more blocks into sub-blocks.

14. The system of claim 11 , wherein the compression-decompression engine comprises a scan module configured to scan the packet data to generate data structures associated with the packet data.

15. The system of claim 14 , wherein the scan module is further configured to generate one or more data structures associated with the packet data and the block data.

16. The system of claim 11 , wherein the compression-decompression engine comprises an encoding-decoding module configured to perform LZ based encoding and LZ based decoding.

17. The system of claim 11 , wherein the compression-decompression engine is further configured to compress the packet data based on identifying similar data within the packet data itself.

18. The system of claim 11 , wherein the interface module is further configured to receive compressed packet data; and wherein the compression-decompression engine is further configured to retrieve the one or more blocks based at least in part on the block indicator in the compressed packet data and to decompress the compressed packet data based at least in part on the block data from the one or more blocks and the at least one length-distance pair in the compressed packet data.

19. A non-transitory machine readable medium having embodied thereon a program, the program providing instructions for a method for transferring compressed packets over a communication network, the method comprising:

identifying block data from one or more blocks that include data similar to packet data from one or more packets to be transferred over the communication network, the block data comprising archives of data previously transferred over the communication network;

mapping the packet data to locations within the identified block data that include data similar to the packet data;

encoding the identified block data and the mapped packet data to generate compressed packet data, wherein the compressed packet data comprises a block indicator and an encoded portion comprising at least one length-distance pair of a length of each portion mapped and a distance from each of the portions in the packet data to the mapped location in the identified block data; and

transferring the compressed packet data over the communication network.

20. The system of claim 11 , wherein the compression-decompression engine is further configured to build a dictionary based on the one or more blocks.

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/0726 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2022
From: SILVER PEAK SYSTEMS, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 058985/0321 →
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 Oct 31, 2016
From: HUGHES, DAVID ANTHONY
To: SILVER PEAK SYSTEMS, INC.
Reel/Frame 040175/0171 →
Continuity (2)
Continuation 14333486 · Jul 16, 2014
Continuation 12313618 · Nov 20, 2008