Bluetooth sobre IP?

13

Parece ser possível executar USB sobre IP, por exemplo, usando usbipparte de algumas distros do Linux, por exemplo, https://www.archlinux.org/packages/?q=usbip

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

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

O Linux bneppode fazer isso, mas não consegui encontrar instruções sobre como fazê-lo.

Johannes Ernst
fonte
3
Duvido que você consiga usar o USB pela Internet, principalmente por causa de problemas de latência.
Daniel B
É realmente USB? A chamada especificações USB para coisas que só não pode ser fornecida de IP, como especificações de conector físico, energia, etc.
Ron Maupin
@ RonMaupin Obviamente, é exatamente o que acontece entre o controlador USB e a CPU. Mesmo assim, desde que a latência seja baixa o suficiente (LAN), o software usando esses dispositivos não será capaz de ver a diferença.
Daniel B
2
Na verdade, eu só tive uma idéia com o usbip. Poderia ser possível usar o usbip com um dongle USB Bluetooth? (é uma idéia louca, eu sei)
Léo Lam
@Leo Lam. Bem, tecnicamente isso seria 'bt over ip' mascarado como 'usb over ip'. ;)
rinfinity 11/11/2015

Respostas:

7

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. Tentarei explicar as dificuldades que, embora não sejam intransponíveis, são a causa dessa situação.

O próprio Bluetooth é um padrão da tecnologia sem fio para a troca de dados a curtas distâncias. Geralmente é usado para conexões 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 vários propósitos. Sua popularidade decorre do fato de operar em frequê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. Isso não é o mesmo que, por exemplo, duas pessoas que usam o Skype para conversar pela Internet via fones de ouvido Bluetooth, porque os fones de ouvido são pareados com seus computadores e não um com o outro.

Aqui estão alguns trechos do modelo OSI do artigo da Wikipedia :

Camada 1: Camada Física

A camada física do Parallel SCSI opera nessa camada, assim como as camadas físicas da Ethernet e de outras redes locais, como Token Ring, FDDI, ITU-T G.hn e IEEE 802.11 (Wi-Fi). como redes de área pessoal, como Bluetooth e IEEE 802.15.4.

Camada 4: Camada de transporte

Um exemplo de protocolo de camada de transporte na pilha padrão da Internet é o TCP (Transmission Control Protocol), geralmente construído sobre o IP (Internet Protocol).

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

A pilha de protocolos Bluetooth inclui seus próprios protocolos de transporte: L2CAP e RFCOMM, onde os links RFCOMM usam a camada L2CAP. Você pode trabalhar em alguns túneis IP através de pacotes UDP de encapsulamento Bluetooth através de links RFCOMM.

Usando a terminologia OSI pura, é impossível, é até 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 se declararia para Linux no lado do cliente como um dispositivo Bluetooth físico e conversasse por IP com outro dispositivo Bluetooth virtual no Linux do servidor. Porém, a complexidade envolvida na emulação de camadas OSI e o esforço de programação necessário para implementar o protocolo Bluetooth muito versátil e sua arquitetura mestre-escravo tornam a criação de uma implementação tão geral um exercício muito exigente e improvável de acontecer, como atualmente existe. nenhuma demanda por esse software.

harrymc
fonte
4
Assim como a própria pilha OSI, as estritas camadas só existem em fantasias. Amplamente usado software VPN fazer transmitir pacotes L3 IP e até mesmo L2 Ethernet quadros sobre L4 UDP ...
user1686
@rawity: Eu concordo até um ponto em que um pacote é um pacote, não importa quão profundamente envolvido. No entanto, a VPN, no final, apenas faz IP sobre IP, mesmo se empacotada em camadas mais baixas / mais altas, enquanto o Bluetooth é um protocolo físico totalmente diferente. Minha resposta diz que isso é possível, mas provavelmente muito complicado de se preocupar, devido a diferenças de protocolo. Você discordaria disso?
harrymc
3

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

O livro Linux Kernel Networking é muito técnico, mas descreve como executar o "Bluetooth sobre IP":

No lado do servidor:

pand --listen --role=NAP

No lado do cliente:

pand --connect btAddressOfTheServer

Isso cria uma interface virtual bnep0.

Aparentemente, isso fornece apenas o L2CAP, que só pode enviar pacotes por um "piconet". Porém, para o L2CAP, há uma reflexão sobre como enviá-los por IP em um rascunho da IETF: Transmissão de pacotes IP por redes Bluetooth .

O IETF pode considerar executar L2CAP sobre IP sobre o controlador de host com um novo protocolo:

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

Figura 4.3.3 - 3º. Possível pilha de protocolos Bluetooth para redes IP

E também encontrei o UbiPAN: uma rede estendida de área pessoal Bluetooth que menciona "Bluetooth sobre IP" - mas infelizmente não parece que o UbiPAN foi lançado como software livre.

kqw
fonte
1
O BNEP é usado para enviar pacotes de rede diretamente pelo L2CAP em um piconet existente, não permitindo que o usuário faça uma ponte entre o bluetooth e o IP. Além disso, a especificação à qual você vinculou é antiga e não da fonte original (BT SIG), eis a especificação adotada: bluetooth.org/docman/handlers/DownloadDoc.ashx?doc_id=6552
Jon Carlstedt
2
Desculpe, minha resposta é um trabalho em andamento e talvez você não esteja satisfeito com ele, mas atualmente ele contém informações mais úteis sobre uma possível solução do que qualquer outra resposta.
kqw
Sua resposta não indica se é possível ou não usar o Bluetooth sobre IP.
Winny
1

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

Minha configuração é a seguinte: computador executando o cliente bluez + 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 é possível distinguir entre dongles USB locais e remotos.

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

Lukas
fonte
0

Harrymc está correto.

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

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

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

O dispositivo A possui uma conexão bluetooth com um computador.

O dispositivo B tem uma conexão bluetooth com outro computador.

Os dois dispositivos não poderão emparelhar e conectar-se diretamente um ao outro. Pode-se teoricamente construir algo que permita a instalação de um link bluetooth direto, mas percorrer as camadas e o gerenciamento de chave de link seria um pesadelo, e isso é apenas o começo. Não tenho idéia de como resolver o gerenciamento e a frequência de pacotes a taxa de salto de frequência do bluetooth é de 1600 hops / s para um pacote de slot único.

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

Jon Carlstedt
fonte
0

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

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

Essa funcionalidade ainda não existe.

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

Se você é membro do BT SIG, pode visualizar o roteiro do bluetooth na seção de panorama em bluetooth.org

Jon Carlstedt
fonte