0% found this document useful (0 votes)
56 views

EEEM048 Lecture4 Network PDF

The document provides an overview of network modules for Internet of Things applications. It discusses that network modules are needed to provide end-to-end packet delivery across multiple hops since nodes may not be within direct radio range of each other. It then describes several common routing techniques used in network modules, including flooding, source routing, distance vector routing, and link state routing. Finally, it provides examples of specific routing protocols for IoT including Ad Hoc On-Demand Distance Vector (AODV) routing and IPv6 Routing Protocol for Low-Power and Lossy Networks (RPL).
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
56 views

EEEM048 Lecture4 Network PDF

The document provides an overview of network modules for Internet of Things applications. It discusses that network modules are needed to provide end-to-end packet delivery across multiple hops since nodes may not be within direct radio range of each other. It then describes several common routing techniques used in network modules, including flooding, source routing, distance vector routing, and link state routing. Finally, it provides examples of specific routing protocols for IoT including Ad Hoc On-Demand Distance Vector (AODV) routing and IPv6 Routing Protocol for Low-Power and Lossy Networks (RPL).
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 37

Module: Internet of Things

Lecture 4: Network

Dr Payam Barnaghi, Dr Chuan H Foh


Centre for Communication Systems Research
Electronic Engineering Department
University of Surrey

Autumn Semester 2015 1


Overview

− Network Module

− Routing Technologies

− Performance Issues

2
Network Module

3
Network Module

RF-based IoT applications


− Communication module only provides data link
solution
− i.e. transmitting a packet between nodes within the
radio range
− Network module is needed to provide a solution
for end-to-end packet delivery
− Since source/destination pair may not be within each
other radio range, intermediate nodes are needed to
forward packet
− It is a distributed system. All nodes need to perform
networking related tasks.
− It is often software implementation.

4
Network Module

− RF-based IoT applications: Multi-hop Wireless


Network. Some examples:
− Wireless Sensor Networks (WSNs)
− Mobile Wireless Ad hoc Networks (MANETs)
− Wireless Mesh Networks (WMNs)
− Vehicular Ad Hoc Networks (VANETs)
− and others...

− Main concern: Reliability & Performance

5
Network Module: Roles

− Management:
− Packet: Adapting the packet sizes and formats
− Address: Adapting and/or resolving addresses
− Device: Joining/leaving of nodes
− Service: Providing adds-on services such as security

− Operational:
− Route discovery & maintenance
− Packet forwarding

6
Routing Technologies

7
Common Routing Techniques

− Flooding
− When receiving a packet, each node rebroadcasts the
packet
− No memory is kept in a node
− Very wasteful in bandwidth usage

− Source Routing
− A source node partially or completely specifies the route
that a packet should be forwarded
− Source node is responsible for finding the route to the
destination
− Implementation: DSR

8
Common Routing Techniques

− Distance Vector
− Exchange distance vectors only with neighbours to
establish routing tables
− Less traffic for table maintenance makes it suitable for
wireless networks
− Implementation: RIP, AODV, etc

− Link State
− Flood link information in the network and use Dijkstra’s
algorithm to compute routing tables
− Popular solution in wired network. Not adequate for
wireless, as it requires network-wide flooding
− Implementation: OSPF, OLSR, etc

9
Common Routing Techniques

− Path Vector
− Based on distance vector, path information is used
instead of distance
− Permit implementation of some policy to take control of
the route
− Used in inter-domain routing
− Implementation: BGP

10
Route Establishment & Maintenance

− Proactive (table-driven):
− Nodes maintain a table describing how a packet should
be forwarded to destinations
− It is more suitable for networks with static topology

− Reactive (on-demand):
− Upon a request, nodes flood the network to find the
destination
− It is more suitable for networks with changing topology

− Mixed:
− Hybrid: Operate both proactive and reactive routing
− Hierarchical: Separate nodes into different levels and
use different routing techniques in different levels 11
Routing in IoT

− Ad hoc On-demand Distance Vector (AODV)


− Specified in RFC 3561
− Implemented in ZigBee

− IPv6 Routing Protocol for Low-Power and Lossy


Networks (RPL)
− Specified in RFC 6550
− Implemented in ContikiOS, TinyOS

NOTE: We’ll also review Flooding & Source Routing

12
Flooding

− When receiving a packet


− If it is not seen before, broadcast the packet
− Else discard the packet

