IP Library › Granted Patent US 10,367,712
Granted Patent B2
US 10,367,712 · App. 15/463,635 · Granted Jul 30, 2019

Auto tuning of hybrid wan links by adaptive duplication of packets on alternate links

Inventor: Daljit Singh (San Jose, CA)
Assignee: Citrix Systems, Inc.
H04L43/16H04L12/64H04L45/24H04L67/322H04L69/14H04W72/0453H04L43/0829H04L43/0852H04L43/0894
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 10,367,712
App. No.
15/463,635
Granted
Jul 30, 2019
Kind
B2
Abstract

Embodiments of the present disclosure describe a system and method for dynamically duplicating network packets onto a reliable link. Network devices can be connected by a primary link and by a secondary link. As the network quality of the first link degrades, the system can adaptively duplicate network packets onto the second link. As a high priority link, the secondary link can have less total bandwidth when compared to the primary link. Accordingly, all the traffic traversing the primary link may not be able to be duplicated onto the secondary link to preserve network reliability when the quality of the first link degrades. The present solution can effectively manage the bandwidth of the secondary link and set duplication rates that control the duplication of the packets onto the secondary link.

Claims (67)

1. A method for transmitting duplicate packets based on network conditions comprising:

determining, by a first device, a metric of a network condition of a first link established between the first device and a second device is within a threshold value, wherein the metric of the network condition of the first link is a packet delay rate over the first link or a packet loss rate over the first link;

determining, by the first device, a packet acceptance rate of a second link established between the first device and the second device based on a number of duplicate packets accepted for lost packets on the first link or based on a number of duplicate packets accepted for delayed packets on the first link;

generating, by the first device, responsive to determining that the metric of the network condition of the first link is within the threshold value, the duplicate packets of packets to be transmitted from the first device to the second device via the second link, the duplicate packets generated based on the packet loss rate or the packet delay rate on the first link and the determined packet acceptance rate on the second link to reach a target effective packet loss rate or a target effective packet delay rate;

transmitting, by the first device, on the first link, the packets to be transmitted from the first device to the second device; and

transmitting, by the first device, the duplicate packets on the second link.

2. The method of claim 1 , wherein the threshold value is a first threshold value and further comprising:

monitoring, by the first device, the network condition of the first link;

determining, by the first device, that the metric of the network condition is within a second threshold value;

modifying, by the first device, responsive to determining that the metric of the network condition of the first link is within the second threshold value, a packet duplication rate corresponding to a rate at which duplicate packets are generated and transmitted on the second link.

3. The method of claim 1 , further comprising:

determining, by the first device, a bandwidth of the second link;

determining, by the first device, a packet duplication rate based on the determined bandwidth of the second link and the metric of the network condition of the first link; and

wherein generating the duplicate packets of the packets to be transmitted from the first device to the second device via the first link includes generating the duplicate packets based on the packet duplication rate.

4. The method of claim 1 , wherein determining the metric of the network condition of the first link established between the first device and the second device includes determining one of the packet loss rate of the first link or the packet delay rate of the first link.

5. The method of claim 1 , wherein the first link is an internet broadband link and the second link is a multiprotocol label switching link and the first device and the second device are virtual wide area network devices.

6. The method of claim 1 , further comprising:

determining, by the first device, a first packet loss rate of the first link corresponding to a number of packets lost on the first link;

determining, by the first device, an effective packet loss rate of the first link based on a difference between the first packet loss rate and the packet acceptance rate; and

wherein the metric of the network condition of the first link is the effective packet loss rate of the first link.

7. The method of claim 1 , further comprising:

determining, by the first device, a first packet delay rate of the first link corresponding to a number of packets delayed on the first link;

determining, by the first device, an effective packet delay rate of the first link based on a difference between the first packet delay rate and the packet acceptance rate; and

wherein the metric of the network condition of the first link is the effective packet delay rate of the first link.

8. The method of claim 1 , further comprising:

monitoring, by the first device, the network condition of the first link to update the metric of the network condition;

determining, by the first device, that the updated metric of the network condition of the first link is within the threshold value responsive to transmitting the duplicate packets on the second link; and

increasing, by the first device, responsive to determining that the updated metric of the network condition is within the threshold value, packet duplication rate corresponding to a rate at which duplicate packets are generated and transmitted on the second link.

9. The method of claim 1 , further comprising:

determining, by the first device, that a current metric of the network condition of the first link is within the threshold value;

