IP Library Granted Patent US 8,122,129
Granted Patent B2
US 8,122,129 · App. 12/206,930 · Granted Feb 21, 2012

Hash-based resource matching

Assignee: Actiance, Inc.
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 8,122,129
App. No.
12/206,930
Granted
Feb 21, 2012
Kind
B2
Abstract

In various embodiments, techniques can be provided for identifying and filtering network resources. The filtering may occur not only on the type of network traffic (e.g., HTTP traffic) but also with resources identified by the network traffic. In some embodiments, one or more hash functions may be used to facilitate the identification, searching, and matching of network resources. The network resources may be identified as a unique domain, unique network host, unique URL, or the like.

Claims (66)

1. A method for managing network traffic, the method comprising:

determining, with one or more processors associated with one or more computer systems, a URL associated with network traffic received at the one or more computer systems;

generating, with the one or more processors associated with the one or more computer systems, a first hash value for a portion of the URL with a first predetermined hash generation technique;

determining, with the one or more processors associated with the one or more computer systems, that a record exists for the portion of the URL in a first table in a storage device associated with the one or more computer systems represented by a sparse array using the first hash value for the portion of the URL as an index into the first table;

determining, with the one or more processors associated with the one or more computer systems, a location in a second table in the storage device associated with the one or more computer systems at which to search for any records that exist for the portion of the URL based on the record determined to exists for the portion of the URL in the first table;

searching, with the one or more processors associated with the one or more computer systems, a subset of records in the second table at the determined location to determine whether any record exists for the portion of the URL in the second table using the first hash value for the portion of the URL and a second hash value generated for the portion of the URL with a second predetermined hash generation technique, the second predetermined hash generation technique being different than the first predetermined hash generation technique;

determining, with the one or more processors associated with the one or more computer systems, that a record exists for the portion of the URL in the second table in the storage device associated with the one or more computer systems using the second hash value for the portion of the URL;

determining, with the one or more processors associated with the one or more computer systems, a policy for the URL based on a first value of a record for the portion of the URL in the second table;

configuring, with the one or more processors associated with the one or more computer systems, at least one networking device based on whether an originator of the network traffic received at the one or more computer systems is permitted to access the URL according to the determined policy;

sorting records in the second table based on a length of a hostname of a URL corresponding to each record;

generating the second hash value based on the length of a hostname of a URL corresponding to at least one record in the second table identified using the first hash value; and

searching a subset of records in the second table stored with the same length to determine whether any record exists for the portion of the URL in the second table using the second hash value for the portion of the URL.

2. The method of claim 1 wherein generating the first hash value or the second hash value for the portion of the URL comprises generating the first hash value or the second hash value for a domain name associated with the URL.

3. The method of claim 2 wherein configuring the at least one networking device based on whether the originator of the network traffic is permitted to access the URL according to the determined policy comprises configuring the at least one network device to block the network traffic based on the domain name.

4. The method of claim 1 wherein generating the first hash value or the second hash value for the portion of the URL comprises generating the first hash value or the second hash value for a hostname associated with the URL.

5. The method of claim 4 wherein configuring the at least one networking device based on whether the originator of the network traffic is permitted to access the URL according to the determined policy comprises configuring the at least one 4 network device to block the network traffic based on the hostname.

6. The method of claim 1 wherein generating the first hash value or the second hash value for the portion of the URL comprises generating the first hash value or the second hash value for a path associated with the URL.

7. The method of claim 6 configuring the at least one networking device based on whether the originator of the network traffic is permitted to access the URL according to the determined policy comprises configuring the at least one network device to block the network traffic based on the path associated with the URL.

8. The method of claim 1 further comprising:

sorting records in the second table based on a length of a path of a URL corresponding to each record;

generating the second hash value based on the length of a path of a URL corresponding to at least one record in the second table identified using the first hash value; and

searching a subset of records in the second table stored with the same length to determine whether any record exists for the portion of the URL in the second table using the second hash value for the portion of the URL.

9. A non-transitory computer-readable medium storing computer-executable code for managing network traffic, the computer-readable medium comprising:

code for determining a URL associated with the network traffic;

code for generating a first hash value for a portion of the URL with a first predetermined hash generation technique;

code for determining that a record exists for the portion of the URL in a first table represented by a sparse array using the first hash value for the portion of the URL as an index into the first table;

code for determining a location in a second table in the storage device associated with the one or more computer systems at which to search for any records that exist for the portion of the URL based on the record determined to exists for the portion of the URL in the first table;

code for searching a subset of records in the second table at the determined location to determine whether any record exists for the portion of the URL in the second table using the first hash value for the portion of the URL and a second hash value generated for the portion of the URL with a second predetermined hash generation technique, the second predetermined hash generation technique being different than the first predetermined hash generation technique;

code for determining that a record exists for the portion of the URL in the second table using the second hash value for the portion of the URL;

code for determining a policy indicative of whether an originator of the network traffic is permitted to access the URL based on a value of a record for the portion of the URL in the second table;

code for configuring one or more networking devices based on the determined policy;

code for sorting records in the second table based on a length of a hostname of a URL corresponding to each record;

code for generating the second hash value based on the length of a hostname of a URL corresponding to at least one record in the second table identified using the first hash value; and

code for searching a subset of records in the second table stored with the same length to determine whether any record exists for the portion of the URL in the second table using the second hash value for the portion of the URL.

10. The non-transitory computer-readable medium of claim 9 wherein the code for generating the first hash value or the second hash value for the portion of the URL comprises code for generating the first hash value or the second hash value for a domain name associated with the URL.

11. The non-transitory computer-readable medium of claim 10 wherein the code for configuring the one or more networking devices based on the determined policy comprises code for blocking the network traffic based on the domain name.

12. The non-transitory computer-readable medium of claim 9 wherein the code for generating the first hash value or the second hash value for the portion of the URL comprises code for generating the first hash value or the second hash value for a hostname associated with the URL.

13. The non-transitory computer-readable medium of claim 12 wherein the code for configuring the one or more networking devices based on the determined policy comprises code for blocking the network traffic based on the hostname.

14. The non-transitory computer-readable medium of claim 9 wherein the code for generating the first hash value or the second hash value for the portion of the URL comprises code for generating the first hash value or the second hash value for a path associated with the URL.

15. The non-transitory computer-readable medium of claim 14 wherein the code for configuring the one or more networking devices based on the determined policy comprises code for blocking the network traffic based on the path associated with the 4 URL.

16. The non-transitory computer-readable medium of claim 9 further comprising:

code for sorting records in the second table based on a length of a path of a URL corresponding to each record;

code for generating the second hash value based on the length of a path of a URL corresponding to at least one record in the second table identified using the first hash value; and

code for searching a subset of records in the second table stored with the same length to determine whether any record exists for the portion of the URL in the second table using the second hash value for the portion of the URL.

17. A network appliance for managing network traffic, the network appliance comprising:

a communications interface configured to receive network traffic associated with a communications network;

a storage device configured to store a first table and a second table, the first table represented by a sparse array; and

a processor in communication with the communications interface and the storage device and configured to:

determine a URL associated with the network traffic;

generate a first hash value for a portion of the URL with a first predetermined hash generation technique;

determine that a record exists for the portion of the URL in the first table using the first hash value for the portion of the URL as an index into the first table;

determine a location in the second table at which to search for any records that exist for the portion of the URL based on the record determined to exists for the portion of the URL in the first table;

search a subset of records in the second table at the determined location to determine whether any record exists for the portion of the URL in the second table using the first hash value for the portion of the URL and a second hash value generated for the portion of the URL with a second predetermined hash generation technique, the second predetermined hash generation technique being different than the first predetermined hash generation technique;

determine that a record exists for the portion of the URL in the second table using the second hash value for the portion of the URL;

determine a policy indicative of whether an originator of the network traffic is permitted to access the URL based on a value of a record for the portion of the URL in the second table;

configure one or more networking devices based on the determined policy;

sort records in the second table based on a length of a hostname of a URL corresponding to each record;

generate the second hash value based on the length of a hostname of a URL corresponding to at least one record in the second table identified using the first hash value; and

search a subset of records in the second table stored with the same length to determine whether any record exists for the portion of the URL in the second table using the second hash value for the portion of the URL.

18. The network appliance of claim 17 wherein the processor is configured to generate the first hash value or the second hash value for a domain name associated with the URL.

19. The network appliance of claim 17 wherein the processor is configured to generate the first hash value or the second hash value for a hostname associated with the URL.

20. The network appliance of claim 17 wherein the processor is configured to generate the first hash value or the second hash value for a path associated with the URL.

21. The network appliance of claim 17 wherein the processor is further configured to:

sort records in the second table based on a length of a path of a URL corresponding to each record;

generate the second hash value based on the length of a path of a URL corresponding to at least one record in the second table identified using the first hash value; and

search a subset of records in the second table stored with the same length to determine whether any record exists for the portion of the URL in the second table using the second hash value for the portion of the URL.

Assignments (8)
CHANGE OF NAME Recorded Feb 24, 2025
From: ACTIANCE, INC.
To: ACTIANCE, LLC
Reel/Frame 070306/0814 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT REEL/FRAME NO. 45065/0916 Recorded Feb 22, 2022
From: PNC BANK, NATIONAL ASSOCIATION
To: MOBILEGUARD, LLC; SMARSH INC.; SKYWALKER INTERMEDIATE HOLDINGS, INC.; ACTIANCE, INC.; ACTIANCE HOLDINGS, INC.
Reel/Frame 059315/0572 →
PATENT SECURITY AGREEMENT Recorded Feb 18, 2022
From: ACTIANCE, INC.
To: OWL ROCK CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 059191/0423 →
RELEASE OF SECURITY INTEREST REEL/FRAME: 035527 / 0923 Recorded Jan 31, 2022
From: GOLUB CAPITAL LLC
To: ACTIANCE, INC.
Reel/Frame 058906/0160 →
SECURITY INTEREST Recorded Feb 28, 2018
From: MOBILEGUARD, LLC; SMARSH INC.; SKYWALKER INTERMEDIATE HOLDINGS, INC.; ACTIANCE, INC.; ACTIANCE HOLDINGS, INC.
To: PNC BANK, NATIONAL ASSOCIATION
Reel/Frame 045065/0916 →
CHANGE OF NAME Recorded May 15, 2015
From: FACETIME COMMUNICATIONS, INC.
To: ACTIANCE, INC.
Reel/Frame 035705/0823 →
SECURITY INTEREST Recorded Apr 29, 2015
From: ACTIANCE, INC.
To: GOLUB CAPITAL LLC, AS AGENT
Reel/Frame 035527/0923 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2009
From: PASTER, STEVEN B.
To: FACETIME COMMUNICATIONS, INC.
Reel/Frame 022206/0443 →
Continuity (1)
Related Publication 20100064042A1 · Mar 11, 2010