Slide 1 - GTA UFRJ

Propaganda
ZigBee
Tiago Souza Azevedo
[email protected]
CPE 825 - Roteamento em Redes de Computadores
Programa de Engenharia de Sistemas e Computação
Universidade Federal do Rio de Janeiro
Especificação ZigBee
• Suíte de protocolos de comunicação para rádios digitais baseda
no padrão IEEE 802.15.4
• Definida pela “ZigBee Alliance”, união de empresas com o objetivo de:
Definir as camadas de rede, segurança e aplicação;
Provêr interoperabilidade e especificações de teste
de conformidade;
 Gerenciar a evolução da tecnologia;
ZigBee Alliance
Alguns Participantes:
Especificação ZigBee
Taxas e Freqüências
Camada de Rede
Objetivos:
 definir mecanismos para ingressar e abandonar uma rede;
 rotear frames e aplicar primitivas de segurança;
 descobrir e manter rotas entre dispositivos;
 descobrir dispositivos vizinhos que podem ser alcançados
diretamente;
 armazenar informações do estado da rede;
 atribuir endereços para todos os dispositivos novos;
Dispositivos ZigBee
• ZigBee Coordinator (Coordenador ZigBee - ZC):




cria uma rede tornando-se a raiz da árvore dessa rede;
o único dispositivo capaz de rotear dados entre redes;
armazena informação sobre a rede;
determina parâmetros como:
 o número máximo de filhos (Cm) de um roteador
 o número máximo de roteadores filhos (Rm)
 a profundidade da rede (Lm).
Dispositivos ZigBee
•ZigBee End Device (Dispositivo Final ZigBee - ZED):
 troca informações com seu nó pai;
 requer menos memória, pois não precisa armazenar
informações de roteamento;
 é mais barato que um roteador ou um coordenador
ZigBee;
• ZigBee Router (Roteador ZigBee - ZR):
 rotear dados para outros dispositivos;
 utiliza os parâmetros (definidos pelo ZC)para calcular o
parâmetro Cskip;
 este é utilizado para computar o tamanho do “pool”
de endereços de filhos :
 1  Cm  ( Lm  d  1),

Cskip(d )  1  Cm  Rm  Cm  Rm Lm d 1
,

1  Rm

se Rm  1
 (a)
Caso contrário (b)
Dispositivos ZigBee
Topologias de Redes ZigBee
A especificação ZigBee suporta três topologias de redes: estrela,
árvore, e malha.
Formação da Rede ZigBee
PASSOS:
 início através de uma primitiva da camada de rede que é
restrita ao coordenador ZigBee;
 procura por um conjunto de canais;
 procura em cada canal por dispositivos ou redes ZigBee;
 escolhe o melhor canal para criar uma nova rede;
 escolhe um identificador de rede;
 permite outros dispositivos ingressarem na rede;
Atribuição de Endereços
 ao ingressar em uma rede, cada dispositivo recebe um endereço de
rede lógico
 os endereços de rede são atribuídos ou por um coordenador ou por
um roteador, usando um algoritmo de árvore estruturada
Atribuição de Endereços - Exemplo
Cskip=31
01
Total:127
32
63
94
125,126
node A
32
Addr = 64,
Cskip = 1
Cm=6
Rm=4
Lm=3
Se um nó pai na profundidade d tem endereço
Aparent, então:
Addr = 92
Addr = 125
Ao n-ésimo roteador filho é atribuido o
endereço Aparent + (n-1) × Cskip(d) + 1
Addr = 63,
Cskip = 7
Addr = 30
C
Addr = 0,
Cskip = 31
Addr = 126
Addr = 1,
Cskip = 7
A
Addr = 32,
Cskip = 7
Addr = 31
B
Addr = 40,
Cskip = 1
Addr = 33,
Cskip = 1
Addr = 45
C
Addr = 38
Addr = 39
Ao n-ésimo dispositivo final, é atribuido o
endereço Aparent + Rm × Cskip(d) + n
Procedimento de Inundação
 Cada dispositivo mantêm um registro de qualquer nova transação
broadcast (broadcast transaction record - BTR);
 Esse registro contem o número de seqüência e o endereço fonte
do frame de broadcast;
 Esses registros são armazenados na tabela de transações broadcast
