コンピュータ科学において、オンライン符号はレートレス消去符号の一例です。これらの符号は、メッセージを多数のシンボルに符号化することができ、そのうちのごく一部を知っていれば、元のメッセージを(高い確率で)復元できます。レートレス符号は、受信者が十分な数のシンボルを受け取るまで、任意に多くのシンボルをブロードキャストすることができます。

オンライン符号化アルゴリズムは、いくつかの段階から構成されます。まず、メッセージはn個の固定サイズのメッセージブロックに分割されます。次に、外側の符号化は消去符号であり、メッセージブロックに追加される補助ブロックが生成され、それらが複合メッセージを形成します。
この情報をもとに、内部符号化によってチェックブロックが生成されます。一定数のチェックブロックを受信すると、複合メッセージの一部を復元できます。十分な部分が復元されたら、外部復号化を用いて元のメッセージを復元できます。
オンラインコードは、ブロックサイズと2つのスカラーqとεによってパラメータ化されます。著者らはq = 3、ε=0.01を推奨しています。これらのパラメータは、符号化の複雑さとパフォーマンスのバランスを決定します。n個のブロックからなるメッセージは、 (1+3ε) n個のチェックブロックから高い確率で復元できます。失敗確率は(ε/2) q+1です。
外部符号化には任意の消去符号を使用できますが、オンライン符号の作成者は以下を推奨しています。
各メッセージブロックに対して、擬似乱数的にq個の補助ブロック(合計0.55qεn個の補助ブロックから)を選択し、それに付加します。各補助ブロックは、それに付加されたすべてのメッセージブロックのXOR演算結果となります。

内部エンコーディングでは、複合メッセージを受け取り、チェックブロックのストリームを生成します。チェックブロックは、それが添付されている複合メッセージ内のすべてのブロックのXOR演算結果です。
チェックブロックの次数は、そのチェックブロックが接続されているブロックの数です。次数は、次のように定義されるランダム分布pからサンプリングすることによって決定されます。
チェックブロックの次数が判明したら、それが添付されている複合メッセージからブロックが均等に選択される。
当然ながら、内部ステージのデコーダは、現在デコードできないチェックブロックを保持する必要があります。チェックブロックは、それが接続されているブロックのうち1つを除くすべてが既知である場合にのみデコードできます。左のグラフは、内部デコーダの進行状況を示しています。x軸は受信したチェックブロックの数を表し、破線は現在使用できないチェックブロックの数を表しています。最初は、次数が1より大きいチェックブロックが多数受信されるものの、使用できないため、この数はほぼ直線的に増加します。ある時点で、一部のチェックブロックが突然使用可能になり、より多くのブロックが解決され、さらに多くのチェックブロックが使用可能になります。非常に短時間でファイル全体をデコードできます。
グラフからもわかるように、内部デコーダはn個のチェックブロックを受信した後、しばらくの間、すべてのデータをデコードするのにわずかに不十分な状態になります。しかし、外部エンコーディングによって、内部デコーダでデコードできなかった少数のブロックが問題にならず、それらのブロックがなくてもファイルを復元できるようになっています。