Bluetooth su IP?


13

Sembra che sia possibile eseguire USB su IP, ad esempio utilizzando usbipquale parte di alcune distribuzioni Linux, ad esempio https://www.archlinux.org/packages/?q=usbip

Esiste qualcosa di simile per Bluetooth over IP? (NON: IP tramite Bluetooth).

Ciò consentirebbe la separazione fisica, per esempio, di uno smartphone abilitato BT da un auricolare abilitato BT tramite Internet.

Linux bneppotrebbe essere in grado di farlo, ma non sono stato in grado di trovare istruzioni su come farlo.


3
Dubito che sarai in grado di utilizzare l'USB su Internet, principalmente a causa di problemi di latenza.
Daniel B,

È davvero USB? Le specifiche USB richiedono cose che semplicemente non possono essere fornite di IP, come specifiche del connettore fisico, alimentazione, ecc.
Ron Maupin

@RonMaupin Naturalmente, si tratta solo di ciò che accade tra il controller USB e la CPU. Tuttavia, a condizione che la latenza sia abbastanza bassa (LAN), il software che utilizza questi dispositivi non sarà in grado di vedere la differenza.
Daniel B,

2
In realtà ho appena avuto un'idea con usbip. Potrebbe essere possibile utilizzare usbip con un dongle Bluetooth USB? (è un'idea folle, lo so)
Léo Lam,

@Leo Lam. Beh, tecnicamente sarebbe "bt over ip" mascherato da "usb over ip". ;)
rinfinity

Risposte:


7

Anche se nel nostro mondo tecnologico tutto sembra oggi possibile, per quanto ne so il vero Bluetooth-to-Bluetooth-over-IP non è mai stato implementato. Cercherò di spiegare le difficoltà che, sebbene non insormontabili, sono la causa di questa situazione.

Il Bluetooth stesso è uno standard di tecnologia wireless per lo scambio di dati su brevi distanze. Di solito viene utilizzato per le connessioni da dispositivo a dispositivo e implica l'idea di associazione, per motivi di sicurezza. Il protocollo Bluetooth è estremamente versatile e può essere utilizzato per vari scopi. La sua popolarità deriva dal fatto che opera a frequenze globalmente senza licenza (ma non non regolamentate).

Il vero Bluetooth-Bluetooth-over-IP richiederebbe due dispositivi Bluetooth per accoppiarsi su IP. Ciò non equivale, ad esempio, a due persone che usano Skype per parlare su Internet tramite gli auricolari Bluetooth, perché gli auricolari sono associati ai loro computer e non tra loro.

Ecco alcuni estratti del modello OSI dell'articolo di Wikipedia :

Livello 1: livello fisico

Il livello fisico di SCSI parallelo funziona in questo livello, così come i livelli fisici di Ethernet e altre reti locali, come Token Ring, FDDI, ITU-T G.hn e IEEE 802.11 (Wi-Fi) come reti di area personale come Bluetooth e IEEE 802.15.4.

Livello 4: livello di trasporto

Un esempio di protocollo di livello di trasporto nello stack Internet standard è il TCP (Transmission Control Protocol), generalmente basato su IP (Internet Protocol).

TCP e UDP sono protocolli di livello di trasporto 4, mentre Bluetooth è un protocollo di livello fisico 1 inferiore. Quindi potresti usare TCP o UDP sopra Bluetooth, proprio come usi TCP e UDP sopra Ethernet, ma il contrario è molto più difficile.

Lo stack del protocollo Bluetooth include i propri protocolli di trasporto: L2CAP e RFCOMM, dove i collegamenti RFCOMM utilizzano il livello L2CAP. È possibile eseguire alcuni tunneling IP su Bluetooth incapsulando pacchetti UDP su collegamenti RFCOMM.

Utilizzando la terminologia OSI pura, è impossibile, è persino una contraddizione dei termini, utilizzare un protocollo di livello 1 su livello 4.

In pratica, potremmo immaginare un adattatore virtuale scritto da software che si dichiarerebbe a Linux sul lato client come un dispositivo Bluetooth fisico e parlerebbe su IP con un altro dispositivo Bluetooth virtuale sul Linux lato server. Ma la complessità legata all'emulazione dei livelli OSI e lo sforzo di programmazione necessario per implementare il protocollo Bluetooth molto versatile e la sua architettura master-slave, rendono la creazione di un'implementazione così generale un esercizio molto impegnativo che è improbabile che accada, poiché attualmente esiste nessuna richiesta per tale software.


4
Proprio come lo stack OSI stesso, la stratificazione rigorosa esiste solo nelle fantasie. Diffuso software VPN fare di trasmissione dei pacchetti IP L3 e anche L2 Ethernet telai sopra L4 UDP ...
user1686