(broadcast transaction table - BTT);
Procedimento de Inundação
Algoritmo:
• Ao receber um frame de broadcast de um vizinho:
• Comparar o número de seqüência e o endereço fonte com
seus registros na BTT
• Se o dispositivo tem uma BTR para este frame
• Então ele deve descartar o frame.
• Senão, nenhum registro é encontrado, o dispositivo cria
um novo registro na BTT e verifica o campo “radius”.
• Se maior que zero o dispositivo decrementa este campo e
retransmite o frame (espera por um tempo aleatório)
• Caso contrário o frame é descartado.
Cálculo do Custo do Enlace
•Um caminho P de tamanho L, é um conjunto ordenado de dispositivos
[D1, D2, ..., DL] e enlaces [Di, Di+1]. O custo total de um caminho é
dado por:
onde cada valor C{[Di, Di+1]} é o custo do enlace entre os dispositivos
Di e Di+1.
O custo do enlace C{l} para o enlace L varia no intervalo de [0,7]
e é definido por:
onde PL é a probabilidade da entrega com sucesso de um pacote no
enlace.
Cálculo do Custo do Enlace
 Como PL é calculado?
 tarefa atribuída aos programadores;
 a maneira mais natural, seria continuamente contar o número
de pacotes recebidos e perdidos durante o período de funcionamento;
Capacidade de Roteamento
Um dipositivo tem capacidade de tabela de rota se:
 é um coordenador ou roteador ZigBee;
 possui uma tabela de rotas;
 possui registro livre em sua tabela de rota ou um registro
correspondente ao endereço destino na tabela de rotas;
Capacidade de Roteamento
Um dispositivo tem capacidade de tabela de descoberta de rota se:
 possui uma tabela de descoberta de rota
 possui um registro livre em sua tabela de descoberta
Se um dispositivo tem ambos, capacidade de tabela de descoberta
de rota e capacidade de tabela de rota então dizemos que ele possui
Capacidade de Roteamento.
Algoritmo de Roteamento
Roteamento em Árvore ou
Roteamento Hierárquico
Para um dispositivo roteador com endereço An em uma profundidade
d, se
então o endereço de destino D é um descendente deste roteador e o
endereço N do próximo salto é dado por:
para dispositivos finais e
caso contrário.
Se a expressão não é satisfeita, o frame deve ser encaminhado até
o dispositivo pai.
Descoberta de rota (AODV)
Se o dispositivo não tem um registro na tabela de rotas para o destino,
então:
• estabelecer um registro na tabela com o campo “status” igual
a constante DISCOVERY_UNDERWAY;
• envia um frame com o comando de descoberta(RREQ)
de rota em broadcast;
• os dispositivos ao receberem o frame RREQ se comportam
como:
Recepção de um RREQ
Recepção de um RREP
Descoberta de Rotas - Exemplos
Custo:6
Custo:
1
Nó F
ZED
Nó E
ZR
Custo:7
Nó C
ZR
Nó D
ZR
Custo:7
Custo:3
Nó B
ZR
Custo:2
Nó A
ZC
Descoberta de Rotas - Exemplos
Discover Table
Id:50
ResidualC:10
ForwardC:6
Nó F
ZED
RREQ
PathCost:10
Nó E
ZR
Discover Table
Id:50
ResidualC:9
ForwardC:1
Routig Table
Destino: F
PathCost:1
Nó D
ZR
RREP
Id:50
PathCost:10
RREP
Id:50
PathCost:16
RREP
Id:50
PathCost:16
RREP
Id:50
PathCost:10
RREQ
PathCost:9
Nó B
ZR
Discover Table
Id:50
ResidualC:2
ForwardC:0
RREQ
Id:50
PathCost:2
Routig Table
Destino: F
PathCost:6
Discover Table
Id:50
ResidualC:3
ForwardC:0
Nó C
ZR
RREQ
Id:50
PathCost:3
Nó A
ZC
Routig Table
Destino: F
NextHop:B
Status:ACTIVE
Manutenção de Rotas
A manutenção de rotas é subdividida em:
• manutenção da rede com topologia de malha;
• manutenção da rede com topologia de árvore;
Manutenção de Rotas
Na manutenção da rede com topologia de malha:
O dispositivo máximo alcançado envia um frame de “route request” com o
seu próprio endereço como fonte e o endereço do nó que falhou como
destino em broadcasting;
Enquanto estiver executando a manutenção, qualquer frame pendente para
o destino que falhou deve ser armazenado até o fim da manutenção ou
descartado dependendo da capacidade do dispositivo;
Se um “route reply” não chegar dentro de um tempo determinado,
o dispositivo retorna um frame de “route error”;
Neste caso o dispositivo fonte tentará encontrar outra rota, através do
procedimento de descoberta de rota, ou encaminhará os dados para o
destino utilizando o roteamento hierárquico;
Manutenção de Rotas
Na manutenção da rede com topologia de árvore:
Ocorre quando um dispositivo não consegue mais alcançar seu pai,
este tenta uma nova associação com seu pai através de primitivas da
camada abaixo;
Se este procedimento falhar, o dispositivo deve desassociar seus filhos
e procurar por outro dispositivo pai, recebendo um novo endereço;
Dúvidas ?
Download