6LOWPAN E PROTOCOLOS PARA IOT - PPGIa
Transcript of 6LOWPAN E PROTOCOLOS PARA IOT - PPGIa
2017, Edgard Jamhour
6LOWPAN E
PROTOCOLOS PARA
IOT
EDGARD JAMHOUR
IEEE 802.15.4
Tecnologia de Radio “Low Power”
Baixo Consumo
Pequeno Alcance
Baixas Taxas de Transmissão
Pequeno MTU (Maximum Transmission Unit)
CARACTERÍSTICAS DA TECNOLOGIA
802.15.4
Taxas de Transmissão:
• 250 Kb/s, 40 Kb/s e 20 Kb/s
Topologias:
• Estrela ou Ponto-a-Ponto
Frequências de Operação:
• 16 canais em 2.4 GHz (ISM)
• 10 canais em 915 MHz (ISM)
• 1 canal em 868 MHz (Europeu)
868MHz / 915MHz
PHY
2.4 GHz
868.3 MHz
Channel 0 Channels 1-10
Channels 11-26
2.4835 GHz
928 MHz 902 MHz
5 MHz
2 MHz
2.4 GHz
PHY
Joe Dvorak, Motorola
BANDAS DE OPERAÇÃO E DIVISÃO EM
CANAIS (VERSÃO 2006)
Edgard Jamhour
PILHA IEEE 802.15.4
05 2004 Marco Naeve, Eaton Corp. S
lid
e 5
IEEE 802.15.4 MAC
Upper Layers
IEEE 802.15.4 SSCS IEEE 802.2
LLC, Type I
IEEE 802.15.4
2400 MHz
PHY
IEEE 802.15.4
868/915 MHz
PHY
Preamble Start of
Packet
Delimiter
PHY
Header
PHY Service
Data Unit (PSDU)
PHY Packet Fields • Preamble (32 bits) – sincronização
• Start of Packet Delimiter (8 bits)
• PHY Header (8 bits) – PSDU length
• PSDU (0 to 1016 bits) – Data field
6 Octets 0-127 Octets
Joe Dvorak, Motorola
IEEE 802.15.4 PHY OVERVIEW PACKET STRUCTURE
TIPOS DE DISPOSITIVOS
FULL Function Device (FFD)
• Qualquer topologia
• Pode ser coordenador de PAN
• Conversa com qualquer outro dispositivo
• Implementa toda a pilha do protocolo
Reduced Function Device (RFD)
• Opera em topologias estrela ou como “folhas” (end-devices)
• Não podem ser coordenadores PAN
• Implementação simples
• Implementação simplificada da pilha de protocolos
Marco Naeve, Eaton Corp. Sli
de
8
STAR TOPOLOGY
FFD
RFD Communications flow
Master/slave
PAN
coordinator
Todos os nós se
comunicam com
um controlador
PAN central
Controlador PAN é
um nó com uma
fonte de energia
confiável
Marco Naeve, Eaton Corp.
PEER-PEER TOPOLOGY
Communications flow
Point to point
Cluster tree
FFD
RFD
PAN
coordinators
Nós podem se comunicar
através do controlador
Central e através de nós
FFD
Edgard Jamhour
CLUSTER TREE
Marco Naeve, Eaton Corp. Slid
e 1
1
COMBINED TOPOLOGY
FFD
RFD
Communications flow
Clustered stars – múltiplas redes em
topologia estrela
controladas por diferentes
controladores e conectadas entre si
Edgard Jamhour Marco Naeve, Eaton Corp. S
lid
e
12
ESTRUTURA DE SUPERFRAME
OPCIONAL
15ms * 2n
where 0 n 14
GTS 3 GTS 2
Network
beacon Transmitido pelo coordenador PAN
Beacon
extension
period Espaço reservado para crescimento do Beacon
Contention
period Acesso livre por CSMA-CA
Guaranteed
Time Slot Acesso de nós que precisam de garantia de banda [n = 0].
GTS 1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15Slot
Battery life extension
Contention Access Period Contention Free Period
Marco Naeve, Eaton Corp. Sli
de
13
OPTIONAL FRAME STRUCTURE
Superframe pode ter um periodo de inatividade
15ms * 2BO
where SO BO 14
15ms * 2SO
where 0 SO 14
SO = Superframe order
BO = Beacon order
Inactive Period
Edgard Jamhour
Payload
PH
Y L
ayer
MA
C
Layer
MAC Header
(MHR)
MAC Footer
(MFR)
MAC Protocol Data Unit (MPDU)
MAC Service Data Unit
(MSDU)
PHY Header
(PHR)
Synch. Header
(SHR)PHY Service Data Unit (PSDU)
4 TIPOS DE QUADROS MAC
• Data Frame
• Beacon Frame
• Acknowledgment Frame
• MAC Command Frame
Joe Dvorak, Motorola
IEEE 802.15.4 MAC OVERVIEW ESTRUTURA GERAL DOS QUADROS
05 2004 Marco Naeve, Eaton Corp. S
lid
e
15
FORMATO GERAL DOS QUADROS MAC
Octets:2 1 0/2 0/2/8 0/2 0/2/8 variable 2
Destination
PAN
identifier
Destination
address
Source
PAN
identifier
Source
address
MAC
payloadMAC footer
Frame
check
sequence
MAC header
Addressing fields
Frame
control
Sequence
number
Frame
payload
Bits: 0-2 3 4 5 6 7-9 10-11 12-13 14-15
Frame typeSequrity
enabled
Frame
pendingAck. Req. Intra PAN Reserved
Dest.
addressing
mode
Reserved
Source
addressing
mode
Frame control field
05 2004 Marco Naeve, Eaton Corp. S
lid
e 1
6
QUADRO DO TIPO BEACON
Bits: 0-3 4-7 8-11 12 13 14 15
Beacon
order
Superframe
order
Final CAP
slot
Battery life
extensionReserved
PAN
coordinator
Association
permit
Octets:2 1 4 or 10 2 variable variable variable 2
MAC
footer
Frame
check
sequence
MAC header
Source address
information
MAC payload
Superframe
specification
GTS
fields
Pending
address
fields
Frame
control
Beacon
sequence
number
Beacon payload
QUADROS DE COMANDO
Tipos de Comando:
Marco Naeve, Eaton Corp.
Octets:2 1 4 to 20 1 variable 2
MAC
footer
Frame
check
sequence
Frame
control
Data
sequence
number
Address
information
MAC header MAC payload
Command
typeCommand payload
• Association request
• Association response
• Disassociation notification
• Data request
• PAN ID conflict notification
• Orphan Notification
• Beacon request
• Coordinator realignment
• GTS request
Edgard Jamhour Marco Naeve, Eaton Corp.
QUADROS DE DADOS E ACK
QUADROS ACK
Octets:2 1 2
MAC
footer
Frame
check
sequence
MAC header
Frame
control
Data
sequence
number
Octets:2 1 4 to 20 variable 2
MAC PayloadMAC
footer
Data payload
Frame
check
sequence
MAC header
Frame
control
Data
sequence
number
Address
information
TIPOS DE COMUNICAÇÃO
• Com ou Sem confirmação (ACK)
• Direto ou Indireto
• Com ou sem garantia (GTS em modo beacon)
• Maximum data length (MSDU)
• aMaxMACFrameSize (102 bytes)
Marco Naeve, Eaton Corp.
PRIMITIVAS MAC
A camada MAC oferece uma interface entre a camada de Aplicação e a camada PHY
São oferecidos dois grupos de serviços:
MLME-SAP:
Serviços de Gerenciamento
PIB (PAN Information Base)
MCPS-SAP:
Serviços de Dados
Marco Naeve, Eaton Corp.
Edgard Jamhour
FUNCIONAMENTO DAS PRIMITIVAS
wpan_: funções MAC
usr_: funções callback
Edgard Jamhour Marco Naeve, Eaton Corp.
PRIMITIVAS MAC
Edgard Jamhour Marco Naeve, Eaton Corp.
DATA TRANSFER
MESSAGE SEQUENCE DIAGRAM
Originator
MAC Recipient
MAC
Data frame
Acknowledgment (if requested)
Originator higher layer
Recipient higher layer
MCPS-DATA.request
MCPS-DATA.indication
MCPS-DATA.confirm
Edgard Jamhour Marco Naeve, Eaton Corp.
INDIRECT DATA TRANSFER
MESSAGE SEQUENCE DIAGRAM
Coordinator
MAC Device MAC
Data frame
Acknowledgment
Coordinator higher layer
Device higher layer
MCPS-DATA.request (indirect)
MCPS-DATA.indication
MCPS-DATA.confirm
Beacon frame
Data request
Acknowledgement
Edgard Jamhour Marco Naeve, Eaton Corp.
ASSOCIATION
MESSAGE SEQUENCE DIAGRAM
Device MAC
Coordinator MAC
Association request
Acknowledgment
Device higher layer
Coordinator higher layer
MLME-ASSOCIATE.request
MLME-ASSOCIATE.indication
MLME-ASSOCIATE.response
Acknowledgement
Association response
MLME-ASSOCIATE.confirm
aResponseWaitTime
MLME-COMM-STATUS.indication
Data request
Acknowledgment
Edgard Jamhour
05 2004 Marco Naeve, Eaton Corp. S
lid
e
26
DISASSOCIATION
MESSAGE SEQUENCE DIAGRAM
= Originator
MAC Recipient
MAC
Disassociation notification
Acknowledgment
Originator higher layer
Recipient higher layer
MLME-DISASSOCIATE.request
MLME-DISASSOCIATE.indication MLME-DISASSOCIATE.confirm
Edgard Jamhour Marco Naeve, Eaton Corp.
DATA POLLING
MESSAGE SEQUENCE CHART
Device MAC
Coordinator MAC
Data request
Acknowledgment (FP = 0)
Device higher layer
MLME-POLL.request
MLME-POLL.confirm
No data pending at the coordinator
Edgard Jamhour Marco Naeve, Eaton Corp. S
lid
e
28
DATA POLLING
MESSAGE SEQUENCE CHART
Device MAC
Coordinator MAC
Data request
Acknowledgment (FP = 1)
Device higher layer
MLME-POLL.request
MLME-POLL.confirm
Data
Acknowledgement
MCPS-DATA.indication
Data pending at the coordinator
Edgard Jamhour
PASSIVE SCAN
Marco Naeve, Eaton Corp. Sli
de
29
Device MAC
Coordinator MAC
Device higher layer
MLME-SCAN.request
MLME-SCAN.confirm
ScanDuration
Beacon
Set 1st Channel
Set 2nd
Channel
Edgard Jamhour Marco Naeve, Eaton Corp.
ACTIVE SCAN
Device MAC
Coordinator MAC
Beacon request
Device higher layer
MLME-SCAN.request
MLME-SCAN.confirm
ScanDuration Beacon
Set 1st Channel
CSMA
Set 2nd
Channel
Beacon request
Edgard Jamhour Marco Naeve, Eaton Corp. S
lid
e
31
ESPAÇAMENTO INTER-FRAME
For frames ≤ aMaxSIFSFrameSize use short inter-frame spacing (SIFS)
For frames > aMaxSIFSFrameSize use long inter-frame spacing (LIFS)
Long frame ACK Short frame ACK
tack
LIFS tack
SIFS
Acknowledged transmission
Long frame Short frame
LIFS SIFS
Unacknowledged transmission
aTurnaroundTime tack
(aTurnaroundTime (12 symbols) + aUnitBackoffPeriod (20 symbols))
LIFS > aMaxLIFSPeriod (40 symbols)
SIFS > aMacSIFSPeriod (12 symbols)
Edgard Jamhour Marco Naeve, Eaton Corp.
OPERAÇÃO CSMA
NÃO SLOTTED NB = 0,
BE = macMinBE
Delay for
random(2BE - 1) unit
backoff periods
Perform CCA
Channel idle?
NB = NB+1,
BE = min(BE+1, aMaxBE)
NB>
macMaxCSMABackoffs
?
Failure Success
Un-slotted CSMA
Y
Y
N
N
Usado em Redes sem
Beacon
Edgard Jamhour
Sli
de
33
OPERAÇÃO CSMA
MODO SLOTTED
NB = 0, CW = 0
Battery life
extension?
BE = macMinBE
BE = lesser of
(2, macMinBE)
Locate backoff
period boundary
Delay for
random(2BE - 1) unit
backoff periods
Perform CCA on
backoff period
boundary
Channel idle?
CW = 2, NB = NB+1,
BE = min(BE+1, aMaxBE)CW = CW - 1
CW = 0?NB>
macMaxCSMABackoffs
?
Failure Success
Slotted CSMA
Y
Y Y
Y
N
N
N
N
Modo Beacon
VERSÕS DA TECNOLOGIA IEEE 802.15.4
VERSÃO DETALHES
IEEE 802.15.4 - 2003 DSSS (Direct Sequence Spread Spectrum) com taxas de 20 e 40Kbit/s
IEEE 802.15.4 - 2006 Maiores taxas de transmissão em DSSS
Adição do modo PSS (Parallel Sequence Spread Spectrum)
IEEE 802.15.4a Adição do modo UWB (Direct Sequence Ultra-WideBand)
Adição do modo CSS (Chirp Spread Spectrum)
IEEE 802.15.4c ATUALIZAÇÃO DA PHYs e BANDA NA CHINA 779-787 MHz.
IEEE 802.15.4d ATUALIZAÇÃO DA PHYs e BANDA NO JAPÃO 950 - 956 MHz
IEEE 802.15.4e EXTENSÕES PARA AUTOMAÇÃO INDUSTRIAL
IEEE 802.15.4f NOVAS PHYS PARA UWB, 2.4 e 433 MHz
IEEE 802.15.4g PHY PARA SERVIÇOS MUNICIPAIS UTILITÁRIOS (ELETRICIDADE, GAS e
AGUA)
INCLUIR MELHORIAS NA BANDA 902 - 928 MHz
WISUN ALLIANCE
WWW.WI-SUN.ORG
Especificação da FAN (Field Area Network) para Redes Utilitárias
Comparação de Tecnologias Wireless para IoT:
https://www.wi-sun.org/index.php/tcwp-en/file
MOTIVAÇÃO PARA 6LOWPAN
• Oferecer suporte a tecnologia IP para dispositivos de IoT
• Aplicações desenvolvidas sobre IP são independentes da
tecnologia de comunicação
• Adaptar o uso de IPv6 as tecnologias de rádio existentes
• IPv6: MTU mínimo de 1280 bytes
• Cabeçalho IPv6: 40 bytes
• Cabeçalho UDP: 8 bytes
• IEEE 802.15.4: MSDU 102 bytes
• 54 bytes por pacote (sem segurança)
• 33 bytes por pacote (com segurança)
6LOWPAN (RFC 4944)
• Camada de adaptação para transporte de pacotes IPv6 sobre enlaces
IEEE 802.15.4
• Usa IEEE 802.15.4 em modo CSMA/CA unslotted (sem beacom)
• Beacon apenas para descoberta de dispositivos
• Introduz a fragmentação e remontagem de pacotes IPv6
• Compressão dos cabeçalhos IPv6, UDP e ICMP
• Suporte ao roteamento MESH (mesh under)
Edgard Jamhour
6LOWPAN & IEEE 802.15.4
Chaiporn Jaikaeo
Edgard Jamhour
BYTE DISPATCH NO CABEÇALHO
6LOWPAN
6LOWPAN DISPATCH CODES
• 6LowPAn inclui um cabeçalho que indica como o pacote foi
encapsulado
• Diversos formatos são suportados:
COMPRESSÃO HC1
• A versão é sempre 6
• O Endereço IPv6 (HOST) pode ser inferido a partir do MAC
• O tamanho do pacote pode ser obtido do quadro
• Flow Label e Traffic Class são raramente usados (0)
• Next Header é quase sempre TCP, UDP ou ICMP
Cabeçalho IPv6
Edgard Jamhour
COMPRESSÃO HC1
COMPRESSÃO HC2
• Compressão de UDP de 8 para 3 bytes
• O tamanho pode ser deduzido pelo tamanho do quadro
• Restringir as portas a faixa: 61616-61631 (16 valores)
• Portas podem ser representadas por 4 bits
2 bytes 2 bytes
CABEÇALHO UDP
Edgard Jamhour
COMPRESSÃO H1+H2
Edgard Jamhour
PAYLOAD COM E SEM COMPRESSÃO
Sem Compressão (código 01000001)
Com Compressão (código 01000010 = HC1)
Pode ser seguido de compressão HC2
Funciona apenas para
endereços Link-Local
IPHC: IMPROVED HC
• Compressão HC1 e HC2
são sem estado e
funcionam apenas para
endereços IPv6 do tipo
Link Local
• IPHC é uma forma de
compressão mais geral,
que operar em modo com
ou sem estado
• Os prefixos IPv6 são
removidos
QUADROS FRAMENTADOS
1. Pacotes IPv6 maiores que o MTU são fragmentados
2. Introduz campo de offset para fragmentos
3. Tempo máximo de remontagem é 60 segundos
Edgard Jamhour
EXEMPLO
Os endereços de
origem e destino são
mostrados no
Wireshark, mas não
são efetivamente
transmitidos.
O cabeçalho 6LowPan
acaba no campo Hop
Limit
Edgard Jamhour
EXEMPLO
Pacotes fragmentados
6LowPAN são muito
mais simples que no
IPv4, uma vez que o
cabeçalho IP não é
incluído no fragmento
Edgard Jamhour
EXEMPLO
A compressão HC1
não funciona para
endereços Globais
Nesse caso, é
utilizado a
compressão IPHC
IMPLEMENTAÇÃO 6LOWPAN (STACK)
Nesta configuração,
o sistema
operacional do
MOTE efetua a
conversão para
6LowPAN
Edgard Jamhour
IMPLEMENTAÇÃO 6LOWPAN (GATEWAY)
RNDIS: Remote Network Driver Interface Specification
Nesta configuração,
o adaptador de rede
(NIC) efetua a
conversão para
6LowPAN
Edgard Jamhour
EXEMPLOS DE REDES 6LOWPAN
Chaiporn Jaikaeo
Gateway
6LowPan para IPv6
Edgard Jamhour
MESH UNDER VS ROUTER
RPL
Emula um
único domínio
de broadcast
na rede
6LowPan
Para camada
de rede, a
comunicação
na WPAN é
single hop
Edgard Jamhour
CABEÇALHO MESH UNDER
Hop Left é decrementado a cada salto
O quadro é descartando quando o valor
chega a zero
Edgard Jamhour
IEEE 802.15.5
Solução de Mesh-Under
para redes IEEE
802.15.4-2006
IETF não especificou
protocolos Mesh-Under
para 6LowPan
RPL é o protocolo padrão
proposto pelo IETF para
Router-Over em redes
6LowPan
RPL: IPV6 ROUTING PROTOCOL FOR LLN
• Protocolo padrão proposto pelo IETF para 6LowPAN
• Definido pela RFC 6550 (Março de 2012)
• Destinado a LLN (Low-Power and Lossy Networks)
• Assume restrições nos dispositivos de rede:
• Consumo de energia, memória e processamento
• Assume restrições nos meios de comunicação:
• Altas taxas de perdas, baixas taxas de transmissão e instabilidade
• Tecnologias de comunicação:
• Rádios de baixa capacidade (IEEE 802.15.4)
• PLC (Power Line Communications)
Edgard Jamhour
QUÃO RUIDOSO É UM AMBIENTE
RUIDOSO?
Muitos protocolos de
roteamento propostos para
redes sem fio irão tratar
perda de pacotes como
mudanças de topologia
devido a mobilidade
PROATIVO VS REATIVO
Proativo:
• Tentam obter informações de roteamento antes que sejam necessárias
• Avalia as rotas continuamente, e encaminha pacotes para o destino
assim que recebidos
Reativo:
• Obtém informação sobre a rota apenas quando ela é requisitada
• O encaminhamento de pacotes para destinos ainda descobertos sofre
atraso
Edgard Jamhour
PROTOCOLOS PARA REDES AD-HOC
Redes Ad-Hoc
são aquela
formadas de
forma natural,
sem estrutura
fixa definida
RPL é Proativo
e assume que
as mudanças
na rede são
lentas
Edgard Jamhour
A REDE LLN É VISTA COMO UMA SUBREDE
A REDE LLN NÃO SUPORTA BROADCAST
IPv6 ND (Neighbor Discovery)
assume que todos os nós de
uma sub-rede estão no mesmo
domínio de broadcast
Contudo isso não é verdade
para 6LowPAN
RPL implementa uma
abordagem “Router Over” e usa
uma versão simplificado do
protocolo IPv6 ND
NEIGHBOR DISCOVERY PARA 6LOWPAN
• ND: Neighbor Discovery
• NS: Neighbor Solicitiation
• NA: Neighbor Advertisement
• A RFC6675 (2012) modifica o comportamento do protocolo ND do IPv6 para redes
6LowPAN.
• Permitir que host entrem em modo sleep
• Eliminar a resolução de endereços multicast pelos hosts
• Permitir a descoberta de vizinhos através de mensagens em unicast (NA e NS)
• Distribuir contexto de compressão de cabeçalho para hosts
• Multihop Duplicate Address Detection (DAD) com 2 novas mensagens
ND PARA 6LOWPAN
Nós se registram nos roteadores informado seus endereços
Todos os endereços, exceto os multicast e os FE80:: são considerados off-link, isto é,
enviados ao roteador.
host 6LR
RS
RA
NS com ARO
NS com ARO
...
NA OK/NOK
Neighbor Cache Entries
(NCEs)
Todos os endereços
registrados pelos nós com
TTL
RS: Router Solicitation
RA: Router Advertisement
NS: Neighbor Advertisement
ARO: Address Registration Option
DODAG VS DAG
• DODAG: Directed Oriented Acyclic Graph
• Árvores: Um único caminho até a raiz (Root)
• DAG: Um ou mais caminhos até um ou mais Rots (sem loops)
• DODAG: DAG com apenas um ROOT
Edgard Jamhour
RPL: TOPOLOGIA DODAG
Para o nó G
D,H,L são vizinhos
D é o pai preferencial Enlaces tem um
custo (ETX, atraso,
distância, etc.)
que pode ser
penalizado se o nó
estiver com pouca
energia, por
exemplo.
Para o nó I
E é o pai (único)
G & H são irmãos
MÉTRICA ETX
ETX: Número estimado de tentativas para que um pacote seja enviado de A
para B e confirmado com sucesso
ETX = (tAB * tBA)-1
• tAB: taxa de sucesso no envio de A para B (dado)
• tBA: taxa de sucesso no envio de B para A (confirmação)
Exemplo: Suponha que um enlace perca em média 50% da mensagens
• ETX = 0.52 = 4
• São esperadas em média 4 transmissões
Edgard Jamhour
RANK: MEDIDA DA DISTÂNCIA DE UM
NÓ ATÉ O ROOT (LBR)
Edgard Jamhour
O RANK DO PAI DEVE SER SEMPRE
MAIOR QUE O DOS FILHOS
Para o G poder usar o
nó H ele precisa
aumentar seu Rank até
ele ficar maior que o
Rank de H
O Rank de um nó é o
Rank do pai mais o
custo do enlace até o
pai
Rank é uma medida da
distância do nó até o
Root (6LBR)
Inicialmente, esse Rank
pode ser apenas a
soma do custo dos
enlaces.
Contudo um nó pode
mudar seu Rank para
poder conectar-se a um
vizinho
Edgard Jamhour
MENSAGENS DO RPL
Edgard Jamhour
MENSAGEM RPL
DIO
Nós 6LR enviam
periodicamente mensagens
DIO, em multicast (ff02::1a),
contendo seu Rank
Nós que recebem uma
mensagem DIO deixam de
ser órfãos e passam a fazer
parte da DODAG
Mensagens DIO são tipos
especiais de mensagens
ICMPv6
DIO: DODAG Information
Object
ALGORITMO TRICKLE
• Mensagens DIO são enviadas de acordo com o algoritmo TRICKLE (RFC
6206).
• O intervalo entre mensagens DIO aumenta exponencialmente quando a
rede está estável (consistência).
• O intervalo decresce abruptamente quando há uma alteração na rede
(inconsistência).
Intervalo
de envio
(ms)
rede consistente: o LBR mantém o mesmo pai e o mesmo Rank
rede inconsistente: o LBR ficou
órfão ou mudou de Rank
MENSAGENS RPL DAO
Mensagens DAO (Destination
Advertisement Object) são enviadas
em unicast para o pai preferencial (e
opcionalmente, alternativos).
Elas carregam o endereço dos nós
alcançáveis pelo 6LBR (ele próprio
e abaixo dele na DODAG)
STORING VS NON-STORING
Modo Storing:
• As informações da DAO são armazenadas localmente pelos 6LR.
• Cada nó conhece todos os nós na sub-DODAG abaixo dele.
• A comunicação entre dois nós quaisquer sobe em direção ao 6LBR até
encontrar um pai comum aos nós
Modo Non-Storing:
• Nós 6LR não armazenam informações de rota, apenas o 6LBR.
• A comunicação entre nós precisa passar sempre pelo 6LBR.
Edgard Jamhour
TIPOS DE COMUNICAÇÃO
Rotas DIO Rotas DAO Rotas DAO Non-Storing
COAP: CONSTRAINED APPLICATION
PROTOCOL
• Definido pela RF7228 (2014)
• Protocolo de aplicação para “constrained devices”
• Micro-controladores de 8 bits
• Pouca quantidade de RAM e ROM
• Rede de comunicação limitada (6LowPan)
• Alta taxa de perda e throughput de dezenas de kbit/s
• Pode ser facilmente traduzível para HTTP
REST (REPRESENTATIONAL STATE
TRANSFER )
• REST é um conjunto de restrições que são usadas como guia para obter um sistema escalável
• Um sistema REST podem ser implementado em HTTP, SNMP, SMTP
• Um sistema RESTfull satisfaz as seguintes restrições:
Arquitetura cliente-servidor • A interface com o usuário existe apenas na aplicação cliente
• O servidor é responsável por armazenar os dados
Sem estado
• As requisições do cliente contém toda a informação para o servidor processar a consulta
• O “estado” é mantido no cliente, e o servidor não mantém estado do cliente
Cacheável
• Clientes e intermediários podem cachear respostas
• Respostas indica se podem ou não ser cacheadas
Sistema em Camadas
• O cliente não pode dizer se está conectado ao servidor final ou a um nó intermediário
[Código sob Demanda]
• Servidores podem transferir código para o cliente (JavaScript ou Java Applets)
Interface Uniforme
• URI em sistemas REST baseados em WEB
• Respostas em: XML, HTML ou JSON
HTTP REST
INTERFACE UNIFORME
• URL: Uniform Resource Locator
• URN: Uniform Resource Name
• URI: Uniform Resource Identifier
Edgard Jamhour
HTTP REST
OPERAÇÔES
URL GET PUT PATCH
/POST
DELETE
Coleção:
https://a.b.com/resources
Lista as
URIs
Substitui a
coleção
POST
Cria nova
entrada
Apaga a
coleção
Elemento:
https://a.b.com/resources/iten1
Recupera o
elemento
Substitui o
elemento
PATCH
Atualiza o
elemento
Apaga o
elemento
PARADIGMA WEB SERVICE
Web Service é um serviço oferecido de um dispositivo eletrônico para
outro (M2M) usando padrões WWW
Atualmente, um Web Service pode ser implementado de duas formas:
• SOAP sobre HTTP
• responde com recursos XML
• Descreve a interface com WSDL
• REST sobre HTTP
• responde com XML, JSON ou
HTML
• Stateless
Linguagem que permite descrever
nome de funções, argumentos e
valore retornados
REQUISIÇÃO HTTP
• HTTP é implementado sobre TCP
• O overhead gerado em um simples requisição de recurso HTTP é
muito grande devido as mensagens necessárias para criar e
terminar a conexão TCP.
7 mensagens
5 mensagens de conexão TCP
2 mensagens HTTP
CORE – CONSTRAINED RESTFUL
ENVIRONMENTS
Para aplicações de IoT o sistema REST precisa ser implementado
sobre um protocolo de transporte mais leve que HTTP/TCP
COAP: CONSTRAINED APPLICATION
PROTOCOL
• Protocolo de transferência Web para sistemas embarcados (coap://)
• Modelo de transação assíncrono
• Transporte UDP com suporte a multicast e confiabilidade
• Métodos: GET, POST, PUT e DELETE
• Suporte a URI
• Cabeçalho simples < 10 bytes
• Subset de tipos MIME e códigos de resposta HTTP
• Observação, Transferência de Bloco e Descoberta opcionais
ARQUITETURA CORE
CONSTRAINED RESTFUL ENVIRONMENTS
Aplicações de IoT que comunicam-se com a CLOUD são formadas por dois tipos de
rede:
• Com restrições: ambiente wireless dos nós IoT
• Sem restrições: Internet
A comunicação COAP pode ser fim-a-fim ou ser convertida para HTTP através de um
Proxy (RFC 8075)
Cliente
HTTP
HTTP-to-Coap
Proxy
CoAP
Server
HTTP
request
HTTP
response CoAP
request CoAP
response
O QUE É COAP
O QUE NÃO É COAP
COAP é um protocolo:
• RESTful
• Que opera em modo síncrono e assíncrono
• Que suporta dispositivos e redes com restrições
• Especializado para aplicações M2M
• Que pode ser facilmente convertido em HTTP
COAP não é:
• Um substituto do HTTP
• Uma forma de compressão de HTTP
• Um protocolo para operar fora da Web
MODOS DE COMUNICAÇÃO COAP
Mensagem confirmável/ não-confirmável
Mensagem ACK
Mensagem RESET (cancela um pedido) Piggyback: a resposta é
enviada junto com ACK
CABEÇALHO COAP
Version (Ver) : 1
Type (T): 0=confirmable, 1=non-confirmable, 2=ACK (2) e 3=Reset
Token Length (TKL): tamanho do Token
Code: 3bit class: 5 bit detail (códigos indicam sucesso ou erro)
Message ID: usado para detectar mensagens duplicadas e associar confirmações
Options: Formato TLV
Edgard Jamhour
MENSAGEM COAP
Edgard Jamhour
EXEMPLOS: MENSAGENS COM E SEM
CONFIRMAÇÃO
Edgard Jamhour
EXEMPLOS: PIGGYBACKED
Edgard Jamhour
EXEMPLO: SEPARATED E NÃO CONFIMADA
Separate response é usada para processar
requisições que podem levar muito tempo para
serem respondidas
Observe que a associação entre requisição e
resposta é feita pelo Token
COAP server
COAP server
TRANSMISSÃO CONFIÁVEL
• Similar ao TCP, a
mensagem é re-enviada
caso um ACK ou RST não
seja recebido a tempo
• Número máximo de
retransmissões = 4
• Tempo total máximo para
enviar uma mensagem =
93s
• O tempo de espera é
dobrado a cada
retransmissão
http://programmingwithreason.com/article-iot-coap.html
COAP server
Edgard Jamhour
OPÇÕES
PROXYING E CACHING
A opção max-age
controla o tempo
que os dados
podem permanecer
em cache
COAP OBSERVATION
O modelo REST é do tipo PULL
Dados são obtidos mediante o envio
de uma requisição
Contudo, em muitas aplicações de
IoT, dados são enviados
periodicamente pelos sensores
Para atender a essa demanda a
opção Observe foi introduzida pela
RFC 7641
COAP server
DEVICE DISCOVERY
Um dispositivo é identificado por uma ou mais URIs:
• coap://example.com:5683/~sensors/readings.xml
COAP suporta a descoberta dinâmica de dispositivos através da requisição NON GET:
• "coap://FF05::FD:5683/.well-known/core"
Dispositivos que desejam ser descobertos escutam o endereço multicast:
• “All CoAP Nodes” na porta UDP 5638
• 224.0.1.187 (IPv4) ou FF05::FD (IPv6)
O dispositivo responde com seu endereço Unicast, Porta e URIs
COAP Resource Directory é uma
entidade (um nó especial na rede) que
mantém a descrição dos servidores
COAP e seus recursos
Nós se registram enviando um POST
MQTT: MESSAGE QUEUE TELEMETRY
TRANSPORT
Protocolo PUBLISH/SUBSCRIBE transportado sobre TCP, originalmente desenvolvido
pela IBM
MQQT segue uma arquitetura, cliente-servidor, onde o servidor denomina-se Broker
O broker distribui mensagens para
clientes interessados nos tópicos da
mensagem
TÓPICOS MQTT
As informações publicadas pelos sensores são identificadas por “tópicos” no seguinte formato:
• area/ID/sensor/ID/temperatura
• area/ID/sensor/ID/umidade
As publicações possíveis seriam:
• area/10/sensor/5000/temperatura
• area/10/sensor/5000/umidade
• area/10/sensor/5001/temperatura
• area/10/sensor/5001/umidade
• area/20/sensor/4000/temperatura
• area/20/sensor/4000/umidade
• area/20/sensor/4001/temperatura
• area/20/sensor/4001/umidade
Wildcards pode ser usada para ignorar um (+) ou múltiplos (#) diretórios:
• Informações de temperatura de todos os sensores na área 10
• area/10/sensor/+/temperatura
• Todas as informações de todos os sensores na área 20
• area/20/sensor/#
NÍVEIS DE QOS
• O Broker persiste apenas a última mensagem recebida
• Se o mesmo tópico for enviado para o Broker, ele substitui o valor anterior
• A conexão com o broker obedece aos seguintes níveis de QoS:
• QoS 0 (at most once)
• Mensagens são enviadas sem confirmação ou retransmissão
• QoS 1 (at least once)
• Mensagens são enviadas e retransmitidas até obter confirmação
• QoS 2 (exactly once)
• Garante que a mensagem será enviada uma única vez
• A confirmação é feita nos dois sentidos: confirmação de recebimento e confirmação de
recebimento de recebimento
MQTT-SN
• Implementação de MQTT sobre UDP
• Utiliza a mesma semântica
• Clientes MQTT-SN são nós wireless que se comunicam via Gateway
com o Broker MQTT
https://www.slideshare.net/nivertech/zvi-mqtts-foreuc2013
Edgard Jamhour
MQTT VS COAP
Edgard Jamhour
FIM