Mobile and Ubiquitous Computing Routing Protocols. Niki Trigoni

Similar documents
Sensor Network Application Development ZIGBEE CONCEPTS 0

LECTURE 9. Ad hoc Networks and Routing

Programming Sensor Networks

Introduction to Programming Motes

Routing in Ad Hoc Wireless Networks PROF. MICHAEL TSAI / DR. KATE LIN 2014/05/14

Content. 1. Introduction. 2. The Ad-hoc On-Demand Distance Vector Algorithm. 3. Simulation and Results. 4. Future Work. 5.

Performance Analysis of Broadcast Based Mobile Adhoc Routing Protocols AODV and DSDV

Mobile Ad-hoc and Sensor Networks Lesson 04 Mobile Ad-hoc Network (MANET) Routing Algorithms Part 1

ECS-087: Mobile Computing

2013, IJARCSSE All Rights Reserved Page 85

Outline. CS5984 Mobile Computing. Taxonomy of Routing Protocols AODV 1/2. Dr. Ayman Abdel-Hamid. Routing Protocols in MANETs Part I

Routing protocols in Mobile Ad Hoc Network

A Review of Reactive, Proactive & Hybrid Routing Protocols for Mobile Ad Hoc Network

Routing Protocols in MANETs

Lecture 13: Routing in multihop wireless networks. Mythili Vutukuru CS 653 Spring 2014 March 3, Monday

Mobility and Density Aware AODV Protocol Extension for Mobile Adhoc Networks-MADA-AODV

A COMPARISON OF REACTIVE ROUTING PROTOCOLS DSR, AODV AND TORA IN MANET

CS5984 Mobile Computing

Maharishi Markandeshwar University

Experiment and Evaluation of a Mobile Ad Hoc Network with AODV Routing Protocol

Behaviour of Routing Protocols of Mobile Adhoc Netwok with Increasing Number of Groups using Group Mobility Model

A COMPARISON OF IMPROVED AODV ROUTING PROTOCOL BASED ON IEEE AND IEEE

Performance Comparison of AODV, DSR, DSDV and OLSR MANET Routing Protocols

Performance Analysis of Three Routing Protocols for Varying MANET Size

Performance analysis of aodv, dsdv and aomdv using wimax in NS-2

[Kamboj* et al., 5(9): September, 2016] ISSN: IC Value: 3.00 Impact Factor: 4.116

Enhanced QoS in MANETs using Analysis of Routing Protocol

Performance Comparison of AODV, DSDV and DSR Protocols in Mobile Networks using NS-2

Improvement on Gossip Routing Protocol using TOSSIM in Wireless Sensor Networks

Routing Protocols in Mobile Ad-Hoc Network

A Comparative Study of Routing Protocols for Mobile Ad-Hoc Networks

Gateway Discovery Approaches Implementation and Performance Analysis in the Integrated Mobile Ad Hoc Network (MANET)-Internet Scenario

Performance Analysis of Aodv Protocol under Black Hole Attack

A New Energy-Aware Routing Protocol for. Improving Path Stability in Ad-hoc Networks

Analysis of Routing Protocols in MANETs

Performance Evolution of Proactive and Reactive Routing Protocols in Mobile Ad Hoc Networks

Simulation & Implementation of Wireless Routing Protocol

A Reliable Route Selection Algorithm Using Global Positioning Systems in Mobile Ad-hoc Networks

Performance Comparison and Analysis of DSDV and AODV for MANET

PERFORMANCE ANALYSIS OF AODV ROUTING PROTOCOL IN MANETS

1 Multipath Node-Disjoint Routing with Backup List Based on the AODV Protocol

Figure 1: Ad-Hoc routing protocols.

A Comparative study of On-Demand Data Delivery with Tables Driven and On-Demand Protocols for Mobile Ad-Hoc Network

Mobile & Wireless Networking. Lecture 10: Mobile Transport Layer & Ad Hoc Networks. [Schiller, Section 8.3 & Section 9] [Reader, Part 8]