Broadcast
the packet
Source
Destination
A first received
G
the packet
B D from D
(ABDF)

E Destination
F H
13
Source Routing

− In source routing, the source takes control of the


forwarding
− Basic idea:
− The SOURCE broadcasts a REQUEST
− Each node include the path information in the REQUEST
− When the REQUEST reaches the DESTINATION, the
DESTINATION unicasts a REPLY with the path info
− When the REPLY reaches the SOURCE, it may transmit data
packet with the received path info included in the header
− Each intermediate node uses the path info in the header to
forward the data packets
− Each node maintains route cache to improve route
discovery performance

14
Source Routing: Example

− RREQ: Route Request


− RREP: Route Reply

A
A-B A-B-D RREQ

Source RREP
A-B-D-H A-B-D
A G
B D
A-B-D-G
A

A-B-D-H C A-B-D-H
A-C

A-B E Destination
F H
15
Distance Vector

Node J has been switched on

The distance vector published by A, I, H, K to J:


8+25 A B C D E F G H I J K L
A B C D A 0 12 25 40 14 23 18 17 21 8 24 29

I 24 36 18 27 7 20 31 20 0 10 22 33
E F G H
H 20 31 19 8 30 19 6 0 14 12 22 9
10+18

K 21 28 36 24 22 40 31 19 22 6 0 9
8 12

I 10 J 6 6+36 K L J’s new distance vector and routing table:


A B C D E F G H I J K L
J 8 20 28 20 17 30 18 12 10 0 6 15
via A A I H I I H H I --- K K

(source, distance, next hop)


C 28 I 16
AODV

− Ad hoc On-demand Distance Vector (AODV)


− Reactive Routing using Distance Vector
− Basic idea:
− Activity starts when there is a demand for transmission
− The SOURCE broadcasts a REQUEST
− Each node rebroadcasts the REQUEST & creates DISTANCE
VECTOR for the reverse path
− When the REQUEST reaches the DESTINATION, the
DESTINATION unicasts a REPLY
− Each participated node forwards the REPLY & creates
DISTANCE VECTOR for the forward path
− When the REPLY reaches the SOURCE, data transmission
may start

17
AODV: RREQ

− Route Request (RREQ) broadcasting


− The source broadcasts a RREQ to find a connection
− Intermediate nodes rebroadcast the RREQ to others
− While rebroadcasting, intermediate nodes create a
temporary route information recording the reverse path
(i.e. source, number of hops, next hop)
RREQ

Source

A G
B D

To A, 1 hop, via A E Destination


F H
18
AODV: RREP

− Returning of Route Reply (RREP)


− Once RREQ reaches the destination, the destination
unicasts RREP to its “next hop”
− Each participated node forwards RREP to its “next hop” and
record the forward path
− Once the RREP reaches the source, the source can transmit
its data packets to its “next hop” RREQ

Source To H, 2 hops, via D RREP

A G
B D

To A, 1 hop, via A E Destination


F H
19
AODV: Some management issues

− Distance Vector maintenance


− A reverse path is purged after a timeout interval (to
make sure the interval is long enough for RREP
unicasting to complete)
− A forward path is purged after it is not used for some
time

− Enhancements
− Intermediate nodes with information to the destination
can reply RREP
− Add sequence numbers to packets to avoid duplicate
rebroadcasting
− Use “time to live” to limit the rebroadcasting of RREQ

20
IPv6 Routing Protocol for Low-Power
and Lossy Networks (RPL)

− Background:
− Need for Low power and Lossy Networks (LLN)
− IETF formed a Working Group called Routing Over Low
power and Lossy Networks (ROLL) in 2008
− ROLL developed “Ripple” routing protocol (RPL)

− RPL is a Distance Vector IPv6 routing protocol for


LLNs
− RPL is a proactive routing protocol (periodic
activity to construct route)
− RPL permits multiple routes (or graphs), each
with some specific objective

21
RPL

− PRL is about building a Destination Oriented


Directed Acyclic Graph (DODAG) with some
objectives
− Destination Oriented, single destination with a root
− Directed Acyclic Graph, no loop
− DODAG building process
− A node is designated as a root
− A set of new ICMPv6 control messages is created
− DIS: DODAG Information Solicitation
− DIO: DODAG Information Object
− DAO: DODAG Destination Advertisement Object
− An Objective Function (OF) is specified for each node to
compute its rank in the graph
− see also RFC 6551 “Routing Metrics Used for Path
Calculation in Low-Power and Lossy Networks” 22
RPL: DODAG Building Process

