IP Library Granted Patent US 8,437,284
Granted Patent B2
US 8,437,284 · App. 11/685,181 · Granted May 7, 2013

Systems and methods for additional retransmissions of dropped packets

Inventors: Robert Plamondon (Blodgett, OR); Michael Ovsiannikov (San Mateo, CA); Allen Samuels (San Jose, CA)
Assignee: Citrix Systems, 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,437,284
App. No.
11/685,181
Granted
May 7, 2013
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 (43)

1. A method for retransmitting network packets between a sender and a receiver to reduce transmission errors associated with a connection, the method comprising:

(a) receiving, by a device, an indication that a network packet transmitted via a connection was not received by the receiver;

(b) retransmitting, by the device, the network packet to the receiver in response to the indication;

(c) determining, by the device, a packet loss rate associated with the connection;

(d) identifying, by the device, a predetermined packet loss rate threshold of a plurality of predetermined packet loss rate thresholds that the determined packet loss rate exceeds, each predetermined packet loss rate threshold corresponding to a number of additional retransmissions to be retransmitted;

(e) identifying, by the device, the number of additional retransmissions to be retransmitted corresponding to the identified packet loss rate threshold of the plurality of predetermined packet loss rate thresholds; and

(f) retransmitting, by the device responsive to the identification of the number of additional retransmissions to be retransmitted, the network packet a number of times equal to the identified number of additional retransmissions.

2. The method of claim 1 , wherein the connection comprises a transport layer connection.

3. The method of claim 1 , wherein step (f) comprises retransmitting, by the device, a network packet within a predetermined time threshold of a previous retransmission of the network packet.

4. The method of claim 1 , wherein step (c) comprises determining the packet loss rate over a predetermined time period.

5. The method of claim 1 , wherein step (c) comprises determining the packet loss rate as an average over a predetermined time period.

6. The method of claim 1 , wherein the device comprises one of a client, a server or an appliance.

7. The method of claim 1 , wherein step (e) comprises determining, by the device in response to the received indication and a determined transaction size, a retransmission quantity, wherein the retransmission quantity is greater than 1.

8. The method of claim 1 , wherein step (e) comprises determining, by the device in response to the received indication and a determined transaction size, a retransmission quantity, wherein the retransmission quantity is higher with respect to lower determined transaction sizes.

9. The method of claim 1 , wherein step (e) comprises determining, by the device in response to the received indication and a determined average transaction size, a retransmission quantity, wherein the retransmission quantity is higher with respect to lower determined average transaction sizes.

10. The method of claim 1 , wherein step (f) comprises retransmitting, by the device, the data packet a number of times equal to the identified retransmission quantity, wherein each of the number of transmissions are temporally spaced such that two transmissions are unlikely to be affected by a single loss event.

11. A system for retransmitting network packets between a sender and a receiver to reduce transmission errors associated with a connection, the system comprising:

a packet processor which

receives an indication that a network packet transmitted via a connection was not received by the receiver; and

retransmits the network packet to the receiver in response to the indication; and

a flow controller in communication with the packet processor which

determines a packet loss rate associated with the transport layer connection;

identifies a packet loss rate threshold of a plurality of predetermined packet loss rate thresholds that the determined packet loss rate exceeds, each predetermined packet loss rate threshold corresponding to a number of additional retransmissions to be retransmitted;

identifies the number of additional retransmissions to be retransmitted corresponding to the identified packet loss rate threshold of the plurality of predetermined packet loss rate thresholds; and

retransmits the network packet a number of times equal to the identified number of additional retransmissions, responsive to the identification of the number of additional retransmissions to be retransmitted.

12. The system of claim 11 , wherein the connection comprises a transport layer connection.

13. The system of claim 11 , wherein one or both of the packet processor and flow controller reside on one of a client, a server, or a network appliance.

14. The system of claim 11 , wherein the packet processor and flow controller reside in a network appliance serving as a transparent proxy for the transport layer connection.

15. The system of claim 11 , wherein the flow controller retransmits a network packet within a predetermined time threshold of a previous retransmission of the network packet.

16. The system of claim 11 , wherein the flow controller determines the packet loss rate over a predetermined time period.

17. The system of claim 11 , wherein the flow controller determines the packet loss rate as an average over a predetermined time period.

18. The system of claim 11 , wherein the flow controller determines, in response to the received indication and a determined transaction size, a retransmission quantity, wherein the retransmission quantity is greater than 1.

19. The system of claim 11 , wherein the flow controller determines, in response to the received indication and a determined transaction size, a retransmission quantity, wherein the retransmission quantity is higher with respect to lower determined transaction sizes.

20. The system of claim 11 , wherein the flow controller determines, in response to the received indication and a determined average transaction size, a retransmission quantity, wherein the retransmission quantity is higher with respect to lower determined average transaction sizes.

21. The system of claim 11 , wherein the flow controller transmits the data packet a number of times equal to the determined retransmission quantity, wherein each of the number of transmissions are temporally spaced such that two transmissions are unlikely to be affected by a single loss event.

22. A system for retransmitting network packets between a sender and a receiver to reduce transmission errors associated with a connection, the system comprising:

means for receiving, by a device, an indication that a network packet transmitted via a connection was not received by the receiver;

means for retransmitting, by the device, the network packet to the receiver in response to the indication;

means for determining, by the device, a packet loss rate associated with the transport layer connection;

means for identifying, by the device, a packet loss rate threshold of a plurality of predetermined packet loss rate thresholds that the determined packet loss rate exceeds, each predetermined packet loss rate threshold corresponding to a number of additional retransmissions to be retransmitted;

means for identifying, by the device, the number of additional retransmissions to be retransmitted corresponding to the identified packet loss rate threshold of the plurality of predetermined packet loss rate thresholds; and

means for retransmitting, by the device responsive to the identification of the number of additional retransmissions to be retransmitted, the network packet a number of times equal to the identified number of additional retransmissions.

23. The method of claim 1 , wherein identifying a predetermined packet loss rate threshold of a plurality of predetermined packet loss rate thresholds comprises determining that a packet loss rate is above a first given packet loss rate threshold of the plurality of predetermined packet loss rate thresholds but is not above a second given packet loss rate threshold of the plurality of predetermined packet loss rate thresholds.

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: 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 Jun 5, 2007
From: PLAMONDON, ROBERT; OVSIANNIKOV, MICHAEL; SAMUELS, ALLEN
To: CITRIX SYSTEMS, INC.
Reel/Frame 019380/0220 →
Continuity (4)
Continuation In Part 10901940 · Jul 28, 2004
Continuation In Part 10696507 · Oct 29, 2003
Provisional Application 60490694 · Jul 29, 2003
Related Publication 20070206497A1 · Sep 6, 2007