# Network Coding for Wireless Networks

## Presentation on theme: "Network Coding for Wireless Networks"— Presentation transcript:

Network Coding for Wireless Networks
Wireless Communication Project by Group 2 Shang Shang Ma Rong Yang Yang Wang Chen

Network Coding for Wireless Networks
INTRODUCTION 1 COPE DESCRIPTION 2 COPE IMPLEMENTATION 3 分工 ANALOG NETWORK CODING 4

Introduction Why? Network Coding What? Definitions

Definitions Max-flow Min-cut Theory Unicast, Multicast Through- put 1
2 Unicast, Multicast 3 Through- put The main advantage for network coding, as an original purpose of this topic, is its high transmission capacity with the max-flow, which means by employing network coding, the theoretical upper bound of transmission rate can be achieved by the sender. Due to the fact that all sessions do not need to have the same distribution trees according to some coding algorithm in transmission, the multisession IP can provide effective network resource utilization[1]. Besides, network coding has an effect on load balance and bandwidth saving , which also provide an alternative method as traffic engineering[4]. Using linear programming formulations, the maximum throughput that a multicast application can achieve with network coding in unreliable ad hoc networks is 65% higher than conventional multicast[5]. Another advantage for network coding is its superior performance in reducing the number of retransmissions in lossy networks compared to end-to-end automatic repeat request(ARQ) in both low-loss and high-loss regimes. We hypothesize that network coding achieves a logarithmic reliability gain with respect to multicast group size compared to a simple ARQ scheme[6].

Max-Flow Min-Cut Theorem
(From Wiki) The max-flow min-cut theorem is a statement in optimization theory about maximal flows in flow networks The maximal amount of flow is equal to the capacity of a minimal cut. The maximum flow in a network is dictated by its bottleneck. [1] S.-Y. R. Li, R. W. Yeung, and N. Cai, “Linear network Coding”, IEEE Trans.

Graph Graph G(V,E): consists of a set and a set V of vertices
V consists of sources, sinks, and other nodes A member e(u,v) of E has a to send information from u to v V of vertices E of edges. capacity c(u,v) S A B D C T A B 3 2 4 S T D C

Min-Cuts and Max-Flows
Cuts: Partition of vertices into two sets Size of a Cut = Total Capacity Crossing the Cut Min-Cut: Minimum size of Cuts = 5 Max-Flows from S to T Min-Cut = Max-Flow S A D 3 2 B C T 4 S A B D C T 3 2 4 3 2 3 2 3 2 1

Multicast communication is one-to-many. Unicast communication is one-to-one. Broadcast communication is one-to-all. Broadcast Multicast Unicast

Throughput The amount of data transferred from one place to another or processed in a specified amount of time. Data transfer rates for disk drives and networks are measured in terms of throughput. Typically, throughputs are measured in kbps, Mbps and Gbps.

Wire vs Wireless Wire vs Wireless WIRE WIRELESS Traffic Pattern
An edge between two nodes means that the two nodes are physically connected. Multicast communication is studied while network coding of multiple unicast flows remains a largely unknown territory. The traffic rate (or distribution) is predetermined and do not change. The channel of one particular edge is actually shared by other neighboring edge. Unicast communication is the dominate traffic pattern. Traffic rates are varies over time rather than constant. Network Modeling Wire: 1) Network Modeling Currently, when we want to translate a real network environment into a math model, we just translate the network into a graph where an edge between two nodes means that the two nodes are physically connected(or the radio range allows the two nodes to communicate). 2) Traffic Pattern Multicast communication is studied with network coding of multiple unicast flows remains a largely unknown territory. Moreover, the sender and receiver are fixed and given. 3) Traffic Rate The traffic rate (or distribution) is predetermined and do not change. Wireless: 1) Broadcast is a nature characteristic for wireless communications, which means when the nodes are transmitting, all the nodes that have direct edge linking with it are affected. The channel of one particular edge is actually shared by other neigbhoring edge. So the math model of wireless network have more restriction than its wired counterpart. 2) Unicast communication is the dominate traffic pattern. In a random wireless environment, there are actually multiple unicast session with different senders and receivers. They do not signal their desire to communicate, but just start sending packets. 3) Traffic rate are bursty and varies over time rather than constant. 4) Connectivity in a wireless network is highly variable due to changing channel and medium conditions. This unpredictable nature makes the wireless network even harder for modeling. Traffic Pattern Traffic Rate

