Forward Error Correction vs.
Active Retransmit Requests
in Wireless Networks

Robbert Haarman

Contents

Introduction

Research Question

Protocols

Results

Conclusions

Introduction - TCP

On the Internet, TCP is commonly used to provide reliable message delivery

TCP retransmits lost packets to enable the receiver to reassemble the message

Requesting and sending retransmissions can be time-consuming, especially on high-latency networks

Introduction - FEC

As an alternative to retransmits, we may use forward error correction (FEC)

Here, the sender adds redundancy to the message, so that it can be reconstructed even if some packets are lost

The sender transmits until the receiver has received enough packets to reconstruct the message

Research Question

On a wireless network, does active retransmission (ARQ) or forward error correction (FEC) perform better?

We will be looking at throughput (how long does it take to transfer a message?) and wastage (how many bits does it take to transfer a message?)

Protocols

To answer the question, two protocols will be compared: a simple ARQ protocol, and a simple FEC protocol

The protocols are kept as similar as possible

Both protocols split the message in 1 kilobyte blocks, which are transmitted with 16 bytes overhead

Both protocols use 8-byte acknowledgments to signal transmission completion

Protocols - ARQ

The ARQ protocol detects lost packets using timeouts

When such a timeout expires, a 12-byte ARQ message is sent to the sender, which then retransmits the lost packet

When the transmission is complete, the receiver sends an ACK to the sender, which responds with an ACK to the receiver (both repeated as necessary)

Protocols - FEC

The FEC protocol uses an (unspecified) erasure code that allows it to generate an unlimited number of code packets from n data packets

The message can be reconstructed from any n code packets

The sender keeps sending code packets until it receives an ACK

The receiver sends an ACK when it has enough packets (repeated as it receives more packets)

Benchmarks

Protocols were compared in a simulated network with the following parameters (unless otherwise noted):

Bitrate: 11 Mbps

Trip Time: 1 ms

Round Trip Time: 2 * Trip Time

Packet Loss: 20%

Message Size: 1 MB (1024 fragments)

ARQ Timeout: 10 * Trip Time

Benchmarks – Message Size

FEC has an advantage over ARQ in transmission time

ARQ has a slight advantage over FEC in wasted bits

Both advantages become less important as message size increases

Benchmarks – Packet Loss

FEC has a very slight advantage in transmission time over ARQ that increases with packet loss

The number of bits transmitted responds to packet loss identically for ARQ and FEC

Benchmarks – Timeout

Timeouts have a very powerful effect on the throughput of the ARQ protocol

Timeouts do not affect the number of bits transferred

The FEC protocol does not use timeouts, so they have no effect on it

Benchmarks – Trip Time

Trip time has a very small impact on FEC throughput, and a large impact on ARQ throughput

Trip time has a relatively strong impact on FEC wastage, and no effect on ARQ wastage

Conclusions

FEC typically offers better throughput

The difference is especially dramatic in high-latency situations, but also manifests itself in high packet-loss situations

ARQ usually wastes fewer bits, although this is only really apparent in high-latency situations

Which protocol is better? It depends on your needs

2006-06-15T15:48:51