Bluetooth sobre IP?

11

Parece ser possível executar o USB sobre IP, por exemplo usando usbip que faz parte de algumas distribuições do Linux, por exemplo link

Existe algo semelhante para o Bluetooth sobre IP? (NÃO: IP sobre Bluetooth).

Isso permitiria a separação física de, digamos, um smartphone habilitado para BT a partir de um fone de ouvido habilitado para BT por meio da Internet.

Linux bnep pode ser capaz de fazer isso, mas não consegui encontrar instruções como fazer.

    
por Johannes Ernst 30.06.2015 / 02:04

5 respostas

4

Embora em nosso mundo tecnológico tudo hoje pareça possível, Até onde eu sei, o verdadeiro Bluetooth-para-Bluetooth-sobre-IP nunca foi implementado. Vou tentar explicar as dificuldades, que embora não sejam intransponíveis, são a causa para esta situação.

Bluetooth em si é um padrão de tecnologia sem fio para a troca de dados distâncias curtas. Geralmente é usado para conexões de dispositivo a dispositivo e envolve a noção de Emparelhamento, por motivos de segurança. O protocolo Bluetooth é extremamente versátil e pode ser usado para muitas finalidades. Sua popularidade surge do fato que opera em freqüências globalmente não licenciadas (mas não não regulamentadas).

O verdadeiro Bluetooth-para-Bluetooth sobre IP exigiria dois dispositivos Bluetooth para parear sobre IP. Isto não é o mesmo que, por exemplo, duas pessoas usando o Skype para falar através da Internet via fones de ouvido Bluetooth, porque os fones de ouvido são emparelhados com seus computadores e não um com o outro.

Aqui estão alguns trechos do artigo da Wikipédia modelo OSI :

Layer 1: Physical Layer

The physical layer of Parallel SCSI operates in this layer, as do the physical layers of Ethernet and other local-area networks, such as Token Ring, FDDI, ITU-T G.hn, and IEEE 802.11 (Wi-Fi), as well as personal area networks such as Bluetooth and IEEE 802.15.4.

Layer 4: Transport Layer

An example of a transport-layer protocol in the standard Internet stack is Transmission Control Protocol (TCP), usually built on top of the Internet Protocol (IP).

TCP e UDP são protocolos de nível de transporte 4, enquanto que o Bluetooth é um protocolo físico de nível 1. Assim, você pode usar TCP ou UDP em cima do Bluetooth, assim como você usa TCP e UDP no topo da Ethernet, mas o oposto é muito mais difícil.

A pilha do protocolo Bluetooth inclui seus próprios protocolos de transporte: L2CAP e RFCOMM, onde os links RFCOMM usam a camada L2CAP. Você pode trabalhar com alguns encapsulamentos IP sobre encapsulamento de pacotes UDP por meio de links RFCOMM.

Usando a terminologia OSI pura, é impossível, é mesmo uma contradição de termos, usar um protocolo da camada 1 sobre a camada 4.

Na prática, poderíamos imaginar um adaptador virtual escrito por software que declara-se ao Linux no lado do cliente como um dispositivo Bluetooth físico e falar sobre IP para outro dispositivo Bluetooth virtual no Linux do lado do servidor. Mas a complexidade envolvida na emulação de camadas OSI e a programação esforço que é necessário para implementar o protocolo Bluetooth muito versátil e sua arquitetura mestre-escravo, fazer a criação de uma implementação tão geral um exercício muito exigente que é É improvável que isso aconteça, já que atualmente não há demanda para esse software.

    
por 08.11.2015 / 19:04
3

Eu não tentei nada disso na prática, mas é algo que eu poderia encontrar que fala sobre "Bluetooth sobre IP".

O livro Rede de Kernel Linux é muito técnico, mas descreve como fazer "Bluetooth over IP":

On the server side:

pand --listen --role=NAP

On the client side:

pand --connect btAddressOfTheServer

Isso cria uma interface virtual bnep0 .

Aparentemente isso apenas lhe dá L2CAP, que só pode enviar pacotes através de uma "piconet". Mas, para o L2CAP, há pensamentos sobre como enviá-los por IP em um esboço da IETF: Transmissão de pacotes IP através de redes Bluetooth .

The IETF may consider to run L2CAP over IP over the Host Controller with a new protocol:

                       +------------+
                       |    L2CAP   |
                       +------------+
                       |     IP     |
                       +------------+
                       | Foo2 Proto.|
                       +------------+
                       | Host Cont. |
                       +------------+

Figure 4.3.3 - 3rd. Possible Bluetooth Protocol Stack for IP networking

E também encontrei UbiPAN: um Bluetooth Rede de Área Pessoal Estendida que menciona "Bluetooth sobre IP" - mas infelizmente não parece que o UbiPAN tenha sido lançado como software livre.

    
por 11.11.2015 / 02:33
0

Harrymc está correto.

Isso não é possível ou, pelo menos, não é viável.

Você pode emparelhar seu telefone com um computador e seu fone de ouvido com outro computador e, portanto, ter duas conexões Bluetooth. A conexão entre os computadores pode ser interligada da maneira que você quiser e, por sua vez, retransmitir toda a comunicação via bluetooth. Isso fará com que pareça que você conectou o bluetooth por IP e provavelmente poderá fazer com que eles conversem entre si e façam algumas das coisas que você está tentando fazer.

Mas, na realidade, não há conexão Bluetooth entre os dois dispositivos.

O dispositivo A tem uma conexão Bluetooth para um computador.

O dispositivo B tem uma conexão Bluetooth para outro computador.

Os dois dispositivos não poderão emparelhar e se conectar diretamente uns aos outros. Poder-se-ia teoricamente construir algo que permitisse a criação de um link bluetooth direto, mas atravessar as camadas e gerenciar o linkkey seria um pesadelo para resolver e isso é apenas o começo, não tenho idéia de como resolver o gerenciamento de pacotes e a frequência pulando, a taxa de salto de freqüência bluetooth é de 1600 hops / s para um único pacote de slots.

Se alguém realmente fizesse isso, eu ficaria muito impressionado e gostaria muito de dar uma olhada sob o capô.

    
por 09.11.2015 / 14:23
0

Ok, eu investiguei isso mais um pouco. Não é possível.

Aqui está o porquê: Para que isso funcione, você precisará do chip bluetooth no computador para transmitir as informações em vez de responder a si mesmo.

Esta funcionalidade ainda não existe.

Não posso compartilhar nenhuma documentação neste momento, já que é proprietária e confidencial.

Se você é um membro da BT SIG, pode ver o mapa do bluetooth na seção de panorama do bluetooth.org

    
por 11.11.2015 / 09:42
-1

Eu pensei no mesmo (ou similar) pensamento recentemente. O que eu quero fazer é usar um hub de automação residencial, que infelizmente não pode alcançar toda a casa com rádio de local único.

Minha configuração é a seguinte: computador executando bluez + cliente usbip < - LAN - > outro computador com dongle USB bluetooth físico + servidor usbip.

Acontece que isso funciona muito bem. Do ponto de vista do Bluez, não é capaz de distinguir entre dongles USB locais e remotos.

(Máquinas que executam o Linux 4.9.80 + up-todate-usbip + Bluez 5.48; arm)

    
por 14.10.2018 / 10:24