Introduction Definitions Network Coding Why? What?

What is NETWORK CODING Network Coding is a field of information theory and coding theory and is a method of attaining maximum information flow in a network. Network Coding Theory points out that it is necessary to consider encoding/decoding data on nodes in network in order to achieve optimal throughput.

Multicast Problem Butterfly Networks: Each edge’s capacity is 1.
Max-Flow from A to D = 2 Max-Flow from A to E = 2 Multicast Max-Flow from A to D and E = 1.5 Max-Flow for each individual connection is not achieved. A B C F G D E 1 1 0.5 1 0.5 1 1 1 1 0.5 0.5 1 1

With network coding, every sink obtains the maximum flow.
Ahlswede et al. (2000) With network coding, every sink obtains the maximum flow. b1 b2 B C b1 b2 F b1+b2 b1+b2 G D E [2] Rudolf Ahlswede, Ning Cai, Shuo-Yen Robert Li, and Raymond W. Yeung. Network information flow.

COPE COPE is an opportunistic approach to network coding to increase the throughput of wireless mesh networks. COPE inserts a coding layer between the IP and MAC layers, which identifies coding opportunities and benefits from them by forwarding multiple packets in a single transmission. [3] S. Katti, D. Katabi, W. Hu, and R. Hariharan, “The importance of being opportunistic: Practical network coding for wireless environments

An information exchange scenario
Relay Alice Bob Bob’s packet Alice’s packet Alice’s packet Bob’s packet Multi-hop unicast requires 4 transmissions Can we do better?

Can Network Coding help - An idea
XOR = Relay Alice Bob Bob’s packet Alice’s packet Alice’s packet Bob’s packet 3 transmissions instead of 4 Saves bandwidth & power 33% throughput increase

Analog Network Coding Analog network coding mixes signals instead of bits. Wireless routers forward signals instead of packets. It achieves significantly higher throughput than both traditional wireless routing and prior work on wireless network coding(COPE). Traditionally, interference is considered harmful. Wireless networks strive to avoid scheduling multiple transmissions at the same time in order to prevent interference. This paper adopts the opposite approach; it encourages strategically picked senders to interfere. Instead of forwarding packets, routers forward the interfering signals. The destination leverages network-level information to cancel the interference and recover the signal destined to it. The result is analog network coding because it mixes signals not bits. So, what if wireless routers forward signals instead of packets? Theoretically, such an approach doubles the capacity of the canonical 2-way relay network. Surprisingly, it is also practical. We implement our design using software radios and show that it achieves significantly higher throughput than both traditional wireless routing and prior work on wireless network coding.

Introduction Definitions Network Coding What? Why?

Why is NETWORK CODING 1 2 3 Improve network throughput
Superior performance in reducing the number of retransmissions in lossy networks The main advantage for network coding, as an original purpose of this topic, is its high transmission capacity with the max-flow, which means by employing network coding, the theoretical upper bound of transmission rate can be achieved by the sender. Due to the fact that all sessions do not need to have the same distribution trees according to some coding algorithm in transmission, the multisession IP can provide effective network resource utilization[1]. Besides, network coding has an effect on load balance and bandwidth saving , which also provide an alternative method as traffic engineering[4]. Using linear programming formulations, the maximum throughput that a multicast application can achieve with network coding in unreliable ad hoc networks is 65% higher than conventional multicast[5]. Another advantage for network coding is its superior performance in reducing the number of retransmissions in lossy networks compared to end-to-end automatic repeat request(ARQ) in both low-loss and high-loss regimes. We hypothesize that network coding achieves a logarithmic reliability gain with respect to multicast group size compared to a simple ARQ scheme[6]. network coding improves the robustness of the system and is able to smoothly handle extreme situations where the server and nodes leave the system 3 Is able to smoothly handle extreme situations where the server and nodes leave the system

Wireless Communication Project by Group 2
COPE Wireless Communication Project by Group 2

Opportunistic listening Opportunistic routing
Contents General idea 1 Opportunistic listening 2 Opportunistic coding 3 Opportunistic routing 4

General idea of cope What is cope?
Cope is an opportunistic approach to network coding to increase throughput of wireless mesh networks. The main characteristic of COPE is opportunism. What is opportunism?

