Patent ID: 11863317
Assignee: BITRIPPLE, INC.
Field: Digital communication (Electrical engineering)
Classification: CPC H | IPC H

Claim 11:
12. A method of transmitting data of an input data source from a sender to a receiver with reliability of transmission, wherein the reliability of transmission is indicated by a confirmation from the receiver to the sender that the data is considered received, the method comprising:
obtaining the data of the input data source, to be sent from a source device coupled to the sender to a destination device, wherein the destination device is a device configured to receive data from the receiver in a presumed reliable form;
organizing the data of the input data source into a sequence of one or more data blocks, each block having a block identifier associated therewith;
encoding a data block of the sequence of one or more data blocks into encoded data as a sequence of packets for the data block using an erasure code;
organizing data of a packet of the sequence of packets into a packet header and a packet payload;
including, in the packet header of the packet, representations of at least (1) a block size, (2) a global packet sequence number that uniquely identifies the packet relative to other packets of the data, (3) the block identifier of the data block, and (4) an encoding identifier that identifies the encoded data carried in the packet payload generated from the block;
including, in the packet payload of the packet, the encoded data identified by the block identifier of the data block and the encoding identifier included in the packet header;
determining a sendable number of packets for the data block representing a target number of packets to send for the data block;
comparing a total number of sent packets, sent from the sequence of packets for the data block, and the sendable number;
based on whether the total number of sent packets is less than the sendable number, sending the packet to the receiver;
receiving, at the sender, feedback from the receiver, the feedback comprising a feedback global packet sequence number corresponding to a largest global packet sequence number received at the receiver among correctly received packets of all data blocks of the sequence of the one or more data blocks up to some point in time, and a corresponding feedback global packet count corresponding to a total number of correctly received packets of all data blocks of the sequence of one or more data blocks at the receiver up to the same point, wherein determining the sendable number of packets for the data block is based, at least in part, on one or more received feedback global packet sequence numbers and corresponding feedback global packet counts.