Related Works
2.3 Implementation on Network Coding
In the wireless networks, broadcast nature of wireless communication provides a good envi-ronment to implement network coding schemes. Because of the broadcast nature of wireless medium, receivers can receive packets if they are within the transmission range of the sender.
Moreover, when a wireless device transmits packets to the next-hops, there is high proba-bility for 1-hop neighbors to overhear packets. The broadcast nature can satisfy both path diversity and multicast condition that are required for implementing network coding. Hence, the wireless environment is applicable for the implementation of network coding.
Recently, researchers focus on the possibility of implement network coding on wireless networks such as ad-hoc networks, mesh networks, WiFi, etc. In the presence of omni-directional antenna, the problem of minimizing communication costs can be formulated by linear programming and solved in a distributed manner [27].
In [24], Chachulski et al. implement a MAC-independent opportunistic routing protocol called MORE. The MORE architecture inserts a MORE-layer between IP-layer and network-layer. It well exploits the natures of wireless networks, that is, broadcast nature of the wireless medium, path diversity, and the large amount of data redundancy. Source nodes divide a file into batches of K segments and transmit the linear combination of the K segments. MORE-layer header is used to record the coefficient vector, and the built in forwarding list which is a list of intermediate nodes that are responsible for forwarding the coded segment. The nodes which have the responsibility for forwarding the coded segments randomly pick coefficient vectors to compute a new linear combination of the segments received so far and rebroadcast this coded segment into networks. At the destinations, once receiving the K segments which have K linear independent coefficient vectors, the node can recover the original batch by using simple matrix multiplication:
, where pi represent the segment before linear coding in current transmitting batch, and
p0i represent the coded segment whose coefficient vectors is −→ci =< ci1, ..., ciK >, for all i from 1 to K. MORE is implemented on a 20-node testbed and it demonstrates the great improvement on network throughput. The coding style that MORE exploits is usually called intra-flow network coding because the segments which are coded into a coded segment are all sent to the same destination.
Oppose to MORE, in [5], Katti et al. proposed a new network coding technique for wireless mesh networks, called COPE, which is implemented in a coding layer also inserted between the IP and MAC layers like MORE and features in opportunistic coding in a single transmission to increase the system throughput. COPE introduced two features of wireless network coding:
• Opportunistic listening: Due to the broadcast nature of wireless communications, nodes can overhear packets sent by their neighbors. In order to make use of this feature, nodes are set in a promiscuous mode and use the overheard information to decode a coded packet.
• Opportunistic coding: A node may have many ways to learn the information of what its neighbors have heard so far, such as periodical reports sent by the neighbors or pre-dicting based on routing protocol. While sending packets, a node uses this information to code the payload of multiple packets by the XOR operation when each receiver has sufficient information to decode the coded packet. To distinguish the difference coding style from MORE, this kind of coding style is called inter-flow network coding because the coded packets are mixed by the packets sent to different destinations.
2 1
1 2 2
1
2
1 2 1 2
1
Figure 2.2: ”X”-Topology example
COPE demonstrates the possibilities of putting network coding into practice. An example extended from Alice-and-Bob scenario can give us an intuition of the great benefits brings from network coding. In the real networks, the probability of the occurrence of the Alice-and-Bob scenario is quite low. However, One can always assume that the ”X”-topology depicted in Fig. 2.2 exists in the real networks. In fact, we can view the real networks as the combination of many small ”X”-topology networks. In Fig. 2.2, R represents the mobile router where two information flows intersect at. There are two source S1 and S2
that have data for destination D1 and D2, respectively. Both S1 and S2 need the help of R to forward their packets. However, D1 is within the transmission range of S2, and D2 is in the transmission range of S1. Because of the broadcast nature of wireless network, D1
can overhear the packet p2 sent by S2, and D2 can overhear the packet p1 sent by S1. This situation provides the great opportunities for using network coding techniques. A simple
way is XORing p1 and p2 at the intermediate node R, and let R broadcast the XORed packet of p1 and p2. Both D1 and D2 can extract the packets that they intend because both of them have possessed the partial information (i.e. p1 or p2) of the XORed packet. The total latency is reduced by 1/4 comparing with original unicast transmission. The authors well exploit the property of this ”X-topology” and experiment on three topologies: Alice-and-Bob, ”X”-topology, and the cross topology. It really demonstrates the great utility of network coding.
In this thesis, we adopt these two features, Opportunistic listening and Opportunistic coding, from COPE and further introduce a new feature in our work. We have two observa-tions from COPE. First, COPE always codes packets that are intended by certain neighbors.
Second, each node maintains a information pool to record the overheard packets and uses the packets in the information pool to decode packets. Base on the above observations, a packet may not be XORed into a coded packet if 1) it is not intended by a certain next-hop or 2) the packet can not decode for a receiver by decoding procedure due to the lack of sufficient information in the receiver’s information pool. If the first observation is relieved from COPE, there may have more information disseminated to the neighbors of a node and then increase the probability of coding more packets in the future transmission. Therefore, we introduce a new feature, called opportunistic information dissemination, which tries to XOR as many packets as possible into a coded packet even if some packets are not intended by the receivers.