E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
1
EE 586 Communication andSwitching Networks
Lecture 27
Slides based on 6LoWPAN: The Wireless EmbeddedInternet, Shelby & Bormann
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Outline
IPv6
Introduction to 6LoWPAN
Link-Layer Technologies
IEEE 802.15.4
The 6LoWPAN Format
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Internet Protocol v6
IPv6 (RFC 2460) = the next generation InternetProtocol
Complete redesign of IP addressing
Hierarchical 128-bit address with decoupled hostidentifier
Stateless auto-configuration
Simple routing and address management
Majority of traffic not yet IPv6 but...
Most PC operating systems already have IPv6
Governments are starting to require IPv6
Most routers already have IPv6 support
So the IPv6 transition is coming
1400% annual growth in IPv6 traffic (2009)
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
How fast is it growing now?
(modified by Cheung for EE586; based on K&R original)
4
http://www.nro.net/wp-content/uploads/RIR_Regions_map-01.png
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
IPv4 vs. IPv6 Addressing
Image source: Indeterminant (Wikipeida) GFDL
Ipv6_address
Ipv4_address
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
IPv6 Addressing
128-bit IPv6 address = 64-bit prefix + 64-bit Interface ID(IID)
The 64-bit prefix is hierarchical
Identifies the network you are on and where it is globally
The 64-bit IID identifies the network interface
Must be unique for that network
Typically is formed statelessly from the interface MAC address
Called Stateless Address Autoconfiguration (RFC2462)
There are different kinds of IPv6 addresses
Loopback (0::1) and Unspecified (0::0)
Unicast with global (e.g. 2001::) or link-local (FE80::) scope
Multicast addresses (starts with FF::)
Anycast addresses (special-purpose unicast address)
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
IPv6 Neighbor Discovery
IPv6 is the format - ND is the brains
“One-hop routing protocol” defined in RFC4861
Defines the interface between neighbors
Finding Neighbors
Neighbor Solicitation / Neighbor Acknowledgement
Finding Routers
Router Solicitation / Router Advertisement
Address resolution using NS/NA
Detecting Duplicate Addresses using NS/NA
Neighbor Unreachability Detection using NS/NA
DHCPv6 may be used in conjunction with ND
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
IPv6 Neighbor Discovery
rfc4861-example
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
What is 6LoWPAN?
IPv6 over Low-Power wireless Area Networks
Defined by IETF standards
RFC 4919 (problem)
RFC 4944 (format)
RFC 6282 (header compression)
RFC 6568 (use cases)
RFC 6775 (neighbor discovery)+
RFC 6606 (problem for routing)
Draft-ietf-roll-rpl (routing)
Stateless header compression
Enables a standard socket API
Minimal use of code and memory
Direct end-to-end Internet integration
fig-ipv6-wide
IPv6
fig-intro-device
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
The 6LoWPAN Format
6LoWPAN is an adaptation header format
Enables the use of IPv6 over low-power wireless links
IPv6 header compression
UDP header compression
Format initially defined in RFC4944
Updated by RFC 6282
fig-intro-stack
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Features
Support for e.g. 64-bit and 16-bit 802.15.4 addressing
Low-power link layers such as IEEE 802.15.4,narrowband ISM and power-line communications
Efficient header compression
Network autoconfiguration using neighbour discovery
Unicast, multicast and broadcast support
Multicast is compressed and mapped to broadcast
Fragmentation
1280 byte IPv6 MTU -> 127 byte 802.15.4 frames
Support for IP routing (“Mesh-over” w/ IETF RPL)
Support for use of link-layer mesh (“Mesh-under” w/802.15.5)
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
fig-intro-arch
Architecture
LoWPANs are stubnetworks
Simple LoWPAN
Single Edge Router
Extended LoWPAN
Multiple Edge Routerswith common backbonelink
Ad-hoc LoWPAN
No route outside theLoWPAN
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
The Link-Layer and IP
The Internet Protocol interconnects heterogeneous links
Key link-layer features to support IP:
Framing
Addressing
Error checking
Length indication
Broadcast and unicast
RFC3819 discusses IP sub-network design
6LoWPAN enables IPv6 over very constrained links
Limited frame size and bandwidth
Wireless mesh topologies and sleeping nodes
No native multicast support
ip-stack
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
v6.12.2009
6LoWPAN: The Wireless Embedded Internet, Shelby & Bormann
14
Important standard for home networking,industrial control and building automation
Three PHY modes
20 kbps at 868 MHz
40 kbps at 915 MHz
250 kbps at 2.4 GHz (DSSS)
Payload < 127 bytes
Beaconless mode
Simple CSMA algorithm w/o RTS/CTS
Beacon mode with superframe
Hybrid TDMA-CSMA algorithm
Up to 64k nodes with 16-bit addresses
Extensions to the standard
IEEE 802.15.4a, 802.15.4e, 802.15.5
802
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Other Link-Layers for 6LoWPAN
Sub-GHz Industrial, Scientific and Medical (ISM)band radios
Typically 10-50 kbps data rates, longer range than 2.4GHz
Usually use CSMA-style medium access control
Example: CC1110 from Texas Instruments
Power-Line Communications
Some PLC solutions behave like an 802.15.4 channel
Example: A technology from Watteco provides an802.15.4 emulation mode, allowing the use of6LoWPAN
Z-Wave
A home-automation low-power radio technology
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
6LoWPAN Headers
Orthogonal header format for efficiency
Stateless header compression
fig-intro-header
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
UDP/IPv6 Headers
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Traffic Class |           Flow Label                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Payload Length        |  Next Header  |   Hop Limit   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                                                               +
|                                                               |
+                         Source Address                        +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                                                               +
|                                                               |
+                      Destination Address                      +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Source Port         |       Destination Port        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Length            |            Checksum           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          UDP Payload        ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv6
UDP
Payload
48 Bytes!
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
LoWPAN UDP/IPv6 Headers
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Dispatch with LOWPAN_IPHC   |   LOWPAN_NHC  |  Src  |  Dst  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          UDP Checksum         |          UDP Payload        ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv6
UDP
Payload
6 Bytes!
LoWPAN
draft-ietf-6lowpan-hc
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
6LoWPAN Addressing
IPv6 addresses are compressed in 6LoWPAN
A LoWPAN works on the principle of
flat address spaces (wireless network is one IPv6 subnet)
with unique MAC addresses (e.g. 64-bit or 16-bit)
6LoWPAN compresses IPv6 addresses by
Eliding the IPv6 prefix
Global prefix known by all nodes in network
Link-local prefix indicated by header compression format
Compressing the IID
Elided for link-local communication
Compressed for multihop dst/src addresses
Compressing with a well-known “context”
Multicast addresses are compressed
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Addressing Example
fig-intro-deployment
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
IP Header Compression (IPHC)
Base Header
 +-------------------------------------+------------------------
 | Dispatch + LOWPAN_IPHC (2-3 octets) | Compressed IPv6 Header
 +-------------------------------------+------------------------
