IP Library Granted Patent US 10,594,661
Granted Patent B1
US 10,594,661 · App. 15/620,956 · Granted Mar 17, 2020

System and method for recovery of data packets transmitted over an unreliable network

Inventors: Sergey Pachkov (Moscow, RU); Nikolay Dobrovolskiy (Moscow, RU); Serguei M. Beloussov (Costa Del Sol, SG)
Assignee: Parallels International GmbH
H04L63/0281H04L1/0041H04L63/166H04L69/161
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,594,661
App. No.
15/620,956
Granted
Mar 17, 2020
Kind
B1
Abstract

A system and method is provided that enables the recovery of data packets transmitted over an unreliable network. The system and method utilize an algorithm for transmitting the data packets with restoration of lost data during data transfer over UDP Protocol encrypted with DTLS Protocol. Advantageously, the algorithm does not require changes to data for either UDP or DTLS packets, but rather a separate, specifically designed packet is transmitted to the recipient to facilitate and ensure the recovery of any lost data packets over the unreliable network.

Claims (41)

1. A method for recovery of data packets transmitted from a sending device to a receiving device over a network, the method comprising:

calculating, by the receiving device, a parameter L associated with a frequency of packet losses in the data packets transmitted from the sending device to the receiving device over the network;

transmitting, by the receiving device, the parameter L in a UDP packet to the sending device;

receiving, from the sending device, a sequence of UDP data packets including (i) data encrypted by the sending device prior to being transmitted to the receiving device, the encryption being performed using a protocol with encryption and numbering and (ii) Forward Error Correction (FEC) data generated by the sending device, wherein the sequence of UDP packets comprises a number of L UDP packets having the encrypted data transmitted between each UDP packet having the FEC data, wherein the FEC data is generated based on the encrypted data and the parameter L; and

calculating, by the receiving device, the parameter L based on, for sequentially arriving UDP packets, differences between a number of each packet of the sequentially arriving packets and a sequence number of the respective protocol with encryption and numbering.

2. The method according to claim 1 , wherein the protocol with encryption and numbering comprises a Datagram Transport Layer Security (DTLS) protocol.

3. The method according to claim 2 , wherein the transmitting, by the receiving device, of the parameter L in the UDP packet comprises generating the UDP packet with the parameter L including a special byte sequence that is different than a byte sequence according to the DTLS protocol.

4. The method according to claim 1 , further comprising:

generating, by the receiving device, at least one UDP packet including data indicating an acknowledgement of one or more of the UDP packets having the encrypted data;

transmitting, by the receiving device, the generated at least one UDP packet to the transmitting device; and

calculating, by the sending device, the parameter L based on the generated at least one UDP packet.

5. The method according to claim 4 , wherein the calculating, by the sending device, of the parameter L comprises calculating the parameter L based on an expiration of a waiting time for an acknowledgment of transferred UDP packets having encrypted data.

6. The method according to claim 1 , further comprising:

storing, by the receiving device, in a first memory array a plurality of recovery UDP packets;

storing, by the receiving device, in a second memory array the FEC data; and

recovering, by the receiving device, at least one UDP data packet of the sequence of UDP data packets lost during transmission, the recovering based on the stored plurality of recovery UDP packets and the stored FEC data.

7. A system for recovery of data packets transmitted from a sending device to a receiving device over a network, the system comprising:

an encoder associated with the sending device and configured to encrypt data using a protocol with encryption and numbering, the encrypted data being data to be transmitted over the network;

a forward error correction (FEC) encoder associated with the sending device configured to generate FEC data based on the encrypted data and a parameter L associated with a frequency of packet losses in the data packets transmitted from the sending device to the receiving device over the network, wherein the receiving device is configured: to calculate the parameter L based on, for sequentially arriving UDP packets, differences between a number of each packet of the sequentially arriving packets and a sequence number of the respective protocol with the encryption and numbering, and to transmit the parameter L in a UDP packet to the sending device; and

a network interface associated with the sending device configured to transmit a sequence of UDP data packets including the encrypted data and the FEC data to the receiving device,

wherein the sequence of UDP packets comprises a number of L UDP packets having the encrypted data transmitted between each UDP packet having the FEC data.

8. The system to claim 7 , wherein the protocol with encryption and numbering comprises a Datagram Transport Layer Security (DTLS) protocol.

9. The system according to claim 8 , wherein the receiving device is configured to transmit the parameter L in the UDP packet by generating the UDP packet with the parameter L including a special byte sequence that is different than a byte sequence according to the DTLS protocol.

10. The system according to claim 7 ,

wherein the receiving device is configured to generate at least one UDP packet including data indicating an acknowledgement of one or more of the UDP packets having the encrypted data and to transmit the generated at least one UDP packet to the sending device, and

wherein the transmitting device is configured to calculate the parameter L based on the generated at least one UDP packet.

11. The system according to claim 7 , wherein the sending device calculates the parameter L based on an expiration of a waiting time for an acknowledgment of transferred UDP packets having encrypted data.

12. The system according to claim 7 , wherein the receiving device is further configured to:

store in a first memory array a plurality of recovery UDP packets,

store in a second memory array the FEC data; and

recover at least one UDP data packet of the sequence of UDP data packets lost during transmission, the recovering based on the stored plurality of recovery UDP packets and the stored FEC data.

13. A non-transitory computer readable medium storing thereon computer executable instructions for recovery of data packets transmitted from a sending device to a receiving device over a network, including instructions for:

receiving, from the sending device, a sequence of UDP data packets including (i) data encrypted by the sending device prior to being transmitted to the receiving device, the data being encrypted using a protocol with encryption and numbering and (ii) Forward Error Correction (FEC) data generated by the sending device, wherein the sequence of UDP data packets comprises a number of L UDP packets having the encrypted data transmitted between each UDP packet having the FEC data, wherein the FEC data is generated based on the encrypted data and a parameter L associated with a frequency of packet losses in the data packets transmitted from the sending device to the receiving device over the network; and

calculating, by the receiving device, the parameter L based on, for sequentially arriving UDP packets, differences between a number of each packet of the sequentially arriving packets and a sequence number of the respective protocol with encryption and numbering.

14. The non-transitory computer readable medium according to claim 13 , wherein the protocol with encryption and numbering comprises a Datagram Transport Layer Security (DTLS) protocol.

15. The non-transitory computer readable medium according to claim 14 , wherein the transmitting, by the receiving device, of the parameter L in the UDP packet comprises generating the UDP packet with the parameter L including a special byte sequence that is different than a byte sequence according to the DTLS protocol.

16. The non-transitory computer readable medium according to claim 13 , further comprising instructions for:

generating, by the receiving device, at least one UDP packet including data indicating an acknowledgement of one or more of the UDP packets having the encrypted data;

transmitting, by the receiving device, the generated at least one UDP packet to the transmitting device; and

calculating, by the sending device, the parameter L based on the generated at least one UDP packet.

17. The non-transitory computer readable medium according to claim 16 , wherein the calculating, by the sending device, of the parameter L comprises calculating the parameter L based on an expiration of a waiting time for an acknowledgment of transferred UDP packets having encrypted data.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Jul 18, 2019
From: UBS AG, STAMFORD BRANCH, AS ADMINISTRATIVE AND COLLATERAL AGENT
To: COREL CORPORATION; CLEARSLIDE, INC.; PARALLELS INTERNATIONAL GMBH
Reel/Frame 049787/0073 →
RELEASE OF SECURITY INTEREST RECORDED AT : REEL 047973 FRAME 0797 Recorded Jul 17, 2019
From: UBS AG, STAMFORD BRANCH
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 049773/0590 →
SECURITY INTEREST Recorded Dec 21, 2018
From: PARALLELS INTERNATIONAL GMBH
To: UBS AG, STAMFORD BRANCH
Reel/Frame 047973/0797 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 13, 2017
From: PACHKOV, SERGEY; DOBROVOLSKIY, NIKOLAY; BELOUSSOV, SERGUEI M
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 042688/0563 →