IP Library Granted Patent US 9,496,991
Granted Patent B2
US 9,496,991 · App. 13/544,533 · Granted Nov 15, 2016

Systems and methods of using packet boundaries for reduction in timeout prevention

Inventors: Robert Plamondon (Blodgett, OR); Michael Ovsiannikov (San Mateo, CA); Allen R. Samuels (San Jose, CA)
Assignee: CITRIX SYSTEMS, INC.
H04L1/1887H04L1/189H04L12/24H04L41/00H04L41/12H04L67/28H04L67/2876H04L69/16H04L69/166H04L2001/0092
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,496,991
App. No.
13/544,533
Granted
Nov 15, 2016
Kind
B2
Abstract

Systems and methods for utilizing transaction boundary detection methods in queuing and retransmission decisions relating to network traffic are described. By detecting transaction boundaries and sizes, a client, server, or intermediary device may prioritize based on transaction sizes in queuing decisions, giving precedence to smaller transactions which may represent interactive and/or latency-sensitive traffic. Further, after detecting a transaction boundary, a device may retransmit one or more additional packets prompting acknowledgements, in order to ensure timely notification if the last packet of the transaction has been dropped. Systems and methods for potentially improving network latency, including retransmitting a dropped packet twice or more in order to avoid incurring additional delays due to a retransmitted packet being lost are also described.

Claims (35)

1. A method for reducing transmission timeouts, comprising:

(a) receiving, by a device via a connection between a sender and a receiver, a first packet transmitted from the sender to the receiver, the first packet having a first retransmission timeout time;

(b) transmitting, by the device, the first packet to the receiver;

(c) determining, by the device, that the connection has a loss rate exceeding a threshold;

(d) selecting, by the device, responsive to determining that the loss rate exceeds the threshold, a number of additional packets to transmit based on the loss rate;

(e) generating, by the device, a plurality of additional packets equaling the selected number of additional packets, responsive to determining that the loss rate exceeds the threshold and responsive to selecting the number of additional packets to transmit based on the loss rate; and

(f) transmitting, by the device, the plurality of additional packets to the receiver prior to the first retransmission timeout time.

2. The method of claim 1 , further comprising:

(g) receiving, by the device from the receiver, an acknowledgement for the plurality of additional packets prior to receiving an acknowledgement for the first packet and prior to the first retransmission timeout time, the acknowledgement indicating that one or more packets were not received; and

(h) retransmitting, by the device, the one or more packets prior to the first retransmission timeout time, responsive to receipt of the acknowledgement.

3. The method of claim 2 , wherein (h) further comprises transmitting, by the device, an indication to the sender indicating the one or more packets were not received and should be retransmitted.

4. The method of claim 1 , wherein transmitting the plurality of additional packets comprises transmitting the plurality of additional packets after a period of time.

5. The method of claim 1 , wherein transmitting the plurality of additional packets comprises transmitting the plurality of additional packets immediately following the first packet.

6. The method of claim 1 , wherein generating plurality of additional packets comprises determining that the first packet is a last packet of a transaction between the sender and the receiver; and generating the plurality of additional packets responsive to the determination.

7. The method of claim 1 , wherein the plurality of additional packets comprises a duplicate of the first packet.

8. The method of claim 1 , wherein the plurality of additional packets comprises a portion of the first packet.

9. The method of claim 1 , wherein the plurality of additional packets comprises a plurality of corresponding packets generated according to a forward error correction technique.

10. The method of claim 1 , wherein (c) further comprises determining that the loss rate is below a second threshold; and

wherein (d) further comprises selecting the number of additional packets from a plurality of a numbers of additional packets, each number associated with one of a corresponding plurality of loss rate ranges.

11. A system for reducing transmission timeouts, comprising:

a device in communication with a sender and a receiver comprising:

a packet processor configured for receiving a first packet from the sender and transmitting the first packet to the receiver, the first packet having a first retransmission timeout time; and

a flow controller configured for:

determining that a connection has a loss rate exceeding a threshold;

selecting, responsive to determining that the loss rate exceeds the threshold, a number of additional packets to transmit based on the loss rate;

generating a plurality of additional packets equaling the selected number of additional packets, responsive to determining that the loss rate exceeds the threshold and responsive to selecting the number of additional packets to transmit based on the loss rate; and

transmitting the plurality of additional packets to the receiver prior to the first retransmission timeout time.

12. The system of claim 11 , wherein the packet processor is further configured for receiving, from the receiver, an acknowledgement for the plurality of additional packets prior to receiving an acknowledgement for the first packet and prior to the first retransmission timeout time, the acknowledgement indicating that one or more packets were not received; and retransmitting, by the device, the one or more packets prior to the first retransmission timeout time, responsive to receipt of the acknowledgement.

13. The system of claim 12 , wherein the flow controller is further configured for transmitting an indication to the sender indicating the one or more packets were not received and should be retransmitted.

14. The system of claim 11 , wherein the flow controller is further configured for transmitting the plurality of packets after a period of time.

15. The system of claim 11 , wherein the flow controller is further configured for transmitting the plurality of additional packets immediately following the first packet.

16. The system of claim 11 , wherein the flow controller is further configured for determining that the first packet is a last packet of a transaction between the sender and the receiver; and generating the plurality of additional packets responsive to the determination.

17. The system of claim 11 , wherein the pluralty of additional packets comprises a duplicate of the first packet.

18. The system of claim 11 , wherein the plurality of additional packets comprises a portion of the first packet.

19. The system of claim 11 , wherein the plurality of additional packets comprises a packet generated according to a forward error correction technique.

Assignments (8)
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: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
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 →
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 Feb 25, 2013
From: PLAMONDON, ROBERT; OVSIANNIKOV, MICHAEL; SAMUELS, ALLEN
To: CITRIX SYSTEMS, INC.
Reel/Frame 029865/0979 →
Continuity (4)
Continuation 11685183 · Mar 12, 2007
Continuation In Part 10901940 · Jul 28, 2004
Provisional Application 60490694 · Jul 29, 2003
Related Publication 20120278470A1 · Nov 1, 2012