@grawity: sono d'accordo fino al punto in cui un pacchetto è un pacchetto, non importa quanto profondamente sia avvolto. Tuttavia, la VPN alla fine fa solo IP su IP, anche se impacchettata in livelli inferiori / superiori, mentre il Bluetooth è un protocollo fisico completamente diverso. La mia risposta dice che questo è possibile ma probabilmente troppo complicato da disturbare, a causa delle differenze di protocollo. Non saresti d'accordo con quello?
harrymc,

3

In pratica non ho provato nulla di tutto ciò, ma è roba che ho trovato che parla di "Bluetooth over IP".

Il libro Linux Kernel Networking è molto tecnico ma descrive come fare "Bluetooth over IP":

Sul lato server:

pand --listen --role=NAP

Sul lato client:

pand --connect btAddressOfTheServer

Questo crea un'interfaccia virtuale bnep0.

Apparentemente questo ti dà solo L2CAP, che può solo inviare pacchetti su un "piconet". Ma per L2CAP ci sono pensieri su come inviarli su IP in una bozza IETF: Trasmissione di pacchetti IP su reti Bluetooth .

L'IETF può considerare di eseguire L2CAP su IP tramite il controller host con un nuovo protocollo:

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

Figura 4.3.3 - 3 °. Possibile stack di protocollo Bluetooth per reti IP

E poi ho anche trovato UbiPAN: una rete di area personale estesa Bluetooth che menziona "Bluetooth over IP" - ma sfortunatamente non sembra che UbiPAN sia stato rilasciato come software gratuito.


1
BNEP viene utilizzato per inviare pacchetti di rete direttamente su L2CAP in un piconet esistente, non consente all'utente di effettuare il bridge bluetooth su IP. Inoltre, la specifica a cui ti sei collegato è vecchia e non dalla fonte originale (BT SIG), ecco la specifica adottata: bluetooth.org/docman/handlers/DownloadDoc.ashx?doc_id=6552
Jon Carlstedt

2
Siamo spiacenti, la mia risposta è in fase di elaborazione e potresti non essere soddisfatto, ma al momento contiene più informazioni utili su una possibile soluzione rispetto a qualsiasi altra risposta.
kqw,

La tua risposta non indica se è possibile o meno utilizzare Bluetooth over IP.
Winny,

1

Sono stato sullo stesso (o simile) pensiero di recente. Quello che voglio fare è utilizzare un hub di automazione domestica, che purtroppo non può raggiungere l'intera casa con la radio a singola posizione.

La mia configurazione è la seguente: computer che esegue bluez + client usbip <- LAN -> altro computer con dongle USB bluetooth fisico + server usbip.

Si scopre che funziona bene. Dal punto di vista di Bluez, non è in grado di distinguere tra dongle USB locali e remoti.

(Macchine con Linux 4.9.80 + up-todate-usbip + Bluez 5.48; arm)


0

Harrymc ha ragione.

Questo non è possibile o almeno non fattibile.

È possibile associare il telefono a un computer e l'auricolare a un altro computer e quindi avere due connessioni bluetooth. La connessione tra i computer può essere collegata in qualsiasi modo tu voglia e a sua volta trasmette tutte le comunicazioni bluetooth. Questo farà sembrare che tu abbia fatto il bridging del bluetooth su IP e potresti probabilmente farli parlare tra loro e fare alcune delle cose che stai cercando di fare.

Ma in realtà non esiste una connessione bluetooth tra i due dispositivi.

Il dispositivo A ha una connessione bluetooth a un computer.

Il dispositivo B ha una connessione bluetooth a un altro computer.

I due dispositivi non saranno in grado di accoppiarsi e connettersi direttamente tra loro. Si potrebbe teoricamente costruire qualcosa che consenta di impostare un collegamento bluetooth diretto, ma attraversare i livelli e la gestione dei linkkey sarebbe un incubo da risolvere e questo è solo l'inizio, non ho idea di come risolvere la gestione dei pacchetti e la frequenza la frequenza di salto in frequenza del bluetooth è di 1600 hops / s per un singolo pacchetto di slot.

Se qualcuno lo facesse davvero, sarei molto colpito e mi piacerebbe molto dare un'occhiata sotto il cofano.


0

Ok, l'ho studiato ancora un po '. Non è possibile.

Ecco perché: Perché questo funzioni, avrai bisogno del chip bluetooth nel computer per trasmettere le informazioni invece di rispondere da solo.

Questa funzionalità non esiste ancora.

Non posso condividere alcuna documentazione in questo momento, poiché è proprietaria e confidenziale.

Se sei un membro di BT SIG, puoi visualizzare la roadmap bluetooth nella sezione panoramica su bluetooth.org

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.