Patent ID: 9209947
Filing Date: 2015-12-08
Classification: H04L

Abstract:
1. A method of transferring data between a sender and a receiver in a datagram-based network with lossless overall transfer even when jamming conditions are present, comprising: establishing separate data and feedback channels over the network between the sender and receiver; dividing a data set to be transmitted into cohorts of datagrams and converting each cohort of H original datagrams into corresponding chapters of W transformed datagrams, where W is greater than or equal to H, the conversion being such that a complete cohort of original datagrams is recoverable from any subset of at least H of the transformed datagrams that have been derived from that cohort; sending chapters of transformed datagrams over the data channel from the sender to the receiver until a source of data is exhausted or paused by the receiver; sending messages over the feedback channel from the receiver to the sender acknowledging that cohorts of original datagrams have been successfully recovered, and identifying any missing or incomplete chapters with insufficient datagrams for cohort recovery together with a list of missing or corrupt datagrams from any such chapters, the messages further including timing information indicative of network latency and congestion; resending over the data channel at least a specified number of datagrams from the list for a missing or incomplete chapter which will be sufficient to allow cohort recovery; and self-tuning by the sender of any one or more of the sending rate, chapter size W and redundancy W/H in reaction to changing network conditions based upon a combination of recognition of a jamming condition, network latency and datagram loss rate as determined from the content of the messages received over the receiver feedback channel, the self-tuning adapted to at least keep a datagram loss rate below a specified upper bound, a jamming condition being identified from any combination of one or more of user input to the sender, timeout on the receipt of messages over the feedback channel, timing information in the messages indicating round-trip transmission times longer than a specified period, and messages indicating missing, incomplete or corrupt datagrams in excess of a specified rate.