A Comparative Analysis of Energy Preservation Performance Metric for ERAODV, RAODV, AODV and DSDV Routing Protocols in MANET

Mobile and Ubiquitous Computing TinyOS application example. Niki Trigoni

Volume 3, Issue 6, June 2015 International Journal of Advance Research in Computer Science and Management Studies

Performance Comparison of AODV, DSDV and I-DSDV Routing Protocols in Mobile Ad Hoc Networks

TinyOS. Wireless Sensor Networks

Mitigating Superfluous Flooding of Control Packets MANET

Study of Route Reconstruction Mechanism in DSDV Based Routing Protocols

ROUTE STABILITY MODEL FOR DSR IN WIRELESS ADHOC NETWORKS

AODV-PA: AODV with Path Accumulation

A Highly Effective and Efficient Route Discovery & Maintenance in DSR

REVIEW ON ROUTING PROTOCOLS FOR MOBILE AD HOC NETWORKS

Performance of DSDV Protocol over Sensor Networks

Power aware Multi-path Routing Protocol for MANETS

Exploring the Behavior of Mobile Ad Hoc Network Routing Protocols with Reference to Speed and Terrain Range

Backward Aodv: An Answer To Connection Loss In Mobile Adhoc Network (Manet)

Chapter 16. Wireless LAN, Mobile Ad Hoc Networks, and MANET Routing Protocols. Wireless Network Models. Illustration of an ad hoc network

Wireless LAN, Mobile Ad Hoc Networks, and MANET Routing Protocols

Performance of Ad-Hoc Network Routing Protocols in Different Network Sizes

A Graph-based Approach to Compute Multiple Paths in Mobile Ad Hoc Networks

MANET TECHNOLOGY. Keywords: MANET, Wireless Nodes, Ad-Hoc Network, Mobile Nodes, Routes Protocols.

TinyOS an operating system for sensor nets

Anil Saini Ph.D. Research Scholar Department of Comp. Sci. & Applns, India. Keywords AODV, CBR, DSDV, DSR, MANETs, PDF, Pause Time, Speed, Throughput.

Wireless Sensor Networks

IMPACT OF MOBILITY SPEED ON PROACTIVE AND REACTIVE ROUTING PROTOCOLS IN MOBILE ADHOC NETWORKS

ENERGY-AWARE FOR DH-AODV ROUTING PROTOCOL IN WIRELESS MESH NETWORK

Embedded OS Case Study: TinyOS

Simulation & Performance Analysis of Mobile Ad-Hoc Network Routing Protocol

CLASSIFICATION OF ROUTING Routing. Fig.1 Types of routing

Performance Comparison of Ad Hoc Routing Protocols over IEEE DCF and TDMA MAC Layer Protocols

PERFORMANCE EVALUATION OF DSR AND AODV OVER UDP AND TCP CONNECTIONS

Performance Evaluation Of Ad-Hoc On Demand Routing Protocol (AODV) Using NS-3 Simulator

Considerable Detection of Black Hole Attack and Analyzing its Performance on AODV Routing Protocol in MANET (Mobile Ad Hoc Network)

Motivation. Introduction to Wireless Sensor Networks. Office Building Fire. EEC173B Lecture:

A Survey on Wireless Routing Protocols (AODV, DSR, DSDV)

3. Evaluation of Selected Tree and Mesh based Routing Protocols

QoS Routing By Ad-Hoc on Demand Vector Routing Protocol for MANET

Performance Evaluation of MANET through NS2 Simulation

A Performance Comparison of MDSDV with AODV and DSDV Routing Protocols

Simulation Based Performance Analysis of Routing Protocols Using Random Waypoint Mobility Model in Mobile Ad Hoc Network

Analysis of Black-Hole Attack in MANET using AODV Routing Protocol

TinyOS an operating system for sensor nets. Embedded Operating Systems

Tietokoneverkot T

Mobile Ad Hoc Network Routing Protocols: A Comparative Study

Performance Analysis of Wireless Mobile ad Hoc Network with Varying Transmission Power

