IP Library › Granted Patent US 12,218,814
Granted Patent B2
US 12,218,814 · App. 17/811,603 · Granted Feb 4, 2025

Capacity agnostic scoring of network path health based on packet loss

Inventor: Gopal Gadekal Reddy (Fremont, CA)
Assignee: Palo Alto Networks, Inc.
H04L43/0841H04L43/062H04L43/067H04L43/0852H04L43/0864H04L43/0882H04L43/106H04L43/50
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 12,218,814
App. No.
17/811,603
Granted
Feb 4, 2025
Kind
B2
Abstract

A network path scoring system is disclosed herein that scores quality of network paths to facilitate identification of poorly performing circuits for investigation. The scoring system builds a profile with packet loss data in relation to a load corresponding to a network path. The profile indicates the percentiles of packet loss at each bucket or bin of load based on the packet loss data. Using the profile for the network path, the scoring system calculates a capacity agnostic score based on a non-zero boundary in the profile across at least a subset of the load bins.

Claims (51)

1. A method comprising:

obtaining first time-series packet loss data of a first network path, wherein the first time-series packet loss data comprises a plurality of values of a packet loss metric across a time window;

determining utilization of bandwidth of the first network path for each time interval of a time granularity within the time window;

building a profile of percentiles of the packet loss metric across ranges of bandwidth utilization for the first network path with the first time-series packet loss data, wherein the ranges of bandwidth utilization encompass the determined bandwidth utilizations;

selecting, from a matrix of scoring components predefined across percentiles and bandwidth utilization ranges, a subset of predefined scoring components that corresponds to percentiles in the profile with best values of the packet loss metric across the bandwidth utilizations; and

scoring the first network path based, at least in part, on the subset of predefined scoring components.

2. The method of claim 1 , wherein scoring the first network path comprises calculating an average of the subset of predefined scoring components and assigning the average as the score for the first network path.

3. The method of claim 1 , wherein selecting a subset of predefined scoring components comprises:

identifying a non-zero boundary in the profile; and

selecting the subset of predefined scoring components based on occurrence at locations in the matrix that correspond to the non-zero boundary in the profile.

4. The method of claim 1 , wherein building the profile for the first network path comprises:

binning values in the first time-series packet loss data by bandwidth utilization; and

determining percentiles of each bandwidth utilization bin of values.

5. The method of claim 4 , wherein binning values by bandwidth utilization is based on timestamps of the first time-series packet loss data and timestamps of circuit utilization data.

6. The method of claim 4 further comprising ordering the percentiles per bandwidth utilization bin by bandwidth utilization.

7. The method of claim 1 , wherein the first network path corresponds to a circuit of a software-defined wide area network (SD-WAN) and wherein determining utilization of bandwidth of the first network path comprises determining utilization of bandwidth of the circuit.

8. The method of claim 1 , wherein the matrix of predefined scoring components quantifies quality of a network path across different combinations of percentiles and bandwidth utilizations.

9. One or more non-transitory, machine-readable media having program code stored thereon, the program code comprising instructions to:

group values corresponding to packet loss for a network path by percent bandwidth utilization intervals based on time correlations;

for each of the percent bandwidth utilization intervals, determine percentiles of the values within the group corresponding to the percent bandwidth utilization interval;

select, from a multi-dimensional array of scoring components predefined across percentiles and bandwidth utilization intervals, a scoring component for each bandwidth utilization interval based, at least in part, on the percentile at which a best value of packet loss occurs; and

score the network path based, at least in part, on the selected scoring components.

10. The non-transitory machine-readable media of claim 9 , wherein the multi-dimensional array of scoring components comprises scoring components corresponding to varying degrees of packet loss based network path quality and the scoring components are arranged in the multi-dimensional array to reflect quality across different percent bandwidth utilizations.

11. The non-transitory machine-readable media of claim 9 , wherein the instructions to score the network path comprise instructions to aggregate the scoring components.

12. The non-transitory machine-readable media of claim 11 , wherein the instructions to aggregate the scoring components comprise instructions to average the scoring components.

13. The non-transitory machine-readable media of claim 9 , wherein the instructions to score the network path comprise instructions to score the network path also based on a second set of selected scoring components,

wherein the values are percentages of ingress packet loss for the network path,

wherein the second set of selected scoring components were selected from the multi-dimensional array of scoring components based, at least in part, on the percentiles at which a second set of best values of packet loss occurred across the percent bandwidth utilization intervals,

wherein the second set of best values are from egress packet loss data of the network path.

