• 沒有找到結果。

2.1. Network Coding

There are two common topics of network coding — XOR and linear combination. The XOR operation is usually used on physical layer, because of its properties of easiness, simple and high speed operation. It can be implement as hardware circuit. Contrarily, the linear combination is most used on application layer, which is a little more complex and needs more computations.

2.1.1. XOR Operation

The XOR of network coding was first described in [1]. To explain briefly by a simple equation: A!(A!B)=B. When I owned data A, I will get data B if I receive data (A!B).

This simple characteristic let different nodes to get different data from the same broadcast message, if they had different data before. Several transmissions would be done by one broadcast. According to this, many researches about XOR were made [6-8]. In 2006, S.

Katti, H. Rahul, W. Hu, D. Katabi, M. Médard, and J. Crowcroft successfully implemented the practical wireless network coding [5]. They proposed COPE to realize the XOR operation of network coding, and run it on the 802.11 roofnet. The routers in COPE mix packets based on four topologies. The COPE really gave us an impressive performance improvement.

Fig.2-1 shows the scenario of data exchange. Data x is sent from node A to node B via node R, y is sent from B to A via R. In traditional routing as Fig.2-1(a), A will send x to R, then R forward it to B. Similarly, B send y to R, then R forward it to A. This exchange will take 4 transmissions.

Chapter

Figure 2-1. Application of XOR

In network coding as Fig.2-1(b), both A and B will send data to R first, then R mix the data x and y into (x!y). Node R consequentially broadcast (x!y). When A receive (x!y), it will get y easily if it takes XOR operation again on the x and (x!y). Similarly, B can get x from y and (x!y). Such that, two transmissions are complete in a broadcast. The exchange in network coding takes only 3 transmissions. This easy example shows that network coding can reduce the number of transmissions in the same situation.

2.1.2. Linear Combination Operation

The Linear combination of network coding was usually used on large data file. The most common applications is P2P sharing [9, 10]. A source node creates a lot of linear combinations and sends to different destinations. The destinations share all linear combinations each other. The advantage of linear combination is that destinations collect data in high speed. The source creates an unique linear combination for each destination, such that each destination can poll data from all nodes. In other word, all nodes will become source, any pieces of linear combination is useful. In traditional way, destinations can only poll data from nodes who has the different data blocks. The collecting speed falls down as the percentage of collection increasing. Because the nodes who have the remainder data blocks are fewer and fewer. Linear combination has a main problem: the collector cannot know any info of the data before completion. Thus it doesn’t support preview before the whole data are completely restored.

y

(a) Traditional (b) Network Coding

Figure 2-2. Application of linear combination

Fig.2-2 show a scenario of P2P sharing. Host A is the source, the others are destinations. In traditional P2P, host A splits the sharing data and randomly sends a piece of data to a destination. Assume the host B~E have received a piece from A, as shown in Fig.2-2(a).

Host B has x now, so it can only get new data from the hosts who have y. The target host set of B is {A, C, E}. Host D owns x as B does. B cannot get new data from D, so D is an useless host for B.

In case of network coding, host A sends a linear combination to each destination. Each destination has received an unique data from A, as drew in Fig.2-2(b). Let’s take a look on host B, B has a data piece (x+y), no other hosts have the same data as B. B can get new data

data pieces. The source host set of B is {A, C, D, E}. P2P with network coding allows the peers to get new data from more sources than the traditional one. It can certainly improve the sharing efficiency.

2.2. Delivery Rate

The researches about delivery rate were almost focus on physical layer. Only a few people develop delivery rate on MAC layer. Chi-hsien Lin, Hui Dong, Upamanyu Madhow and Allen Gersho proposed an interesting method in 2004 [11]. Their research was to combine two little data fragment, then sent redundancy for a higher delivery rate. The data loss occurs only if two continuous packets were both loss. This easily modification makes the loss rate from p to p2. Besides, the intermediate nodes could regenerate the loss packet by its previous and next packets. These two graceful schemes keep the loss rate much lower than the original. However, the combination of fragments in their research can only apply on small data fragments (real-time voice). The overhead will be twice if it is applied to the general size packets.

Szymon Chachulski, Michael Jennings, Sachin Katti and Dina Katabi proposed MORE in 2007 [13]. MORE is an improved version of multi-path routing protocol based on ExOR [12]. It transmits a lot of packets in a batch. The packets in the same batch will be encoded by linear combination. These coded packets were sent to destination via different paths. The relay nodes will forward the packets they received correctly. By the characteristic of linear combination, MORE decreases the number of retransmission of ExOR. The delivery rates of a packet in MORE and ExOR are the same, but MORE improves the delivery ratio of a batch of packets indeed.

The MORE encodes a batch of packets. The data can only be decoded when the whole batch was received. Thus MORE cannot support real-time traffic. Besides, the MORE improves the delivery ratio of a batch, which may over several hops. We want to designed a

相關文件