IP Library Granted Patent US 8,259,729
Granted Patent B2
US 8,259,729 · App. 12/567,402 · Granted Sep 4, 2012

Wavefront detection and disambiguation of acknowledgements

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,259,729
App. No.
12/567,402
Granted
Sep 4, 2012
Kind
B2
Abstract

One or more flow control modules, implemented on various types of network topologies, provide a number of functionalities for controlling the flow of IP packets (such as TCP/IP packets) over a network connection. The flow control modules may be implemented within a sender and/or receiver or may be deployed into a network as a separate device without requiring significant additional resources.

Claims (27)

1. A method for communicating using Internet Protocol (IP) via a computer network, the method comprising:

transmitting, by a flow control module configured on a device, a data packet from a sender to a remote system, the transmitted data packet including a transport layer sequence number and a first internet layer internet protocol identifier (IP ID) field, the first IP ID field comprising a first unique value;

retransmitting, by the flow control module, the data packet to the remote system, the retransmitted data packet including the transport layer sequence number and a second IP ID field, the second IP ID field comprising a second unique value different than the first unique value;

receiving, by the flow control module, an acknowledgment packet sent by the remote system, the acknowledgement packet including the transport layer sequence number and a third IP ID field, the third IP ID field comprising a third value set to one of a function of the first unique value or a function of the second unique value; and

determining, by the flow control module, whether the received acknowledgment packet acknowledges receipt by the remote system of the transmission of the data packet or the retransmission of the data packet, via the value of the third IP ID field.

2. The method of claim 1 , wherein receiving an acknowledgment packet sent by the remote system further comprises receiving the acknowledgment packet including the third IP ID field, the third IP ID field comprising the third value set to one of the first unique value with a predetermined bit reversed or the second unique value with a predetermined bit reversed.

3. The method of claim 2 , wherein the predetermined bit reversed is a most significant bit of the third IP ID field.

4. The method of claim 1 , wherein the first unique value and second unique value comprise timestamps.

5. The method of claim 1 , wherein the first unique value and second unique value comprise unique counter values.

6. The method of claim 1 , wherein the first unique value and second unique value are sequential.

7. The method of claim 1 , further comprising:

transmitting, by the flow control module, one or more additional data packets from the sender to the remote system prior to retransmitting the data packet; and

presuming lost, by the flow control module, the one or more additional data packets sent prior to retransmitting the data packet, responsive to: (i) determining that the received acknowledgement packet acknowledges receipt by the remote system of the retransmission of the data packet, and (ii) receipt of the one or more additional data packets not being acknowledged by the remote system.

8. A system for communicating using Internet Protocol (IP) via a computer network, the system comprising:

a device deployed between a sender and a remote system, the device comprising a flow control module, the flow control module configured for:

transmitting a data packet from the sender to the remote system, the transmitted data packet including a transport layer sequence number and a first internet layer internet protocol identifier (IP ID) field, the first IP ID field comprising a first unique value;

retransmitting the data packet to the remote system, the retransmitted data packet including the transport layer sequence number and a second IP ID field, the second IP ID field comprising a second unique value different than the first unique value;

receiving an acknowledgment packet sent by the remote system, the acknowledgement packet including the transport layer sequence number and a third IP ID field, the third IP ID field comprising a third value set to one of a function of the first unique value or a function of the second unique value; and

determining whether the received acknowledgment packet acknowledges receipt by the remote system of the transmission of the data packet or the retransmission of the data packet, via the value of the third IP ID field.

9. The system of claim 8 , wherein the flow control module is further configured for receiving the acknowledgment packet including the third IP ID field, the third IP ID field comprising the third value set to one of the first unique value with a predetermined bit reversed or the second unique value with a predetermined bit reversed.

10. The system of claim 9 , wherein the predetermined bit reversed is a most significant bit of the third IP ID field.

11. The system of claim 8 , wherein the first unique value and second unique value comprise timestamps.

12. The system of claim 8 , wherein the first unique value and second unique value comprise unique counter values.

13. The system of claim 8 , wherein the first unique value and second unique value are sequential.

14. The system of claim 8 , wherein the flow control module is further configured for:

transmitting one or more additional data packets from the sender to the remote system prior to retransmitting the data packet; and

presuming lost the one or more additional data packets sent prior to retransmitting the data packet, responsive to: (i) determining that the received acknowledgement packet acknowledges receipt by the remote system of the retransmission of the data packet, and (ii) receipt of the one or more additional data packets not being acknowledged by the remote system.

Assignments (10)
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 →
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 →
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 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
NUNC PRO TUNC ASSIGNMENT Recorded Dec 15, 2011
From: ORBITAL DATA CORPORATION
To: CITRIX SYSTEMS, INC.
Reel/Frame 027392/0357 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 28, 2011
From: SAMUELS, ALLEN R.; SUTTER, PAUL G.
To: ORBITAL DATA CORPORATION
Reel/Frame 027284/0874 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2011
From: SAMUELS, ALLEN R.; SUTTER, PAUL G.
To: ORBITAL DATA CORPORATION
Reel/Frame 027201/0947 →
Continuity (5)
Continuation 10902493 · Jul 28, 2004
Continuation In Part 10696507 · Oct 29, 2003
Provisional Application 60422801 · Oct 30, 2002
Provisional Application 60490694 · Jul 29, 2003
Related Publication 20100046372A1 · Feb 25, 2010