determining, by the first device, that a bandwidth utilization metric of the second link is within a predetermined maximum bandwidth utilization value assigned to the second link;

increasing, by the first device, responsive to determining that the current metric of the network condition of the first link is within the threshold value, a packet duplication rate to increase a number of duplicated packets generated per unit time; and

transmitting, by the first device, a portion of the duplicate packets on the first link responsive to determining that the bandwidth utilization metric of the second link is within the predetermined maximum bandwidth utilization value.

10. A system for transmitting duplicate data packets based on network conditions comprising:

a first device configured to establish a first link with a second device and establish a second link with the second device, the first device configured to:

determine that a metric of a network condition of the first link established between the first device and the second device is within a threshold value, wherein the metric of the network condition of the first link is a packet delay rate over the first link or a packet loss rate over the first link;

determine a packet acceptance rate of the second link established between the first device and the second device based on a number of duplicate packets accepted for lost packets on the first link or based on a number of duplicate packets accepted for delayed packets on the first link;

generate, responsive to determining that the metric of the network condition of the first link is within the threshold value, the duplicate packets of packets to be transmitted from the first device to the second device via the second link, the duplicate packets generated based on the packet loss rate or the packet delay rate on the first link and the determined packet acceptance rate on the second link to reach a target effective packet loss rate or a target effective packet delay rate;

transmit, on the first link, the packets to be transmitted from the first device to the second device; and

transmit the duplicate packets on the second link.

11. The system of claim 10 , wherein the threshold value is a first threshold value and wherein the first device is further configured to:

monitor the network condition of the first link;

determine that the metric of the network condition is within a second threshold value;

modify, responsive to determining that the metric of the network condition of the first link is within the second threshold value, a packet duplication rate corresponding to a rate at which duplicate packets are generated and transmitted on the second link.

12. The system of claim 10 , wherein the first device is further configured to:

determine a bandwidth of the second link;

determine a packet duplication rate based on the determined bandwidth of the second link and the metric of the network condition of the first link; and

wherein to generate the duplicate packets of the packets to be transmitted from the first device to the second device via the first link, the first device is configured to generate the duplicate packets based on the packet duplication rate.

13. The system of claim 10 , wherein to determine the metric of the network condition of the first link established between the first device and the second device, the first device is further configured to determine one of the packet loss rate of the first link or the packet delay rate of the first link.

14. The system of claim 10 , wherein the first link is an internet broadband link and the second link is a multiprotocol label switching link and the first device and the second device are virtual wide area network devices.

15. The system of claim 10 , wherein the first device is further configured to:

determine a first packet loss rate of the first link corresponding to a number of packets lost on the first link;

determine an effective packet loss rate of the first link based on a difference between the first packet loss rate and the packet acceptance rate; and

wherein the metric of the network condition of the first link is the effective packet loss rate of the first link.

16. The system of claim 10 , wherein the first device is further configured to:

determine a first packet delay rate of the first link corresponding to a number of packets delayed on the first link;

determine an effective packet delay rate of the first link based on a difference between the first packet delay rate and the packet acceptance rate; and

wherein the metric of the network condition of the first link is the effective packet delay rate of the first link.

17. The system of claim 10 , wherein the first device is further configured to:

monitor the network condition of the first link to update the metric of the network condition;

determine that the updated metric of the network condition of the first link is within the threshold value responsive to transmitting the duplicate packets on the second link; and

increase, responsive to determining that the updated metric of the network condition is within the threshold value, a packet duplication rate corresponding to a rate at which duplicate packets are generated and transmitted on the second link.

18. The system of claim 10 , wherein the first device is further configured to:

determine that a current metric of the network condition of the first link is within the threshold value;

determine that a bandwidth utilization metric of the second link is within a predetermined maximum bandwidth utilization value assigned to the second link;

increase, responsive to determining that the current metric of the network condition of the first link is within the threshold value, a packet duplication rate to increase a number of duplicated packets generated per unit time; and

transmit a portion of the duplicate packets on the first link responsive to determining that the bandwidth utilization metric of the second link is within the predetermined maximum bandwidth utilization value.

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 →
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 →
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 Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
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 →
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 →
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 Mar 22, 2017
From: SINGH, DAJIT
To: CITRIX SYSTEMS, INC.
Reel/Frame 041685/0803 →
Continuity (1)
Related Publication 20180270139A1 · Sep 20, 2018