Simulation and Comparative Analysis of AODV, DSR, DSDV and OLSR Routing Protocol in MANET Abstract Keywords:

Effect of Variable Bit Rate Traffic Models on the Energy Consumption in MANET Routing Protocols

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Design and Implementation of a Simulator for Ad Hoc Network Routing Protocol

Mobile Adhoc Network Protocols Simulation: Distance Vector vs Source Routing Comparison

Performance Evaluation of Various Routing Protocols in MANET

QoS Parameter Analysis on AODV and DSDV Protocols in a Wireless Network

White Paper. Mobile Ad hoc Networking (MANET) with AODV. Revision 1.0

UCS-805 MOBILE COMPUTING Jan-May,2011 TOPIC 8. ALAK ROY. Assistant Professor Dept. of CSE NIT Agartala.

Routing Problems in Mobile Ad hoc Networks (MANET)

Shortcut Tree Routing using Neighbor Table in ZigBee Wireless Networks

Varying Overhead Ad Hoc on Demand Vector Routing in Highly Mobile Ad Hoc Network

Transcription:

Mobile and Ubiquitous Computing Routing Protocols Niki Trigoni www.dcs.bbk.ac.uk/~niki niki@dcs.bbk.ac.uk

Overview Intro to routing in ad-hoc networks Routing methods Link-State Distance-Vector Distance-vector routing protocols DSDV (proactive) AODV (reactive)

Routing in ad-hoc networks MH1 MH2 MH3 MH7 MH5 MH4 MH6 Adhoc network of mobile hosts represented as a graph G(N,E(t)) Two nodes are connected with an edge if they are within communication range

Routing in ad-hoc networks MH1 MH2 MH3 MH7 MH6 MH5 moves to another location MH4 new link MH6 Mobile hosts can move Mobile hosts can be dynamically added or removed from the network => The network connectivity changes dynamically

Routing in ad-hoc networks MH1 MH2 MH3 MH7 MH5 Nodes are not fully connected => Need for multi-hop communication MH4 MH6 Say MH7 wants to send a message to MH3. Several options: MH7 -> MH1 -> MH2 -> MH3 MH7 -> MH1 -> MH5 -> MH2 -> MH3 MH7 -> MH1 -> MH5 -> MH4 -> MH3 etc.

Routing in ad-hoc networks MH1 MH2 MH3 MH7 MH5 Routing problem: -> For each node find the best (e.g. shortest) path to each destination node. Distributed version of the routing problem: -> For each node find the next hop in the best (e.g. shortest) path to each destination node. MH4 MH6

Routing in ad-hoc networks Each node first identifies the preferred neighbor (next hop) in the optimal path to each destination. A data packet is forwarded hop-by-hop from the source to the destination along the optimal path: The data packet contains the destination node in its header. When a node receives a data packet, it forwards it to the preferred neighbor for its destination.

