Signal Processing Meets Network Layers: Joint Protocol-Channel Decoding
Abstract
The widely used OSI layered model partitions networking tasks into distinct protocol layers. At the transmitter, each layer adds some specific information (receiver address, type of signal,...) to the transmitted packets. This facilitates network design, since a layer has not to be aware of the information introduced by other layers, allowing heterogeneous contents to be delivered via the same communication network. Moreover, upon reception, each layer extracts the required information at that level, while assuming that the lower layers behave perfectly. It then provides to the upper layers the required information. Therefore, error-detecting codes (CRC or checksums) protecting mainly headers (and sometimes the payload) are widely used at various places of the protocol stacks. They are combined with retransmission mechanisms (when feasible) for data packets deemed as corrupted. Moreover, since the layers work independently, but sometimes require the knowledge of identical (or correlated) information, some redundancy exists in the data extracted at each layer. This redundancy has been recognized and used for example in Robust Header Compression (RoHC) protocols for reducing the header lengths. Nevertheless, the existence of this redundancy can also be used (in a non exclusive manner) for other tasks, as outlined below The role of Joint Protocol and Channel Decoding (JPCD) is to make an efficient (and joint) use of the redundancy present in all protocol layers (including that introduced at Physical layer, e.g., by channel coding) in order to obtain optimal performance at a global level. A partial effort in this direction was already done under the framework of cross layer techniques, but JPCD intends to make full use of all properties of the signal that is transmitted. With this strategy, more reliable header recovery can be performed and aggregated packets can be more efficiently delineated. More recently, it has also been shown that channel decoding may benefit from the redundancy present in the protocol stack (protocol-assisted channel decoding). As a result, one can obtain at each layer packets that are more usable, i.e., contain fewer errors. Thus, JPCD allows one to obtain the best performance out of the received sequences without changing the structure of the transmitted signal. Clearly, since JPCD is performed within the receiver, the ability to use JPCD tools in the context of existing standards makes it potentially very practical. This tutorial explains in some details the required signal processing tools and their application to network layers, and provides examples of protocols for which this process has been implemented at all layers. This tutorial first presents some tools that are described in the book Joint Source-Channel Decoding. A Cross-Layer Perspective with Applications in Video Broadcasting over Mobile and Wireless Networks published in 2009 by Academic Press, and extends them in a comprehensive manner, providing missing ones, and giving many application examples. End-to-end simulations of applications concerning the reliable transmission of multimedia (video and html files) contents are finally provided. This set of simulations demonstrate that a truly permeable protocol stack can be implemented at decoder side, allowing the whole set of results already obtained under the name of Joint Source-Channel Decoding techniques to be practically used. Finally, this opens the floor for a true optimization of the redundancy allocation at the various layers of the protocol stack in order to obtain the best performance.