14. The non-transitory machine-readable media of claim 9 , wherein the instructions to select a scoring component for each bandwidth utilization interval based, at least in part, on the percentile at which a best value of packet loss occurs comprise instructions to:

identify a non-zero boundary in the percentiles across the bandwidth utilization intervals; and

select the scoring components based on occurrence at locations in the multi-dimensional array of scoring components that correspond to the non-zero boundary.

15. The non-transitory machine-readable media of claim 9 , wherein the instructions further comprise instructions to:

determine percent bandwidth utilizations of a circuit corresponding to the network path across a plurality of time intervals encompassing the values; and

correlating the percent bandwidth utilizations with the values based, at least in part, on the plurality of time intervals.

16. An apparatus comprising:

a processor; and

a computer-readable medium having instructions stored thereon that are executable by the processor to cause the apparatus to,

obtain first time-series packet loss data of a first network path, wherein the first time-series packet loss data comprises a plurality of values of a packet loss metric across a time window;

determine load on the first network path for each time interval of a time granularit within the time window of the first time-series packet loss data;

build a profile of percentiles of the packet loss metric across first load bins for the first network path with the first time-series packet loss data, wherein the first load bins encompass the determined loads on the first network path;

select, from a matrix of scoring components predefined across percentiles and second load bins, a subset of predefined scoring components that corresponds to percentiles with best values of packet loss across the first load bins; and

score the first network path based, at least in part, on the subset of predefined scoring components.

17. The apparatus of claim 16 , wherein the instructions to score the first network path comprise instructions executable by the processor to cause the apparatus to calculate an average of the subset of predefined scoring components and assign the average as the score for the first network path.

18. The apparatus of claim 16 , wherein the instructions to select a subset of predefined scoring components that corresponds to percentiles with best values of packet loss across the first load bins comprise instructions executable by the processor to cause the apparatus to:

identify a non-zero boundary in the profile; and

select the subset of predefined scoring components based on occurrence at locations in the matrix of scoring components that correspond to the non-zero boundary in the profile.

19. The apparatus of claim 16 , wherein the instructions to build the profile for the first network path comprise instructions executable by the processor to cause the apparatus to:

bin values in the first time-series packet loss data by load bin of the first load bins; and

determine percentiles of each of the first load bins.

20. The apparatus of claim 19 , wherein the instructions to bin values comprise instructions executable by the processor to cause the apparatus to bin values by load bin based on timestamps of the first time-series packet loss data and timestamps of load data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2022
From: REDDY, GOPAL GADEKAL
To: PALO ALTO NETWORKS, INC.
Reel/Frame 060468/0971 →
Continuity (2)
Provisional Application 63261571 · Sep 23, 2021
Related Publication 20230088062A1 · Mar 23, 2023
References Cited (21)
US 10897424B1 · Dhanabalan et al. · 2021 [cited by applicant]
US 11405284B1 · Evans · 2022 [cited by examiner]
US 20150195171A1 · Mermoud · 2015 [cited by applicant]
US 20170339059A1 · Averi et al. · 2017 [cited by applicant]
US 20180262414A1 · Burbridge et al. · 2018 [cited by applicant]
US 20180270141A1 · Burbridge et al. · 2018 [cited by applicant]
US 20180279108A1 · So · 2018 [cited by examiner]
US 20190041835A1 · Cella · 2019 [cited by applicant]
US 20190109776A1 · Li et al. · 2019 [cited by applicant]
US 20200296051A1 · Huiban et al. · 2020 [cited by applicant]
US 20200344163A1 · Gupta · 2020 [cited by examiner]
US 20200391766A1 · Wang · 2020 [cited by examiner]
US 20230091734A1 · Reddy · 2023 [cited by applicant]
US 20230099723A1 · Reddy · 2023 [cited by applicant]
US 20230101314A1 · Reddy · 2023 [cited by applicant]
US 20230105896A1 · Bienas et al. · 2023 [cited by applicant]
EP 1811683A2 · 2007 [cited by applicant]
WO 2008001157A1 · 2008 [cited by applicant]
EP Application No. 22197084.1, Extended European Search Report mailed Feb. 3, 2023, 8 pages. [cited by applicant]
U.S. Appl. No. 17/811,608, Office Action mailed Dec. 14, 2023, 8 pages. [cited by applicant]
U.S. Appl. No. 17/811,620, Non-Final Office Action mailed Dec. 6, 2024, 22 pages. [cited by applicant]
Cited By (1)
US 12,726,425