Network: Location Management

Slides:



Advertisements
Similar presentations
ExOR : Opportunistic Multi-hop Routing for Wireless Networks Sanjit Biswas and Robert Morris M.I.T. Computer Science and Artificial Intelligence Laboratory.
Advertisements

MANETs Routing Dr. Raad S. Al-Qassas Department of Computer Science PSUT
Mobile Ad-Hoc Networks (MANET)
Mobile and Wireless Computing Institute for Computer Science, University of Freiburg Western Australian Interactive Virtual Environments Centre (IVEC)
Comparison of Routing Metrics for Static Multi-Hop Wireless Networks Richard Draves, Jitendra Padhye and Brian Zill Microsoft Research Presented by Hoang.
TORA : Temporally Ordered Routing Algorithm Invented by Vincent Park and M.Scott Corson from University of Maryland. TORA is an on-demand routing protocol.
Eric Rozner - ETX.ppt1 A High-Throughput Path Metric for Multi-Hop Wireless Routing Douglas S.J. Couto Daniel Aguayo John Bicket Robert Morris Presented.
ExOR: Opportunistic Multi-Hop Routing for Wireless Networks Sigcomm 2005 Sanjit Biswas and Robert Morris MIT Computer Science and Artificial Intelligence.
Ad Hoc Wireless Routing COS 461: Computer Networks
Mobile IP Performance Issues in Practice. Introduction What is Mobile IP? –Mobile IP is a technology that allows a "mobile node" (MN) to change its point.
CIS 725 Wireless networks. Low bandwidth High error rates.
Itrat Rasool Quadri ST ID COE-543 Wireless and Mobile Networks
Mobile Routing protocols MANET
Mobile Adhoc Network: Routing Protocol:AODV
Network: Location Management Y. Richard Yang 3/21/2011.
Routing Protocols of On- Demand Dynamic Source Routing (DSR) Ad-Hoc On-Demand Distance Vector (AODV)
The Destination Sequenced Distance Vector (DSDV) protocol
Traditional Routing A routing protocol sets up a routing table in routers A node makes a local choice depending on global topology.
Network Layer: Mobile, Wireless Routing Y. Richard Yang 11/29/2012.
a/b/g Networks Routing Herbert Rubens Slides taken from UIUC Wireless Networking Group.
Spring 2000CS 4611 Routing Outline Algorithms Scalability.
Ad Hoc On-Demand Distance Vector Routing (AODV) ietf
Trading Structure for Randomness in Wireless Opportunistic Routing Szymon Chachulski, Michael Jennings, Sachin Katti and Dina Katabi MIT CSAIL SIGCOMM.
Fundamentals of Computer Networks ECE 478/578
Performance Comparison of Ad Hoc Network Routing Protocols Presented by Venkata Suresh Tamminiedi Computer Science Department Georgia State University.
Mobile IP THE 12 TH MEETING. Mobile IP  Incorporation of mobile users in the network.  Cellular system (e.g., GSM) started with mobility in mind. 
Network Layer; Location Management; Mobile IP Y. Richard Yang 2/17/2009.
Mobile Ad Hoc Networks. What is a MANET (Mobile Ad Hoc Networks)? Formed by wireless hosts which may be mobile No pre-existing infrastructure Routes between.
Routing Metrics for Wireless Mesh Networks
GeoTORA: A Protocol for Geocasting in Mobile Ad Hoc Networks
Routing Metrics for Wireless Mesh Networks
Mobile Networking (I) CS 395T - Mobile Computing and Wireless Networks
Mobile IP.
Routing in Multi-Radio, Multi-Hop Wireless Mesh Networks
DSDV Highly Dynamic Destination-Sequenced Distance-Vector Routing
Dynamic routing Routing Algorithm (Dijkstra / Bellman-Ford) – idealization All routers are identical Network is flat. Not true in Practice Hierarchical.
Sensor Network Routing
Switching Techniques In large networks there might be multiple paths linking sender and receiver. Information may be switched as it travels through various.
Intra-Domain Routing Jacob Strauss September 14, 2006.
Routing: Distance Vector Algorithm
任課教授:陳朝鈞 教授 學生:王志嘉、馬敏修
Routing.
Network: Traditional Routing
Dynamic Routing Protocols part2
Temporally-Ordered Routing Algorithm (TORA)
Network Routing: Link Metrics and Non-Traditional Routing
Mobile and Wireless Networking
Routing in Packet Networks Shortest Path Routing
by Saltanat Mashirova & Afshin Mahini
Routing Metrics for Wireless Mesh Networks
Hidden Terminal Decoding and Mesh Network Capacity
Network: Routing Y. Richard Yang 3/30/2011.
Network: Non Traditional Routing
Opportunistic Routing in Multi-hop Wireless Networks
A Probabilistic Routing Protocol for Mobile Ad Hoc Networks
Folien aus: Mobile Ad Hoc Networks: Routing, MAC and Transport Issues
Overview: Chapter 3 Networking sensors
Distributed Systems CS
Routing.
Network Layer (contd.) Routing
Opportunistic Routing in Multi-hop Wireless Networks*
A Routing Protocol for WLAN Mesh
Mobile IP Outline Homework #4 Solutions Intro to mobile IP Operation
Mobile IP Outline Intro to mobile IP Operation Problems with mobility.
DSDV Destination-Sequenced Distance-Vector Routing Protocol
Routing.
Lecture 4a Mobile IP 1.
Routing in Mobile Wireless Networks Neil Tang 11/14/2008
A Talk on Mobile Ad hoc Networks (Manets)
Distributed Systems CS
Presentation transcript:

Network: Location Management Y. Richard Yang 3/21/2011

Admin Assignment 3 status Exam this Wednesday Project meetings Weekly meeting for 15 min.

Recap: Network Layer Services Transport packets from source to dest Network layer protocol in host and router Basic functions: Control plane compute routing from sources to destinations Data plane: forwarding move packets from input interface to appropriate output interface(s) to reach dest B A S1 E D2 S2 J D1 C G I K M N L

Basic Network Layer Model Each node is a network attachment point (e.g., router, base station), to which hosts/user equipment attaches A E D C B F User device identified by addressing scheme locator: identifies attachment point identifier: independent of location

Key Problems Location management D C B F Key Problems Location management E.g., due to user mobility (roaming), attached point changes Routing under mobility and wireless channels

Outline Admin. Location management cellular networks

Routing in Cellular Networks D C B F Cellular networks face the location management problem: a phone may be out of its home switch How GSM handles out-of-switch phones: a global home location register (HLR) database for each carrier each base transceiver station (BTS) has a visitor location register (VLR)

