Buffer Coding for Reliable Transmissions over Wireless Networks q Zizhan Zheng * , Prasun Sinha Department of Computer Science and Engineering, Ohio State University, Room 395, Dreese Labs, 2015 Neil Avenue, Columbus, OH 43210, USA article info Article history: Received 5 February 2008 Received in revised form 25 September 2008 Accepted 25 September 2008 Available online xxxx Keywords: Wireless communication Algorithm/protocol design and analysis abstract In-network caching is a useful technique for reducing latency and retransmission overhead of lost packets for reliable data delivery in wireless networks. However, in-network caching is challenging to implement in memory constrained devices such as RFIDs and sensors, and also in Wireless LAN (WLAN) gateways for large-scale deployments. In this paper we propose a novel technique for management of in-network caches using XOR coding for optimizing the use of limited buffer space in presence of random and burst packet losses. We identify two critical parameters, coding degree and coding distance for the coding scheme. As a case-study we implement our approach over Snoop and evaluate its performance for WLANs. We further propose a self-adaptive algorithm that tunes coding degree on the fly based on the measured coding behavior and packet loss probability. Using simulations in ns-2, we observe that in our simulation settings, when the size of the retransmission buffer in the gateway is less than 16 packets per TCP flow, the throughput can be enhanced by up to 30% for random losses and up to 20% for burst losses. Ó 2008 Elsevier B.V. All rights reserved. 1. Introduction Wireless networks have been widely deployed in recent years due to their low cost, reduced dependence on infrastructure, and support for emerging mobile and sensing applications. However, due to the high bit-error rates of wireless links and losses induced by interference and mobility, supporting reliable transmissions over wireless networks remains a challenging problem, especially for networking devices with limited resources. To deal with the high loss rate of wireless networks and improve end-to-end throughput, many existing reliable protocols support in-network packet recovery [2–5]. In these protocols packet caching at the intermediate nodes is used for faster and low-overhead recovery (compared to recovery from source) of lost packets. As a special case, hop-by-hop recovery at MAC layer is widely adopted by wire- less networks [6,7]. However, in-network caching is challenging in memory-constrained devices such as RFIDs or sensors, and also in devices that are handling a large number of flows such as WLAN gateways for large installations. A retransmission buffer with limited size restricts the perfor- mance of reliable protocols in two ways. First, the number of con- current flows that can be supported by either the sender or intermediate nodes is limited. Second, intermediate nodes can only cache a subset of the forwarded packets, thus reducing the benefit of in-network caching. Limitations on buffer size force the caching node to make decisions on which packets to cache and which not to. However, an intermediate node can not predict which of the packets that it is forwarding will be lost in the network en-route to the destination, and thus has to resort to random sampling of packets to cache. In this paper, we propose a novel XOR coding based approach named XBC to optimize the use of limited retransmission buffer space. In addition to raw packets, intermediate nodes can store the XOR of two or more packets in the buffer. Thus a larger number of packets can be stored in the limited buffer space. Upon discovery of a loss, a packet can be recovered if it is stored raw, or if the other packets with which it is encoded have been received by the recei- ver. For example if P i P j is stored in the buffer, and if P j is lost in the network, but P i is known to have been received correctly, then the cache can transmit P i P j and the receiver can compute ðP i P j Þ P i to extract P j . Notice that P i can also be recovered from ðP i P j Þ P j as well, so that storing P i P j allows recovering both packets given that only one is lost. Decoding of XOR-ed packets at the receiver requires previously received packets from the recei- ver’s buffer, which is readily available for reliable protocols sup- porting in-order delivery. Fig. 1 shows a simple example of how XBC can be useful. We consider a network with three nodes, in which a base station con- nects a wired link and a wireless link. Suppose there is a TCP flow going through the base station. In a traditional protocol supporting local recovery, like Snoop [3], the base station caches packets received, forwards them to the receiver, and retransmits the lost ones upon receiving an ACK indicating packet loss from the 0140-3664/$ - see front matter Ó 2008 Elsevier B.V. All rights reserved. doi:10.1016/j.comcom.2008.09.033 q An earlier version of this paper appeared at IEEE BROADNETS ’07 [1]. * Corresponding author. Tel.: +1 6143123013. E-mail addresses: zhengz@cse.ohio-state.edu (Z. Zheng), prasun@cse.ohio- state.edu (P. Sinha). Computer Communications xxx (2008) xxx–xxx Contents lists available at ScienceDirect Computer Communications journal homepage: www.elsevier.com/locate/comcom ARTICLE IN PRESS Please cite this article in press as: Z. Zheng, P. Sinha, Buffer Coding for Reliable Transmissions over Wireless Networks, Comput. Commun. (2008), doi:10.1016/j.comcom.2008.09.033