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)