Академический Документы
Профессиональный Документы
Культура Документы
Application scenarios
Collaboration between users in office environments Disaster recovery applications Military networks Personal Area Networks Home Networking Wireless Sensor Networks (WSNs) Inter-vehicular communication
All-pairs in general ad hoc networks, from sensors to sink(s) in sensor networks In many case not high 10-100 nodes in traditional ad hoc networks 1000-10000 in sensor networks
Given a graph G=(N,A) and a node s find the shortest path from s to every node in N.
Bellman-Ford
A shortest walk from s to i subject to the constraint that the walk contains at most h arcs and goes through node s only once, is denoted shortest(<=h) walk and its length is Dhi. Bellman-Ford rule: Initiatilization Dhs=0, for all h; wi,k = infinity if (i,k) NOT in A; wk,k =0; D0i=infinity for all i!=s. Iteration: Dh+1i=mink [wi,k + Dhk] Assumption: non negative cycles (this is the case in a network!!)
The Bellman-Ford algorithm first finds the one-arc shortest walk lengths, then the two-arc shortest walk length, then the three-arcetc. distributed version used for routing
Bellman-Ford
Dh+1i=mink [wi,k + Dhk]
Can be computed locally. What do I need?
For each neighbor k, I need to know -the cost of the link to it (known info) -The cost of the best route from the neighbor k to the destination (this is an info that each of my neighbor has to send to me via messages)
In the real world: I need to know the best routes among each pair of nodes we apply distributed Bellman Ford to get the best route for each of the possible destinations
asynchronous:
nodes need not exchange info/iterate in lock step! Distributed, based on local info: each node communicates only with directly-attached neighbors
each node has its own row for each possible destination column for each directlyattached neighbor to node example: in node X, for dest. Y via neighbor Z:
X distance from X to = Y, via Z as next hop = c(X,Z) + minw{D (Y,w)}
Z
D (Y,Z)
Y
50
Z
algorithm continues on!
Y detects link cost Increase but think can Reach X through Z at a total cost of 6 (wrong!!)
Al. Patria thinks I have to find another route from me to P.Popolo. Look there is a route from Colosseo to P.Popolo that takes 2Km, I can be at Colosseo in 1Km I have found a 3Km route from me to P.Popolo!! Communicates the new cost to Colosseo that updates OK I can go to P.Popolo via Al. Patria in 4Km VERY WRONG!! Why is it so? I didnt know that the route from Colosseo to P.Popolo was going through Via del Corso from Al.Patria to P.Popolo (which is closed)!!
2 Primary Approaches
Proactive
Based on traditional distance-vector and link-state protocols Each node maintains route to each other network node Periodic and/or event triggered routing update exchange Higher overhead in most scenarios Longer route convergence time Examples: DSDV, TBRPF, OLSR
Destination address Number of hops required to reach the destination Sequence number of the information received regarding that destination as originally stamped by the destination
Address (HW address/Net address) of the sender of the message Sequence number created by the transmitter
Two types of updates (full dump or incremental-only changes- to decrease bandwidth consumption.
How can the costs be modified? Cost=number of hops, target: using fresh routes as short as possible a link cost changes from 1 to inf and from inf to 1 How do we detect that a link is broken? At layer 2 (no hello messages received for some time, or attempts to retransmit a frame exceeds the MAC protocol threshold) or at layer 3 (do not receive periodic updates by a neighbor) Link cost increase (1 inf):
The nodes incident to that link (A,B) discover it (see above) Routes going through that link get assigned an inf cost in nodes A and B routing tables A new sequence number is generated by the mobile node. Mobile nodes different from the destination use odd SN, the destination even SN. Updates with routes with infinite cost are immediately transmitted by nodes
routes with more recent sequence numbers to a given destination are used if more routes available with the same SN the shortest is used
Newly recorded routes are scheduled for immediate advertisement (inf finite value) Routes with improved metric are scheduled for advertisement at a time which depends on the estimated average settling time for routes to that particular destination (based on previous history) As soon as a route cost changes the node may delay informing its neighbors but immediately starts using the new information for its forwarding
let G(x) denotes the routes graph from the sources to x BEFORE the change (assume no loop) change occurs at i when 1) the link from i to its parent p(i ) in G(x) breaks i sets to inf that route (no loop can occur) 2) node i receives from one of its neighbors k a route to x with sequence number SNxk and metric m which is selected to replace the current metric i has to reach x (this occurs only if SNxk greater than the previous SN I had stored Snxi or if the two SN are equal but the new route has a lower hop cost in the first case if selecting k leads to a loop then SNxk <= Snxi which is a contradiction, in the second case comes from the observation reduction in the costs do not bring to loops).
Source build routes on-demand by flooding Maintain only active routes Route discovery cycle Typically, less control overhead, better scaling properties Drawback: route acquisition latency Example: AODV, DSR
1. Node S needs a route to D AND does not have routing info for it in its table
A C D
A C D
B
C D
Makes reverse route entry for S dest=S, nexthop=S, hopcnt=1 It has no route to D, so it rebroadcasts RREQ
B
C D
Makes reverse route entry for S dest=S, nexthop=A, hopcnt=2 It has a route to D, and the seq# for route to D is >= Ds seq# in RREQ
B
C D
C creates a Route Reply (RREP) Enters Ds IP addr, seq# Ss IP addr, hopcount to D (= 1), lifetime of the
forward route Unicasts RREP to A
C creates a Route Reply (RREP) Enters Ds IP addr, seq# Ss IP addr, hopcount to D (= 1). Unicasts RREP to A
B
A
RREP
B
A C D
Also the latest SN of the destination is updated when receiving the RREP Nodes not along the path determined by the RREP will timeout after ACTIVE_ROUTE_TIMEOUT (3000ms) and will delete the reverse pointer
Makes forward route entry to D dest = D, nexthop = A, hopcount = 3 Sends data packets on route to D
What if.
A node receives further RREPs for the same request? (e.g. more neighbors of a node had paths to the destination in cache)?
upon reception of another RREP the node updates its routing information and propagates the RREP only if the RREP contains either a greater destination SN, or the same destination SN with a smaller hopcount
Routing table entries: dest,next hop, hopcount, dest SN, active neighbors for this route, expiration time for route table entry (updates each time the route is used for transmitting data routes entries are maintained if the route is active)
1. 2. 3.
D Link between C and D breaks Node C invalidates route to D in route table Node C creates Route Error (RERR) message
Lists all destinations which are now unreachable Sends to upstream neighbors Increases of one the SN of the destination
B
A
RERR
Checks whether C is its next hop on route to D Deletes route to D Forwards RERR to S
B
A C D
Checks whether A is its next hop on route to D Deletes route to D Rediscovers route if still needed (in that case it sends a RREQ with a SN which is equal to the last known destination Sequence Number +1)
AODV: Optimizations
Expanding Ring Search
Prevents flooding of network during route discovery Control Time To Live (TTL) of RREQ to search incrementally larger areas of network Advantage: Less overhead when successful Disadvantage: Longer delay if route not found immediately
Repair breaks in active routes locally instead of notifying source Use small TTL because destination probably hasnt moved far If first repair attempt is unsuccessful, send RERR to source Advantage: repair links with less overhead, delay and packet loss Disadvantage: longer delay and greater packet loss when unsuccessful
AODV: Summary
Reactive/on-demand Sequence numbers used for route freshness and loop prevention Route discovery cycle Maintain only active routes Optimizations can be used to reduce overhead and increase scalability
B
A C D
RREQ identifies the target of the route discovery, contains a route record in which the traversed route is accumulated, contains a pair <initiator, request id> uniquely identifying the request
B
A C D
1. Node S needs a route to D 2. Broadcasts RREQ packet 3. Node A receives packet, has no route to D AND is NOT D
B
C D
1. Node S needs a route to D 2. Broadcasts RREQ packet 3. Node A receives packet, has no route to D
B
C D
Rebroadcasts packet after adding its address to source route Puts source route accumulated in RREQ into RREP
Rebroadcasts packet after adding its address to source route Puts source route accumulated in RREQ into RREP
Unicasts to A
B
C D
Unicasts to S
B
C D
Route maintenance
The two endpoints of a failed link are transmitted to the source in a route error packet Upon a receiving a RERR packet a node invalidates all the routes going through that link If the route is invalidated and it is needed, a new route must be discovered
Optimizations (1)
Extensive use of caching (caching source routes means that I already know all the route to intermediate destinations, discovery a better route to an intermediate destination also brings me to improve the route to the final destination). Transmitting packets or sending back replies make me learn routes. A node that knows a route to a given destination (has a source route in cache) can immediately answer a RREQ
Broadcast storm? Each nodes waits for a time which is C*(h-1+r), r random in (0,1), h length of the route Im advertising. Only if I havent received other routes listen to other routes tx in the meanwhile-I transmit mine.
Optimization (2)
Operation in promiscuous mode (I keep discovering new routes by transmission of routes by my neighbours) RREQ overhead minimization: first set a TTL=1, if I do not get answer I set it to infinity Path shortening: if Y receives a packet by node X but in the source route we have X, B,,C,Y, Y signals the path can be shortened (unsolicited RREP) What if the network is disconnected? Exponential back-off to decrease the quantity of RREQ sent
Geographically-Enabled Routing
Outline
Problems with proactive approaches Problems with reactive approaches A new way of naming\locating the destination node: geographic routing Two seminal protocols
DREAM & LAR
Geo-enable routing costs: I need to know where I am, where the destination is.
Strengths
No need to update big routing tables, no need to piggyback routes to the packet
No need to know the nodes on the way to the destination: they can be moving while the packet travels
Drawbacks
Needs extra hardware
Depends on the extra hardware limitation
DREAM
Distance routing effect algorithm for mobility [Basagni+, 1998] A proactive, effective way to spread location information
Directional routing
Efficient broadcast of location information Determining how far each location packet should travel Determining how often a location packet should be sent
DREAM, Strengths
First of its kind: after that, the deluge!
Robustness: multiple routes to the destination
directional flooding
DREAM, Weaknesses
It is flooding, although only directional
Expected region determined based on potentially old location information, and knowledge of the destinations speed
RREQs limited to a Request Zone that contains the Expected Zone and location of the sender node
LAR
The request zone is the smallest rectangle that includes the current location of the source and the expected zone Only nodes within the request zone forward route requests
Request zone explicitly specified in the RREQ Each node must know its physical location to determine whether it is within the request zone
(XS, YD + r)
Request Zone
(XD+ r, YD+ r) r
Reduces the scope of RREQ flood Reduces overhead of route discovery Nodes need to know their physical locations
Disadvantages
communication sensors sink Info such as localization and some level of synchronization often needed by the application (if I sense an event I have to say WHERE and WHEN it occurred, otherwise the information is not very interesting)
An example: GeRaF
Integrates
How do nodes alternate between awake and asleep states? According to a duty cycle (time ON/time ON+ OFF)
ON
OFF ON OFF
GeRaF: operations
Main problem to be solved: how to make a contention-based scheme/routing work in the presence of sleep modes
Flat solution Integrated MAC/routing/awake-asleep but awakeasleep schedule and routing decoupled each node does not know its neighbor and their schedules low overhead
Tightly integrated with the routing layer (no clear separation really)
Without requiring routing tables/routing table updates Based on the knowledge of the nodes location and on the knowledge of the sink location
RTS invites all awake neighbors to become a relay Nodes in best position should win
Nodes within tx range are divided in areas depending on how close they are to the final destination (the closest the better as relay)
GeraF operation
Node i sends RTS with the identity of the area it is polling now (starting from the closer to the sink, among the slices in which its tx range has been divided) Each node, upon receiving the RTS, decides whether it belongs to the polled area or not (based on location info) Only nodes in the polled area answer with a CTS
No node answers node i polls next area (no node available for forwarding in the area-there are no nodes or they are sleeping) One answer, CTS correctly received, send DATA Multiple answer COLLISION, sender sends a collision packet, MAC needed to solve collision (next slide)
if only one node answers node i sends data If no node answers node i asks these nodes to toss a coin again.. if more nodes answer COLLISION. Collision packet is sent. GO TO 1) (only the nodes which have lead to collision survive to the next phase)
What If
All areas are polled unsuccessfully?
What if (answer)
No. Here is An example
Tx radius
sink
Solutions? (mechanisms have to be added to recognize the problem, do backtracking and try another route)
A problem only at low density We can set a maximum number of attempts to find a relay. When a node fails to find a relay it starts decreasing its duty cycle/or the probability to propose itself as relay over time nodes along paths to dead-ends are less and less selected as next hop relays and other paths able to bring to the destination are instead found Still..we may have problems
Tx radius
sink
GeRaf performance
square area 320m x 320m Transmission range=40m 100-1000 randomly deployed nodes (avg degree 5-50) Duty cycle =0.01,0.1,0.5 Comparable costs for tx/rx/idle Poisson packet arrival Channel data rate 38Kbps
Con i meccanismi per evitare dead end si sale a % di successfully Delivered packets nel caso di 200 nodi pari a 93-97% (evitando Nel tempo cammini che portino a dead ends). Non si risolve il Problema nel caso n=100. Soluzione completa in uno schema che abbiamo proposto: ALBA.
Thanks to Prof. Mani Srivastava These slides have been derived From his tutorial on sensor networks Given at Rome Un. On July 2003
Useful info
Localization
Helps with some protocols (e.g. GeraF) Needed for being able to identify where events occur
Large size High power consumption Works only when LOS to satellites (not in indoor, heavy foliage) Over kill often only relative position is needed (e.g. enough to know that relative to a coordinate system centered in the sink the event occurred in a position (x,y). Starting from relative info if some nodes have global coordinates global coordinates of events can be inferred. Works only on earth
Localization
Basic step is to evaluate distance between two nodes (ranging). Different techniques depending on the available HW:
Range free approaches (number of hops between nodes used to estimate the distance between them without using any extra HW)
Simple geometric relationships can be used to determine the location by finding the intersections of the lines-of-position e.g. Radiolocation based on angle of arrival (AoA) measurements of beacon nodes (e.g. base stations)
can be done using directive antennas + a compass BS need at least two measurements
BS
1
MS
3
BS
use pre-measured signal strength contours around fixed basestation (beacon) nodes
distance = time * c
each measurement gives a circle on which the MS must lie active vs. passive
active: receiver sends a signal that is bounced back so that the receiver knows the round-trip time passive: receiver and transmitter are separate time of signal transmission needs to be known
d2
x1
But what if the circles do not intersect due to measurement errors (e.g. due to fading etc.)?
d1
MS
d3
BS
x3
Location in 3D
Location in 3D
Location in 3D
Beacon nodes
A small fraction of the nodes is aware of their locations Rest need to collaborate to estimate their locations
Atomic Multilateration
Nodi che hanno ru ,1 almeno 3 vicini 1 u (in 2D, se si usa Ad esempio RSS) ru , 2 beacon possono stimare2 la loro posizione (triangolarization)
ru ,3
3
F ( xu , yu ) min fu2 ,i
Iterative Multilateration
Nodes that estimate their locations can become beacons and help other nodes discover their locations. Some observations:
Can work for small networks, if ranging is accurate Energy efficient Still requires quite a lot of initial beacons Suffers from error accumulation Bad geometry yields bad results => unpredictable performance Still a useful primitive for Distributed Collaborative Multilateration
X3,Y3
X1,Y1 X2,Y2
X3,Y3
A traditional networking solution: Hierarchical organization of the nodes Network nodes are grouped into clusters Some nodes, locally the best, are selected to coordinate the clustering process: Clusterheads
Previous Approaches
Heuristics based on Independent Sets
Minimum ID approach (Gerla & al.) Maximum degree (Ephremides & al.) The concept of spine Minimum connected dominating set
MIS: Hardness
No known algorithm computer a MIS in polynomial time Need for approximate solutions And approximation algorithm is an algorithm that produces a solution that is not optimal, but that approximates it We sacrifice optimality in favor of a good solution that can be computed efficiently
Keep going till all the vertices are either in the MIS or COVERED by a vertices in the MIS
An independent set is maximal when, if you add a vertex, the set is no longer independent
You cannot make an maximal independent set bigger
A dominating set D subset of V is a set such that a vertex v V is either in D or it has a neighbor in D
It means that the ratio between the size of a DS computed by MIS greedy on UDGs and the size of a MDS is < c, c a constant
This constant is 5
MWIS-Based Clustering
MWIS = Maximal Weight Independent Set Clustering selection based on generic weights (real numbers > 0)
Two Protocols
Distributed Clustering Algorithm (DCA)
Quasi-mobile networks, periodical reclustering. Allow complexity analysis, fast and simple
Same rules/procedures for clustering set up and maintenance, adaptive to nodes mobility and node/link failures
Knowledge of IDs and weights of one-hop neighbors Broadcast transmission of a packet in finite time (a step) Nodes do not move during clustering
DCA, 2
(Only) Two messages:
CH(v): Sent by a clusterhead v JOIN(u,t): Sent by ordinary node u when it joins the cluster of clusterhead t Init (start up) OnReceivingCH(v), OnReceivingJOIN(u,v) (message triggered)
DCA
Ogni nodo conosce i suoi vicini ed il loro peso Un nodo init se ha il peso pi grande dei pesi dei suoi nodi vicini Gli init node diventano clusterhead e invitano i loro vicini a far parte del loro cluster Un nodo x aspetta di ricevere messaggi dai vicini di peso maggiore prima di prendere una decisione
Se un vicino di peso maggiore lo invita a far parte del suo cluster allora x entra a far parte del cluster del vicino di peso maggiore che lo contatta (inviando un messaggio di Join) nodo ordinario Altrimenti diventa clusterhead lui stesso e invia un messaggio di CH
DCA
Due tipi di messaggi
CH(v) usato da un nodo v per rendere consapevoli i suoi vicini del fatto che ha assunto il ruolo di clusterhead JOIN(v,u) usato dal nodo v per comunicare ai suoi vicini che sar parte di un cluster il cui clusterhead il nodo u
DCA
Variabili
Cluster(v) indica linsieme dei nodi che fanno parte del cluster di cui clusterhead v Clusterhead una variabile che identifica il clusterhead del mio cluster Ch(u) vero quando o ha mandato un messaggio CH (u==v) oppure quando ha ricevuto un messaggio di CH dal nodo u La variabile booleana Join (u,t) vera se il nodo v ha ricevuto un JOIN(u,v) dal nodo u
Example
Cluster 1
4(9) clusterhead 1(6) 2(3) 7(5) clusterhead 6(1)
Cluster 2
5(8)
Cluster 3 V Step
I Step
II Step
III Step
IV Step
Message-triggered procedures:
If a network is connected, and DCA is used, then if and only if each clusterhead is linked to all the clusterheads at most three hops away, the resulting backbone network is connected
Example
Cluster 1
4(9) clusterhead 1(6) 2(3) 7(5) clusterhead 6(1)
Cluster 2
5(8)
Cluster 3 V Step
I Step
II Step
III Step
IV Step
Selection of independent set of nodes and backbone construction (DCA) Rich dominating set formation and pruning (WuLi) Two-phase algorithm with theoretical guarantees (WAF)
A DCA Backbone
WuLi-dominance property
da On Calculating Connected Dominating Set for Efficient Routing in Ad Hoc Wireless Networks, Wu and Li
Assume V is the set of vertices that are marked T in V, i.e., the set of vertices which initially enter the CDS since they have at least two neighbors which are not neighbors of each other. The reduced graph G is the subgraph of G induced by V. The following two theorems show that G is a dominating set of G and it is connected. THEOREM 1: Given a G = (V, E) that is connected, but not completely connected, the vertex subset V, derived from the marking process, forms a dominating set of G. PROOF: Randomly select a vertex v in G. We show that v is either in V (a set of vertices in V that are marked T) or adjacent to a vertex in V . Assume v is marked F, if there is at least one neighbor marked T, the theorem is proved. When all its neighbors are marked F, we consider the following two cases: (1) All the other vertices in G are neighbors of v. Based on the marking process and the fact that m(v)=F, all these neighbors must be pairwise connected, i.e., G is completely connected. This contradicts to the assumption that G is not completely connected. (2) There is at least one vertex u in G that is not adjacent to vertex v. Construct a shortest path, {v,vi,v2, . . . . u}, between vertices v and u. Such a path always exists since G is a connected graph. Note that v2 is u when v and u are 2-distance apart in G. Also, v and v2 are not directly connected; otherwise, {v, v2,. .. u} is a shorter path between v and u. Based on the marking process, vertex vi, with both v and v2 as its neighbors, must be marked T. Again this contradicts the assumption that vs neighbors are all marked F. CVD
Rule 1: for each pair of nodes u and v in C the one with the smallest ID, say v, can be removed from C if v and all its neighbors are covered by u Rule 2: Assume nodes u,v, and w are in C and assume that vs ID localized is the smallest. If u and w are Distributed and protocols for neighors of v and are in each other transmission forming a connected dominating set range and if each neighbor of v is covered by u and w, then v can be removed from C. Build a rich connected dominating set
Applies localized rules for pruning unnecessary nodes/links High degree of parallelism (all localized)
Mantengono la propriet di connessione e di dominanza
A WuLi Backbone
Leader election: One node is chosen among all network nodes to be the root of a tree Nodes at different levels of the trees can be chosen to form a connected dominating set
The leader election tree is quite expensive Very low degree of parallelism
A WAF Backbone
Simulation Results
1. 2. 3. 4. 5. 6.
Metrics (all averages) Protocol duration Operation overhead (in bytes) Energy consumption (per node) Backbone size Route length Backbone robustness (node deaths for disconnections)
Simulation Results, 2
Parameters of ns2-based simulations
Area: 200 x 200m Six scenarios with increasing densities (avg. degrees: 3.5 to 20)
Protocol Duration
WuLi is fastest
Simple operation; parallelism Possible dependencies and gateway selection The sparsification phase is executed by fewer nodes and requires little info exchange Non-trivial leader election
DCA-S: As DCA
WAF: Slower
Protocol Duration, 2
Protocol Overhead
Protocol Overhead, 2
Average number of protocol bytes per node WuLi: Best performing
WAF
Energy Consumption
Important metric per backbone set up and maintenance Similar to overhead results WuLi and DCA perform quite well DCA-S performs similarly: No difference in breaking cycles with 3 or 4 links WAF: High consumption due to first phase
Energy Consumption, 2
Backbone Size
Important metric: Aggregation and awake/asleep cycles
Decrease with n increasing (bigger clusters) WAF: Slimmer backbone (tree like) DCA-S, 4 < DCA-S, 3 < DCA < WuLi
Backbone Size, 2
Backbone Robustness
Number of nodes needed to disconnect the backbone Useful for planning backbone re-orgs Increases with network density WuLi and DCA: More robust
Backbone Robustness, 2
Route Length
Flat topology (visibility graph) as a base Expected increase: Hierarchy routes are longer DCA & WuLi: 7 to 34.7% longer routes DCA-S: Up to 9% more than DCA WAF: Up to 33.4% longer than DCA
Route Length, 2
To Go
Hierarchical organization is effective for prolonging network lifetime Four protocols for backbone formation:
Nice theoretical features hard to implement Simple solutions (WuLi, DCA): Good starting point for efficient implementations DCA-S: Slimmer backbone at a reasonable cost