Opportunistic routing
General idea of cope Opportunistic listening Opportunistic coding Opportunistic routing

General idea of cope A C B E D

Opportunistic Listening
1.Nodes have opportunities to hear packets even when they are not the intended receiver. 2.Nodes store all the packets they hear within a limited time slot T. 3.Nodes send reception reports to their neighbors, helping to create more coding opportunities.

E1:B to E A1:D to A pool A Que A B E D C B E Output E1 E2 E3 pool D

E1:B to E A1:D to A pool A Que A B E D E1 C B E E1 Output E2 E3 pool

E1:B to E A1:D to A pool E1 A Que A B E D C B E E1 Output E2 E3 pool

E1:B to E A1:D to A pool E1 I have E1 A Que E1 A B E D C B E Output E2

E1:B to E A1:D to A pool E1 A Que E1 A B E D C B E Output E2 E3 pool D

E1:B to E A1:D to A pool E1 A Que E1 A B E D C B E Output E2 E3 pool

E1:B to E A1:D to A pool E1 A Que E1 A B E D C B A1 E A1 A1 Output E2

E1:B to E A1:D to A pool E1 A Que E1 A1 A B E D C B E I have A1 Output

E1:B to E A1:D to A Node A have packet E1 Node A want packet A1
So I can give Node A E1+A1 Coding opportunity Node E have packet A1 Node E want packet E1 So I can give Node E E1+A1 pool E1 A Que E1 A1 A B E D C B E Output E2 E3 pool A1 E1:B to E A1:D to A D Output A2 A3

E1:B to E A1:D to A Coding opportunity pool E1 A Que E1 A1 A B E D E1
Output E2 E3 pool A1 E1:B to E A1:D to A D Output A2 A3

E1:B to E A1:D to A Coding opportunity pool E1 A Que A E1 B E A1 D
Output E2 E3 pool A1 E1:B to E A1:D to A D Output A2 A3

E1:B to E A1:D to A pool E1 A Que A E1 B E A1 D E1+A1 E1+A1 C B E
Output E2 E3 pool A1 E1:B to E A1:D to A D Output A2 A3

E1:B to E A1:D to A pool E1 E1+(E1+A1)=A1 A1 received! E1+A1 A Que A
Output E2 E3 pool A1 A1+(E1+A1)=E1 E1 received! E1:B to E A1:D to A D Output A2 A3

Opportunistic Coding How can the node decide which packets needed to XOR together? Each node should answer this question based on local information and without consulting with other nodes. Each node has several options to decide which packets to XOR together to gain the maximum throughput.

Opportunistic Coding C A B D

Opportunistic Coding Packets Next Hops B’s queue Node P1 A P4 P3 P2 P1

Opportunistic Coding P1----- A P2-----B P3----- C P4----- D + = =
Packet node P A P2-----B P C P D P1 + = P2 P4 P1 P4 P3 P2 P1 C A B P4 P3 D = P1 + P2 P3 P1 Bad coding decision

Opportunistic Coding P1----- A P2-----B P3----- C P4----- D + = =
Packet node P A P2-----B P C P D P1 + = P3 P4 P1 P4 P3 P2 P1 C A B P4 P3 D = P1 + P3 P3 + = P1 P3 P1 Better coding decision

Opportunistic Coding P1----- A P2-----B P3----- C P4----- D + + =
Packet node P A P2-----B P C P D P4 + P1 + = P3 P4 P1 P4 P3 P2 P1 C A B P1 + P3 + = P4 P4 P3 D P4 + P3 + = P1 = P1 + P3 + P4 P3 P1 Best coding decision

Opportunistic Coding Theory: To transmit n packets, p1,…,pn, to n receivers, r1,…,rn, a node can XOR the n packets together only if each intended receiver ri has all n-1 packets pj for j not equals to i.

ri Opportunistic Coding P1…Pi-1,Pi+1…Pn ri-1 :XOR P1 to Pn Pi-1 Pi P3
rn-2 P2 Pn-1 P1…Pi-1,Pi+1…Pn P1…Pi-2,Pi…Pn r2 rn-1 P1 Pn r1 rn :XOR P1 to Pn

Opportunistic Coding Whenever a node has a chance to transmit a packet, it tries to find the largest n that satisfies the above rule. The node tries to maximize the number of packets delivered in a single transmission.

