• 沒有找到結果。

Related Works

2.2 Benefits of Network Coding

1 2

1 2

1 2 1 2

Figure 2.1: Example of network coding gains

2.2 Benefits of Network Coding

In [23], Fragouli et al. estimate several network coding techniques, and analyze the several benefits that may be brought from network coding. Improvement on the network throughput is the most intuitive, and just like we depicted in previous section, the butterfly network.

In this section, we present two examples with Fig. 2.1, which are depicted in [23]. In Fig.

2.1(a), we depict the dead spots scenario in wireless environment, and then we depict the multicast with the scenario of possible retransmission in Fig. 2.1(b). These two examples show that efficient reliability can be achieved by network coding techniques.

In 2.1(a), the successful delivery rate is labeled on the links. S is the source node and it has packets to destination D, but D is not within the S’s transmission range. The nearby

nodes Ri, where i is from 1 to 5, have the responsibility to relay packets to D. The links between Ri and D have 100% successful probability, however, there are only 20% between S and Ri. S is in a dead spot case, in which case all links to its nearby nodes have low delivery rate. In the traditional 802.11 networks, S must choose the best path to D. In this case, there is no special choice because each path has equal delivery rate. The total transmission times on average are 6 times per packet, that is, 5 times for S transmitting the packet to designate relay node and once for the relay node to D. We now consider another routing protocol called opportunistic routing protocol. Instead of unicasting packets to a designate relay node, S well uses the path diversity of wireless networks and broadcasts the packets to multiple relay nodes. The relay nodes who receive these packets work as designate relay node and relay the packets to D. In this way, the successful delivery rates from S to the relay nodes Ri increases from 20% to (1 − 0.85) × 100% = 67.2%. This is the probability of at least one relay node receiving the packet since the nodes who receive the packet would relay the packet to D as designate relay node dose. Thus, the total transmission times on average decreases from 6 times per packet to 2.5 times per packet (1.5 times for S to relay nodes and once for relay nodes to D). Comparing with the traditional 802.11 routing, the networks with opportunistic routing improve the throughput about 2.4 times in this case. However, there are some problems behind opportunistic routing protocol. That is, broadcast storm may happen and large amount of duplicate packets may be generated because each relay node attempts to transmit the same packets. This will waste the wireless bandwidth. The combination of path diversity and network coding provides an elegant solution to solve this problem. Assume

S has n packets to be transmitted. In each transmission, S generates a linear combination of the form p0i = P n

j=1cijpj, and broadcasts it to its relay nodes. The nodes who receive p0i can participate in relaying packets to D, and they generate a new linear combination of the packets received before. The purpose of this step is to increase the variations of linear combinations such that every transmission surely carries partial information of the original n packets. As a result, it will decrease the number of duplicate packets flooding in the network because each coded packet surely carries useful information. Once the destination D receives any n packets with n linearly independent coefficient vectors, D can decode and recover the original n packets by simple matrix inversion. And then D will schedule an ACK to notify the relay nodes and source S of the successful transmission. S and the relay nodes who receive the ACK will stop generating and broadcasting a new linear combination. The approach described above provides a more efficient solution to reliability. That is because each coded packet contains partial information of the original packets. The sender has no need to care about which the packet is and just keeps sending linear combinations to the destination until the destination has enough information to decode the original packets.

In other words, without network coding, the sender should exactly know which packets the destination misses, and retransmit them to the destination. This mechanism relies on feedbacks between source and destination; however, this will significantly consumes wireless bandwidth to communicate feedbacks reliably in a unreliable wireless environment. Contrary, with network coding, we just need one ACK as feedback to notify the sender of the successful transmission. It is more bandwidth-saving and more efficient. Above idea is adopted and

implemented by MORE protocol which is proposed in [24], and we will further introduce it in next section.

In 2.1(b), we describe a multicast scenario. S wants to multicast a video stream or data stream to both D1 and D2. S first transmits p1 and p2 to relay node R, and then R broadcasts p1and p2to D1and D2. Because the wireless receptions of different nodes is highly independent according to the analysis in [25, 26], it is possible that when R broadcasts p1 and p2, D1 only receives p1 while D2 only receives p2. In this situation, R should retransmit p1

to D2 and p2 to D1 respectively. Using network coding, R can simply broadcasts p1⊕ p2 and then both D1 and D2 can recover their corresponding losses in a single transmission(this is just like we does in the butterfly example). This approach provides a more efficient reliability than traditional retransmission mechanism.

相關文件