This book discusses an efficient random linear network coding scheme, called BATched Sparse code, or BATS code, which is proposed for communication through multi-hop networks with packet loss. Multi-hop wireless networks have applications in the Internet of Things (IoT), space, and under-water network communications, where the packet loss rate per network link is high, and feedbacks have long delays and are unreliable. Traditional schemes like retransmission and fountain codes are not sufficient to resolve the packet loss so that the existing communication solutions for multi-hop wireless networks have either long delay or low throughput when the network length is longer than a few hops. These issues can be resolved by employing network coding in the network, but the high computational and storage costs of such schemes prohibit their implementation in many devices, in particular, IoT devices that typically have low computational power and very limited storage.
A BATS code consists of an outer code and an inner code. As a matrix generalization of a fountain code, the outer code generates a potentially unlimited number of batches, each of which consists of a certain number (called the batch size) of coded packets. The inner code comprises (random) linear network coding at the intermediate network nodes, which is applied on packets belonging to the same batch. When the batch size is 1, the outer code reduces to an LT code (or Raptor code if precode is applied), and network coding of the batches reduces to packet forwarding. BATS codes preserve the salient features of fountain codes, in particular, their rateless property and low encoding/decoding complexity. BATS codes also achieve the throughput gain of random linear network coding. This book focuses on the fundamental features and performance analysis of BATS codes, and includes some guidelines and examples on how to design a network protocol using BATS codes.