− Procedure:
− The root starts broadcasting DIO
− Upon receiving DIO, each node
− computes its rank based on the OF
− chooses a neighbour with a rank lower than itself as
preferred parent
− broadcasts DIO message
Preferred parent
Root
DIO
A G
DIO B D

E
F H
23
RPL: DODAG Building Process

− Assuming shortest path is used as the objective


function (OF), B will choose A as its preferred
parent.

B receives a 2nd DIO


message & discards it
(based on the OF)
Preferred parent
Root

A G
B D

C broadcasts E
F H
DIO 24
RPL: DODAG Building Process

− B broadcasts DIO, other nodes rebroadcast DIO


and set their preferred parent based on the
objective function.

B broadcasts DIO

Preferred parent
Root

A DIO
G
B D

E
F H
25
RPL: DODAG Building Process

− Procedure:
− The broadcasting of DIO continues until all nodes have
seen the DIO
− By now, each node should have nominated one of its
neighbours to be its preferred parent
− A tree is built for UPWARD routing (or MP2P traffic)
Preferred parent
Root

A G
B D

E
F H
26
RPL: P2MP & P2P

− Point-to-Multi-Point (P2MP) for Downward traffic


− Each node transmits a DAO message to the root
− Each intermediate node appends its ID and relays DAO
to the root
− Each node can make use of the passing DAO messages
to build a subtree for downward traffic
− This type of node is called a storing node
− A node without this storing capability is called a non-
storing node
− The root will build and store a complete tree for
downward traffic
− Downward traffic can be routed using source routing
− Point-to-Point (P2P) traffic
− P2P is done by upward+downward transmissions
27
RPL: Topology Maintenance

− Topology maintenance
− A Trickle timer to control the sending rate of DIO (see
also RFC 6206 “The Trickle Algorithm”)
− Trickle's basic primitive is simple: every so often, a node
transmits data unless it hears a few other transmissions
whose data suggest its own transmission is redundant
− When routing inconsistencies are detected (e.g. loops,
loss of a parent, etc), Trickle timer is reset to the
minimum value to get the problems fixed quickly

28
Mesh-under versus Route-over

− Relaying of packets can be performed at Layer 2


(mesh-under) or layer 3 (route-over)
− Layer-2 packet switching
− It creates a single layer-2 domain, all nodes appear to
be directly connected to each other somehow
− It may offer simpler solution
− It may offer lower transmission delay
− Layer-3 packet routing
− It separates data link and routing operations
− It may offer better management of a large network

29
Performance Issues

30
Network Performance

− Power Supply:
− limited power supply

− Power Consumption:
− Power consumption of communications is relatively high
− Network establishment and maintenance need
communications
− Departure of some nodes may cause the network to fail
partially or totally (e.g. nodes connecting to the
gateway, nodes connecting two islands of networks, etc)

31
Performance:

− Deployment of nodes:
− Bottleneck: When all flows aggregate at a particular
node, the node may represent the bottleneck of the
network
− Possible solutions: add more nodes to create other
paths; add gateways to divert traffic flows
This node needs to When all nodes transmit a packet,
forward packet for a large this node needs to transmit its
group of nodes packet and relay 7 others!

32
Performance:

− Deployment of nodes:
− Network lifetime: Nodes nearer to the gateway perform
more packet forwarding tasks. Their departures (due to
flat battery) may cause the network to fail.
− Possible solutions: add more nodes around the gateway;
use higher capacity battery
When this node fails, a group
of nodes will be disconnected
from the gateway

33
Performance:

− Position of a gateway:
− Bottleneck: Gateway may become bottleneck of traffic
flows if not adequately positioned in the network
− Possible solutions: reposition the gateway or nodes
around it and/or add more gateways to ease the
congestion

Bottleneck occurs at the


around the gateway

34
Performance:

− Position of a gateway:
− Delay: Nodes far away from the gateway may result in
long end-to-end transmission delay
− Possible solutions: relocating the gateway and/or place
more gateways. Ideally, we should keep the number of
hops between a node and the gateway as low as
possible
Some packets need 6 hops to
reach the gateway!

35
Summary

− Understand the roles and functions of network


module

− Understand various routing technologies related


to IoT applications

− Understand the impact of nodes/gateway


deployment on network performance

36
Questions?

37

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy