6lowpan PDF
6lowpan PDF
6lowpan PDF
This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. To view a
copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 171
Second Street, Suite 300, San Francisco, California, 94105, USA
Contenidos
Introduccin, Motivation
Introduccin a 6LoWPAN
Formato de 6LoWPAN
Neighbor Discovery: descubriendo nodos
vecinos
Introduccin a Routing
Capa de aplicacin
Implementacin de 6loWPAN
This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. To view a
copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 171
Second Street, Suite 300, San Francisco, California, 94105, USA
IP next generation
IPv6
Technology
Range
Speed
Power Use
Cost
Wifi
100 mts.
10-100 Mb/s
High
$$$
Bluetooth
10-100 mts.
1-3 Mb/s
Medium
$$
802.15.4
10-100 mts.
0,25-Mb/s
Low
Price
Cabling
Any vendor
Cables
1980s
Proprietary
radio + network
Z-Wave, prop.
ISM etc.
ZigBee
ZigBee and
WHART
Vendor
lock-in
Complex
middleware
2000
2006
Increased
Productivity
6lowpan
Internet
6lowpan
ISA100
Open development
and portability
2008 ->
Introduccin a 6LoWPAN
Qu es 6LoWPAN?
IPv6 sobre Low-Power wireless Area Networks
Definido en estndares IETF
RFC 4919, 4944
draft-ietf-6lowpan-hc and -nd
draft-ietf-roll-rpl
Permite adaptar un protocolo como IPV6 a cualquier PAN compuesta con dispositivos de recursos limitados y
bajo consumo energtico
El formato de 6LoWPAN
15
Arquitectura
Extended LoWPAN
Varios Edge Routers compartiendo un enlace en comn (backbone)
Ad-hoc LoWPAN
No hay routers en la LowPAN
16
Arquitectura
17
El formato de 6LoWPAN
6LoWPAN es una adaptacin del formato de cabecera de
IPV6
Permite el uso de IPV6 en redes inalmbricas de bajo consumo
Compresin de cabecera IPv6
Compresin de cabecera UDP
18
Caractersticas de 6loWPAN
Trabaja bien en conjunto a capas de enlace de bajo consumo
como IEEE 802.15.4, narrowband ISM y bluetooth
Soporte para direccionamiento de 64-bit y 16-bit usado en
802.15.4
Compresin de cabecera eficiente
Cabeceras base y de extensin de IPv6, cabecera de UDP
Fragmentacin
1280 byte IPv6 MTU -> 127 byte 802.15.4 frames
draft-ietf-6lowpan-hc Features:
21
Direcciones IPv6
fe80::/64
fec0::/64
2000::/3
22
Direccionamiento en IPv6
Stateless Address Autoconfiguration (SAA)
Prefix (64 bits) + Subfix (64bits)
Prefix: (indica el alcance de una direccin)
Local link (prefijo fe80::)
Global Link (prefix: Router Advertisement Router Solicitation)
Subfix:
EUI64 64-bit (Global Identifier - IEEE)
Ejemplo de una interfaz wlan0 de una notebook conectada a
una red ipv6 (direccin local y direccin global)
wlan0
Dispatch
el primer byte del Payload
(http://www.iana.org/assignments/6lowpan-parameters/)
Bit Pattern
Header Type
Reference
00 xxxxxx
[RFC4944]
01 000000
01 000001
01 000010
01 000011 to 01001111
01 010000
01 010001 to 01011111
01 1xxxxx
[RFC6282]
[RFC4944]
[RFC4944]
10 xxxxxx
[RFC4944]
11 000xxx
11 001000 to 11011111
11 100xxx
11 101000 to 11111111
[RFC4944]
[RFC4944]
[RFC6282]
[RFC4944]
24
IPv6/UDP Headers
Cabeceras sin comprimir
0
IPv6
UDP
Payload
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 0 0 0 0 0 0 1|Version| Traffic Class |
Flow Label |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Flow Label cont|
Payload Length
| Next Header |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Hop Limit
|
|
+-+-+-+-+-+-+-+-+
+
|
|
+
+
|
Source Address
|
+
+
|
|
+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
|
+-+-+-+-+-+-+-+-+
+
|
|
+
+
|
Destination Address
|
+
+
|
|
+
+
|
|
+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
Source Port
| Destination P.|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Dest. P. cont|
Length
|
Checksum
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum cont |
UDP Payload
...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
25
0
1
2
3
012 34 5678 901 2345 6789 012 345 678 90 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0 1 0 0 0 0 1 0|SAE|DAE|C|NH |0 |
Non-Compressed fields...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
\__dispatch __/ \_ HC1 header_/
0
1
2
3
0123 4567 89 0123 45 678 9012 34 567 8901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0 1 0 0 0 0 1 0|SAE|DAE|C|NH |1 |S|D|L|__________| N.-C. fields...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
\__ dispatch__/ \_ HC1 header_/ \_ HC2 header_/
C = Class and Flow Label
SAE/DAE = Source/Destination Address Encoding
NH = Next Header
S/D = Source/Destination Port Compression (61616 + 16)
L= whenever the length es compressed
Never Compressed Hop Limit and UDP Checksum
26
IPv6
UDP
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
...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Payload
draft-ietf-6lowpan-hc
27
draft-ietf-6lowpan-hc
28
Cabeceras de 6LoWPAN
29
Fragmentacin
IPv6 requiere que las capas inferiores toleren un MTU
(Minimum Transmission Units) mnimo de 1280 bytes.
IEEE 802.15.4 deja aproximadamente 80-100 bytes de
payload
RFC4944 define la forma de fragmentar y reensamblar IPv6
La performance de paquetes IPV6 fragmentados sobre
lowPANs es muy pobre.
Fragmentos perdidos causan la retransmisin de todo el
paquete
Bajo ancho de banda y gran delay, propio de los canales
inalmbricos
Protocolos de aplicacin de 6LoWPAN deberan evitar la
fragmentacin
Compression should be used on existing IP application protocols
when used over 6LoWPAN if possible
Fragmentacin
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|
+-+-+-+-+-+-+-+-+
31
Encontrar vecinos
Neighbor Solicitation / Neighbor Advertisement
Encontrando routers
Router Solicitation / Router Advertisement
Multicast Address:
All nodes : ff02::1/128
All routers : ff02::2/128
35
37
Un ejemplo de direccionamiento
38
39
40
NR/NC Format
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type (NR)/(NC)|
Code
|
Checksum
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
TID
|
Status
|P|_____________________________|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Binding Lifetime
|
Advertising Interval
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
+
Owner Interface Identifier
+
|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Owner Nonce
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Registration option(s)...
+-+-+-+-+-+-+-+-+-+-+-+-+-+
41
El Whiteboard
El whiteboard es usado en la LoWPAN para:
Deteccin de direcciones duplicadas en la LoWPAN (= prefijo)
Lidiar con mobilidad (caso de las Extended LoWPANs)
Localizar nodos
42
Routing
43
6LoWPAN Routing
Multihop Mesh Topology
Link Layer Forwarding (Mesh Under) :
Link Layer mesh (e.g. 802.15.5 )
LoWPAN mesh (RFC but not forward algorithm)
IP Layer Routing (Route Over):
Routing in a LoWPAN
Single-interface routing
Flat address space (exact-match)
Stub network (no transit routing)
44
Los protocolos MANET son tiles en algunos casos de redes adhoc, e.g. AODV, DYMO
Nuevo WG (working group) de IETF
Routing over low-power and lossy networks (ROLL)
Desarrollado especficamente para aplicaciones embebidas
Protocolo en progreso: RPL (pronunciado como Ripple), es un
enfoque de ruteo proactivo por vector de distancia. Ver el draft de la
IETF (draft-ietf-roll-rpl)
46
48
Introduccin
Los procesos de las aplicaciones se comunican sobre IP
usando la perspectiva de internet socket
6LoWPAN tambin utiliza el paradigma de los socket
Los protocolos de aplicacin usados con 6LoWPAN tienen
requerimientos de diseo especiales
49
Socket API
La Socket API provee un acceso para comunicaciones de
datos entre aplicaciones
Interfaz bien conocida para la manipulacin de flujos de datos y
gestin de buffers via socket
Soporte para mensajes de control
Los comandos incluyen:
socket, bind, send, read, close etc.
50
51
52
Protocolos personalizados
Es la solucin ms comn hoy en da
Los datos de la aplicacin son codificados en
binario y especficos para la aplicacin
El protocolo de la aplicacin utiliza un puerto
UDP especfico
Como 6LoWPAN permite comunicaciones
IPv6 punto a punto, no es un problema
Ventaja:
Custom Protocol
UDP
IPv6 / 6lowpan
L2/DLL
L1/PHY
Desventaja:
Se requiere una aplicacin especfica del lado
del servidor, poco reusable, curva de
aprendizaje costosa, baja interoperabilidad
53
XML/HTTP
Es la combinacin per se para
comunicaciones entre servidores
El formato XML es muy conocido
Todos los servers hablan HTTP/XML
til para RPC, eventos publicar/suscribir
Paradigma SOAP o REST
Advantages:
Conocido formato XML
Secuencia de mensajes formales
Amplio soporte en internet
XML Messages
SOAP
HTTP
TCP
IP
L2/DLL
L1/PHY
Disadvantages:
Ineficiente, complejo
55
System-on-a-chip model
Todo en un slo chip
+ Mxima integracin
+ Menor precio y menor tamao
- Dificultades en el desarrollo
- Poca o escasa portabilidad
Ejemplos:
TI CC2530,
ATMEGA 128RF
Jennic JN5139.
Chip Models
Solucin en 2 chips
La radio separada del micro
+ Libre eleccin del uC
+ Mayor portabilidad
- Ms caro
- Integracin de la aplicacin en el stack
Ejemplos: TI CC2520, Atmel AT86RF231.
Protocols Stacks
Contiki
Low-Power uIPv6/RPL Network
Tiny OS
BLIP, the Berkeley Low-power IP stack
IPv6 Ready
Nano Stack (Sensinode)
Nano Stack, Nano Router, Nano Service
Nano Sensor
Jennic 6LoWPAN (Jennic)
JN5139 Wireless Microcontroller
Jenie API, SNAP, JenNet
58
SIPIA Net
Wireless Sensor Network for
Agronomical Research
SIPIA Net
SIPIA6 Net
6loWPAN STACK
59
Referencias
David E. Culler & Jonathan Hui 6LoWPAN Tutorial: IP on IEEE 802.15.4 Low-Power
Wireless Networks, Arch Rock Corporation
Compression Format for IPv6 Datagrams in 6LoWPAN Networks
draft-ietf-6lowpan-hc-13. RFC 6282.
Neighbor Discovery Optimization for Low-power and Lossy Networks
draft-ietf-6lowpan-nd-15
Design and Application Spaces for 6LoWPANs, draft-ietf-6lowpan-usecases-09.
IPV4 Address Report http://www.potaroo.net/tools/ipv4/index.html
This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. To view a
copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 171
Second Street, Suite 300, San Francisco, California, 94105, USA
60