IP Library Granted Patent US 9,386,127
Granted Patent B2
US 9,386,127 · App. 13/610,573 · Granted Jul 5, 2016

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 9,386,127
App. No.
13/610,573
Granted
Jul 5, 2016
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 (63)

1. A system, comprising:

a computing device coupled to a network, including:

a processor; and

a computer readable medium comprising instructions executable to implement a first protocol module, wherein the first protocol module is configured to:

receive data for transmission,

establish a transmission channel with a second protocol module at a second computer device over the network, wherein the transmission channel utilizes a first protocol,

transmit the data to the second protocol module at the second computer device over the transmission channel utilizing the first protocol,

after a first portion of the data is transmitted to the second protocol module utilizing the first protocol, receive control data from the second protocol module at the second computer device over a control channel utilizing a second protocol, wherein receiving control data from the second protocol module comprises

establishing the control channel with the second protocol module at the second computer device over the network utilizing the second protocol,

wherein the control data from the second protocol module at the second computer device is received over the control channel utilizing the second protocol simultaneous to transmission of a second portion of the data to the second protocol module at the second computer device over the transmission channel utilizing the first protocol, and

in response to the reception of the control data on the control channel from the second protocol module utilizing the second protocol, adjust the transmission of data on the transmission channel utilizing the first protocol based on the control data to reduce effects of network latency associated with the transmission of data over the transmission channel utilizing the first protocol.

2. The system of claim 1 , wherein adjusting the transmission of data comprises adjusting a send rate or prioritizing a set of packets of the data for transmission on the transmission channel, wherein the prioritizing the set of packets is done based on a priority scheme based on control data received over the control channel utilizing the second protocol.

3. The system of claim 2 , wherein prioritizing the set of packets of the data for transmission over the transmission channel is done based on a retransmit time.

4. The system of claim 3 , wherein the first protocol module is further configured to adjust the retransmit time based on a network round trip time determined using the control data received on the control channel from the second protocol module.

5. The system of claim 1 , wherein the first protocol is an unreliable protocol and the second protocol is a reliable protocol.

6. The system of claim 5 , wherein the first protocol is UDP and the second protocol is TCP.

7. The system of claim 1 , wherein the control data includes a STAT message and an ACK message and the STAT message includes a discard count, a duplicate count, a receive rate, a receive count or a network loss rate.

8. A method for data transmission, comprising:

receiving data for transmission at a first protocol module on a first computing device;

the first protocol module on the first computing device establishing a transmission channel with a second protocol module at a second computer device over the network, wherein the transmission channel utilizes a first protocol;

the first protocol module on the first computing device transmitting the data to the second protocol module at the second computer device over the transmission channel utilizing the first protocol;

after a first portion of the data is transmitted to the second protocol module over the transmission channel utilizing the first protocol, receiving, at the first protocol module, control data from the second protocol module at the second computer device over a control channel utilizing a second protocol, wherein receiving control data from the second protocol module comprises

establishing the control channel with the second protocol module at the second computer device over the network, wherein the control channel utilizes the second protocol,

wherein the control data from the second protocol module at the second computer device is received over the control channel utilizing the second protocol simultaneous to transmission of a second portion of the data to the second protocol module at the second computer device over the transmission channel utilizing the first protocol, and

in response to the reception of the control data on the control channel from the second protocol module utilizing the first protocol, the first protocol module adjusting the transmission of data on the transmission channel based on the control data to reduce effects of network latency associated with the transmission of data over the transmission channel utilizing the first protocol.

9. The method of claim 8 , wherein adjusting the transmission of data comprises adjusting a send rate or prioritizing a set of packets of the data for transmission on the transmission channel, wherein the prioritizing the set of packets is done based on a priority scheme based on control data received over the control channel utilizing the second protocol.

10. The method of claim 9 , wherein prioritizing the set of packets of the data for transmission over the transmission channel is done based on a retransmit time.

11. The method of claim 10 , further comprising the first protocol module adjusting the retransmit time based on a network round trip time determined using the control data received on the control channel from the second protocol module.

12. The method of claim 8 , wherein the first protocol is an unreliable protocol and the second protocol is a reliable protocol.

13. The method of claim 12 , wherein the first protocol is UDP and the second protocol is TCP.

14. The method of claim 8 , wherein the control data includes a STAT message and an ACK message and the STAT message includes a discard count, a duplicate count, a receive rate, a receive count or a network loss rate.

15. A non-transitory computer readable medium, comprising instructions for a first protocol module on a first computing device to perform:

receiving data for transmission,

establishing a transmission channel with a second protocol module at a second computer device over the network, wherein the transmission channel utilizes a first protocol,

transmitting the data to the second protocol module at the second computer device over the transmission channel utilizing the first protocol,

after a first portion of the data is transmitted to the second protocol module utilizing the first protocol, receiving control data from the second protocol module at the second computer device over a control channel utilizing a second protocol, wherein receiving control data from the second protocol module comprises

establishing the control channel with the second protocol module at the second computer device over the network utilizing the second protocol,

wherein the control data from the second protocol module at the second computer device is received over the control channel utilizing the second protocol simultaneous to transmission of a second portion of the data to the second protocol module at the second computer device over the transmission channel utilizing the first protocol, and

in response to the reception of the control data on the control channel from the second protocol module utilizing the second protocol, adjusting the transmission of data on the transmission channel utilizing the first protocol based on the control data to reduce effects of network latency associated with the transmission of data over the transmission channel utilizing the first protocol.

16. The computer readable medium of claim 15 , wherein adjusting the transmission of data comprises adjusting a send rate or prioritizing a set of packets of the data for transmission on the transmission channel, wherein the prioritizing the set of packets is done based on a priority scheme based on control data received over the control channel utilizing the second protocol.

