Post on 08-Nov-2018
Arquitetura de protocolos do Bluetooth
Não segue os modelos OSI, TCP/IP ou IEEE802
IEEE modificou a arquitetura para adaptá-lamelhor ao modelo IEEE 802
Arquitetura de protocolos do Bluetooth
Arquitetura de protocolos do IEEE 802.15.1
Camada áudio
Não especificada no padrão
Camada L2CAP
Logical Link Control Adaptation Protocol
Interface entre os protocolos padrões detransporte de dados e o protocolo Bluetooth
Utilizada com protocolos de comunicação como Protocolo de descoberta de serviços (SDP) Protocolo de emulação de cabo serial (RFCOMM) Protocolo de controle de telefonia (TCS) Protocolos de áudio em pacotes
Ex.: Telefonia IP
Camada L2CAP
Provê serviço de dados orientados a conexão enão orientados a conexão com funcionalidadesde Multiplexação Segmentação e remontagem Qualidade de serviço Abstração de grupo
Usada no endereçamento das piconets
Permite aos protocolos transmitir e receberpacotes de até 64 kB
Camada gerente de enlace
Protocolo utilizado para controle eestabelecimento de enlaces (canais lógicos)
Inclui funcionalidades de Autenticação Escalonamento de tráfego Gerenciamento de energia Outras tarefas de gerenciamento
Camada controle
Provê uma interface de comando ao controladorde banda base e o gerente de enlace
Provê o acesso ao status do hardware e aregistradores de controle
Camada de banda base
É a camada mais próxima de uma subcamadaMAC Incorpora também algumas características da camada
física do IEEE 802
Camada de banda base
Transmissões do mestre e dos escravos sãoseparadas Duplexação por divisão de tempo (TDD)
Slots de tempo de 625 µs Mestre de cada piconet começa a transmissão nos slots
pares Escravos começam a transmitir nos slots ímpares Quadros podem ter 1, 3 ou 5 slots de duração
Dependendo do tipo de quadro Número ímpar para manter a temporização de Tx/Rx
Camada de banda base
Exemplo de duplexação por divisão de tempo no Bluetooth
Camada de banda base
Quadros transmitidos em enlaces tambémchamados canais lógicos entre o mestre e um oumais escravos
Dois tipos de enlaces ACL (Asynchronous Connection-Less) SCO (Synchronous Connection Oriented)
Camada de banda base
ACL Enlace ponto-a-multiponto entre o mestre e todos os
escravos ativos Pode usar os slots não reservados para enlaces SCOs Só há um enlace ACL por piconet Usa varredura (polling) para acesso ao meio Serviço de melhor esforço Usado principalmente para dados assíncronos Taxa máxima de 723,2 kbps (na direção do escravo) e
de 57,6 kbps no sentido reverso Taxa máxima de 433,9 kbps (simétricos)
Camada de banda base
SCO Enlace ponto-a-ponto entre o mestre e um escravo Usa reserva de slots consecutivos a intervalos
regulares Usado principalmente para dados de tempo real Não há retransmissão Pode usar correção automática de erros (FEC) Um mestre pode ter até três enlaces SCOs para um
escravo ou para escravos diferentes Um escravo pode ter até três enlaces SCOs para o seu
mestre ou até dois enlaces SCOs para diferentesmestres
Em cada enlace podem ser transmitidos 64 kbps
Camada de banda base
Exemplo de enlaces SCO e ACL em uma piconet
Camada de banda base
Diversos tipos de quadros de dados Relacionados ao tipo de enlace no qual são usados
Quadros divididos em quatro categorias Quadros de controle Quadros que ocupam um slot
Quadros que ocupam três slots
Quadros que ocupam cinco slots
Camada de banda base - quadros
Camada de banda base - quadros
ID Sinalização Contém somente o código de acesso
FHS Conexão de dispositivos Bluetooth Contém identidade e relógio
POLL Mestre não tem dados a transmitir e precisa escalonar
um escravo
NULL Escravo não tem dados a transmitir mas precisa
responder ao mestre
Camada de banda base - quadros
HV1, HV2 e HV3 Carregam informações de voz em enlaces SCOs High-quality Voice
Ocupam um slot Diferem-se no uso de FEC
DV Combina informações de voz e dados em um único
quadro Data-Voice
Camada de banda base - quadros
DM1, DM3 e DM5 Carregam dados usando FEC 2/3 em um, três ou cinco
slots
Data-Medium rate
DH1, DH3 e DH5 Carregam dados sem usar FEC em um, três ou cinco
slots
Data-High rate
AUX1 Semelhante ao quadro DH1 sem o CRC
Camada de banda base - correção de erros
FEC 1/3 Triplica a quantidade de dados Bit repetido três vezes consecutivas Usado para proteger o cabeçalho do quadro Geralmente usado no modo síncrono
Campo voz dos quadros HV1
Camada de banda base - correção de erros
FEC 2/3 Grupo de 10 bits codificado em 15 bits
Código de Hamming
Pode corrigir erros simples e detectar erros duplos Por usar grupos de 10 bits pode precisar de
enchimento Feito após o CRC
Geralmente usado no modo assíncrono paratransmissão de dados De quadros DM, campo dados dos quadros DV, quadros
FHS e quadros HV2
Camada de banda base - correção de erros
ARQ (Automatic Repeat Request) Retransmissão de quadros não reconhecidos
Por estouro de temporizador ou NACK
Reconhecimento não numerado positivo ou negativo Enviado no cabeçalho do quadro de retorno
Escravo responde no slot escravo-mestre que segueo slot mestre-escravo
Mestre responde no próximo slot para o mesmoescravo
Uso justificado por gerar menos sobrecarga emambientes com pequeno ruído
Usado em quadros DM e DH e no campo dados dosquadros DV
Camada de banda base - correção de erros
Exemplo de retransmissão no Bluetooth
Quadro de dados
Código de acesso (72 bits) Usado para sincronização, compensação de offset,
investigação e negociação Três tipos
Channel Access Code (CAC) Identifica a piconet
Device Access Code (DAC) Inquiry Access Code (IAC)
Quadro de dados típico do Bluetooth
Quadro de dados
Código de acesso (cont.) Preâmbulo (4 bits) Palavra de sincronismo (64 bits)
Leva em consideração o endereço de 48 bits dodispositivo
Trailer (4 bits)
Quadro de dados típico do Bluetooth
Quadro de dados
Cabeçalho (54 bits) Subdividido em 6 campos Seis campos formam 18 bits e são replicados três
vezes Endereço (3 bits)
Endereço lógico (temporário) do dispositivo ativo que é odestino do quadro
Igual a 000 se difusão
Quadro de dados típico do Bluetooth
Quadro de dados
Cabeçalho (54 bits) (cont.) Tipo (4 bits)
Tipo do quadro
Fluxo (1 bit) Igual a 1 se o buffer do escravo está cheio
Confirmação (1 bit) Se igual a 1 é um reconhecimento positivo (ACK) Se igual a 0 é um reconhecimento negativo (NACK)
Quadro de dados típico do Bluetooth
Quadro de dados
Cabeçalho (54 bits) (cont.) Sequência (1 bit)
Retransmissão do tipo para-e-espera Bit necessário para filtrar retransmissões no destino
Um ACK pode ser perdido e uma retransmissãorealizada destino recebe o mesmo quadro duasvezes
Controle de erro de cabeçalho (8 bits) CRC do cabeçalho
Quadro de dados típico do Bluetooth
Quadro de dados
Dados Pode ter cabeçalho (8 ou 16 bits) e campo CRC (16
bits) Depende do tipo de quadro
Cabeçalho usado nos quadros do ACL e nos dadosdo quadro DV
CRC usado em todos os quadros de dados, exceto oAUX1
Quadro de dados típico do Bluetooth
Quadro de dados
Dados Não precisa de tamanho mínimo Tamanho máximo de 2744 bits (5 slots) e 240 bits (1
slot)
Quadro de dados típico do Bluetooth
Quadro de dados
Quadro de dados
Quadro de dados
Exemplos Quadro HV1
80 bits de carga útil a cada 1250 µs taxa máxima emum sentido é de 64 kbps Mestre (escravo) só usa os slots pares (ímpares) de
625 µs
Quadro DH5 no caso simétrico 339 octetos de carga útil a cada 6250 µs (cinco slots para
o mestre e cinco slots para o escravo)
aproximadamente 433,9 kbps
Camada de banda base - segurança
Autenticação Privacidade
Criptografia
Gerenciamento de chaves
Camada de banda base - privacidade
Criptografia usada na carga útil dos dados Carga útil encriptada após a inclusão dos bits de
CRC e antes da codificação FEC Mestre A envia um número aleatório
(EN_RANDA) em texto claro para um escravo B
Número é trocado toda vez que uma chave deencriptação (KC) é modificada
Camada de banda base - segurança
Para cada transmissão de um quadro Nova chave (Kcipher) é utilizada
Gerada através de uma combinação complexa de EN_RANDA
Endereço do mestre (BD_ADDRA) Valor do relógio (clockA )
Número do slot
Chave KC
Kcipher é passada para o algoritmo de criptografia E0
que produz um fluxo contínuo de bits Esse fluxo e a carga útil passam por ou-exclusivo bit-a-
bit e o resultado é transmitido
Camada de banda base - segurança
Na recepção Com os valores de
EN_RANDA
Endereço do mestre BD_ADDRA
Valor do relógio Chave KC
é gerada a chave Kcipher
Kcipher junto com o fluxo recebido passam por um ou-exclusivo bit-a-bit texto em claro é obtido
Camada de banda base
Estabelecimento e manutenção dos enlaces Diversas fases
Standby
Investigação Negociação Connection
Bluetooth - estabelecimento de conexões
Standby
Estado inicial Somente o relógio nativo está em operação
Bluetooth - estabelecimento de conexões
Investigação Para descobrir os dispositivos em sua proximidade Usa uma sequência universal de saltos de frequência Quem inicia o procedimento de investigação torna-se o
mestre da piconet Dispositivos trocam BD_ADDRs e relógios
Bluetooth - estabelecimento de conexões
Investigação (cont.) Procedimento
Potencial mestre transmite um quadro ID com o códigode acesso de investigação (IAC) Isso ocorre no estado inquiry
De tempos em tempos, dispositivos passam dostandby para o inquiry para ver se foram transmitidosquadros ID
Dispositivo recebe o quadro Entra no estado inquiry response
Retorna um quadro FHS contendo informação deendereço (BD_ADDR) e temporização (relógio)
Passa para o estado page scan
Bluetooth - estabelecimento de conexões
Negociação Unidade sabe a identidade do dispositivo ao qual quer
se conectar Sequência de saltos é estabelecida por cada par de
dispositivos Negociação de canal
Bluetooth - estabelecimento de conexões
Negociação (cont.) Procedimento
Mestre usa o endereço do escravo para calcular umasequência de saltos para negociação
Mestre envia um quadro ID com o código de acesso dedispositivo (DAC) do escravo
Escravo responde com o mesmo quadro ID com DAC Mestre responde com quadro FHS
Contém o endereço e o relógio Escravo confirma a recepção com um quadro ID com
DAC Escravo muda para o estado connection
Passa a utilizar a sequência de saltos determinadapelo mestre
Bluetooth - connection
Estado connection possui diversos modos Active Sniff
Hold
Park
Bluetooth - modos do estado connection
Active Participa da piconet Ouve, transmite e recebe quadros
Sniff
Economia de energia Dorme durante um intervalo predefinido e acorda
periodicamente Somente escuta em slots específicos
Bluetooth - modos do estado connection
Hold
Maior economia de energia do que o modo sniff
Entra em baixo consumo por um intervalo fixo detempo Duração negociada com o mestre
Não tem suporte para o enlace ACL Ainda pode participar de trocas em enlaces SCOs
Park
Maior economia de energia do que o modo hold
Não participa da piconet Libera o endereço temporário Permanece sincronizado à piconet
Para uma possível reativação futura