IP Library Granted Patent US 11,128,564
Granted Patent B2
US 11,128,564 · App. 16/196,799 · Granted Sep 21, 2021

Systems and methods to filter out noisy application signatures to improve precision of first packet application classification

Inventors: Siddharth G R (Bengaluru, IN); Naveen Chowdary Yerramneni (Bengaluru, IN); Tarun Kumar Hukmichand (Bengaluru, IN)
Assignee: Citrix Systems, Inc.
H04L45/306H04L43/16H04L45/745H04L47/2441H04L47/2475H04L47/2483
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 11,128,564
App. No.
16/196,799
Granted
Sep 21, 2021
Kind
B2
Abstract

The system and methods discussed herein provide for filtering out noisy application signatures to improve the precision of first packet application classification. In some implementations, the system receive application signatures from devices along with their network identifiers. Based upon the frequency at which identical application signatures appear as originating from distinct network environments, the system determines the validity of application signatures and avoids storing irrelevant information for routing network traffic.

Claims (39)

1. A method for application-based classification, comprising:

receiving, by a server from a plurality of devices, a plurality of application signatures, each application signature identifying an application and an associated destination address of communications associated with the application, each device associated with a network identifier identifying a network environment of each device;

determining, by the server, that a first application signature received from a first device associated with a first network identifier is identical to a second application signature received from a second device associated with a different, second network identifier;

incrementing, by the server, a value associated with the first application signature and stored in a signature candidate database, responsive to the determination that the first application signature is identical to the second application signature;

determining, by the server, that the first application signature is valid responsive to the value associated with the first application signature exceeding a threshold; and

providing, by the server to the plurality of devices responsive to the determination, the valid application signature, the plurality of devices routing network traffic using the valid application signature.

2. The method of claim 1 , wherein the plurality of devices apply a processing policy associated with the application to packet flows to the destination address associated with the application, responsive to receipt of the valid application signature.

3. The method of claim 2 , wherein the plurality of devices apply the processing policy associated with the application to the packet flows to the destination address associated with the application based on information of packets of the packet flows at a layer of a network stack at or lower than a transport layer.

4. The method of claim 3 , wherein each application signature is generated by a device from application layer information of a first packet of a corresponding packet flow.

5. The method of claim 1 , further comprising adding the first application signature to the signature candidate database, upon receipt of the first application signature from a first device of the plurality of devices.

6. The method of claim 1 , further comprising:

decrementing a value associated with a first application signature received from a first device associated with the first network identifier and stored in the signature candidate database, responsive to expiration of a time period without receipt of the first application signature from the second device associated with a different, second network identifier; and

removing the first application signature from the signature candidate database, responsive to the value associated with the first application signature being below the threshold.

7. The method of claim 1 , wherein each application signature comprises an identification of an application that generated a request to the associated destination address and an address tuple comprising the associated destination address and a port number.

8. A system for application-based packet classification, comprising:

a server comprising a network interface in communication with a plurality of devices and a processor, the processor configured to:

receive, from the plurality of devices, a plurality of application signatures, each application signature identifying an application and an associated destination address of communications associated with the application, each device associated with a network identifier identifying a network environment of each device,

determine that a first application signature received from a first device associated with a first network identifier is identical to a second application signature received from a second device associated with a different, second network identifier;

increment a value associated with the first application signature and stored in a signature candidate database, responsive to the determination that the first application signature is identical to the second application signature;

determine that the first application signature is valid responsive to the value associated with the first application signature exceeding a threshold, and

provide, to the plurality of devices responsive to the determination, the valid application signature, the plurality of devices routing network traffic using the valid application signature.

9. The system of claim 8 , wherein the plurality of devices are configured to apply a processing policy associated with the application to packet flows to the destination address associated with the application, responsive to receipt of the valid application signature.

10. The system of claim 9 , wherein the plurality of devices are configured to apply the processing policy associated with the application to the packet flows to the destination address associated with the application based on information of packets of the packet flows at a layer of a network stack at or lower than a transport layer.

11. The system of claim 10 , wherein each application signature is generated by a device from application layer information of a first packet of a corresponding packet flow.

12. The system of claim 8 , wherein the processor is further configured to add the first application signature to the signature candidate database, upon receipt of the first application signature from a first device of the plurality of devices.

13. The system of claim 8 , wherein the processor is further configured to:

decrement a value associated with a first application signature received from a first device associated with the first network identifier and stored in the signature candidate database, responsive to expiration of a predetermined time period without receipt of the first application signature from the second device associated with a different, second network identifier; and

remove the first application signature from the signature candidate database, responsive to the value associated with the first application signature being below the threshold.

14. The system of claim 8 , wherein each application signature comprises an identification of an application that generated a request to the associated destination address and an address tuple comprising the associated destination address and a port number.

15. A non-transitory computer-readable medium comprising instructions that, when executed by a processor, cause the processor to:

receive, from a plurality of devices, a plurality of application signatures, each application signature identifying an application and an associated destination address of communications associated with the application, each device associated with a network identifier identifying a network environment including the device,

determine that a first application signature received from a first device associated with a first network identifier is identical to a second application signature received from a second device associated with a different, second network identifier;

increment a value associated with the first application signature and stored in a signature candidate database, responsive to the determination that the first application signature is identical to the second application signature;

determine that the first application signature is valid responsive to the value associated with the first application signature exceeding a threshold, and

provide, to the plurality of devices, the valid application signature, responsive to the determination, the plurality of devices routing network traffic using the valid application signature.

16. The computer-readable medium of claim 15 , wherein the plurality of devices are configured to apply a processing policy associated with the application to packet flows to the destination address associated with the application, responsive to receipt of the valid application signature.

17. The computer-readable medium of claim 15 , further comprising instructions that cause the processor to:

decrement a value associated with a first application signature received from a first device associated with the first network identifier and stored in the signature candidate database, responsive to expiration of a predetermined time period without receipt of the first application signature from the second device associated with a different, second network identifier; and

remove the first application signature from the signature candidate database, responsive to the value associated with the first application signature being below the threshold.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2018
From: R, SIDDHARTH G; YERRAMNENI, NAVEEN CHOWDARY; HUKMICHAND, TARUN KUMAR
To: CITRIX SYSTEMS, INC.
Reel/Frame 047634/0409 →
Continuity (1)
Related Publication 20200162369A1 · May 21, 2020