17. The computer readable medium of claim 16 , wherein prioritizing the set of packets of the data for transmission over the transmission channel is done based on a retransmit time.

18. The computer readable medium of claim 17 , further comprising instructions for the first protocol module to perform adjusting the retransmit time based on a network round trip time determined using the control data received on the control channel from the second protocol module.

19. The computer readable medium of claim 15 , wherein the first protocol an unreliable protocol and the second protocol is a reliable protocol.

20. The computer readable medium of claim 19 , wherein the first protocol is UDP and the second protocol is TCP.

21. The computer readable medium of claim 15 , wherein the control data includes a STAT message and an ACK message and the STAT message includes a discard count, a duplicate count, a receive rate, a receive count or a network loss rate.

22. A system, comprising:

a computing device coupled to a network, including:

a processor; and

a computer readable medium comprising instructions executable to implement a first protocol module, wherein the first protocol module is configured to:

receive data for transmission,

establish a transmission channel with a second protocol module at a second computer device over the network, wherein the transmission channel utilizes User Datagram Protocol (UDP),

transmit the data to the second protocol module at the second computer device over the transmission channel at a first data rate utilizing UDP,

after a first portion of the data is transmitted to the second protocol module utilizing UDP receiving control data from the second protocol module at the second computer device over a control channel utilizing Transmission Control Protocol (TCP), wherein receiving control data from the second protocol module comprises

establishing the control channel with the second protocol module at the second computer device over the network utilizing TCP,

wherein the control data from the second protocol module at the second computer device is received over the control channel utilizing TCP simultaneous to transmission of a second portion of the data to the second protocol module at the second computer device over the transmission channel utilizing UDP, and

in response to the reception of the control data on the control channel from the second protocol module utilizing TCP, adjust the transmission of data on the transmission channel based on the control data at the second computer device, wherein adjusting the transmission of data comprises transmitting the data over the transmission channel utilizing UDP at a second data rate or prioritizing the transmission of the data over the transmission channel to reduce effects of network latency associated with the transmission of data over the transmission channel utilizing UDP and prioritizing the data is done based on a priority scheme based on the control data received over the control channel utilizing TCP.

23. The system of claim 22 , wherein the second data rate is less than the first data rate.

24. The system of claim 22 , wherein the second data rate is greater than the first data rate.

25. The system of claim 22 , wherein the control data is used to determine a round trip time of the control data on the network between the first protocol module and the second protocol module and the transmission of data on the transmission channel is adjusted based on the round trip time.

26. The system of claim 25 , wherein the data is transmitted as a set of packets.

27. The system of claim 26 , wherein the first protocol module is configured to determine that at least one packet of the set of packets is lost based on the round trip time.

28. The system of claim 27 , wherein the prioritization of the transmission of data is done based on the determination that the at least one packet is lost.

29. The system of claim 28 , wherein the prioritization of the transmission of data on the transmission channel comprises the prioritization of the transmission of the at least one packet.

Assignments (13)
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 →
RELEASE OF SECURITY INTEREST Recorded May 16, 2024
From: THE BANK OF NEW YORK MELLON
To: OPEN TEXT SA ULC
Reel/Frame 067436/0581 →
PARTIAL RELEASE OF SECURITY INTEREST IN PATENTS(REEL/FRAME 063559/0628) Recorded May 1, 2024
From: BARCLAYS BANK PLC
To: OPEN TEXT SA ULC
Reel/Frame 067289/0236 →
PARTIAL RELEASE OF SECURITY INTEREST IN PATENTS(REEL/FRAME 063559/0758) Recorded May 1, 2024
From: BARCLAYS BANK PLC
To: OPEN TEXT SA ULC
Reel/Frame 067289/0273 →
PARTIAL RELEASE OF SECURITY INTEREST IN PATENTS(REEL/FRAME 063559/0647) Recorded May 1, 2024
From: BARCLAYS BANK PLC
To: OPEN TEXT SA ULC
Reel/Frame 067289/0305 →
SECURITY INTEREST Recorded Aug 30, 2023
From: OPEN TEXT SA ULC
To: THE BANK OF NEW YORK MELLON
Reel/Frame 064761/0256 →
SECURITY INTEREST Recorded May 7, 2023
From: OPEN TEXT SA ULC
To: BARCLAYS BANK PLC
Reel/Frame 063559/0628 →
SECURITY INTEREST Recorded May 7, 2023
From: OPEN TEXT SA ULC
To: BARCLAYS BANK PLC
Reel/Frame 063559/0647 →
SECURITY INTEREST Recorded May 7, 2023
From: OPEN TEXT SA ULC
To: BARCLAYS BANK PLC
Reel/Frame 063559/0758 →
IP BUSINESS SALE AGREEMENT Recorded Aug 30, 2016
From: OPEN TEXT S.A.
To: OT IP SUB, LLC
Reel/Frame 039872/0605 →
CERTIFICATE OF AMALGAMATION Recorded Aug 30, 2016
From: IP OT SUB ULC
To: OPEN TEXT SA ULC
Reel/Frame 039872/0662 →
CERTIFICATE OF CONTINUANCE Recorded Aug 30, 2016
From: OT IP SUB, LLC
To: IP OT SUB ULC
Reel/Frame 039986/0689 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2012
From: DAJANI, ALADIN; MATTHEWS, GLEN; CARROLL, JONATHAN; GUAN, CHENGXUAN; WIKTORCZYK, ROBERT
To: OPEN TEXT S.A.
Reel/Frame 029016/0133 →