Academia.eduAcademia.edu

Multipath TCP with Network Coding for Wireless Mesh Networks

2010

In wireless multihop networks, techniques such as multipath, local retransmissions and network coding have been successfully used to increase throughput and reduce losses. However, while these techniques improve forwarding performance for UDP, they often introduce side effects such as packet reordering and delay that heavily affect TCP traffic.

See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/224152350 Multipath TCP with Network Coding for Wireless Mesh Networks Conference Paper · June 2010 DOI: 10.1109/ICC.2010.5502204 · Source: IEEE Xplore CITATIONS READS 15 75 3 authors: Steluta Iordache Barcelona Supercomputing Center 12 PUBLICATIONS 124 CITATIONS Alberto Lopez Toledo 33 PUBLICATIONS 536 CITATIONS SEE PROFILE SEE PROFILE Pedro Rodriguez Abengoa 61 PUBLICATIONS 357 CITATIONS SEE PROFILE All content following this page was uploaded by Pedro Rodriguez on 07 April 2015. The user has requested enhancement of the downloaded file. All in-text references underlined in blue are linked to publications on ResearchGate, letting you access and read them immediately. This full text paper was peer reviewed at the direction of IEEE Communications Society subject matter experts for publication in the IEEE ICC 2010 proceedings Multipath TCP with Network Coding for Wireless Mesh Networks Steluta Gheorghiu Alberto Lopez Toledo Pablo Rodriguez Telefonica Research {steluta, alopezt, pablorr}@tid.es Abstract—In wireless multihop networks, techniques such as multipath, local retransmissions and network coding have been successfully used to increase throughput and reduce losses. However, while these techniques improve forwarding performance for UDP, they often introduce side effects such as packet reordering and delay that heavily affect TCP traffic. In this paper we introduce CoMP, a network coding multipath forwarding scheme that improves the reliability and the performance of TCP sessions in wireless mesh networks. CoMP exploits the wireless mesh path diversity using network coding, performs congestion control and uses a credit-based method to control the rate at which linear combinations are transmitted. CoMP uses a simple algorithm to estimate losses and to send redundant linear combinations in order to maintain the decoding delay at a minimum and to prevent TCP timeouts and retransmissions. We evaluate CoMP through extensive simulations and compare it to state-of-the-art protocols. We show that CoMP not only achieves a higher throughput, but also is more efficient than existing protocols, making TCP sessions feasible for wireless mesh networks even under heavy losses. Index Terms—network coding, wireless, TCP, multipath I. I NTRODUCTION Wireless mesh networks (WMN) are emerging as the nextgeneration systems to connect communities. As these networks proliferate, it is expected that users will start demanding more versatile applications such as video streaming and VoIP. Unfortunately, the performance of TCP degrades very fast in WMN [4]. When losses occur in a wireless environment, TCP considers them as being caused by congestion, and triggers its congestion avoidance mechanism which reduces the sending rate to adapt to the new network conditions. Still, the actual capacity of the network has not changed, and hence the network becomes underutilized. A typical approach to address the problem of improving TCP performance in WMN is to exploit the path diversity in the mesh. One example is Horizon [7], which also implements a mechanism to signal congestion to TCP, but it does not offer any reliability and every loss is recovered through retransmissions at TCP layer. However, multiple paths pose further challenges. Consider the simple scenario from Fig. 1, where the source S can communicate with destination D using 3 neighbors, A, B and A. Lopez Toledo is supported by the Institució Catalana de Recerca i Estudis Avançats (ICREA). Telefonica Research participates in Torres Quevedo subprogram (MICINN), cofinanced by the European Social Fund, for Researchers recruitment. Part of this work was carried out with assistance of financial support from the European Community under grant FP7-INFSO-ICT-215252 (N-Crave Project). This work has been partially funded by project TSI200766869-C02-01 from Spanish Science and Technology Ministery (MICINN). A receives P1 S sends P1, P2, P3 B receives D P1, P2 C receives P2, P3 Fig. 1. Multipath example. The source S can reach the destination D through three neighbors, A, B and C. C. Assume that S sends three packets, P1 , P2 , P3 , and the three relays receive the packets as illustrated in the figure. In this situation, the nodes need to coordinate and schedule the packets transmissions so that the destination receives all of them without duplicates. Network coding [3] can effectively be employed to solve the relay coordination and the packet scheduling problems. In the above example, each of the relays can use network coding to simply forward a linear combination of the received packets. Once the destination D receives the three linear combinations, it solves a linear system and recovers the original packets. Typical network coding techniques divide traffic in generations [6] and a coded packet is a linear combination of the packets that belong to the same group, e.g. MORE [5]. This approach introduces a coding delay, because the source can send coded packets only after it has all the packets from a group, and a receiver can decode native packets only after it receives a number of independent linear combinations. Furthermore, this delay in the coding operations has a negative impact on the TCP performance in wireless environments. In order to avoid the coding delay, [8] presents online coding, where the source mixes the packets from the TCP congestion window and the receiver acknowledges every innovative linear combination it receives, even if it cannot decode a native packet immediately. This approach gives a new interpretation of the ACKs, and allows for a TCP-sliding window scheme for coding. However, this scheme is single path and the coding operations are performed end-to-end. For the rest of the paper we refer to this approach as TCP-ARQ. With these considerations in mind, we introduce CoMP, a network coding multipath protocol for WMN that extends current state-of-the-art and combines network coding with multipath routing to increase throughput for TCP sessions in 978-1-4244-6404-3/10/$26.00 ©2010 IEEE This full text paper was peer reviewed at the direction of IEEE Communications Society subject matter experts for publication in the IEEE ICC 2010 proceedings II. P ROTOCOL D ESCRIPTION In this section we describe the main aspects of CoMP. A. Multipath online coding For our multipath coding scheme, we use a similar approach as the one in [8], but with some essential differences. First, TCP-ARQ uses only one path to forward the packets from sender to receiver, while CoMP takes advantage of the path diversity characteristic of WMN and forwards packets along multiple paths. Second, in TCP-ARQ relays only forward the packets received from the upstream nodes and the coding is performed end-to-end. In our scheme, intermediate nodes reencode packets received from different upstream neighbors, on a hop-by-hop basis. In the next sections we discuss in more detail the mechanisms that we use to enable online network coding for multipath schemes. B. Online loss estimation and rate adaptation The rate at which nodes need to forward linear combinations to recover from losses remains an open research question. If the rate is too low, due to the unreliability of the wireless medium, receivers may not be able to decode. On the other hand, if the rate is too high, nodes may receive redundant linear combinations that consume network resources, but are not innovative. Moreover, since the wireless channel is variable in time, the rate of sending coded packets needs to be updated frequently enough to take into account current channel conditions. With these considerations in mind, we introduce an algorithm to estimate the loss between any two nodes and to distributedly compute the rate at which each node should forward linear combinations. 400 throughput (kbps) WMN. CoMP is situated below TCP/IP in the protocol stack. The main features of our protocol are as follows: • a multipath online network coding scheme that exploits the path diversity in a mesh network, and eliminates the delay problems introduced by coding (section II-A); • an algorithm to estimate the loss probability in the network and to adjust online the rate of sending linear combinations (section II-B); • a hybrid credit-based algorithm, where nodes compute distributedly the rate of generating linear combinations (section II-C); • a congestion control mechanism based on back-pressure (section II-D). We extensively evaluate CoMP using the ns-2.33 network simulator [1], and compare it to state-of-the-art protocols: Horizon [7], MORE [5], and TCP-ARQ [8]. The results show that CoMP not only achieves a higher throughput, but it is also more efficient, due to exploiting path diversity and re-encoding packets on a hop-by-hop basis. The paper is organized as follows. In section II we present our protocol with a detailed description of its features. Section III provides the results of our simulations and a comparison to Horizon, MORE, and TCP-ARQ. Section IV concludes with some final remarks. optimal real 300 200 100 0 0 0.2 0.4 ploss 0.6 0.8 1 Fig. 2. Evaluation of the loss estimation algorithm for the topology in Fig. 1. In order to estimate the loss, each node Nk keeps the following information: • pi : a list of the ids of the packets sent to each of its downstream neighbors, Ni ; • ri : the total number of packets that each of its downstream neighbors Ni reports it had received from Nk ; • skl : the id of the last packet that node Nk received from each of its upstream neighbors, Nl ; • tkl : the total number of packets that Nk received from each of its upstream neighbors, Nl . Node Nk updates the pi list whenever it sends a packet to downstream node Ni . skl and tkl are updated with each reception of a new packet from upstream neighbor Nl . Note that the update is done even if the packet is not innovative. Due to the broadcast nature of the wireless medium, a node may overhear the transmissions of its downstream neighbor, and we take advantage of this feature as follows. Whenever Nk has to send a packet, it piggybacks skl and tkl in the header for each of its upstream nodes, Nl . Next, its upstream neighbors can pick up the packet and find out the information they need to estimate the loss. Since the destination does not forward any linear combination, the previous approach cannot be used. However, the destination needs to send TCP ACKs to the sender, so it piggybacks skl and tkl on these packets. Once a node Nk receives feedback from one of its next hops, say Ni , it updates the information for the corresponding hop and computes the loss towards that hop, according to Alg. 1. If the node determines that a packet has been lost, it sends a redundant linear combination and adjusts the sending rate taking into account the total estimated nhloss. The total loss losskj , where nh that Nk sees is given by: lossk = j=1 represents the number of downstream nodes of relay Nk . We evaluate our loss estimation algorithm for the topology in Fig. 1, where two relays forward packets to destination. For the optimal curve, the nodes send packets at the optimal redundancy rate, which is computed based on the given loss probability. For the real case when the nodes use Alg. 1, the throughput is very close to the optimal one, see Fig. 2. Note that our loss estimation algorithm is accurate, and it does not incur any cost, since it piggybacks the needed information on the packets sent in the network. C. Hybrid credit-based scheme When multiple paths are used in parallel, one important decision is how much of the traffic needs to be sent through This full text paper was peer reviewed at the direction of IEEE Communications Society subject matter experts for publication in the IEEE ICC 2010 proceedings Algorithm 1 Loss estimation. Node Nk uses the feedback received from Ni to estimate the loss towards Ni , losski 1: if node Nk receives sik and tik from downstream neighbor Ni then 2: count no. pkts that Nk sent to Ni , ws = |C|, where C = {pi (j)/pi (j) ≤ sik , j = 1 : size(pi )} 3: compute no. pkts that Ni received from Nk , wr ← tik − ri r 4: losski = wsw−w s 5: ri ← tik 6: erase pi (j) for which pi (j) ≤ sik 7: end if each path. For the example in Fig. 1, if each node A, B and C generates a linear combination every time it receives a packet from the source, it results in an explosion of the rate, with the destination receiving several packets that are not innovative. To address this issue, [5] and [6] associate a credit with each packet sent in the network. The credits are created by the source, transfered to the downstream nodes and consumed at the destination. For CoMP, we use a hybrid credit-based scheme which has two parts. First, credits are generated at source and transfered to the forwarders, as the schemes mentioned above do. Second, credits can be generated by intermediate nodes as well whenever they detect a loss, which differentiates our approach from the existing ones. This second part enables each node to compute locally and distributedly the rate that it needs to send to recover the losses. D. Congestion control For multipath schemes in WMN, where multiple flows can traverse the same set of links, one must ensure fairness and balance the load among the available paths. To this end, we introduce a congestion control mechanism to select a forwarder for a packet, based on the backpressure methodology [9], which allows a node to send packets to a neighbor as long as the neighbor is less congested. The level of congestion is given by the size of the queue, i.e. the more packets are queueing at a node, the more congested the node is. For the congestion control mechanism, each node Nk keeps the following information for every flow that it forwards: • • an output queue, output bufferi , i = 1 : nf , where nf is the number of flows that node Nk forwards; the queue sizes of its next hops for each flow, qij , i = 1 : nf , j = 1 : nhi , where nhi is the number of next hops that Nk has for flow i. Whenever the node has the opportunity to transmit a packet in the wireless medium, it first selects the flow for which to forward a packet, as the one for which it queues the highest number of packets (see Alg. 2). After the flow is selected, Nk chooses the forwarder to be the node with the shortest output queue, say Nh , as long as the backpressure condition holds. Next, Nk removes the first packet from the output bufferf and it adds the packet id in ph , the list of packets sent to Nh . It adds in the header of the packet the size of its own queue, qf k for backpressure computation and for each of its upstream neighbors Nl , the id of the last received packet, Algorithm 2 Flow scheduling and forwarder selection. When sending a packet, node Nk selects a flow f and chooses the forwarder for that flow. Next, it updates the state information and it sends the first packet from the output bufferf . 2: select the flow f such that: f = argmax size(output bufferi ), i = 1 : nf 3: select forwarder: Nh = argmin qf j , j = 1 : nhf 1: i j remove P0 from output bufferf add id(P0 ) in ph list add qf k and (skl , tkl ) for each upstream neighbor Nl , in the header of P0 7: send P0 4: 5: 6: skl , and the total number of received packets, tkl , for loss estimation. Finally, Nk sends the packet. E. System Design For each flow f , every node keeps a coding bufferf and an output bufferf . The coding bufferf contains packets that the node uses to generate linear combinations. The source stores here native, uncoded packets, while the other nodes store linear combinations. The output bufferf contains coded packets that will be sent in the network. Packets are removed from the output bufferf whenever the node has the possibility to transmit a packet. In this case, a node first runs Alg. 2 to select a flow f and a forwarder Nh . After that, the node removes the first packet from the output bufferf , it updates the statistics for node Nh and it sends the packet. Sender. When a native packet of flow f is produced, the source stores it in the coding bufferf . Note that source performs online coding, which means that it generates a new linear combination every time it receives a new packet. To generate a coded packet, the source mixes all the packets from the coding bufferf and stores the resulting linear combination in the output bufferf (see Alg. 3). When the source receives a TCP ACK for flow f , it removes the oldest packet from the coding bufferf , thus sliding the coding window. Algorithm 3 Online coding at source. If a data packet arrives, the source stores it and generates a linear combination. m represents the size of the coding bufferf . The coefficients ci are randomly chosen from GF (216 ). If it receives a TCP ACK, the source removes the oldest packet from the coding bufferf . 1: 2: 3: 4: 5: 6: 7: 8: 9: receive packet Pk of flow f if Pk is DATA packet then store packet in the bufferf coding m generate LCk = i=1 ci Pi store LCk in the output bufferf else Pk is TCP ACK remove P0 from coding bufferf end if Relays. When receiving a coded packet LCr from flow f , an intermediate node Nk first removes from the coding bufferf those linear combinations that contain native packets older than those mixed in LCr . Then, he updates the state for the upstream neighbor Nl who sent LCr . The updated This full text paper was peer reviewed at the direction of IEEE Communications Society subject matter experts for publication in the IEEE ICC 2010 proceedings information is the id of the last received packet skl , and the total number of received packets, tkl . Next, if the coded packet is innovative, Nk stores it in the coding bufferf , otherwise Nk drops it (see Alg. 4). A relay generates and forwards a linear combination when it receives a credit. Note that a linear combination of coded packets is also a linear combination of the original packets. Algorithm 4 Coding at relays. The relay Nk receives a packet of flow f from neighbor Nl . m represents the size of the coding bufferf . The coefficients ci are chosen from GF (216 ) at random. 1: receive coded packet LCr of flow f 2: update coding bufferf 3: skl = id(LCr ); tkl ← tkl + 1 4: if LCr is innovative then 5: store LCr in the coding bufferf 6: if receive credit associated to LCr then m 7: generate LCj = i=1 ci LCi 8: store LCj in output bufferf 9: end if 10: else 11: drop LCr 12: end if Receiver. When destination Nd receives a linear combination of flow f , it updates the id of the last received packet and the total number of received packets for the sender. Next, it stores the coded packet only if it is linear independent with all the packets received previously. Since the source is coding online, then the destination decodes a native packet on the fly, if possible, and passes it up to the TCP layer (see Alg. 5). If no native packet can be decoded, the destination acknowledges the reception of the current packet to the source. III. P ERFORMANCE E VALUATION We evaluate our protocol through extensive simulations in ns-2.33 [1] and compare it to improved versions of Horizon [7], MORE [5], and TCP-ARQ [8]. Horizon estimates the TCP window and signals congestion to the TCP sender whenever the estimated value reaches a certain threshold. In our simulations, we feed Horizon with the actual TCP window size, not an estimate. Also, MORE sends probe packets periodically to estimate the loss in the network and adjusts the rate of sending linear combinations accordingly. For our implementation of MORE we use our algorithm to estimate losses instead, eliminating the overhead of sending probes. For TCP-ARQ, only the source sends redundant linear combinations and the authors state that the redundancy factor R should be adjusted online. Since the authors do not give any indication on how to adjust R online, we use our loss estimation algorithm Alg.1. A. Simulation Setup We run the protocols over the Roofnet topology provided at [2]. The losses are given by the Shadowing propagation model and depend on the distances between the nodes. We choose randomly 100 pairs of (source, destination) nodes and compute the routing information in MATLAB using a modified Algorithm 5 Decoding at destination. The destination Nd receives a linear combination. 1: receive coded packet LCk of flow f from neighbor Nl 2: sdl = id(LCk ); tdl ← tdl + 1 3: if LCk is innovative then 4: store LCk in the coding bufferf 5: if a packet can be decoded then 6: deliver the decoded packet to the TCP layer 7: else 8: send an ack to the sender 9: end if 10: else 11: drop packet LCk 12: end if version of the directed diffusion algorithm, reinforcing up to d paths [10]. By varying the number of reinforced paths d, we vary the number of downstream neighbors that a node can pick as next-hops for the packets. The average path length is of 2.5 hops. We disable RTS/CTS for all experiments. In order to simulate heavy loss conditions, we also disable MAC layer retransmissions for all the experiments. The rest of the parameters have the default ns-2.33 values. We use the following metrics to evaluate our protocol: • throughput measured at destination (decoded rate); • efficiency, defined as the ratio of the goodput at destination to the total throughput transmitted in the network; • relative improvement of CoMP over the other protocols, defined as the ratio of the throughput obtained with CoMP to the throughput obtained with the other protocols; • aggregate throughput only for the case when multiple flows are running in parallel in the network. The aggregate throughput is computed as the sum of the individual throughput of all flows that run simultaneously. For all the figures, each point is the average of at least 10 runs such that the standard deviations for the different protocols do not overlap. B. Overall Results In this section we discuss the results for different scenarios. 1) Multiple paths: In this case, there is only one flow active in the network at a time. Note from Fig. 3(a) that CoMP achieves significantly higher throughput than the other protocols, and it can yield an improvement of 10x over TCPARQ and more for Horizon and MORE (see Fig. 3(c)). There are about 20% of flows in the network for which the source and the destination are one hop away, and for those flows TCP-ARQ has a similar performance to CoMP. If the paths are longer, then TCP-ARQ is more sensitive to losses. Horizon achieves a lower throughput because it relies on TCP retransmissions to recover every lost packet. MORE’s throughput decreases significantly if the generation size increases due to the additional delay introduced by coding. Regarding the efficiency, we compute it as the ratio of the decoded rate at destination to the total rate sent into the network, and therefore for a 2-hop long flow, the maximum efficiency can be equal to 0.5. CoMP generally outperforms This full text paper was peer reviewed at the direction of IEEE Communications Society subject matter experts for publication in the IEEE ICC 2010 proceedings 1 1 0.8 0.8 0.6 0.6 1 0.8 CoMP, 2 paths Horizon, 2 paths MORE, 2 paths, g size =2 MORE, 2 paths, gsize = 5 TCP−ARQ, 1 path 0.4 0.4 0.4 CoMP Horizon TCP−ARQ MORE 0.2 0.2 0 0.001 CDF CDF CDF 0.6 0.01 0.1 1 10 throughput (kbps) 100 0 0 1000 0.2 (a) Throughput 0.4 0.6 efficiency 0.8 Horizon TCP−ARQ MORE 0.2 0 0.1 1 1 10 100 1000 relative improvement 10,000 100000 (b) Efficiency (c) Relative improvement of CoMP over the other protocols Fig. 3. Roofnet topology with only one flow active in the network. Nodes have at most two downstream neighbors (i.e. two reinforced paths, d = 2). 1 1 0.8 0.8 0.8 0.6 0.6 0.6 0.4 0.4 Horizon, 2 paths CoMP, 2 paths TCP−ARQ, 1 path 0.2 0 0 CDF CDF CDF 1 100 200 300 400 500 aggregate throughput (kbps) 600 700 (a) Aggregate throughput for 2 flows 0.4 Horizon, 2 paths CoMP, 2 paths TCP−ARQ, 1 path 0.2 0 0 0.2 0.4 0.6 efficiency 0.8 Horizon, 2 flows TCP−ARQ, 2 flows Horizon, 4 flows TCP−ARQ, 4 flows 0.2 1 0 −1 10 0 10 1 2 10 10 relative improvement 3 10 4 10 (b) Efficiency for 4 parallel flows (c) Relative improvement of CoMP over the other protocols Fig. 4. Roofnet topology with multiple flows running in parallel. Nodes have at most two downstream neighbors (i.e. two reinforced paths, d = 2). the other protocols, except for the 20% flows that are one-hop long and TCP-ARQ is equally efficient (see Fig. 3(b)). 2) Multiple flows: In Fig. 4 we show the results for the case when multiple flows run in parallel in the network. Since MORE’s performance degrades very quickly as the generation size increases, we do not take it into account for this case. Notice from Fig. 4(a) that for 60% of the flows, the aggregate throughput obtained when two sessions run concurrently in the network is higher with CoMP than with TCP-ARQ. This happens for performance-challenged flows, where paths are long and experience high losses. For these situations, using one extra path together with coding hop-by-hop instead of end-to-end increases throughput. On the other hand, for the case when paths are short and possibly physically overlapping, using one more path increases the interference, thus having a negative effect on the throughput obtained with CoMP. The effect of the interference can also be noticed from Fig. 4(c), where 20% of flows have a relative improvement less than 1, meaning the throughput is lower with CoMP than with TCPARQ. Horizon achieves a throughput close to 0 for almost 80% of the flows, due to the fact that it does not offer any reliability in an extremely volatile environment. In terms of efficiency, CoMP outperforms the other protocols for 55% of the flows. For the 20% of one-hop flows, TCPARQ achieves equal efficiency, since multiple paths cannot be exploited. There are another 25% of flows for which CoMP is slightly less efficient than TCP-ARQ, because even if with CoMP the destination receives a higher throughput, there are also more packets sent into the network, lowering efficiency. IV. C ONCLUSIONS In this paper we presented CoMP, a network coding multipath protocol that improves TCP performance in lossy environ- ments by combining online coding and multipath techniques. CoMP uses an online algorithm to estimate current loss conditions in the network and to adjust the rate of sending coded packets. CoMP relies on a feedback mechanism for TCP, where destination acknowledges the independent linear combinations that it receives, instead of decoded packets. All these features allow a seamless interaction between CoMP and TCP. We show through extensive simulations the advantages of our protocol over the current state-of-the-art in terms of throughput and efficiency. R EFERENCES [1] The network simulator - ns-2. http://nsnam.isi.edu/nsnam/index.php/. [2] The roofnet. http://pdos.csail.mit.edu/roofnet/doku.php. [3] R. Ahlswede, N. Cai, S.-Y. R. Li, and R. W. Yeung. Network information flow. IEEE Trans. on Information Theory, 46(4):1204–1216, July 2000. [4] H. Balakrishnan, V. N. Padmanabhan, S. Seshan, and R. H. Katz. A comparison of mechanisms for improving tcp performance over wireless links. ACM/IEEE Transactions on Networking, 1997. [5] S. Chachulski, M. Jennings, S. Katti, and D. Katabi. Trading structure for randomness in wireless opportunistic routing. Technical report, MIT, Feb. 2007. [6] C. Gkantsidis, W. Hu, P. Key, B. Radunovic, P. R. Rodriguez, and S. Gheorghiu. Multipath code casting for wireless mesh networks. In Proceedings of CoNEXT, 2007. [7] B. Radunovic, C. Gkantsidis, D. Gunawardena, and P. Key. Horizon: Balancing tcp over multiple paths in wireless mesh networks. Technical report, Microsoft Research, 2008. [8] J. K. Sundararajan, D. Shah, M. Medard, M. Mitzenmacher, and J. Barros. Network coding meets tcp. In Infocom, 2009. [9] L. Tassiulas and A. Ephremides. Stability properties of constrained queueing systems and scheduling policies for maximum throughput in multihop radio networks. IEEE Transactions on Automatic Control, 37:1936–1948, 1992. [10] A. L. Toledo and A. X. Wang. Efficient multipath in sensor networks using diffusion and network coding. In Proceedings of the 40th Annual Conference on Information Sciences and Systems, pages 87–92, 2006.