IP Library Granted Patent US 10,154,120
Granted Patent B2
US 10,154,120 · App. 15/442,372 · Granted Dec 11, 2018

System and method for data transfer, including protocols for use in data transfer

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,154,120
App. No.
15/442,372
Granted
Dec 11, 2018
Kind
B2
Abstract

Embodiments of systems and methods for data transfer are presented herein. Specifically, embodiments of such a data transfer methodology may utilize one or more transmission channels for the transmission of the data to be transferred. In addition, a control channel in a different protocol than the transmission channels may be utilized to transmit control information between the sender and recipient. The rate at which data is sent on the transmission channels may be adjusted or the transmission of data on the transmission channel prioritized.

Claims (33)

1. A system, comprising:

a computing device coupled to a network, including:

a processor; and

a non-transitory computer readable medium comprising instructions executable to implement a first protocol module for:

receiving data for transmission, establishing a transmission channel with a second protocol module using a second protocol;

establishing a control channel with the second protocol module using a first protocol, the control channel independent of the transmission channel;

creating a set of packets of the received data for transmission, wherein creating the set of packets comprises assigning each of the set of packets a sequential identifier;

determining a send allowance;

if the send allowance is greater than zero, adding a packet from the set of packets to the transmission queue in order of their sequential identifiers and subtracting an amount of data associated with that packet from the send allowance until the set of packets is empty or the send allowance is not greater than zero;

transmitting packets from the transmission queue over the transmission channel utilizing the second protocol;

receiving control data over the control channel from the second protocol module utilizing the first protocol; and

in response to the control data received on the control channel utilizing the first protocol, adjusting the transmission of data on the transmission channel based on the control data received on the control channel utilizing the first protocol to account for conditions affecting the transmission of data over the transmission channel utilizing the second protocol.

2. The system of claim 1 , wherein the first protocol module is further for:

before adding a packet from the set of packets to the transmission queue in order of their sequential identifiers:

determining if any of the set of packets is on a priority list; and

for each of the set of packets determined to be on the priority list, adding that packet to a transmission queue and subtracting an amount of data associated with that packet from the send allowance.

3. The system of claim 2 , wherein the priority list is determined based on packets for which a NACK was received from the second protocol module.

4. The system of claim 2 , wherein the priority list is determined based on packets for which neither a NACK nor an ACK was received from the second protocol module in the control data in a retransmit time period.

5. The system of claim 4 , wherein the retransmit time period is dynamically adjusted during transmission of data.

6. The system of claim 2 , wherein the first protocol module is further for:

before adding the packet from the set of packets to the transmission queue in order of their sequential identifiers and after determining if any of the set of packets is on a priority list:

if the send allowance is greater than zero, determining if there are any of the set of packets due for retransmission; and

for each of the set of packets due for retransmission, adding that packet to the transmission queue and subtracting the amount of data associated with that packet from the send allowance.

7. The system of claim 6 , wherein determining if a packet is due for retransmission comprises determining if the packet has not been transmitted within a time threshold and where neither an ACK nor a NACK has been received for the packet from the second protocol module in the control data.

8. The system of claim 7 , wherein the time threshold may be dynamically adjusted during transmission of data.

9. The system of claim 1 , wherein the send allowance is an amount of data that may be sent during a next transmission.

10. The system of claim 9 , wherein adjusting the transmission of data comprises adjusting a send rate at a time interval based on the received control data.

11. The system of claim 10 , wherein the send rate is the amount of data over a time period.

12. The system of claim 10 , wherein adjusting the send rate comprises: determining, based on the control data, if no packets sent during the previous time period were received at the second protocol module; and if no packets no packets sent during the previous time period were received at the second protocol module, determining the send rate by decreasing the send rate by a percentage.

13. The system of claim 12 , wherein the send allowance is determined based on the send rate and a number of packets previously transmitted over previous time period corresponding to the time period used to determine the send rate.

14. The system of claim 10 , wherein adjusting the send rate comprises: determining if a discard rate at the second protocol module is greater than a threshold, and if the discard rate at the second protocol module is greater than the threshold, determining the send rate by decreasing the send rate by the percentage.

15. The system of claim 9 , wherein the send allowance is based on a target send rate, an amount of data sent during a previous time period, or a previous send rate.

16. The system of claim 15 , wherein an actual send rate is determined based on the control data and the first protocol module is further for: determining if the actual send rate is within a tolerance of a target send rate and adjusting the target send rate upward by the percentage if the actual send rate is within the tolerance of the target send rate.

Assignments (6)
NUNC PRO TUNC ASSIGNMENT Recorded Apr 8, 2025
From: OPEN TEXT SA ULC
To: ROCKET SOFTWARE CANADA, INC. (SUCCESSOR BY AMALGAMATION WITH AMC CONNECTIVITY SOFTWARE (CANADA) ULC)
Reel/Frame 070770/0882 →
CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY NAME FROM OPEN TEXT SA ULC TO OPEN TEXT S.A. PREVIOUSLY RECORDED ON REEL 041376 FRAME 0467. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 28, 2017
From: DAJANI, ALADIN; MATTHEWS, GLEN; CARROLL, JONATHAN; GUAN, CHENGXUAN; WIKTORCZYK, ROBERT
To: OPEN TEXT S.A.
Reel/Frame 042366/0853 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2017
From: DAJANI, ALADIN; MATTHEWS, GLEN; CARROLL, JONATHAN; GUAN, CHENGXUAN; WIKTORCZYK, ROBERT
To: OPEN TEXT SA ULC
Reel/Frame 041376/0467 →
CERTIFICATE OF AMALGAMATION Recorded Feb 24, 2017
From: IP OT SUB ULC
To: OPEN TEXT SA ULC
Reel/Frame 041809/0853 →
CERTIFICATE OF CONTINUANCE Recorded Feb 24, 2017
From: OT IP SUB, LLC
To: IP OT SUB ULC
Reel/Frame 041809/0875 →
IP BUSINESS SALE AGREEMENT Recorded Feb 24, 2017
From: OPEN TEXT S.A.
To: OT IP SUB, LLC
Reel/Frame 041809/0897 →