Link-state vs. distance-vector Link-state approach: Each node has a complete view of the network topology Each node propagates the costs of its outgoing links to all other nodes Distance-vector approach (Distributed Bellman-Ford): Every node i maintains for each destination x a set of distances d ij (x) for each neighbor node j: d ij (x) is the cost (e.g. number of hops) of sending a data packet to x through neighbor j Node i selects to forward a data packet through neighbor k such that: d ik (x) = min j {d ij (x) Each node periodically broadcasts to its neighbors its current estimate of the shortest distance to every destination node.

Link-state vs. distance-vector Problems of the link-state approach: Requires large storage space and heavy computation Inconsistent views of network topologies => short-lived routing loops Problems of the distance-vector approach: More efficient than link-state in terms of computation and storage requirements Stale routing information causes routing loops Nodes choose their next hops in a distributed manner short-lived and long-lived routing loops

DSDV: Destination-Sequenced Distance-Vector protocol Each node maintains locally a routing table Each entry of the routing table includes routing information for a destination node: the next hop in the optimal path to the destination the cost of the optimal path to the destination the freshness (sequence no) of the path to the destination The node advertises the local routing table to its neighbors Periodically When topology changes are detected On receiving routing information from a neighbor, a node uses it to update its own local routing table

DSDV: Destination-Sequenced Distance-Vector protocol A few entries in MH1 s routing table Destination Next Hop Metric Sequence Number Install MH2 MH2 1 S212_MH2 MH3 MH2 2 S302_MH3 Stable Data MH4 MH5 2 S100_MH4 Sequence number is generated at the destination MH1 MH2 MH3 MH7 MH5 MH4 MH6

DSDV: Destination-Sequenced Distance-Vector protocol Destin MH1 Routing Table Next Hop Metric Sequence Number MH6 MH2 4 S200_MH6 MH7 MH1 MH2 MH5 MH3 MH4 MH6 What if MH1 receives new routing information (Dest=MH6, Metric=2, SeqNo=S200_MH6) from MH5? Destin MH1 Routing Table (updated) Next Hop Metric Sequence Number MH6 MH5 3 S200_MH6

DSDV: Destination-Sequenced Distance-Vector protocol Destin MH1 Routing Table Next Hop Metric Sequence Number MH6 MH5 3 S200_MH6 MH7 MH1 MH2 MH5 MH3 MH4 MH6 Any routing information that MH1 receives regarding Dest=MH6 that has sequence number smaller than 200 (S200_MH6) is considered stale, and it is ignored by MH1.

DSDV: Destination-Sequenced Distance-Vector protocol Destin MH1 Routing Table Next Hop Metric Sequence Number MH6 MH5 3 S200_MH6 MH7 MH1 MH2 MH5 MH3 MH4 MH6 What if MH1 receives new routing information (Dest=MH6, Metric=2, SeqNo=S201_MH6) from MH5? Destin MH1 Routing Table (updated) Next Hop Metric Sequence Number MH6 MH5 3 S201_MH6

DSDV: Destination-Sequenced Distance-Vector protocol Destin MH1 Routing Table Next Hop Metric Sequence Number MH6 MH5 3 S200_MH6 MH7 MH1 MH2 MH5 MH3 MH4 MH6 What if the link between MH1 and MH5 breaks? Destin MH1 Routing Table (updated) New routing entry is broadcast Next Hop Metric Sequence Number MH6 MH5 S201_MH6

DSDV: Destination-Sequenced Distance-Vector protocol Compare new routing information with the information available in the local routing table Prefer routes with more recent sequence numbers Discard routes with older sequence numbers Prefer routes with sequence number equal to an existing entry if it has a better metric value Newly recorded routes are scheduled for immediate broadcasting Updated routes only with a new sequence number are scheduled for advertisement at a later time

DSDV: Destination-Sequenced Distance-Vector protocol Two modes of propagating routing information: Full dump: All available routing information is broadcast Incremental dump: Only information changed since the last full dump is broadcast When mobile nodes do not move a lot, full dumps are sent infrequently. When the network topology changes fast, full dumps are scheduled more frequently.

AODV: Ad Hoc On-Demand Distance-Vector protocol Compared to DSDV, AODV tries to reduce the number of broadcasts resulting from changes in network topology In DSDV, local movements have global effects In AODV, non-local effects are limited to nodes trying to reach a distant node through a broken link

AODV: Ad Hoc On-Demand Distance-Vector protocol AODV does not maintain routes from every node to every other node in the network. discovers routes on-demand (reactively, not proactively) provides unicast, multicast and broadcast communication ability uses two route tables for unicast routes and for multicast routes We will consider only unicast route discovery.

AODV: Ad Hoc On-Demand Distance-Vector protocol Unicast routing A node wishes to send a packet to a destination node D. It first checks whether it has a valid route to D. If yes, it sends the packet to the next hop towards the destination. If not, it initiates a route discovery process.

AODV: Ad Hoc On-Demand Distance-Vector protocol Unicast routing: Route Discovery Process The node creates a RREQ (RouteRequest) packet sourceipaddress sourcebroadcastid destipaddress lastknownsequenceno hopcount The node broadcasts the RREQ The node sets a timer to wait for a reply

AODV: Ad Hoc On-Demand Distance-Vector protocol Unicast routing: Route Discovery Process When a node receives a RREQ, it ignores it if it has seen another routing packet with the same <sourceipaddress, sourcebroadcastid> pair. Otherwise, the node sets up a reverse routing entry in its routing table: sourceipaddress sourcebroadcastip hopstosource prevhoptosource Route entries that exceed their lifetime are deleted.

AODV: Ad Hoc On-Demand Distance-Vector protocol Unicast routing: Route Discovery Process A node responds to an RREQ if it has an unexpired entry for the destination in its route table with sequence no >= RREQ s lastknownsequenceno By unicasting a RREP back to the source. If a node cannot respond to an RREQ, it increments the RREQ s hop count and then broadcasts the packet to its neighbors.

AODV: Ad Hoc On-Demand Distance-Vector protocol Unicast routing: Route Replies (RREPs) If an intermediate node is responding to a RREQ, it populates the RREP as follows: It places its record of the destination s sequence number in the packet sets the hop count equal to its distance from the destination Initializes the RREP s lifetime

AODV: Ad Hoc On-Demand Distance-Vector protocol Unicast routing: Forward Path Setup On receiving an RREP, a node: sets up a forward path entry to the destination destinationipaddress IPOfNeighborWhoSentRREP hopcounttodestination routingentrylifetime Each time a route is used the associated lifetime is updated in the routing table

Summary Two distinct approaches to routing: Proactive: nodes continuously maintain routes to all destination, even if they don t use them frequently (DSDV). Reactive: nodes identify and maintain routes on-demand, i.e. when they need to send packets to a certain destination (AODV). Both DSDV and AODV are distance-vector protocols: Nodes maintain distances (costs) to destinations and keep information about the next hop in the optimal path to a destination. Both DSDV and AODV are designed for adhoc (wireless mobile) networks

Related Reading C.E. Perkins and P. Bhagwat. Highly Dynamic Destination-Sequenced Distance-Vector Routing (DSDV) for Mobile Computers. In ACM SIG- COMM Computer Communications Review 24(4), pages 234-244, October 1994 Paper to prepare for discussion: C.E. Perkins and E.M. Royer. Ad Hoc On-Demand Distance-Vector Routing. In Proceedings of the Second Annual IEEE Workshop on Mobile Computing Systems and Applications, February 1999, pages 90-100.

TinyOS Tutorial Lab 1 Platform specification TinyOS NesC Examples

Platform specification 8 MHz Processor 10k RAM, 48k Flash 250kbps 2.4GHz Radio 50m range indoors / 125m range outdoors Integrated Humidity, Temperature, and Light sensors Programming and data collection via USB TinyOS support

TinyOS Event-driven OS Tasks Events Tasks cannot interrupt other tasks or events Events can interrupt other tasks or events Concurrency issues (atomic statement)

NesC Application A NesC application consists of one or more components, linked together s are of two types: modules and configurations Module A module contains the application code in a C-like syntax Configuration A configuration wires components together An interface specifies a set of available functions

s s are wired through interfaces An interface can either be provided or used by a component

Provided interfaces When providing an interface All the commands have to be implemented All the events should be called Example: Leds interface and LedsC component

Leds.nc and LedsC.nc interface Leds { command result_t redon(); command result_t redoff(); command result_t redtoggle(); command result_t greenon(); // module LedsC { provides interface Leds; implementation { command result_t redon() { // command result_t redoff() { // //

Used interfaces When using an interface All the commands can be called All the events have to be implemented Example: Timer interface and BlinkM component

Timer.nc and BlinkM.nc interface Timer { command result_t start(char, uint32_t); command result_t stop(); event result_t fired(); module BlinkM { use { interface Leds; interface Timer; implementation { event result_t Timer.fired() { call Leds.redToggle(); return SUCCESS; //

Blink application Configuration Blink.nc Module BlinkM.nc Leds.nc Timer.nc StdControl.nc LedsC.nc SingleTimer.nc Main.nc

Blink.nc configuration Blink { implementation { Configuration Blink.nc Module BlinkM.nc components BlinkM, LedsC, SingleTimer, Main; Leds.nc Timer.nc StdControl.nc BlinkM.Leds -> LedsC; // or BlinkM.Leds -> LedsC.Leds BlinkM.Timer -> SingleTimer; Main.StdControl -> BlinkM; LedsC.nc SingleTimer.nc Main.nc

Blink.nc configuration Blink { implementation { Configuration Blink.nc Module BlinkM.nc components BlinkM, LedsC, SingleTimer, Main; Leds.nc Timer.nc StdControl.nc BlinkM.Leds -> LedsC; // or BlinkM.Leds -> LedsC.Leds BlinkM.Timer -> SingleTimer; LedsC.nc SingleTimer.nc Main.nc Main.StdControl -> BlinkM;

BlinkM.nc module BlinkM { uses { interface Leds; interface Timer; provides { interface StdControl; Configuration Blink.nc Leds.nc Module BlinkM.nc Timer.nc StdControl.nc implementation { // LedsC.nc SingleTimer.nc Main.nc

Leds.nc interface Leds { command result_t redon(); command result_t redoff(); Configuration Blink.nc Module BlinkM.nc command result_t redtoggle(); // Leds.nc Timer.nc StdControl.nc LedsC.nc SingleTimer.nc Main.nc

Leds.nc and BlinkM.nc interface Leds { command result_t redon(); command result_t redoff(); command result_t redtoggle(); // module BlinkM { implementation { // event result_t Timer.fired() { call Leds.redToggle(); return SUCCESS; Configuration Blink.nc Leds.nc LedsC.nc Module BlinkM.nc Timer.nc SingleTimer.nc StdControl.nc Main.nc

Leds.nc and LedsC.ns interface Leds { command result_t redon(); command result_t redoff(); command result_t redtoggle(); // module LedsC { provides interface Leds; implementation { command result_t Leds.redOn() { // // Configuration Blink.nc Leds.nc LedsC.nc Module BlinkM.nc Timer.nc SingleTimer.nc StdControl.nc Main.nc

Timer.nc interface Timer { command result_t start(char, uint32_t); Configuration Blink.nc Module BlinkM.nc command result_t stop(); event result_t fired(); Leds.nc Timer.nc StdControl.nc LedsC.nc SingleTimer.nc Main.nc

Timer.nc and BlinkM.nc interface Timer { command result_t start(char, uint32_t); Configuration Blink.nc Module BlinkM.nc command result_t stop(); event result_t fired(); Leds.nc Timer.nc StdControl.nc module BlinkM { implementation { command result_t StdControl.start() { LedsC.nc SingleTimer.nc Main.nc call Timer.start(TIMER_REPEAT, 1000); return SUCCESS;

Timer.nc and BlinkM.nc interface Timer { command result_t start(char, uint32_t); Configuration Blink.nc Module BlinkM.nc command result_t stop(); event result_t fired(); Leds.nc Timer.nc StdControl.nc module BlinkM { implementation { event result_t Timer.fired() LedsC.nc SingleTimer.nc Main.nc { // //

StdControl.nc interface StdControl { command result_t init(); command result_t start(); Configuration Blink.nc Module BlinkM.nc command result_t stop(); Leds.nc Timer.nc StdControl.nc LedsC.nc SingleTimer.nc Main.nc

StdControl.nc and BlinkM.nc interface StdControl { command result_t init(); command result_t start(); Configuration Blink.nc Module BlinkM.nc command result_t stop(); Leds.nc Timer.nc StdControl.nc module BlinkM { implementation { command result_t StdControl.init() { return SUCCESS; // LedsC.nc SingleTimer.nc Main.nc

StdControl.nc and Main.nc interface StdControl { command result_t init(); command result_t start(); Configuration Blink.nc Module BlinkM.nc command result_t stop(); Leds.nc Timer.nc StdControl.nc configuration Main { uses interface StdControl; LedsC.nc SingleTimer.nc Main.nc implementation { //