Opportunistic Routing
Can we further reduce the number of transmissions? 1.The path is stored in the packet itself. 2.Check the path, find the opportunities to routing.

Opportunistic Routing
Path: SABD Reception report Destination source A S B D

Conclusion Main idea of cope: 1.Overhear on the medium.
2.Learn the status of its neighbors. 3.Detect coding opportunities. 4.Code as long as the receivers can decode.

COPE IMPLEMENTATION & PERFORMANCE

Agenda Data Structure for each node Pseudo broadcast mechanism

DATA STRUCTURE

A SCENARIO Packet Delivery RR Reception report P IP packet Ack
B P RR Reception report C P P P P D P P P IP packet Ack G IP acknowledge E F P P

A SCENARIO(II) Packet acknowledge RR Reception report P IP packet Ack
B Ack RR Reception report C Ack D P IP packet Ack G IP acknowledge E Ack Ack F

A SCENARIO(III) Reception Report RR Reception report P IP packet Ack
B RR RR RR Reception report C RR RR RR RR D P RR RR IP packet Ack G IP acknowledge RR RR E RR RR RR F RR RR

DATA STRUCTURE RR Reception report P IP packet Ack IP acknowledge A B
F G RR Reception report P IP packet Ack IP acknowledge

DATA STRUCTURE In Node C Output Queue： Retransmission pool：
Upper Layer Output Queue： P6 P5 P4 P3 P2 P1 P1 Retransmission pool： RR Packet Transmitted Reception report IP packet Ack IP acknowledge

DATA STRUCTURE In Node C Output Queue： Retransmission pool：
Upper Layer Output Queue： Ack P6 P5 P4 P3 P2 Retransmission pool： P1 can be deleted Ack Received RR P1 P1 Reception report If ack is not received after a long time P1 returns to Output Queue to wait another transmission opportunity IP packet IP acknowledge

DATA STRUCTURE In Node C Output Queue： Retransmission pool：
Upper Layer Output Queue： Px P6 P5 P4 P3 P2 P1 Retransmission pool： Px is head for node D Not C. Reception report Opportunity Listening Queue： RR：a,b,c,d,x IP packet Pa Pb Pc Pd Ack If node C receive a neighbor’s packet whose destination is not C, Node C just put the packet into the above queue. Periodical,Each node inform its neighbor about what they’ve got in its Opportunity Listenning Queue. That is , Reception Report IP acknowledge

DATA STRUCTURE In Node C …… ………………………… Output Queue：
RR from A Upper Layer Output Queue： P6 P5 P4 P3 P2 P1 Retransmission pool： Reception report Opportunity Listening Queue： IP packet Pa Pb Pc Pd Px Neighbors’ virtual Queue： A queue B queue D queue …… ………………………… Ack IP acknowledge

DATA STRUCTURE In Node C …… ………………………… Output Queue：
Upper Layer Output Queue： P6 P5 P4 P3 P2 P1 Retransmission pool： Used for decoding Reception report Opportunity Listening Queue： IP packet Pa Pb Pc Pd Px Neighbors’ virtual Queue： A queue B queue D queue …… ………………………… Ack Used for Coding IP acknowledge RR from A RR from B RR from D

DATA STRUCTURE LOGIC Packet headed to the same destination can never be coded together It is not necessary to code a packet in opportunity listening queue It is not necessary to transmit a packet when it is received again from its destination A node can decode a packet which is coded with one of the packet he once send

DATA STRUCTURE Output Queue： Retransmission pool：
Upper Layer Output Queue： P6 P5 P4 P3 P2 P1 P1 P1 Retransmission pool： Opportunity Listening Queue：

DATA STRUCTURE 4 PARTS: Output Queue Retransmission Pool
Opportunity Listening Queue Neighbor’s Virtual Queue

Laptop2 Both laptop2 and laptop3 are the intended Receiver of packet from laptop1 Laptop3 Laptop1 [4] Katti S, Rahul H, Hu WJ, Katabi D, Muriel M, Crowcroft J. XORs in the air: Practical wireless networking.

PSEUDO BROADCAST Current WLAN medium access mechanism 802.11 MAC:
DCF CSMA/CA(mandatory) -Distributed Foundation Wireless MAC -Collision avoidance via randomized back-off -ACK packet for acknowledgement(not for broad cast) DCF RTS/CTS(optional) -avoids hidden terminal and exposed terminal Point Coordination Function(infrastructure mode) How to apply COPE? Opportunistic Listenning? Multiple intended receiver? All neighbors can receive? BROADCAST

