Technology

RLNC vs Traditional Codes

RLNC has a number of unique features compared to other coding schemes.

Sliding Window

RLNC’s latency gains in latency-sensitive applications such as over-the-top (OTT) video streaming are made possible by its unique capability to code in a sliding-window. Coding in a sliding window presents a number of advantages over traditional block coding. The figure below illustrates how RLNC applies these two techniques.

In block coding, packet blocks are usually predefined. The illustration below shows blocks with a fixed number of packets. RLNC can generate redundancy (i.e., coded packets) from each block independently. When round trip times (RTTs) are high, redundancy rates are usually fixed. However, for low enough RTTs, redundancy rates can fluctuate dynamically with channel state information (CSI) or depend on feedback information. RLNC therefore allows for rateless coding with dynamic block sizes, as shown below.

Note that, for each block, and contrary to legacy block codes, all packets in a block need not be present for RLNC to start generating useful coded packets. This means that redundancy can be generated before the block is complete. This technique is termed on-the-fly coding and allows for removing coding delays at transmit buffers.

The problem with block codes is their rigidity: blocks do not overlap and are often fixed in size. As a result, packets from a given block cannot be passed to higher layers, (e.g., the application layer), as reliable goodput before a sufficient number of original or coded packets is received. This creates a lower limit in latency and decoding complexity that may affect delay-sensitive applications such as streaming or control.  

RLNC enables a more flexible technique called sliding window coding. Sliding window coding removes the limitation of fixed blocks by creating a variable-sized sliding window. Coded packets associated to a given sliding window position and size can be inserted in the stream, as shown below. The window definition, window size, redundancy rate, and transmission policy may depend on a number of factors such as receiver feedback, streaming requirements, CSI, congestion control, load control, etc.

Sliding window coding was developed in the context of coded TCP. RLNC enables the coded TCP source to transmit coded representations of its congestion window, thus stabilizing the flow and avoiding connection breakdowns due to the random packet losses or RTT swings seen at the transport layer.

Sliding window coding brings tremendous latency gains in a number of markets such as OTT streaming and transport over any topology (e.g., OTT Internet streaming, satellite communications). It is an integral part of Code On’s mesh, multipath, and multicast solutions.

Please refer to our white papers for illustrative implementations and results.