internet de las cosas - dsi.fceia.unr.edu.ar · intervención de tipo persona-persona (p2p) o...
TRANSCRIPT
INTERNET DE LAS COSAS
Sistemas Embebidos Avanzados
Ing. Martín Castro
Evolución de la Internet
IoT puede pensarse como la última fase conocida de internet
ConexionesLos cuatro pilares
● PERSONA-PERSONA (P2P)
● MÁQUINA-PERSONA (M2P)
● MÁQUINA-MÁQUINA (M2M)
● PERSONAS
● PROCESOS
● DATOS
● OBJETOS
IoT se logra conectando los 4 pilares mediante una o varias conexiones distintas
¿Que es IoT?Es un sistema de dispositivos informaticos,
maquinas digitales y mecanicas, objetos,
personas o animales provistas de un
identificador único que poseen la habilidad de
transferir información a través de la red sin
intervención de tipo persona-persona (P2P) o
persona-máquina (P2M)
Hoy se predice que para el 2020, 50 billones de dispositivos estarán conectados a internet
Areas de aplicacion
Modelo
Comunicaciones (repaso)
Aplicación
Presentación
Sesión
Transporte
Red
Enlace de datos
Física
Mensaje enviado Mensaje recibido
Emisor Receptor
Capas Modelo ISO
Medio de comunicación
Comunicaciones: encapsulamiento
Cabecera de presentación
Mensaje de la capa de aplicación
Cabecera de sesión
Cabecera de transporte
Cabecera de red
Comunicaciones: TCP/IP
Mensajes (UDP) o Streams (TCP)
Aplicación
Transporte
Interred
Paquetes UDP o TCP
Datagramas IP
Marcos específicos de red
MensajeCapas
Red subyacente
Interfaz de red
Encapsulamiento bajo TCP/IP
Mensaje de aplicación
Cabecera TCP
Cabecera IP
Cabecera
Ethernet
Marco Ethernet / WiFi
Puerto
TCP
IP
Vista conceptual para programación
IP
Aplicación Aplicación
TCP UDP
Protocolos de comunicación
Physical and Local link
Internet Protocol
Transport
Application HTTPS
CoPA XMPP
MQTT
UDP TCP
IPv4/6 6LoWPANRPL
NFCWiFi Bluetooth
802.15.4ETH
ZigBee
GSMLTE
RFID
AMQPDDS
Application
Presentation
Session
Transport
Network
Data Link
Physical
OSI Model TCP/IP Model IoT Protocols
Ejemplos Capas Física y enlace de datos
● Velocidades: 10/100 Mbps, 1 Gbps, 10Gbps, 40Gbps, 40-00 Gbps (fibra)
● CSMA/CD
● Cada computadora debe tener Network interface card (NIC) y cada NIC tiene una dirección MAC (Media Access Control) única de 48 bits:
● Capacidad Broadcast y Multicast: mediante direcciones reservadas
● Best-effort delivery: No se no garantiza ni confirma recepción
● Control de errores básico
ETHERNET/802.3
● Velocidades: de 2 Mbps a 1.73 Gbps o más
● Existencia de múltiples formatos de tramas para soportar las funciones del protocolo (autenticación, asociación, data, management, etc.)
● Opera en spread-spectrum con canales en las bandas de 2.4 y 5 GHz
● Implementa encriptado de la información
802.11/WiFi
ETHERNET / 802.3 Frame
Carrier Sensing Multiple Access with Collection Detection (CSMA/CD):
● Originalment todas las estaciones conectadas a un cable
● Carrier sensing: Estaciones escuchan por la presencia de portadora.
● Multiple Access with Collision detection: Al detectarse una colisión, se reintenta con períodos crecientes.
(Comparación con protocolos tipo Token Ring)
802.11/WiFi FramesTrama genérica
Trama RTS
Stack TCP/IPDatagrama IP
Stack TCP/IPPaquetes UDP/TCP
Header UDP Header TCP
Stack TCP/IPIntercambio de Paquetes TCP
Stack TCP/IPIntercambio de Paquetes TCP
Stack TCP/IP
Ver ejemplo de código aquí
Capas superiores (aplicación)
● Protocolo liviano de mensajería
● Corre en la capa superior de software sobre tcp/ip
● Arquitectura de publish/subscribe
● Modelo de comunicación asincrónico con mensajes
(eventos)
● Desacople clientes-emisor y cliente-receptor a través de
subscripciones a tópicos (colas de mensajes)
● Ideal para dispositivos con baja capacidad
procesamiento
● Redes con baja tasa de transmisión, de alta latencia,
conexiones débiles, límites de datos
● Multiplicidad de niveles de servicios agregados al propio
de tcp (qos)
● Fácil de implementar con pocos comandos
MQTT (Message Queuing Telemetry Transport)
CLIENTES: Suscriben a los topics para enviar y recibir
información.
MQTT
BROKERS: Servidor que implementa el protocolo, hace
de mediación entre la comunicación entre clientes
(sensores y dispositivos) y la capa de integración del
usuario final.
TOPICS: Técnicamente es la cola de mensajes. Estos
permiten el intercambio de mensajería, obviamente
bajo cierta estructura semántica.
TRAMA:
2 bytes fijos para el encabezado
PUBLISH:
MQTT
SUBSCRIBE:
HTTP (Hypertext Transfer Protocol )● Protocolo para entregar mensajes hipermedia orientado a transacciones (document centric
MIME)
● Corre en la capa superior de software sobre tcp/ip
● Arquitectura de request/response
● Connectionless: Cliente hace el request y espera que el servidor, procese y restablezca conexión
para el response.
● Media independent: cualquier tipo de dato se puede transmitir. (cliente-servidor deben ser
capaces de procesarlo)
● Stateless: Cliente-Servidor son conscientes unos de otros solo en el momento de la conexión.
(cookies para sesión)
URI: Cadena de caracteres
que identifica los recursos
de una red de forma
unívoca
Pueden ser URL, URN o
ambos
HTTPMÉTODOS REQUEST
● GET
● POST
● PUT
● DELETE
● CONNECT
CÓDIGOS RESPONSE
● 1XX
● 2XX
● 3XX
● 4XX
● 5XX
TRAMA (HTTP/2 version)
● CABECERA de 9 bytes
● 16.384 < Largo < 16.777.215
AJAX
LLamadas JS +
XMLHttpRequest
API-REST
● Protocolo cliente/servidor
sin estado
● Operaciones definidas
(métodos)
● Sintaxis universal
(direccionalidad a través de
URIs)
● Uso de hipermedios (HTML,
XML, JSON, etc)
MQTT vs. HTTPMQTT HTTP
Orientación del dato Centrado en la información Centrado en el documento
Transacción del mensaje Publish/Subscribe Request/Response
Complejidad del protocolo Simple Complejo
Tamaño del mensaje Pequeño (header: 2 bytes) Mayor (usa formato de texto no
binario)
Nivel de servicios Tres configuraciones Todos los mensajes por igual
Librerías Librerías para: C (30 KB) Java
(100 KB)
Depende de la aplicación
(JSON, XML) pero normalmente
no muy pequeñas
Configuración de la
comunicacion
Soporta desde 1 a 0 a 1 a
muchos
Solo 1 a 1
● Protocolo de mensajería basado en XML
● Servidores y clientes gratuitos
● Adoptado por Facebook, Whatsapp, Nimbuzz etc
● Originalmente P2P, adoptado M2M para intercambio de mensajes XML
XMPP (Message Queuing Telemetry Transport)
Ventajas
1. Descentralizado
2. Seguridad
3. Flexibilidad
Desventajas
1. Sobrecarga de datos en presencia
2. Escalabilidad
3. Datos NO BINARIOS
DESCENTRALIZACIÓN Y DIRECCIONAMIENTO: Basada en servidores NO HAY NINGÚN SERVIDOR CENTRAL.
Existe un servidor XMPP publico en jabber.org cualquiera puede poner en marcha el propio, comúnmente a
través del puerto 5222.
Clientes Servidores Librerías
● Especificación industrial WPAN
● Diseñado para bajo consumo, corto alcance de emisión y
transceptores de bajo costo
● Opera en 2.4 GHz a 2.8 GHz
● Posibilidad de transmitir full-duplex
BLUETOOTH
POTENCIA DE TRANSMISIÓN
ANCHO DE BANDA
ESPECIFICACIÓN
SEGÚN MODELO OSI
BLE, ULP Y SMART BLUETOOTH
Transmite su información en rafagas,
economizando energía poniéndose a dormir
RFID● Chip emite peticiones por radio
al lector, este responde y coteja
con una base de datos
❏ Pasivos
❏ Semiactivos
❏ Activos
TAGS
DISTANCIA Y FRECUENCIA
DE TRANSMISIÓN
APLICACIONES
❏ Logística
❏ Identificación de animales
❏ MErcadotecnia/ Eventos
NFC● Comunicación por inducción de un campo magnético
● Frecuencia: 13,56 MHz, Proximidad: 10 cm, tiempo de
enlace NFC: 200 us, velocidad de transmisión: 106, 212,
424 o 848 Kb/s
● Basada en ISO 14433
● Dos modos: activo o pasivo
❏ Lectura/escritura
❏ Identificación
❏ Acceso físico
❏ Tarjetas de fidelización
❏ Pagos
Aplicaciones
BASES DE DATOSRELACIONALES
NO RELACIONALES
❖ Basadas en el modelo relacional,
relaciones: conjunto de datos
(tuplas)
❖ Garantiza duplicidad, integridad
referencial
❖ Comprensible y aplicable
❖ Deficiencias con datos gráficos
❖ No se manipulan eficientemente
como texto o tipo de dato
❏ SQLite
❏ PostgreSQL
❏ MySQL
❏ MongoDB
❏ Redis
❏ CouchDB
❏ LevelDB
❖ No contienen un esquema definido
❖ Mejor manejo de grandes
volúmenes de datos (1M registros)
❖ Escalado horizontal y estructura de
datos más simples
❖ Facilita la escalabilidad
❖ Orientadas a objetos (XML, JSON) o
claves.
SEGURIDAD1 - Deficiencia técnica
4 - Dificultad para monetizar
la seguridad
Aspectos a resolver por fabricantes de dispositivosAutomotriz Industria Casas/Edificios inteligentes
Componentes disponibles son ineficaces
Falta de componentes que ofrezcan soluciones end-to-end eficaces
Clientes no están dispuestos a pagar por productos mejorados en aspectos de seguridad
Las compañías tienen problemas para introducir soluciones de software
2 - Estándares de seguridad inmaduros
Grandes empresas compiten por desarrollarlos
Organizaciones industriales no crean estándares acorde a la velocidad de desarrollo de los nuevos dispositivos.
Las partes interesadas no saben quien y como van a ser establecidos
4 - Dificultad para apreciar el valor
de la seguridad
Falta de visión por parte de usuarios finales de IoT
Falta de visión por parte de de fabricantes de semiconductores
SEGURIDADPrincipales recursos:
1. Autentificación: 1. Protocolos que soportan a nivel de dispositivo
2. Encriptado:1. Asegurar privacidad e integridad de la
información en la comunicación entre protocolos
(WPA2, PPSK, etc)
3. Protección del puerto:1. Asegura que solo los puertos necesarios para
comunicarse con el gateway queden abiertos a
conexiones externas
2. Todos los demás deben ser protegidos por
firewalls
SEGURIDAD END-TO-END
Presentación de la informaciónMontaje local: ● Desarrollo de interfaz
multiplataforma (Página web)○ Implementación en plataformas
relativamente poco poderosas
○ Disponibilidad de librerías (JS) y técnicas de
programación (AJAX)
○ Generalmente JS, HTML y CSS (front-end)
o php (back-end)
● Servers locales + dashboards○ Necesidad de plataforma con SO
○ Herramientas poderosas (BDs,
dashboards)
○ Variedad lenguajes, librerías y paquetes a
trabajar (NodeJS, JSON, SQL, etc)
● Web Services:
Componentes de aplicaciones web que permite resolver el problema de interoperabilidad dando a
distintas aplicaciones una manera de unir/distribuir su información según corresponda.
● HOSTING Y VISUALIZACIÓN DE LA INFORMACIÓN
● DISPARO DE EVENTOS (SMS, Telegram, e-mail, etc)
● DASHBOARD
● ANALITICA
● LIBRERÍAS PARA DISPOSITIVOS
● SOPORTE TÉCNICO
Montaje en la nube:
Elección del Hardware
● Seguridad
● Facilidad de desarrollo
● Adquisición, procesamiento y almacenaje de la información
● Requerimientos de Conectividad
● Requerimientos energéticos
● Requerimientos del desarrollo del producto
● Requerimientos de costos
Requerimientos
Oferta de módulos disponibles en el mercado● ESP8266
○ Diversas versiones
○ Muy Económico (En argentina $140 ARS - Exterior desde $2 USD)
○ MCU de 32 Bits a 80 Mhz
○ RAM de instrucción de 64 KB, RAM de datos de 96 KB
○ Capacidad de memoria externa flash SPI (puede soportar hasta 16 MB)
● EMW3165○ MCU: Cortex M4 de STM a 100Mhz
○ RAM: 128KB
○ Flash interna: 512KB
○ Memoria SPI de 2MB incluida
○ Costo en Argentina $400 - Exterior $8 USD
Oferta de módulos disponibles en el mercado● Photon
○ MCU: Cortex M3 de STM a 120Mhz
○ RAM: 128KB
○ Flash interna: 1MB
○ Costo en Argentina $750 - Exterior $19 USD
○ API open source muy desarrollada
○ Opción de Web IDE
○ Plataforma en la nube “Particle”
● Photon P0 (Módulo solo)○ Costo $10 USD
Comparación HardwareBare-metal SO
Bibliografía● Introduccion a la Internet de las cosas (IdC) https://www.netacad.com/campaign/iot-es-
1?utm_source=Facebook&utm_medium=CPC&utm_campaign=IoTLook&utm_content=26
● Kolban’s book on ESP8266
● Building a smarter planet solutions with MQTT and IBM WebSphere MQ Telemetry
● https://ubidots.com/
● https://nodered.org/
● https://www.particle.io
● https://seeedstudio.com
● “Internetworking with TCP/IP, Vol. III: Client-Server Programming and Applications” - Douglas E.
Comer
● “An introduction to MQTT a protocol for M2M and IoT applications” - Peter R. Egli● https://www.ibm.com/developerworks/library/iot-lp101-best-hardware-devices-iot-project/index.html
¿PREGUNTAS?