DCF CSMA/CA? Yes Back off? No DCF RTS/CTS? No ACK? No POOR RELIABILITY

PSEUDO BROADCAST Reliability 1. ACK 2. Retransmission(ACK timeout)
3. Multiple Intended Receiver DIFS& backoff Multi receiver One receiver SIFS SIFS Synchronous Acknowledgement does not work! Receiver can send ACK packet asynchronously Packet Packet ACK ACK We can treat Ack packet as a normal packet, ACK packets from different Receivers also go through the DIFS and back off procedure to avoid collision 2. Or we can piggy back on packet travelling in the reverse direction ACK ACK ACK ACK Collision!

PSEUDO BROADCAST What should be contained in COPE packet?
1. XORed(coded) packet with multiple receivers 2. uncoded packet with multiple receivers(all neighbors) 3. Reception Report with multiple receivers (all neighbors) 4. Packet Acknowledge with certain receiver Later on we will give a detailed description about the COPE packet format

COPE LAYER Where does cope layer lies in? Network layer and MAC layer.
COPE layer is a very slim layer lies between Network layer and MAC layer. Network Layer COPE layer MAC layer COPE layer process the network layer packets before they are send to MAC layer COPE layer process the MAC layer frames before they Are send to Network layer It is the COPE layer where the four data structure: Output Queue, Retransmission pool, Opportunistic listening pool And neighbors’ virtual queue lies in.

COPE LAYER Sender side Get a packet from network layer Network Layer
MAC layer Get a packet from network layer Add the packet into Output Queue Encode if possible

COPE LAYER Sender side Get a packet from network layer

Am I the next hop? Network Layer COPE layer MAC layer No Record RR in neighbors’ virtual queue Extract Reception Report If there is any Delete correponding packets in retransmission pool Extract acks for me If there is any Get a packet from MAC

COPE LAYER receiver side Send into Output Queue
Deliver to Network layer Network Layer COPE layer MAC layer No Yes Am I destination? Decode and schedule Ack No Yes This packet is encoded? Decodable? Yes I am the next hop

Coding Gain [3] S. Katti, D. Katabi, W. Hu, and R. Hariharan, “The importance of being opportunistic: Practical network coding for wireless environments

Coding Gain [4] Katti S, Rahul H, Hu WJ, Katabi D, Muriel M, Crowcroft J. XORs in the air: Practical wireless networking.

Coding Gain [4] Katti S, Rahul H, Hu WJ, Katabi D, Muriel M, Crowcroft J. XORs in the air: Practical wireless networking.

ANALOG NETWORK CODING

Alice-Bob topology [5] Katti S, Gollakota S, Katabi D: Embracing Wireless Interference: Analog Network Coding

Traditional Approach Alice transmits Bob transmits Router forwards
Time slot 1 Time slot 2 Time slot 3 Time slot 4

Digital Network Coding
Alice transmits Bob transmits Router forwards Alice Router Bob Time slot 1 Time slot 2 Time slot 3

Analog Network Coding Alice & Bob transmits Router forwards Alice
Time slot 1 Time slot 2

How can we do it? Alice Bob

How can we do it?(Cont.) Alice REC Alice SND

How can we do it?(Cont.) What will Alice do?
Demodulate and do some signal processing Note the starting bit for interferenced signal Do XOR for interferenced signal

How can we do it?(Cont.) Smart Alice!
She must learn the characters of the wireless channel She must store the packets which already sent by herself She may do the XOR job effectively

MSK Easier? Choose the right modulation method
Some experiments are already done by using Software Defined Radios (SDR). Successful results showed that we got significant throughput gains compared to COPE and traditional ways.

Future investigation is still needed ! ! !
Drawbacks Vulnerable to noises Difficult to use in more complex topology networks Future investigation is still needed ! ! !

What we may learn from ANC?
Think differently Electrical engineer & computer scientist PHY layer & MAC layer & Network layer

Wireless Communication Project by Group 2
Thanks for enjoying! Wireless Communication Project by Group 2

Wireless Communication Project by Group 2
Q&A Wireless Communication Project by Group 2