IP Library Granted Patent US 8,270,423
Granted Patent B2
US 8,270,423 · App. 11/685,183 · Granted Sep 18, 2012

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

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,270,423
App. No.
11/685,183
Granted
Sep 18, 2012
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 (38)

1. A method for reducing transmission timeouts by selectively transmitting additional packets from an intermediary device based on identifying transaction boundaries, the method comprising:

(a) receiving, by a device via a connection between a sender and a receiver, a first packet from the sender via the connection;

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

(c) determining, by the device, that the first packet is the last packet of a transaction responsive to the first packet being smaller than a maximum packet size of the connection and the first packet being immediately preceded by at least one packet of the same transaction of the maximum packet size;

(d) generating, by the device in response to the determination, at least one additional packet; and

(e) transmitting, by the device after transmitting the first packet to the receiver, the at least one additional packet to the receiver via the connection.

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

3. The method of claim 1 , wherein the device is one of a client, a server, or a network appliance.

4. The method of claim 1 , wherein step (c) comprises determining, by the device, that the buffer corresponding to the connection has transitioned from non-empty to empty.

5. The method of claim 1 , wherein step (d) comprises generating, by the device in response to the determination, at least one additional packet, wherein the at least one additional data packet comprises an indication for the receiver to transmit at least one acknowledgement.

6. The method of claim 1 , wherein step (d) comprises generating, by the device in response to the determination, at least one additional packet, wherein the at least one additional data packet comprises the first data packet.

7. The method of claim 1 , wherein step (d) comprises generating, by the device in response to the determination, at least one additional packet, wherein the at least one additional data packet comprises a portion of the received data packet.

8. The method of claim 1 , wherein step (d) comprises generating, by the device in response to the determination, at least one additional packet, wherein the at least one additional data packet is generated according to a forward error correction technique for previously transmitted data.

9. The method of claim 1 , wherein step (d) comprises generating, by the device in response to the determination, at least one additional packet, wherein the number of additional data packets transmitted is selected based on a current loss rate for the transport layer connection.

10. The method of claim 1 , further comprising the steps of:

(f) receiving, by the device, at least one acknowledgement corresponding to the at least one additional data packet;

(g) determining, by the device, based on the received at least one acknowledgement, that one or more previously transmitted data packets have not been received; and

(h) retransmitting, by the device, the one or more previously transmitted data packets that have not been received.

11. A system for reducing transmission timeouts by selectively transmitting additional packets from an intermediary device based on identifying transaction boundaries, the system comprising:

a packet processor which receives a first packet from a sender via a connection; and

transmits the first packet to a receiver;

a flow controller which determines that the first packet is the last packet of a transaction responsive to the first packet being smaller than a maximum packet size of the connection and the first packet being immediately preceded by at least one packet of the same transaction of the maximum packet size; generates, in response to the determination, at least one additional packet; and transmits, after transmitting the first packet to the receiver, the at least one additional packet to the receiver.

12. The system of claim 11 , wherein the device serves as an intermediary for a transport layer connection between the sender and the receiver.

13. The system of claim 11 , wherein the device is one of a client, a server, or a network appliance.

14. The system of claim 11 , wherein the device comprises a transparent proxy.

15. The system of claim 11 , wherein the flow controller determines that a buffer corresponding to the connection has transitioned from non-empty to empty.

16. The system of claim 11 , wherein the flow controller generates, in response to the determination, at least one additional packet, wherein the at least one additional data packet comprises an indication for the receiver to transmit at least one acknowledgement.

17. The system of claim 11 , wherein the flow controller generates, in response to the determination, at least one additional packet, wherein the at least one additional data packet comprises the first data packet.

18. The system of claim 11 , wherein the flow controller generates, in response to the determination, at least one additional packet, wherein the at least one additional data packet comprises a portion of the received data packet.

19. The system of claim 11 , wherein the flow controller generates, in response to the determination, at least one additional packet, wherein the at least one additional data packet is generated according to a forward error correction technique for previously transmitted data.

20. The system of claim 11 , wherein the flow controller generates, in response to the determination, at least one additional packet, wherein the number of additional data packets transmitted is selected based on a current loss rate for the transport layer connection.

21. The system of claim 11 , wherein the packet processor receives at least one acknowledgement corresponding to the at least one additional data packet; determines, based on the received at least one acknowledgement, that one or more previously transmitted data packets have not been received; and retransmits the one or more previously transmitted data packets that have not been received.

22. A system for reducing transmission timeouts by selectively transmitting additional packets from an intermediary device based on identifying transaction boundaries, the system comprising:

means for receiving, by a device via a connection between a sender and a receiver, a first packet from the sender via the connection;

means for transmitting, by the device, the first packet to the receiver;

means for determining, by the device, that the first packet is the last packet of a transaction responsive to the first packet being smaller than a maximum packet size of the connection and the first packet being immediately preceded by at least one packet of the same transaction of the maximum packet size;

means for generating, by the device in response to the determination, at least one additional packet; and

means for transmitting, by the device after transmitting the first packet to the receiver, the at least one additional packet to the receiver via the connection.

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/0071 →
Continuity (3)
Continuation In Part 10901940 · Jul 28, 2004
Provisional Application 60490694 · Jul 29, 2003
Related Publication 20070206621A1 · Sep 6, 2007