US12580677B2ActiveUtilityA1

Error correction with proactive packet replacement for real-time data streaming

41
Assignee: NVIDIA CORPPriority: Aug 23, 2022Filed: Aug 23, 2022Granted: Mar 17, 2026
Est. expiryAug 23, 2042(~16.1 yrs left)· nominal 20-yr term from priority
H04L 1/16H04L 1/0057H04L 1/0041H04L 1/1819
41
PatentIndex Score
0
Cited by
22
References
21
Claims

Abstract

Disclosed are apparatuses, systems, and techniques that improve efficiency and quality of data streaming in time-sensitive network communications. The techniques include but are not limited to proactive replacement of packets in network communications that use forward error correction techniques. Proactive replacement of packets that have been lost or can potentially become lost reduces network latency and increases the number of timely communicated data messages.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A method comprising:
 sending, using a network, one or more packets to a receiving device, the one or more packets corresponding to an encoded message and comprising a first error correction (EC) packet associated with the encoded message;   identifying one or more missing packets using one or more negative acknowledgments (NACKs) received from the receiving device, the one or more missing packets comprising at least one packet of the one or more packets sent to the receiving device that was not received by the receiving device; and   sending, to the receiving device, one or more replacement packets comprising a second EC packet associated with the encoded message, wherein the second EC packet represents a packet that has been generated prior to sending the one or more packets to the receiving device and not previously sent to the receiving device, wherein a number of the one or more replacement packets corresponds to a number of packets not received by the receiving device over a reference interval of time.   
     
     
         2 . The method of  claim 1 , wherein a number of the one or more replacement packets exceeds a number of the one or more missing packets. 
     
     
         3 . The method of  claim 1 , wherein the one or more replacement packets further comprise each of the one or more missing packets. 
     
     
         4 . The method of  claim 1 , wherein identifying the one or more missing packets comprises:
 receiving a first NACK of the one or more NACKs, wherein the first NACK identifies at least a first missing packet of the one or more missing packets; and   receiving a second NACK of the one or more NACKs, wherein the second NACK identifies at least (i) the first missing packet and (ii) a second missing packet of the one or more missing packets.   
     
     
         5 . The method of  claim 1 , further comprising:
 prior to sending the one or more packets to the receiving device, generating a plurality of EC packets, wherein the plurality of EC packets comprises the first EC packet and the second EC packet.   
     
     
         6 . The method of  claim 5 , wherein the plurality of EC packets comprises a third EC packet, and wherein the one or more packets sent to the receiving device comprise the third EC packet. 
     
     
         7 . The method of  claim 1 , wherein the second EC packet is sent in response to receiving the one or more NACKs. 
     
     
         8 . The method of  claim 1 , wherein the one or more replacement packets comprise two or more EC packets, and wherein a number of the two or more EC packets is determined based at least on a number of the one or more missing packets. 
     
     
         9 . The method of  claim 1 , wherein at least one replacement packet of the one or more replacement packets is sent to the receiving device over a network path that is different from a network path that was used to send the one or more packets. 
     
     
         10 . The method of  claim 1 , wherein the one or more replacement packets further comprise a copy of the first EC packet. 
     
     
         11 . The method of  claim 1 , wherein a copy of at least one packet of the one or more missing packets is not included in the one or more replacement packets. 
     
     
         12 . The method of  claim 1 , wherein the first EC packet is encoded using a Reed-Solomon encoding. 
     
     
         13 . A system comprising:
 a processing device to:
 send, using a network, one or more packets to a receiving device, the one or more packets corresponding to an encoded message and comprising a first error correction (EC) packet associated with the encoded message; 
 identify one or more missing packets using one or more negative acknowledgments (NACKs) received from the receiving device, the one or more missing packets comprising at least one packet of the one or more packets sent to the receiving device that was not received by the receiving device; and 
 send, to the receiving device, one or more replacement packets comprising a second EC packet associated with the encoded message, wherein the second EC packet represents a packet that has been generated prior to sending the one or more packets to the receiving device and not previously sent to the receiving device, wherein a number of the one or more replacement packets corresponds to a number of packets not received by the receiving device over a reference interval of time. 
   
     
     
         14 . The system of  claim 13 , wherein a number of the one or more replacement packets exceeds a number of the one or more missing packets. 
     
     
         15 . The system of  claim 13 , wherein to identify the one or more missing packets, the processing device is to:
 receive a first NACK of the one or more NACKs, wherein the first NACK identifies at least a first missing packet of the one or more missing packets; and   receive a second NACK of the one or more NACKs, wherein the second NACK identifies at least (i) the first missing packet and (ii) a second missing packet of the one or more missing packets.   
     
     
         16 . The system of  claim 13 , wherein the processing device is to:
 prior to sending the one or more packets to the receiving device, generate a plurality of EC packets, wherein the plurality of EC packets comprises the first EC packet and the second EC packet.   
     
     
         17 . The system of  claim 13 , wherein the one or more replacement packets comprise two or more EC packets, and wherein a number of the two or more EC packets is determined based at least on a number of the one or more missing packets. 
     
     
         18 . The system of  claim 13 , wherein at least one replacement packet of the one or more replacement packets is sent to the receiving device over a network path that is different from a network path that was used to send the one or more packets. 
     
     
         19 . The system of  claim 13 , wherein a copy of at least one packet of the one or more missing packets is not included in the one or more replacement packets. 
     
     
         20 . A processor comprising:
 one or more processing units to:
 send, using a network, one or more packets to a receiving device, the one or more packets corresponding to an encoded message and comprising a first error correction (EC) packet associated with the encoded message; 
 identify one or more missing packets using one or more negative acknowledgments (NACKs) received from the receiving device, the one or more missing packets comprising at least one packet of the one or more packets sent to the receiving device that was not received by the receiving device; and 
 send, to the receiving device, one or more replacement packets comprising a second EC packet associated with the encoded message, wherein the second EC packet represents a packet that has been generated prior to sending the one or more packets to the receiving device and not previously sent to the receiving device, wherein a number of the one or more replacement packets corresponds to a number of packets not received by the receiving device over a reference interval of time. 
   
     
     
         21 . The processor of  claim 20 , wherein the processor is comprised in at least one of:
 a control system for an autonomous or semi-autonomous machine;   a perception system for an autonomous or semi-autonomous machine;   a system for executing one or more real-time streaming applications;   a system for performing simulation operations;   a system for performing digital twin operations;   a system for performing light transport simulation;   a system for performing collaborative content creation for 3D assets;   a system for performing deep learning operations;   a system implemented using an edge device;   a system implemented using a robot;   a system for performing conversational AI operations;   a system for generating synthetic data;   a system incorporating one or more virtual machines (VMs);   a system implemented at least partially in a data center; or   a system implemented at least partially using cloud computing resources.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.