LOWPAN_IPHC Encoding
 0   1   2   3   4   5   6   7   8   9   0   1   2   3   4   5
 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
 | 0 | 1 | 1 |  TF   |NH | HLIM  |CID|SAC|  SAM  | M |DAC|  DAM  |
 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
TF = Traffic Class, Flow Label
NH = Next Header Flag
HLIM = Hop Limit
CID = Context Identifier Extension
SAC = Source Address Compression
SAM = Source Address Mode
M = Multicast Compression
DAC = Destination Address Compression
DAM = Destination Address Mode
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
v6.12.2009
6LoWPAN: The Wireless Embedded Internet, Shelby & Bormann
22
Next-header Compression (NHC)
NHC Format
 +----------------+---------------------------
 | var-len NHC ID | compressed next header...
 +----------------+---------------------------
UDP NHC Encoding
 0   1   2   3   4   5   6   7
 +---+---+---+---+---+---+---+---+
 | 1 | 1 | 1 | 1 | 0 | C |   P   |
 +---+---+---+---+---+---+---+---+
C = Checksum Compression
P = UDP Port Compression
draft-ietf-6lowpan-hc
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
v6.12.2009
23
Fragmentation
IPv6 requires underlying links to support MinimumTransmission Units (MTUs) of at least 1280 bytes
IEEE 802.15.4 leaves approximately 80-100 bytes ofpayload!
RFC4944 defines fragmentation and reassembly of IPv6
The performance of large IPv6 packets fragmented overlow-power wireless mesh networks is poor!
Lost fragments cause whole packet to be retransmitted
Low-bandwidth and delay of the wireless channel
6LoWPAN application protocols should avoid fragmentation
Compression should be used on existing IP applicationprotocols when used over 6LoWPAN if possible
Fragment recovery is currently under IETF consideration
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
v6.12.2009
6LoWPAN: The Wireless Embedded Internet, Shelby & Bormann
24
Fragmentation
Initial Fragment
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1 1 0 0 0|    datagram_size    |         datagram_tag          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Following Fragments
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1 1 1 0 0|    datagram_size    |         datagram_tag          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|datagram_offset|
+-+-+-+-+-+-+-+-+