GSM Radio Subsystem MS (mobile station) BSC (base station controller) BTS (base transceiver station) MSC (mobile switching center) GMSC (gateway MSC) GSM fixed network Network & Switching Subsystem and Operation Subsystem HLR GMSC MSC MSC BSC MS BSC MS Radio Subsystem BTS VLR MS MS MS BTS MS BTS VLR VLR VLR BTS BTS VLR

Two Primitives for Cellular Location Management Mobile station: reports to the network of the cell it is in called update uses the uplink channel Network: queries different cells to locate a mobile station called paging uses the downlink channel

Performance of the Two Primitives A city with 3M users During busy hour (11 am - noon) Assume each paging message is 100 bits Update only update messages: 25.84 millions Q: why so many update messages? Paging only paging traffic: 1433 calls/sec Q: how many messages in the busy hour?

Location Management Through Location Areas (LA) A hybrid of paging and update Used in the current cellular networks such as GSM Partitions the cells into location areas (LA) e.g., around 10 cells in diameter in current systems Each cell (BTS) periodically announces its LA id If a mobile station arrives at a new location area, it updates the base station about its presence When locating a MS, the network pages the cells in an LA

How to Decide the LAs: A Simple Model Assume the cells are given Cell i has on average Ni users in it during one unit time; each user receives c calls per unit time There are Nij users move from cell i to cell j in a unit of time Cell 1 Cell 2 N1 N2 N12 N21

How to Decide the LAs: A Simple Scenario Cell 1 Cell 2 N1 N2 N12 N21 Separate LAs for cells 1 and 2 #update: N12 + N21 #paging: c (N1 + N2) Merge cells 1 and 2 into a single LA #update: 0 #paging: 2 c (N1 + N2) When to merge and when to separate?

Discussions The LA design should consider call pattern: when (how often) does a mobile station receive a call? mobility model: how does a mobile station move? How to further improve the performance of location management?

Dynamic/Distributed Location Management Schemes In dynamic/distributed location management schemes, each user makes independent decision about when to update

Dynamic/Distributed Location Management Schemes Timer based A MS sends an update after some given time T Movement based A MS sends an update after it has visited N different cells Distance based A MS sends an update after it has moved away for D distance (need ability to measure distance) Profile based A MS predicts its mobility model and updates the network when necessary

Timer-based Location Management A MS sends an update after some given timer T The network pages the MS upon a call request at all cells which the MS can potentially arrive during T cells reachable from last update cell, e.g., within distance vmax * T, where vmax is the maximum speed Question: how to determine T?

Timer-based Location Management Assume time between call arrivals is Tcall Cell radius is dcell Total bandwidth cost: Take derivative and set it to 0 to derive the optimal value:

Summary: Location Management Two primitives of location management in cellular networks update (a proactive approach) paging (a reactive approach) The location area (LA) approach a hybrid approach Distributed approaches timer based movement based distance based profile based

Mobile IP

Mobile IP: Architecture Assume the current Internet addressing and routing architecture Design extensions to handle out of network devices

Mobile IP: Terminology Mobile Node (MN) the node under consideration Home Agent (HA) a stationary network node (e.g., a router) at the home network Foreign Agent (FA) a network node (e.g. a router) in the foreign network Care-of Address (COA) the address in the foreign network Correspondent Node (CN) communication partner

Illustration HA MN FA CN mobile node Internet router home network (physical home network for the MN) FA foreign network router end-system CN router (current physical network for the MN)

Mobile IP Operations Basic idea of Mobile IP: a MN acquires a COA in a foreign network from a foreign agent registers to the home agent all messages sent to its home address is forwarded by its home agent to its COA

Discovering the Agents and Care-of Address Mobile IP discovery process (home or foreign) agent broadcasts advertisements at regular intervals announce the network list one or more available care-of addresses mobile node takes a care-of address mobile node can also send solicitation to start the process

Registering the Care-of Address Mobile node sends an update (called) registration request) to its home agent with the care-of address information Home agent approves/disapproves the request Home agent adds the necessary information to its routing table Home agent sends a registration reply back to the mobile node

Registration Operations in Mobile IP MH = Mobile Host HA = Home Agent FA = Foreign Agent

Data Transfer from the Mobile Node HA 1 MN Internet home network sender FA foreign network 1. Sender sends to the IP address of the receiver as usual, FA works as default router CN receiver

Data Transfer to the Mobile Node HA 2 MN Internet home network 3 receiver FA foreign network 1. Sender sends to the IP address of MN, HA intercepts packet 2. HA tunnels packet to COA, here FA, by encapsulation 3. FA forwards the packet to the MN 1 CN sender

Tunneling Operations in Mobile IP Correspondent Node X

Discussion Any problems of the Mobile IP approach?

Triangular Routing Triangular Routing “Solution” CN sends all packets via HA to MN higher latency and network load “Solution” CN learns the current location of MN direct tunneling to this location HA or MN informs a CN about the location of MN Problem of the solution big security problems !

Handoff Change of FA (COA) “Solution” packets on-the-fly during the change can be lost “Solution” new FA informs old FA to avoid packet loss, old FA buffers and then forwards remaining packets to new FA this information also enables the old FA to release resources for the MN

Summary: Mobile IP An out-of-network mobile node (MN) registers its current reachable address (COA) with its home agent Home agent forwards packets to the MN Several optimization techniques to improve efficiency and reduce packet losses during mobility

Preview: How to Routing? A E D C B F 2 1 3 5

Backup Slides

Change of Foreign Agent CN HA FAold FAnew MN Data Data Data Update ACK Data Data MN changes location Registration Update ACK Data Data Data Warning Request Update ACK Data Data t

Micro Mobility A very typical scenario of Mobile IP is that a MN visits a company or university the MN may change foreign networks multiple times in the foreign network, generating much control traffic

Handoff Aware Wireless Access Internet Infrastructure (HAWAII) Operation: MN obtains co-located COA and registers with HA Handover: MN keeps COA, new BS answers Reg. Request and updates routers MN views BS as foreign agent Backbone Router Internet BS MN Crossover DHCP Server HA Mobile IP 1 2 4 1 2 3 4 BS 3

Network Routing Y. Richard Yang 2/19/2009 DSDV revised on 2/23/2009

Admin Each group please talk to me and the TA by Friday next week about potential project

Recap: Network Layer Services Transport packets from source to dest Network layer protocol in every host, router Major components: Control plane addressing scheme is crucial for usability, mobility compute routing from sources to destinations Data plane: forwarding move packets from input interface to appropriate output interface(s) B A S1 E D2 S2 J D1 C G I K M N L

Recap: Key Problems Location management D C B F Location management Routing with lossy and dynamic wireless Broadcast wireless channels

Outline Admin and recap Routing with lossy and dynamic links

Routing Overview The problem of routing is to find a good path for each source destination pair A typical measure for a good path is that it is the shortest path according to some metric A E D C B F

Link Metric A E D C B F One possibility is to assign each link a metric of 1 (hop-count based routing) problems maximizes the distance traveled by each hop low signal strength -> high loss ratio uses a higher TxPower -> interference different links have different qualities

Performance of Shortest Hop Count D C B F

Example Metric: ETX ETX: The predicted number of data transmissions required to successfully transmit a packet over a link the ETX of a path is the sum of the ETX values of the links over that path Examples: ETX of a 3-hop route with perfect links is 3 ETX of a 1-hop route with 50% loss is 2 “A High-Throughput Path Metric for Multi-Hop Wireless Routing” by D. De Couto, D. Aguayo, J. Bicket, R. Morris. Mibicom 2003. http://meraki.com/about/

Acquiring ETX Measured by broadcasting dedicated link probe packets with an average period τ (jittered by ±0.1τ) Delivery ratio: – count(t-w,t) is the # of probes received during window w – w/τ is the # of probes that should have been received

ETX: Example

ETX: Advantage Tends to minimize spectrum use, which can maximize overall system capacity (reduce power too) each node spends less time retransmitting data ETX has problems and is not the only link metric. We will revisit link metrics next class.

Outline Admin and recap Routing overview computing shortest path routing A E D C B F 2 1 3 5 How does Internet (Yale) computes shortest path routing?

Link-State Routing Algorithms Separation of topology distribution from route computation Used in OSPF, the dominant intradomain routing protocol used in the Internet Net topology, link costs are distributed to all nodes Link state distribution accomplished via “link state broadcast” Each node (locally) computes its paths to all destinations

Link State Broadcast B A S E F H J D C G I K M N L represents a node that has received update represents link

Link State Broadcast S E F B C M L J A G H D K I N

Link State Broadcast S E F B C M L J A G H D K I N To avoid forwarding the same update multiple times, each update has a sequence number. If an arrived update does not have a higher seq, discard! - The packet received by E from C is discarded - The packet received by C from E is discarded as well - Node H receives packet from two neighbors, and will discard one of them

Summary of Link State Routing Separation of topology distribution from route computation Whenever a link metric changes, the node broadcasts new value Q: What is the scope of updates when a link changes status? Q: Does link state routing work well in a network with dynamic link status?

Distance Vector Routing Algorithm Based on the Bellman-Ford algorithm at node X, the distance (or any additive link quality metric) to Y is updated by where dX(Y) is the current distance at node X from X to Y, N(X) is the set of the neighbors of X, and d(X, Z) is the distance of the direct link from X to Z Implemented in the RIP routing protocol and some wireless mesh networks

Distance Table: Example 7 8 1 2 Below is just one step! The algorithm repeats for ever! distance tables from neighbors computation E’s distance, forwarding table distance table E sends to its neighbors E d () A B C D A 7  1 d(E,A) B 7 1  8 d(E,B) D  2 d(E,D) A 1 8  B 15 8 9  D  4 2 1, A 8, B 4, D 2, D A: 1 B: 8 C: 4 D: 2 E: 0 destinations

Distance Vector in the Presence of Topology Dynamics Good news propagate fast Link AB is up

Distance Vector in the Presence of Topology Dynamics Bad news propagate slowly: the count-to-infinity problem Link AB is down or cost increases substantially

The Reverse-Poison (Split-horizon) Hack D C B 7 8 1 2 If the path to a dest is through neighbor h, report  to neighbor h for dest. E’s distance, forwarding table distance tables from neighbors computation distance table E sends to its neighbors E d () A B C D A 7  1 d(E,A) B 7 1  8 d(E,B) D  2 d(E,D) A 1 8  B 15 8 9  D  4 2 1, A 8, B 4, D 2, D To A A:  B: 8 C: 4 D: 2 E: 0 To B A: 1 B:  C: 4 D: 2 E: 0 To D A: 1 B: 8 C:  D:  E: 0 destinations distance through neighbor

An Example Where Split-Horizon Fails 1 When the link between C and D fails, C will set its distance to D as  However, unfortunate timing can cause problem A receives a new update () from C, then a previous update from B (when B thought C was good) arrives; then A will use B to go to D A sends the good news to C C sends the good news to B

Destination-sequenced distance vector protocol (DSDV) There are optimizations but we present the base protocol Only handle the case when link is broken Let’s assume the destination node is D Basic idea: DSDV tags each route with a sequence number Each destination node D periodically advertises monotonically increasing even sequence numbers When a node realizes that the link that it uses to reach destination D is broken, the node increases the sequence number for D to be one greater than the previous one (odd number).

DSDV: Details Periodical and triggered updates periodically D increases its seq# SD by 2 and broadcasts with (SD, 0) if A is using B as next hop to D and A discovers that the link AB is broken A increases its sequence number SA by 1 (odd) sets dA to , and sends (SA, dA) to all neighbors The step if SA > SB, then update may not be good because it maybe a cross talk.

DSDV: Details Update after receiving a message Assume B sends to A the information (SB, dB), where SB is the sequence number at B for destination D and dB is the distance from B to D; when A receives (SB, dB) if SB > SA, then // higher seq#, always update SA = SB if (dB == ) dA = ; else dA= dB + d(A,B) else if SA == SB, then // conditional update if dA > dB + d(A,B) dA= dB + d(A,B) and uses B as next hop The step if SA > SB, then update may not be good because it maybe a cross talk. A B route update (SB, dB)

DSDV H F E A G C D D B

Claim: DSDV Does Not Form Loop Proof technique: proof by induction and contradiction assume initially no loop (no one has next hop so no loop) derive contradiction by assuming that we have a loop when we add a new link, e.g., when A decides to use B as next hop update A B

Protocol Analysis by Invariants This is a very effective method in understanding distributed asynchronous protocols Invariants are defined over the states of the distributed nodes Consider any node A What is the state of node A? (SA, dA)

Consider a Single Node A What properties do you observe about the state of node A, i.e. (SA, dA)? SA is non-decreasing dA is non-increasing for the same sequence number time

Invariants For any node time For any node sequence number is non-decreasing for the same sequence number, distance is non-increasing For a pair of nodes, if A (according to local state) considers B as next hop to destination D: SB > SA (B updates seq# after sends update) SB == SA implies dB < dA if link cost is not zero A B

Loop Freedom of DSDV update Proof by contradiction Consider a critical moment A considers B as next hop and forms a loop If any link in the loop (X considers Y as next hop) satisfies SY > SX by transition along the loop SB > SB If all nodes along the loop have the same sequence number by transition along the loop dB > dB update A B X Y

Discussion of DSDV Q: what is the scope of updates when a link changes status?

Link Reversal Algorithms

Motivation Link reversal algorithms maintain a mesh (hopefully) local adaptation

Links and DAG up stream down stream A B F Links are bi-directional But algorithm imposes logical directions on them C E G Maintain a directed acyclic graph (DAG) for each destination, with the destination being the only sink This DAG is for destination node D D C E up stream down stream

Link Reversal Algorithm: Illustration of Idea B F C E G Link (G,D) broke D Any node, other than the destination, that has no outgoing links reverses some incoming links. Node G has no outgoing links

Link Reversal Algorithm: Illustration B F C E G Represents a link that was reversed recently D Now nodes E and F have no outgoing links, the process continues.

Link Reversal Algorithm: Illustration B F C E G Represents a link that was reversed recently D Now nodes B and G have no outgoing links

Link Reversal Algorithm: Illustration B F C E G Represents a link that was reversed recently D Now nodes A and F have no outgoing links

Link Reversal Algorithm: Illustration B F C E G Represents a link that was reversed recently D Now all nodes (other than destination D) have an outgoing link

Link Reversal Algorithm: Illustration B F C E G D DAG has been restored with only the destination as a sink

Link Reversal Remaining questions: how to implement it? will reversal stop? Next we will look into the issues using partial reversal (not full reversal, as the preceding example)

Link Direction Through Heights A node i contains a triple (i, i, i) i : an integer (the major integer) i : another integer (the minor integer) i : node index (to impose a total order) The triple of a node is called the height of the node Suppose there is a link from node i to node j, the direction is determined by their heights i -> j: if (i, i, i) > (j, j, j) For destination D, the height is (0, 0, D)

Illustration of Heights

Partial Reversal Algorithm If the height of node i is lower than all of its neighbors, i.e., (i, i, i) < (j, j, j) for all j in Ni, Increases i to where Ni is the neighbors of i. Set i to if there exists a neighbor j with the same  value after i has increased its ; otherwise i not changed

min  of all neighbors with new  Illustration min  of all neighbors with new  min  of all neighbors

Example (0,4,1) (0,3,2) (0,2,3) (0,5,4) (0,1,6) (0,2,5) Destination: (0,0,0)

Example: Link from 6 to 0 is down (0,4,1) (0,3,2) (0,2,3) (0,5,4) (0,1,6) (0,2,5) Destination: (0,0,0)

Example: After Node 6 Reverses (0,4,1) (0,3,2) (0,2,3) (0,5,4) (1,1,6) (0,2,5) 1 = min{0,0}+1 Destination: (0,0,0)

Example: After Nodes 3 and 5 Reverse 1 = min{0,1}+1; 0 = min{1}-1 (0,4,1) (0,3,2) (1,0,3) (0,5,4) (1,1,6) (1,0,5) Destination: (0,0,0)

Example: After Nodes 2 Reverses (0,4,1) (1,-1,2) (1,0,3) (0,5,4) (1,1,6) (1,0,5) Destination: (0,0,0)

Example: After Nodes 1 Reverses (1,-2,1) (1,-1,2) (1,0,3) (0,5,4) (1,1,6) (1,0,5) Destination: (0,0,0)

Network: Routing Protocols, and Metrics Y. Richard Yang 2/24/2009

Outline Admin. Network routing Protocol Re-examing routing contracts DSDV Link reversal DSR Re-examing routing contracts

Recap: DSDV Motivation 1 1 1 1

Why Count-to-Infinity Routing loop: a loop is a global state (consisting of the nodes’ local states) at a global moment (observed by an oracle) such that there exist nodes A, B, C such that A (locally) thinks B as down stream, B thinks C as down stream, C thinks A as down stream 1

Destination-sequenced distance vector protocol (DSDV) There are optimizations but we present the base protocol Only handle the case when a link hop count metric Let’s assume the destination node is D Basic idea: DSDV tags each route with a sequence number

DSDV: Details Periodical and triggered updates periodically D increases its seq# SD by 2 and broadcasts with (SD, 0) if A is using B as next hop to reach D and A discovers that the link AB is broken A increases its sequence number SA by 1 (odd) sets dA to , and sends (SA, dA) to all neighbors The step if SA > SB, then update may not be good because it maybe a cross talk.

DSDV: Details Update after receiving a message Assume B sends to A the information (SB, dB), where SB is the sequence number at B for destination D and dB is the distance from B to D; when A receives (SB, dB) if SB > SA, then // higher seq#, always update SA = SB if (dB == ) dA = ; else dA= dB + d(A,B) else if SA == SB, then // conditional update if dA > dB + d(A,B) dA= dB + d(A,B) and uses B as next hop The step if SA > SB, then update may not be good because it maybe a cross talk. A B route update (SB, dB)

DSDV: Example H F E A G C D D B

Invariants For any node time For any node sequence number is non-decreasing for the same sequence number, distance is non-increasing For a pair of nodes, if A (according to local state) considers B as next hop to destination D: SB > SA (B updates seq# after sends update) SB == SA implies dB < dA if link cost is not zero A B

Claim: DSDV Does Not Form Loop Proof technique: invariant Invariant: true over node states at all times derive contradiction by assuming that we have a loop when we add a new link, e.g., when A decides to use B as next hop update A B

Loop Freedom of DSDV update Proof by contradiction Consider a critical moment A considers B as next hop and forms a loop If any link in the loop (X considers Y as next hop) satisfies SY > SX by transition along the loop SB > SB If all nodes along the loop have the same sequence number by transition along the loop dB > dB update A B X Y

Recap: Link Reversal Motivations Full link reversal maintain a mesh (hopefully) local adaptation Full link reversal Partial link reversal

Link Direction Through Heights A node i contains a triple (i, i, i) i : an integer (the major integer) i : another integer (the minor integer) i : node index (to impose a total order) The triple of a node is called the height of the node Suppose there is a link from node i to node j, the direction is determined by their heights i -> j: if (i, i, i) > (j, j, j) For destination D, the height is (0, 0, D)

Illustration of Heights

Partial Reversal Algorithm If the height of node i is lower than all of its neighbors, i.e., (i, i, i) < (j, j, j) for all j in Ni, Increases i to where Ni is the neighbors of i. Set i to if there exists a neighbor j with the same  value after i has increased its ; otherwise i not changed

min  of all neighbors with new  Illustration min  of all neighbors with new  min  of all neighbors

Example (0,4,1) (0,3,2) (0,2,3) (0,5,4) (0,1,6) (0,2,5) Destination: (0,0,0)

Example: Link from 6 to 0 is down (0,4,1) (0,3,2) (0,2,3) (0,5,4) (0,1,6) (0,2,5) Destination: (0,0,0)

Example: After Node 6 Reverses (0,4,1) (0,3,2) (0,2,3) (0,5,4) (1,1,6) (0,2,5) 1 = min{0,0}+1 Destination: (0,0,0)

Example: After Nodes 3 and 5 Reverse 1 = min{0,1}+1; 0 = min{1}-1 (0,4,1) (0,3,2) (1,0,3) (0,5,4) (1,1,6) (1,0,5) Destination: (0,0,0)

Example: After Nodes 2 Reverses (0,4,1) (1,-1,2) (1,0,3) (0,5,4) (1,1,6) (1,0,5) Destination: (0,0,0)

Example: After Nodes 1 Reverses (1,-2,1) (1,-1,2) (1,0,3) (0,5,4) (1,1,6) (1,0,5) Destination: (0,0,0)

Analysis The state of a node An invariant over the state of a node its height as well as its neighbors’ (potentially obsolete) heights An invariant over the state of a node  is non-decreasing

Analysis: Convergence What is convergence? a protocol converges if it stops after a finite number of steps after the last link Up/Down event Does the partial reversal algorithm converge?

Convergence if Not Partitioned Partial reversal always converges after a finite number of steps, if not partitioned proof by contradiction: assume not converge, i.e., the protocol runs forever after the last change. Since each node will increase its  value by at least one after each step, then there should exist a subset of nodes whose  values go to infinite dest infinite

Partition A B A B D D Node A and node B will increase their heights repeatedly forever.

Analysis: Loop of Link Reversal Does the partial reversal algorithm form loops? the algorithm does not have any loops after convergence because the heights form a total order before convergence, temporary loops may form due to inconsistent views (see the

Temporally-Ordered Routing Algorithm (TORA) TORA modifies the partial link reversal algorithm to be able to detect partitions When a partition is detected, all nodes in the partition are informed, and link reversals in that partition cease For details, see the backup slides at the end

Summary: Link Reversal Algorithms Advantages the DAG provides many hosts the ability to send packets to a given destination beneficial when many hosts want to communicate with a single destination Disadvantages paths may not be the best loops before convergence hurt performance

Summary: Routing Algorithms Global information: Routers maintain complete topology, link cost info “link state” algorithm Distributed: Routers maintain distance to each dest. Iterative process of computation, exchange of info with direct neighbors “distance vector” algorithm Partial global information: Routers maintain partial topology (mesh) for each dest. “link reversal” algorithm A E D C B F 2 1 3 5

Outline Admin. Network routing Protocol DSDV Link reversal DSR

DSR Concepts On-demand route discovery Source routing DSDV, link state and link reversal protocols are proactive: they continuously maintain routes/topology DSR is a reactive protocol, maintaining active routes only Source routing no need to maintain information at intermediate nodes

Dynamic Source Routing (DSR) When node S wants to send a packet to node D, but does not know a route to D, node S initiates a route discovery Source node S floods Route Request (RREQ) Each node appends its own identifier when forwarding RREQ

Route Discovery: RREQ Y Z S E F B C M L J A G H D K I N Represents a node that has received RREQ for D from S

Broadcast transmission Route Discovery: RREQ Y Broadcast transmission Z [S] S E F B C M L J A G H D K I N Represents transmission of RREQ [X,Y] Represents list of identifiers appended to RREQ

Forwarding RREQ A request is forwarded by a node if the node is not destination the node has not seen RREQ with the same sequence number (from the same source) When forwarding RREQ, use a random delay to avoid collision

Route Discovery: RREQ Y Z S [S,E] E F [S,B] B C M L J A G [S,C] H D K N Node H receives RREQ from two neighbors B and C Node C and E send RREQ to each other

Route Discovery: RREQ Y Z S E F B [S,E,F] C M L J A G H D K [S,C,G] I N Node C receives RREQ from G and H, but does not forward it again, because node C has already forwarded RREQ once

Route Discovery: RREQ Y Z S E F [S,E,F,J] B C M L J A G H D K I N [S,C,G,K]

Route Discovery: RREQ Y Z S E [S,E,F,J,M] F B C M L J A G H D K I N Node D does not forward RREQ, because node D is the intended target of the route discovery

Route Reply (RREP) Destination D on receiving the first RREQ, sends a Route Reply (RREP) why first? RREP includes the route from S to D on which RREQ was received by node D Question: how to send RREP from D back to S?

Route Reply in DSR Route Reply is sent by reversing the route in Route Request (RREQ) this requires bi-directional link to ensure this, RREQ should be forwarded only if it received on a link that is known to be bi-directional this also necessary for IEEE 802.11 MAC is used to send data, then links have to be bi-directional (since Ack is used) If unidirectional (asymmetric) links are allowed, then RREP may need a route discovery from D back to S

Route Reply Y Z S RREP [S,E,F,J,D] E F B C M L J A G H D K I N Represents RREP control message

hence the name source routing Data Delivery in DSR Y Z DATA [S,E,F,J,D] S E F B C M L J A G H D K I N When node S sends a data packet to D, the entire route is included in the packet header hence the name source routing

DSR Optimization: Route Caching Each node caches a new route it learns by any means, e.g., when node S finds route [S,E,F,J,D] to node D, node S also learns route [S,E,F] to node F when node K receives Route Request [S,C,G], node K learns route [K,G,C,S] to node S when node F forwards Route Reply RREP [S,E,F,J,D], node F learns route [F,J,D] to node D a node may also learn a route when it overhears data packets

Using Route Cache Advantages Disadvantages using route cache can speed up route discovery and reduce RREQ propagation check route cache before issues RREQ intermediate nodes can send Route Reply using route cache Disadvantages stale caches can adversely affect performance e.g., a sender may try several stale routes (obtained from local cache, or replied from cache by other nodes), before finding a good route

DSR: Summary Advantages Disadvantages reactive: routes maintained only between nodes who need to communicate route caching can further reduce route discovery overhead a single route discovery may yield many routes to the destination, due to intermediate nodes replying from local caches Disadvantages packet header size grows with route length due to source routing flood of route requests may potentially reach all nodes in the network care must be taken to avoid collisions between route requests and route reply propagated by neighboring nodes

Ad Hoc On-Demand Distance Vector Combination of ideas in DSR and DSDV on-demand mechanism of route discovery and route-maintenance from DSR plus the hop-by-hop routing (not source routing), sequence numbers and periodic beacons from DSDV

Comparison of Routing Algorithms in the Presence of Topology Dynamics

Comparisons of The Protocols Some key parameters affecting the performance of a routing protocol number of nodes mobility model, e.g., the way-point model, where each node picks a random target, moves to the target at a random speed picked uniformly in a range, pauses for some time after arrival traffic model, e.g., Constant Bit Rate (CBR) Performance metrics packet delivery ratio routing overhead path optimality

Comparison: Packet Delivery Ratio 50 nodes; 20 sources; 20 m/s

Comparison: Packet Delivery Ratio 50 nodes; 20 sources; 1 m/s

Routing Overhead 50 nodes; 20 sources; 20 m/s

Path Optimality: Difference from Optimal 50 nodes; 20 sources; 20 m/s

Traditional Routing So far, all routing protocols in the framework of traditional wireline routing select a single route for each src-dest pair commit to a specific route before forwarding Problem: don’t fully exploit path (spatial) diversity and wireless broadcast (opportunities)

Motivating Scenario: I Assumes independent links Tradition routing has to follow one pre-committed route

Motivating Scenario: II Traditional routing picks a single route, e.g., src -> B -> dst

Motivating Scenario: III A sends a packet to B; B sends one to A Can we do better than the traditional routing? A B R

Backup Slides

A Local Loop A A B B D D When B does a reversal, B locally thinks A is downstream; before B’s new height arrives at A, A thinks B is downstream as well.

Temporally-Ordered Routing Algorithm (TORA)

Link Direction Through “Heights” Each node i has a height – a quintuple Hi = (t, oid, r, d, i), where  : the “logical time” of a link failure oid: the node who originates the failure r : a “reflect” bit  : a reference level i : node ID Link direction through heights Node i points to node j if Hi > Hj When Hj is unknown, it is set to NULL; NULL is considered to be infinite

TORA: Three Basic Functions Creating routes on demand A query (QRY) message is flooded through the network An update (UPD) message propagates back if route exists If a node uses another node as next hop, it increases the  value by 1 Maintaining routes using link reversal A node sends an UPD message to re-orient the links after detecting no outgoing links Link reversal is similar to partial link reversal set the first three elements to be the highest among neighbors if all neighbors have the highest first three elements if (no reflect bit) set reflect bit else find partition else set = min {j: where neighbor j has the highest first three elem}-1 Erasing routes when partitioned A clear (CLR) message is flooded through the network to erase invalid routes

TORA: Created Routes (0, 0, 0, 3, A) (0, 0, 0, 2, D) (0, 0, 0, 1, E) (0, 0, 0, 2, B) (0, 0, 0, 3, C) (0, 0, 0, 0, F) (0, 0, 0, 2, G) (0, 0, 0, 1, H)

TORA: Link from D to E Fails (0, 0, 0, 2, B) (0, 0, 0, 3, C) (0, 0, 0, 0, F) (0, 0, 0, 2, G) (0, 0, 0, 1, H)

TORA: Link from B to H Fails (0, 0, 0, 2, D) (0, 0, 0, 1, E) (0, 0, 0, 2, B) (0, 0, 0, 3, C) (0, 0, 0, 0, F) (0, 0, 0, 2, G) (0, 0, 0, 1, H)

TORA: B Updates (0, 0, 0, 3, A) (0, 0, 0, 2, D) (0, 0, 0, 1, E) UPD (1, B, 0, 0, B) (0, 0, 0, 3, C) (0, 0, 0, 0, F) (0, 0, 0, 2, G) (0, 0, 0, 1, H) Assume B’s clock is 1 when detecting failure

TORA: D Updates UPD (0, 0, 0, 3, A) (1, B, 0, -1, D) (0, 0, 0, 1, E) (1, B, 0, 0, B) (0, 0, 0, 3, C) (0, 0, 0, 0, F) (0, 0, 0, 2, G) (0, 0, 0, 1, H) (1,B,0) = max( A:(0,0,0), B:(1,B,0) ); -1 = min{0}-1

TORA: A Updates UPD (1, B, 0, -2, A) (1, B, 0, -1, D) (0, 0, 0, 1, E) (1, B, 0, 0, B) (0, 0, 0, 3, C) (0, 0, 0, 0, F) (0, 0, 0, 2, G) (0, 0, 0, 1, H) (1,B,0) = max( B:(1,B,0),C:(0,0,0), D:(1,B,0) ); -2 = min{0,-1}-1

TORA: Link from A to C is Down (1, B, 0, -2, A) (1, B, 0, -1, D) (0, 0, 0, 1, E) (1, B, 0, 0, B) (0, 0, 0, 3, C) (0, 0, 0, 0, F) (0, 0, 0, 2, G) (0, 0, 0, 1, H)

TORA: A Updates UPD (2, A, 0, 0, A) (1, B, 0, -1, D) (0, 0, 0, 1, E) (1, B, 0, 0, B) (0, 0, 0, 3, C) (0, 0, 0, 0, F) (0, 0, 0, 2, G) (0, 0, 0, 1, H) Assume A’s clock is 2 when detecting failure

TORA: D Updates UPD (2, A, 0, 0, A) (2, A, 0, -1, D) (0, 0, 0, 1, E) (1, B, 0, 0, B) (0, 0, 0, 3, C) (0, 0, 0, 0, F) (0, 0, 0, 2, G) (0, 0, 0, 1, H) (2,A,0) = max( A:(2,A,0), B:(1,B,0) ); -1 = min{0}-1

TORA: B Updates (2, A, 0, 0, A) (2, A, 0, -1, D) (0, 0, 0, 1, E) UPD (0, 0, 0, 3, C) (0, 0, 0, 0, F) (0, 0, 0, 2, G) (0, 0, 0, 1, H) Because B’s neighbors have the same first three values

TORA: D Updates UPD (2, A, 0, 0, A) (2, A, 1, -1, D) (0, 0, 0, 1, E) (2, A, 1, 0, B) (0, 0, 0, 3, C) (0, 0, 0, 0, F) (0, 0, 0, 2, G) (0, 0, 0, 1, H) (2,A,1)=max(A:(2,A,0),B:(2,A,1)); -1 = min{0}-1

TORA: A Detects Partition CLR (-, -, -, -, A) (2, A, 1, -1, D) (0, 0, 0, 1, E) (2, A, 1, 0, B) (0, 0, 0, 3, C) (0, 0, 0, 0, F) (0, 0, 0, 2, G) (0, 0, 0, 1, H) (2,A,1)=max(A:(2,A,0),B:(2,A,1)); -1 = min{0}-1

Network Routing: Link Metrics and Non-Traditional Routing Y. Richard Yang 2/26/2009

Admin. Homework 3 Project proposal: March 6 by email to yry@cs.yale.edu and richard.alimi@yale.edu

Recap: Routing Protocols Proactive protocols distance vector e.g., DSDV link state link reversal e.g., partial link reversal, TORA Reactive (on-demand) protocols DSR AODV A E D C B F 2 1 3 5

Recap: ETX ETX: The predicted number of data transmissions required to successfully transmit a packet over a link Link loss rate = p Expected number of transmissions

ETX Performance DSDV DSR

Problems of ETX ETX does not handle multirate 802.11 networks ETX does not work out well when nodes have multiple radios that can operate at different channels

Extending ETX: Multirate In a multirate environment, need to consider link bandwidth: packet size = S, Link bandwidth = B each transmission lasts for S/B Multirate Multradio “Routing in Multi-radio, Multi-hop Wireless Mesh Network,” Richard Draves, Jitendra Padhye, and Brian Zill. Mobicom 2004.

Extending ETX: Multirate Add ETTs of all links on the path Use the sum as path metric Interpretation: pick a path with the lowest total network occupation time Q: under what condition is SETT the network occupation time?

Problem of SETT In networks with multiple channels/radios, SETT does not consider channel reuse Path SETT Throughput Red-Red Red-Blue 2.66 ms 3 Mbps 2.66 ms 6 Mbps

Observation Interference reduces throughput throughput of a path is lower if many links are on the same channel path metric should be worse for non-diverse paths

Extending SETT for Multiple Channels Group links on a path according to channel assumes links on the same channel interfere with one another pessimistic for long paths Add ETTs of links in each group Find the group with largest sum (BG-ETT) this is the “bottleneck” group too many links, or links with high ETT (“poor quality” links) Use this largest sum as the path metric Lower value implies better path

BG-ETT Example Path Blue Sum Red Sum BG-ETT Throughput All-red 1 Blue 5.33 ms 5.33 ms 1.5 Mbps 1.33 ms 4 ms 4 ms 2 Mbps 2.66 ms 2.66 ms 2.66 ms 3 Mbps

BG-ETT May Select Long Paths

Path Metric: Putting it all together SETT favors short paths BG-ETT favors channel diverse paths β is a tunable parameter Higher value: more preference to channel diversity Lower value: more preference to shorter paths

Implementation and such Implemented in a source-routed, link-state protocol, Multi-Radio Link Quality Source Routing (MR-LQSR) Nodes discover links to its neighbors, measure quality of those links link information floods through the network each node has “full knowledge” of the topology sender selects “best path” packets are source routed using this path Measure loss rate and bandwidth loss rate measured using broadcast probes similar to ETX updated every second bandwidth estimated using periodic packet-pairs updated every 5 minutes

Evaluations

Median Throughput (Baseline, single radio)

Median Throughput (Baseline, two radios)

Impact of β value

Summary Link metrics are still an active research area, in particular, due to interactions with (channel, spatial) diversity

Summary: Traditional Routing So far, all routing protocols in the framework of traditional wireline routing a graph representation of underlying network point-to-point graph, edges with costs select a lowest-cost route for a src-dest pair commit to a specific route before forwarding each node forwards a received packet as it is to next hop Problems: don’t fully exploit path (spatial) diversity and wireless broadcast opportunities

Motivating Scenario: I

Motivating Scenario: II Motivating question: can we take advantage of transmissions that reach unexpectedly far or unexpectedly short? Traditional routing picks a single route, e.g., src -> B -> D -> dst Packets received off path are useless

Motivating Scenario: III Src A sends 1 packet to dst B; src B sends packet 3 to dst A The network needs to transmit 4 packets Motivating question: can we do better? A R B

Motivating Scenario: III If R has both packets 1 and 3, it can combine them and explore coding and broadcast nature of wireless A B R

Outline Admin. Link metrics Non-traditional routing motivation network coding: exploiting network broadcast

Network Coding We have covered source coding (FEC, compression) The new approach uses opportunistic network coding goal: increase the amount of information that is transported

Opportunistic Coding: Basic Idea Each node looks at the packets available in its buffer, and those its neighbors’ buffers It selects a set of packets, computes the XOR of the selected packets, and broadcasts the XOR

Opportunistic Coding

Outline Admin. Link metrics Non-traditional routing motivation network coding: exploiting network broadcast opportunistic routing

Key Issue in Opportunistic Routing Key Issue: opportunistic forwarding may lead to duplicates.

Extreme Opportunistic Routing (ExOR) Basic idea: avoid duplicates by scheduling Instead of choosing a fix sequential path (e.g., src->B->D->dst), the source chooses a list of forwarders (a forwarder list in the packets) using ETX-like metric a background process collects ETX information via periodic link-state flooding Forwarders are prioritized by ETX-like metric to the destination

ExOR: Forwarding Group packets into batches The highest priority forwarder transmits when the batch ends The remaining forwarders transmit in prioritized order each forwarder forwards packets it receives yet not received by higher priority forwarders status collected by batch map

Batch Map Batch map indicates, for each packet in a batch, the highest-priority node known to have received a copy of that packet

ExOR: Example N2 N0 N3 N1

ExOR: Stopping Rule A nodes stops sending the remaining packets in the batch if its batch map indicates over 90% of this batch has been received by higher priority nodes the remaining packets transferred with traditional routing

Evaluations 65 Node pairs 1.0MByte file transfer 1 Mbit/s 802.11 bit rate 1 KByte packets EXOR bacth size 100 1 kilometer

Evaluation: 2x Overall Improvement 1.0 0.8 0.6 Cumulative Fraction of Node Pairs 0.4 0.2 ExOR Traditional spend a little more time on the 240 x. 121. say this is just for the median, and it’s a factor of 2! 200 400 600 800 Throughput (Kbits/sec) Median throughputs: 240 Kbits/sec for ExOR, 121 Kbits/sec for Traditional

OR uses links in parallel possible question – why are there only 7 forwarders.(just say we thin out...) ExOR 7 forwarders 18 links Traditional Routing 3 forwarders 4 links

OR moves packets farther 58% of Traditional Routing transmissions 0.6 ExOR Traditional Routing Fraction of Transmissions 0.2 25% of ExOR transmissions 0.1 lower is better. right circle – using lots of longer links, sum them up and it’s 25%. so, like ex 1, using lots of long links. zeros: before many packets made no progress, with exor at least some. 100 200 300 400 500 600 700 800 900 1000 Distance (meters) ExOR average: 422 meters/transmission Traditional Routing average: 205 meters/tx

Comments: ExOR Pros Cons takes advantage of link diversity (the probabilistic reception) to increase the throughput does not require changes in the MAC layer can cope well with unreliable wireless medium Cons scheduling is hard to scale in large networks overhead in packet header (batch info) batches increase delay

Outline Admin. Link metrics Non-traditional routing motivation network coding: exploiting network broadcast opportunistic routing ExOR MORE

MORE: MAC-independent Opportunistic Routing & Encoding Basic idea: Replace node coordination with network coding Trading structured scheduler for random packets combination Previous network coding technique is for inter-flow MORE is for intra-flow network coding

Basic Idea: Source Chooses a list of forwarders (e.g., using ETX) Breaks up file into K packets (p1, p2, …, pK) Generate random packets MORE header includes the code vector [cj1, cj2, …cjK] for coded packet pj’

Basic Idea: Source

Basic Idea: Forwarder Check if in the list of forwarders Check if linearly independent of new packet with existing packet Re-coding and forward

Basic Idea: Destination Decode Send ACK back to src if success

Key Practical Question: How many packets does a forwarder send? Compute zi: the expected number of times that forwarder i should forward each packet

Computes zs Єij: loss probability of the link between i and j Compute zs so that at least one forwarder that is closer to destination is expected to have received the packet :

Compute zj for forwarder j Only need to forward packets that are received by j sent by forwarders who are further from destination not received by any forwarder who is closer to destination

Compute zj for forwarder j To guarantee at least one forwarder closer to d receives the packet

Evaluations 20 nodes distributed in a indoor building Path between nodes are 1 ~ 5 hops in length Loss rate is 0% ~ 60%; average 27%

Throughput

Problem of MORE?

Mesh Networks API So Far Forward correct packets to destination PHY/LL Deliver correct packets

570 bytes; 1 bit in 1000 incorrect Motivation R1 10-3 BER 0% S D 0% 10-3 BER R2 570 bytes; 1 bit in 1000 incorrect  Packet loss of 99%

Opportunistic Routing  50 transmissions Implication R1 99% (10-3 BER) Loss 0% S D Loss 0% 99% (10-3 BER) R2 Opportunistic Routing  50 transmissions

Outline Admin. Link metrics Non-traditional routing motivation network coding: exploiting network broadcast opportunistic routing ExOR MORE MIXIT

New API PHY + LL Deliver correct symbols to higher layer Network Forward correct symbols to destination

What Should Each Router Forward? P1 P1 P2 R2 P2 P1 P2

What Should Each Router Forward? P1 P2 P1 P1 P2 R2 P2 P1 P2 P1 P2 Forward everything  Inefficient Coordinate  Unscalable

Symbol Level Network Coding P1 P2 P1 R2 P2 P1 P2 Forward random combinations of correct symbols

Symbol Level Network Coding … … D R2 … … Routers create random combinations of correct symbols

Symbol Level Network Coding … D R2 … Solve 2 equations Destination decodes by solving linear equations

Symbol Level Network Coding … … D R2 … … Routers create random combinations of correct symbols

Symbol Level Network Coding … D R2 … Solve 2 equations Destination decodes by solving linear equations

Destination needs to know which combinations it received Use run length encoding Original Packets Coded Packet

Destination needs to know which combinations it received Use run length encoding Original Packets Coded Packet

Destination needs to know which combinations it received Use run length encoding Original Packets Coded Packet

Destination needs to know which combinations it received Use run length encoding Original Packets Coded Packet

Destination needs to know which combinations it received Use run length encoding

Evaluation Implementation on GNURadio SDR and USRP Zigbee (IEEE 802.15.4) link layer 25 node indoor testbed, random flows Compared to: Shortest path routing based on ETX MORE: Packet-level opportunistic routing

Throughput Comparison CDF 2.1x MIXIT 3x MORE Shortest Path Throughput (Kbps)

Backup Slides

Motivation for a Better Metric

Implementation and such Modify DSDV or DSR Example evaluation: in DSDV w/ ETX, route table is a snapshot taken at end of 90 second warm-up period in DSR w/ ETX, source waits additional 15 sec before initiating the route request

Where do the gains come from? CDF MIXIT without concurrency 1.5x MORE Shortest Path Throughput (Kbps) Take concurrency away from MIXIT

Where do the gains come from? CDF MIXIT MORE Shortest Path Throughput (Kbps) Take concurrency away from MIXIT

Non-Traditional Routing, Transport and Localization Y. Richard Yang 3/3/2009

Admin. Project proposal: Exam date? March 6 by email to yry@cs.yale.edu and richard.alimi@yale.edu Exam date?

Outline Admin. Opportunistic routing Transport overview Localization overview

Recap: Opportunistic Routing Basic idea: Take advantage of spatial diversity Key issue Avoid redundancy and interference Techniques ExOR: coordination MORE: coordination -> random network coding

Opportunistic Routing  50 transmissions Problem of MORE R1 99% (10-3 BER) Loss 0% S D Loss 0% 99% (10-3 BER) R2 Opportunistic Routing  50 transmissions

MIXIT: Revisiting Link/ Network API PHY + LL Deliver correct symbols to higher layer Network Forward correct symbols to destination R1 S P1 P1 P2 R2 P2 P1 P2

Key Question: What Should Each Router Forward? P1 P1 P2 R2 P2 P1 P2

Key Question: What Should Each Router Forward? P1 P2 P1 P1 P2 R2 P2 P1 P2 P1 P2 Forward everything  Inefficient

Symbol Level Network Coding P1 P2 P1 R2 P2 P1 P2 Forward random combinations of correct symbols

Symbol Level Network Coding … … D R2 … … Routers create random combinations of correct symbols

Symbol Level Network Coding … D R2 … Solve 2 equations Destination decodes by solving linear equations

Symbol Level Network Coding … … D R2 … … Routers create random combinations of correct symbols

Symbol Level Network Coding … D R2 … Solve 2 equations Destination decodes by solving linear equations

Problem: Mixed Correct and Incorrect Symbols Original Packets

Destination needs to know which combinations it received Use run length encoding Original Packets Coded Packet

Destination needs to know which combinations it received Use run length encoding Original Packets Coded Packet

Destination needs to know which combinations it received Use run length encoding Original Packets Coded Packet

Destination needs to know which combinations it received Use run length encoding Original Packets Coded Packet

Destination needs to know which combinations it received Use run length encoding

Evaluation Implementation on GNURadio SDR and USRP Zigbee (IEEE 802.15.4) link layer 25 node indoor testbed, random flows Compared to: Shortest path routing based on ETX MORE: Packet-level opportunistic routing

Throughput Comparison CDF 2.1x MIXIT 3x MORE Shortest Path Throughput (Kbps)