6LoWPAN IPv6 for Wireless Sensor Network SASE 2013 Ing. Ana Diedrichs UTN - Mendoza - Argentina [email protected]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
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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
• Introducción, Motivation• Introducción a 6LoWPAN
• Formato de 6LoWPAN
• Neighbor Discovery: descubriendo nodos vecinos
• Introducción a Routing
• Capa de aplicación
• Implementación 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
¡¡Podríamos conectar un trillón de objetos en internet!!
Encabezado de tamaño fijo (Fix size Header)* No hay fragmentación en el camino (routers)
* Se pueden añadir cabeceras extras
Unicast, Multicast y Anycast (NO Broadcast)
Configuración de las direcciones Stateless y stateful
Internet of Things: el desafío de la interconexión Conectar millones de objetos/cosas de forma cableada (no inalámbrica) sería muy costoso. A modo de ejemplo
Electrical wall socket + installation = $50
Cat5 socket + installation = $150
1 Trillon nodes >> 1000 DGP Argentina
Comparaciones entre distintas tecnologías wireless
Technology RangeRange SpeedSpeed Power UsePower Use CostCost
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 $
Evolución de las Wireless Sensor Networks
ScalabilityPrice
Cabling
Cables
Proprietaryradio + network
20001980s 2006
Vendor lock-in
IncreasedProductivity
ZigBee
Complex middleware
6lowpanInternet
Open development and portability
Z-Wave, prop. ISM etc.
ZigBee and WHARTAny vendor
6lowpanISA100
2008 ->
Beneficios de la tecnología 6LoWPANIPv6 over Low-Power Wireless Personal Area Networks
• Low-power RF + IPv6 = The Wireless Embedded Internet
• 6LoWPAN lo hace posible
• Los beneficios de 6-lowPAN incluyen:– El uso de un estándar abierto, confiable y standards– Fácil curva de aprendizaje– Integración transparente con internet– Mantenimiento de la red– Escalabilidad global– Flujo de datos End-to-end – El uso de la infraestructura existente de internet
Introducción a 6LoWPAN
¿Qué es 6LoWPAN?• IPv6 sobre Low-Power wireless Area Networks
• Definido en estándares IETF– RFC 4919, 4944
– draft-ietf-6lowpan-hc and -nd
– draft-ietf-roll-rpl
• Compresión de cabecera sin estado (Stateless header compression)
• Enables a standard socket API
• Uso mínimo de código y memoria
• Integración punto a punto con internet– Múltiples opciones de topología (802.15.4, Bluetooth,etc)
Permite adaptar un protocolo como IPV6 a cualquier PAN compuesta con dispositivos de recursos limitados y bajo consumo energético
Grandes desafíos en las LoWPAN's
Dificultades en la implementación en sistemas embebidos debido a:-Alimentación y duty-cycle: dispositivos inalámbricos alimentados por baterías necesitan mantener ciclos cortos de actividad y permanecer en modo bajo consumo el tiempo restante.-Tamaño de la trama (frame): Protocolos actuales de internet requieren enlaces que manejen tramas grandes-Multicast: usualmente los dispositivos inalámbricos embebidos no soportan multicast.-Confiabilidad: Los protocolos de internet no están optimizados para LoWPANs (low-power wireless and lossy networks).-Web Services: Hoy en día los principales servicios de internet se apoyan en web services haciendo uso en su mayoría de TCP.-Gestión de la red: gestionar la red vía SNMP o web services
15
El formato de 6LoWPAN
16
Arquitectura
• Las LoWPANs son stub networks: no tienen conocimiento de otras redes, no “transportan” tráfico de otras redes a través de ellas y para comunicarse con otras redes tienen “ciertos puntos de salida” (edge routers) definidos. Una analogía es comparar la lowPAN con una isla de la que pueden salir uno o varios puentes.
Tipos de configuraciones posibles con 6lowPAN • Simple LoWPAN
– Un Edge Router (router de borde)
• Extended LoWPAN– Varios Edge Routers compartiendo un enlace en común (backbone)
• Ad-hoc LoWPAN– No hay routers en la LowPAN
Problemas de integración con internet – Unidad máxima de transmisión (MTU)– Protocolos de aplicación– Interconectividad con IPv4 (transición)– Firewalls y NATs– Seguridad
IPv6-LoWPAN Router Edge Stack
17
Arquitectura
18
El formato de 6LoWPAN• 6LoWPAN es una adaptación del formato de cabecera de
IPV6– Permite el uso de IPV6 en redes inalámbricas de bajo consumo
– Compresión de cabecera IPv6
– Compresión de cabecera UDP
• Formato inicialmente definido en RFC4944
• Actualizado en draft-ietf-6lowpan-hc
19
Características 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
• Compresión de cabecera eficiente– Cabeceras base y de extensión de IPv6, cabecera de UDP
• Autoconfiguración de la red usando neighbor discovery
• Unicast, multicast and broadcast support– Multicast is compressed and mapped to broadcast
• draft-ietf-6lowpan-hc Features:– New HC (IPv6 header) and NHC (Next-header) compression– Support for global address compression (with contexts)– Support for IPv6 option header compression– Support for compact multicast address compression
IP Header Compression (HC1 and HC2)No se utilizan técnicas del tipo gzip (compresión de archivos)No es una técnica punto a punto ya que la dirección IP es requerida por los
C = Class and Flow LabelSAE/DAE = Source/Destination Address EncodingNH = Next HeaderS/D = Source/Destination Port Compression (61616 + 16)L= whenever the length es compressedNever Compressed Hop Limit and UDP Checksum
• El whiteboard es usado en la LoWPAN para:– Detección de direcciones duplicadas en la LoWPAN (= prefijo)– Lidiar con mobilidad (caso de las Extended LoWPANs)– Localizar nodos
43
Routing
44
6LoWPAN RoutingMultihop 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)
45
Tipos de protocolos de ruteo
• Clases de algoritmos– Basados en vectores de distancia (ej: AODV)
Cada enlace es asociado con un costo que es usado para encontrar la ruta más corta hacia el destino. Cada router guarda en su tabla de ruteo información del costo de los enlaces hacia cada uno de sus vecinos a un salto.
– Basados en el estado del enlaceCada nodo tiene información completa sobre la red, usualmente gracias al broadcast/difusión. El nodo calcula un árbol con los caminos más cortos hacia cada destino.
• Respecto al descubrimiento de nuevas rutas un algoritmo de ruteo puede ser:
– ProactivoLa información de ruteo es adquirida antes de ser necesitada.
– ReactivoLa información de ruteo es descubierta dinámicamente cada vez que es necesitada.
•
46
Protocolos para 6LoWPAN
• IP es independiente del protocolo de ruteo utilizado– Reenvía basandose en tablas de ruteo
• Así también 6LoWPAN es independiente del protocolo de ruteo
• Consideraciones especiales para rutear sobre LoWPANs– Una sola interfaz de enrutamiento, topologías planas
– Tecnologías inalámbricas de bajo consumo y con pérdidas (LowPANs)
– Flujos de datos específicos de aplicaciones embebidas
• Los protocolos MANET son útiles en algunos casos de redes ad-hoc, e.g. AODV, DYMO
• Nuevo WG (working group) de IETF– Routing over low-power and lossy networks (ROLL)
– Desarrollado específicamente 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)
48
Application Formats and Protocols
49
Introducción
• Los procesos de las aplicaciones se comunican sobre IP usando la perspectiva de internet socket
• 6LoWPAN también utiliza el paradigma de los socket
• Los protocolos de aplicación usados con 6LoWPAN tienen requerimientos de diseño especiales
50
Socket API
• La Socket API provee un acceso para comunicaciones de datos entre aplicaciones
• Interfaz bien conocida para la manipulación de flujos de datos y gestión de buffers via socket
• Soporte para mensajes de control
• Los comandos incluyen:– socket, bind, send, read, close etc.
• Ejemplos de APIs de sockets– Berkeley sockets in *nix systems– Mac OSX (Darwin)– Contiki uIP (Pseudo socket approach)
51
Paradigma punto a punto (End-to-end)
52
Protocolos y formatos de aplicación
53
Protocolos personalizados
• Es la solución más común hoy en día
• Los datos de la aplicación son codificados en binario y específicos para la aplicación
• El protocolo de la aplicación utiliza un puerto UDP específico
• Como 6LoWPAN permite comunicaciones IPv6 punto a punto, no es un problema
• Ventaja:– Compacto, eficiente, puede tener seguridad
integrada, punto a punto
• Desventaja:– Se requiere una aplicación específica del lado
del servidor, poco reusable, curva de aprendizaje costosa, baja interoperabilidad
L2/DLL
IPv6 / 6lowpan
UDP
L1/PHY
Custom Protocol
54
XML/HTTP
• Es la combinación 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
• Disadvantages:– Ineficiente, complejo
• Solución: Embedded web-service: servicios web embebidos (por ej. CoAP)
L2/DLL
IP
HTTP
L1/PHY
SOAP
XML Messages
TCP
55
Implementaciones posibles de 6lowPAN
56
¿Cómo integramos 6lowPAN en dispositivos embebidos?
• Desafíos:– Carencia de interfaces estándares (no USB or PCMCIA)– No existen sistemas operativos estándares– Limitaciones en el consumo energético– Limitaciones de precio de mercado
• System-on-a-chip model– Todo en un sólo chip
+ Máxima integración+ Menor precio y menor tamaño- Dificultades en el desarrollo- Poca o escasa portabilidadEjemplos:
TI CC2530, ATMEGA 128RF Jennic JN5139.
57
Chip Models• Solución en 2 chips
– La radio separada del micro+ Libre elección del uC
+ Mayor portabilidad
- Más caro
- Integración de la aplicación en el stack
Ejemplos: TI CC2520, Atmel AT86RF231.
• Solución del procesador de red– El stack de la red en la radio
• N. Kushalnagar, G. Montenegro, C. Schumacher “IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs):Overview, Assumptions, Problem Statement, and Goals”, RFC 4919, August 2007, IETF
• G. Montenegro,N. Kushalnagar,J. Hui, D. Culler “Transmission of IPv6 Packets over IEEE 802.15.4 Networks”, RFC 4944, September 2007, IETF
• Shelby & Bormann, “The Wireless Embedded Internet” ISBN: 978-0-470-74799-5, (c) 2009 John Wiley & Sons Ltd. Book's slides available here
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
= Time that takes to go from sleep state to awake state= Transmitter setup time, i.e. time it takes for the transmitter to be ready= Time in the Tx state= Receiver setup time, i.e. time it takes for the receiver to be ready= Time in the Rx state= Time in the idle state= Time in the sleep state= Average number of times per frame that the transmitter is used= Average number of times per frame that the receiver is used= Duration of the time frame= Power used in the Tx state= Power used in the Rx state= Power used in the idle state= Power used in the sleep state= Average power used by the transceiver
ᅠ
Pavg =1
TF
PRxTwk - up + PRx ( N TxTTx - up + N RxTRx - up ) + PTxTTx + PRxTRx + PidleTidle + PsleepTsleep{ }
ᅠ
Twk - up
ᅠ
TTx - up
ᅠ
TTx
ᅠ
TRx - up
ᅠ
TRx
ᅠ
Tidle
ᅠ
Tsleep
ᅠ
NTx
ᅠ
NRx
ᅠ
TF
ᅠ
PTx
ᅠ
PRx
ᅠ
Pidle
ᅠ
Psleep
ᅠ
Pavg
65
Contiki uIPv6
• Popular embedded OS for small microcontrollers– MSP430, AVR, PIC, 8051 etc.
• Contiki core is event-driven– Interrupts and HW drivers generate events– Events are dispatched to event handlers by the Contiki core– Event handlers must return control to core as soon as possible– Co-operative multitasking
• Basic processes are implemented using protothreads– Easier to create sequential operations
– An abstraction to avoid complex state-machine programming• In more complex applications, the amount of states may be huge
68
Contiki execution models
• Contiki offers multiple execution models
• Protothreads: thread-like event handlers– Allow thread-like structures without the requirement of additional
stacks
– Limits process structure: no switch/case structures allowed
– May not use local variables
• Multi-threading model available– For more powerful systems– Allows structured application design
69
Contiki processes
• Contiki core is event-driven– Interrupts and HW drivers generate events– Events are dispatched to event handlers by the Contiki core– Event handlers must return control to core as soon as possible– Co-operative multitasking
• Basic processes are implemented using protothreads– Easier to create sequential operations
– An abstraction to avoid complex state-machine programming• In more complex applications, the amount of states may be huge
70
Contiki processes: An example
/* Declare the process */PROCESS(hello_world_process, “Hello world”);
/* Make the process start when the module is loaded */
AUTOSTART_PROCESSES(&hello_world_process);
/* Define the process code */
PROCESS_THREAD(hello_world_process, ev, data) {
PROCESS_BEGIN(); /* Must always come first */
printf(“Hello, world!\n”); /* Initialization code goes here */
while(1) { /* Loop for ever */
PROCESS_WAIT_EVENT(); /* Wait for something to happen */
}
PROCESS_END(); /* Must always come last */
}
71
Contiki processes: Notes
• A process may not use switch-case constructs– A limitation of the protothread model
– Complex state structures and switches should be subroutines
• A process may not declare local variables– Variables will lose their values at any event waiting call– All variables required by the main process must be static
• Effects on application design– The main process thread should only contain sequences between event
The callback definition:static voidrecv_bc(struct broadcast_conn *c, rimeaddr_t *from);
In main process:broadcast_open(&bc, 128, &broadcast_callbacks);
• Unicast receive in a similar manner
77
Rime: Sending
• Sending broadcast data using RimeDeclarations:static struct broadcast_conn bc;In main process:packetbuf_copyfrom("Hello everyone", 14);broadcast_send(&bc);
• Sending unicast data using RimeDeclarations:static struct unicast_conn uc;In your function:rimeaddr_t *addr;addr.u8[0] = first_address_byte;addr.u8[1] = second_address_byte;packetbuf_copyfrom("Hello you", 9);unicast_send(&uc, &addr);
78
Creating Contiki Ports
• First step: see if your cpu already has code– If yes, configure your platform to use it– If not, see other cpu directories for implementation models
• Second step: see if your hardware is close to other platforms– If yes, copy code from example platform and modify– If not, see other platforms for minimal model
• Create a test application– Start with LEDs in platform/myplatform/contiki-myplatform-main.c– Use for loops to make sure that your compiler works– Continue by adding printf's to see if your UART works
• First real application– Create an etimer for your test process: flash LEDs, print info– Try different timeouts to see if your clocks are correct
• Add more drivers and try them out
79
Router Integration
• Edge Routers interconnect the
IPv6 world and 6LoWPAN
• An ER needs to implement:– 6LoWPAN interface(s)
– 6LoWPAN adaptation
– Simple 6LoWPAN-ND
– A full IPv6 protocol stack
• Other typical features include:– IPv4 support and tunneling– Application proxy techniques– Extended LoWPAN support– A firewall– Management
80
Mobility & Routing
81
Types of Mobility
• Mobility involves two processes– Roaming - moving from one network to another– Handover - changing point of attachment (and data flows)
• Mobility can be categorized as– Micro-mobility - within a network domain
– Macro-mobility - between network domains (IP address change)
• Consider also Node vs. Network mobility
• What causes mobility?– Physical movement– Radio channel– Network performance– Sleep schedules– Node failure
82
Node Mobility
83
Network Mobility
84
Dealing with Mobility
• Micro-mobility– Do nothing (restart)– Link-layer techniques (e.g. GPRS, WiFi)– 6LoWPAN-ND extended LoWPANs– Routing also plays a role
• Macro-mobility– Do nothing (restart)
– Application layer (SIP, UUID, DNS)
– Mobile IPv6 [RFC3775]
– Proxy Home Agent
• Network mobility– Do nothing (restart all nodes)– NEMO [RFC3963]
85
IPv4 Interconnectivity
86
IPv4 – IPv6 Transition
• Redes separadas • Protocolos no compatibles entre si .Disruptivo
– Working group at the IETF• Transition Mechanisms [RFC 4213]