300 likes | 476 Views
ZigBee. Tiago Souza Azevedo tiago@ravel.ufrj.br. CPE 825 - Roteamento em Redes de Computadores Programa de Engenharia de Sistemas e Computação Universidade Federal do Rio de Janeiro. Suíte de protocolos de comunicação para rádios digitais baseda no padrão IEEE 802.15.4
E N D
ZigBee Tiago Souza Azevedo tiago@ravel.ufrj.br CPE 825 - Roteamento em Redes de Computadores Programa de Engenharia de Sistemas e Computação Universidade Federal do Rio de Janeiro
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; Especificação ZigBee
ZigBee Alliance Alguns Participantes:
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; Camada de Rede
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 : Dispositivos ZigBee
A especificação ZigBee suporta três topologias de redes: estrela, árvore, e malha. Topologias de Redes 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; Formação da Rede ZigBee
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
Cskip=31 Total:127 0 1 32 63 94 node A 32 125 ,126 C • Se um nó pai na profundidade d tem endereço Aparent, então: Ao n-ésimo roteador filho é atribuido o endereço Aparent + (n-1) × Cskip(d) + 1 Ao n-ésimo dispositivo final, é atribuido o endereço Aparent + Rm × Cskip(d) + n Atribuição de Endereços - Exemplo
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. Procedimento de Inundação
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; Cálculo do Custo do Enlace
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. Capacidade de Roteamento
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. Roteamento em Árvore ou Roteamento Hierárquico
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: Descoberta de rota (AODV)
Nó C ZR Nó D ZR Nó B ZR Nó E ZR Nó F ZED Nó A ZC Custo:6 Custo:7 Custo:1 Descoberta de Rotas - Exemplos Custo:7 Custo:3 Custo:2
Nó C ZR Nó D ZR Nó B ZR Nó E ZR Nó F ZED Nó A ZC Discover Table Id:50 ResidualC:10 ForwardC:6 Routig Table Destino: F PathCost:6 RREQ PathCost:10 Discover Table Id:50 ResidualC:3 ForwardC:0 RREP Id:50 PathCost:16 Discover Table Id:50 ResidualC:9 ForwardC:1 RREP Id:50 PathCost:10 Descoberta de Rotas - Exemplos RREP Id:50 PathCost:16 RREP Id:50 PathCost:10 RREQ PathCost:9 RREQ Id:50 PathCost:3 Routig Table Destino: F PathCost:1 RREQ Id:50 PathCost:2 Routig Table Destino: F NextHop:B Status:ACTIVE Discover Table Id:50 ResidualC:2 ForwardC:0
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; Manutenção de Rotas