IP Library Granted Patent US 8,918,691
Granted Patent B2
US 8,918,691 · App. 14/321,517 · Granted Dec 23, 2014

Processing transport packets

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,918,691
App. No.
14/321,517
Granted
Dec 23, 2014
Kind
B2
Abstract

Method, relay node and computer program product for processing transport packets, the transport packets conveying: (i) data stream units forming a data stream, and (ii) correction data units relating to the data stream units, where each transport packet contains information identifying the content of units in that transport packet. Transport packets are received at the relay node, the data stream units in the transport packets received at the relay node being insufficient to constitute the data stream. At least some of the correction data units and the data stream units in the received transport packets are used to generate substitute data stream units thereby to substantially recover the data stream at the relay node. The relay node packetizes the data stream units of the substantially recovered data stream with correction data units to form output transport packets for transmission from the relay node, and then the output transport packets are transmitted from the relay node.

Claims (37)

1. A method comprising:

receiving at a relay node transport packets transmitted from a transmitting node as an encrypted data stream for routing to a destination node;

determining by the relay node whether transport packets are missing from the encrypted data stream; and

generating substitute data for transport packets that are identified as missing based on the determining, the substitute data generated from the encrypted data stream using corresponding correction data units formed from operations performed on the encrypted data, such that recovery of transport packets that are missing occurs at the relay node without performing decryption operations upon the encrypted data stream.

2. A method as recited in claim 1 , further comprising obtaining the correction data units from the transmitting node wherein the operations performed on the encrypted data to generate the error correction data units occur at the transmitting node.

3. A method as recited in claim 1 , wherein the correction data units are included within the transport packets that are received.

4. A method as recited in claim 1 , further comprising:

obtaining the correction data units separately from the transport packets of the encrypted data stream.

5. A method as recited in claim 1 , wherein determining by the relay node whether transport packets are missing from the encrypted data stream includes monitoring sequence numbers associated with received transport packets to identify when transport packets are received out of sequence.

6. The method of claim 1 , wherein the correction data units are forward error correction data units.

7. The method of claim 1 , wherein each of the received transport packets comprises an unencrypted header having information identifying the content of transport packet and a payload.

8. The method of claim 1 , wherein payloads associated with said transport packets are configured to include at least encrypted data stream units.

9. The method of claim 8 , wherein at least some of the payloads of said transport packets are further configured to include correction data units used for generating the substitute data.

10. A method as recited in claim 1 , further comprising:

forming output transport packets for routing from the relay node to the destination node, the output transport packets configured to contain the substitute data that is generated; and

transmitting the output transport packets from the relay node.

11. A method as recited in claim 10 , further comprising:

generating new correction data units at the relay node for the output transport packets; and

communicating the new correction data for error correction of the output transport packets by one or more nodes to which the output transport packets are transmitted.

12. A method as recited in claim 1 , wherein the operations performed on the encrypted data to generate the error correction data units comprise XOR operations applied to units of the encrypted data.

13. A relay node comprising:

a processing unit;

a computer program product comprising instructions that, when executed by the processing unit, cause the relay node to perform operations for processing transport packets including:

receiving an encrypted data stream for routing to a destination node;

determining by the relay node whether transport packets are missing from the encrypted data stream; and

generating substitute data for transport packets that are identified as missing based on the determining, the substitute data generated from the encrypted data stream using corresponding correction data units formed from operations performed on the encrypted data, such that recovery of transport packets that are missing occurs at the relay node without performing decryption operations upon the encrypted data stream.

14. The relay node of claim 13 , wherein the instructions further cause the relay node to implement a packetiser configured to generate, at the relay node, a packetized data stream including the substitute data for transmission from the relay node.

15. The relay node of claim 14 , wherein the instructions further cause the relay node to implement a generator configured to generate new correction data units corresponding to the packetized data stream including the substitute data.

16. The relay node of claim 15 , wherein each of the received transport packets comprises an unencrypted header having information identifying the content of transport packet and a payload including at least encrypted data.

17. A transmitting node comprising:

an encoder configured to obtain data to be transmitted to a destination node via a relay node and encode the data to form a data stream;

an encryption block configured to encrypt the data stream to produce an encrypted data stream;

a error correction generator configured to, after encryption of the data stream, perform operations upon the encrypted data stream to generate corresponding correction data units, the correction data units configured to enable the relay node to recover transport packets of the encrypted data stream that are lost during transmission without having to perform decryption operations at the relay node; and

a network interface configured to enable communication of the encrypted data stream and the corresponding correction data units for receipt by the relay node for processing.

18. The transmitting node of claim 17 , wherein the encrypted data stream is packetized into transport packets each having an unencrypted header containing information identifying the content of transport packet and a payload including at least encrypted data.

19. The transmitting node of claim 17 , wherein at least some of said payloads for the transport packets are further configured to include correction data units generated by the error correction generator.

20. The transmitting node of claim 17 , wherein the transmitting node is configured to communicate the correction data units and the encrypted data stream to the relay node as separate data streams.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2020
From: SKYPE
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 054586/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2014
From: HIIE, MAGNUS
To: SKYPE LIMITED
Reel/Frame 033230/0432 →
CHANGE OF NAME Recorded Jul 2, 2014
From: SKYPE LIMITED
To: SKYPE
Reel/Frame 033266/0317 →