Bluetooth sobre IP?

13

Parece posible ejecutar USB sobre IP, p. Ej., Utilizando el usbipque forma parte de algunas distribuciones de Linux, p. Ej. Https://www.archlinux.org/packages/?q=usbip

¿Hay algo similar para Bluetooth sobre IP? (NO: IP a través de Bluetooth).

Esto permitiría la separación física de, por ejemplo, un teléfono inteligente habilitado para BT de un auricular habilitado para BT a través de Internet.

Es bnepposible que Linux pueda hacer eso, pero no he podido encontrar instrucciones sobre cómo hacerlo.

Johannes Ernst
fuente
3
Dudo que pueda usar USB a través de Internet, principalmente debido a problemas de latencia.
Daniel B
¿Es realmente USB? La llamada especificaciones USB en cosas que simplemente no se puede proporcionar de IP, como especificaciones de los conectores física, potencia, etc.
Ron Maupin
@RonMaupin Por supuesto, se trata de lo que sucede entre el controlador USB y la CPU. Aun así, siempre que la latencia sea lo suficientemente baja (LAN), el software que use estos dispositivos no podrá ver la diferencia.
Daniel B
2
De hecho, solo tuve una idea con usbip. ¿Podría ser posible usar usbip con un dongle Bluetooth USB? (es una idea loca, lo sé)
Léo Lam
@Leo Lam. Bueno, técnicamente eso sería 'bt over ip' disfrazado de 'usb over ip'. ;)
rinfinity

Respuestas:

7

Aunque en nuestro mundo tecnológico todo parece posible hoy, hasta donde yo sé, nunca se ha implementado el verdadero Bluetooth a Bluetooth sobre IP. Trataré de explicar las dificultades que, aunque no son insuperables, son la causa de esta situación.

El propio Bluetooth es un estándar de tecnología inalámbrica para el intercambio de datos a distancias cortas. Por lo general, se usa para conexiones de dispositivo a dispositivo e implica la noción de emparejamiento, por razones de seguridad. El protocolo Bluetooth es extremadamente versátil y puede usarse para muchos propósitos. Su popularidad surge del hecho de que opera en frecuencias que no tienen licencia global (pero no están reguladas).

El verdadero Bluetooth a Bluetooth sobre IP requeriría dos dispositivos Bluetooth para emparejarse a través de IP. Esto no es lo mismo que, por ejemplo, dos personas que usan Skype para hablar por Internet a través de auriculares Bluetooth, porque los auriculares están emparejados con sus computadoras y no entre sí.

Aquí hay algunos extractos del modelo OSI del artículo de Wikipedia :

Capa 1: Capa Física

La capa física de Parallel SCSI opera en esta capa, al igual que las capas físicas de Ethernet y otras redes de área local, como Token Ring, FDDI, ITU-T G.hn e IEEE 802.11 (Wi-Fi), también como redes de área personal como Bluetooth e IEEE 802.15.4.

Capa 4: Capa de transporte

Un ejemplo de un protocolo de capa de transporte en la pila estándar de Internet es el Protocolo de Control de Transmisión (TCP), generalmente construido sobre el Protocolo de Internet (IP).

TCP y UDP son protocolos de nivel de transporte 4, mientras que Bluetooth es un protocolo de nivel 1 físico más bajo. Por lo tanto, podría usar TCP o UDP sobre Bluetooth, del mismo modo que usa TCP y UDP sobre Ethernet, pero lo contrario es mucho más difícil.

La pila de protocolos Bluetooth incluye sus propios protocolos de transporte: L2CAP y RFCOMM, donde los enlaces RFCOMM usan la capa L2CAP. Puede trabajar algunos túneles IP a través de Bluetooth encapsulando paquetes UDP a través de enlaces RFCOMM.

Usar la terminología pura de OSI, es imposible, incluso es una contradicción de términos, usar un protocolo de capa 1 sobre la capa 4.

Hablando en términos prácticos, podríamos imaginar un adaptador virtual escrito en software que se declararía a Linux en el lado del cliente como un dispositivo Bluetooth físico y hablaría por IP con otro dispositivo Bluetooth virtual en el lado del servidor Linux. Pero la complejidad involucrada en la emulación de capas OSI y el esfuerzo de programación que se requiere para implementar el protocolo Bluetooth muy versátil y su arquitectura maestro-esclavo hacen que la creación de una implementación tan general sea un ejercicio muy exigente que es poco probable que ocurra, ya que actualmente No hay demanda de dicho software.

harrymc
fuente
44
Al igual que la pila OSI en sí, la estratificación estricta solo existe en las fantasías. Ampliamente utilizado software de VPN hacer transmitir paquetes IP de L3 y L2 incluso tramas Ethernet sobre L4 UDP ...
user1686
@grawity: estoy de acuerdo hasta cierto punto en que un paquete es un paquete, no importa cuán profundamente envuelto. Sin embargo, VPN al final solo hace IP sobre IP, incluso si está empaquetado en capas inferiores / superiores, mientras que Bluetooth es un protocolo físico completamente diferente. Mi respuesta dice que esto es posible pero probablemente demasiado complicado para molestarse, debido a las diferencias de protocolo. ¿No estarías de acuerdo con eso?
harrymc
3

No he probado nada de esto en la práctica, pero es algo que podría encontrar que habla sobre "Bluetooth sobre IP".

El libro Linux Kernel Networking es muy técnico pero describe cómo hacer "Bluetooth sobre IP":

En el lado del servidor:

pand --listen --role=NAP

En el lado del cliente:

pand --connect btAddressOfTheServer

Esto crea una interfaz virtual bnep0.

Aparentemente, esto solo le proporciona L2CAP, que solo puede enviar paquetes a través de una "piconet". Pero para L2CAP hay pensamientos sobre cómo enviarlos a través de IP en un borrador de IETF: Transmisión de paquetes IP a través de redes Bluetooth .

El IETF puede considerar ejecutar L2CAP sobre IP sobre el Controlador de host con un nuevo protocolo:

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

Figura 4.3.3 - 3er. Posible pila de protocolo Bluetooth para redes IP

Y luego también encontré UbiPAN: una red de área personal extendida de Bluetooth que menciona "Bluetooth sobre IP", pero desafortunadamente no parece que UbiPAN haya sido lanzado como software libre.

kqw
fuente
1
BNEP se utiliza para enviar paquetes de red directamente a través de L2CAP en una piconet existente, no permite que el usuario conecte bluetooth sobre IP. Además, la especificación a la que se vinculó es antigua y no de la fuente original (BT SIG), aquí está la especificación adoptada: bluetooth.org/docman/handlers/DownloadDoc.ashx?doc_id=6552
Jon Carlstedt
2
Lo siento, mi respuesta es un trabajo en progreso y es posible que no esté satisfecho con ella, pero actualmente contiene más información útil sobre una posible solución que cualquiera de las otras respuestas.
kqw
Su respuesta no indica si es posible o no usar Bluetooth sobre IP.
Winny
1

He apostado por el mismo (o similar) pensamiento recientemente. Lo que quiero hacer es utilizar un centro de automatización del hogar, que desafortunadamente no puede llegar a toda la casa con radio de ubicación única.

Mi configuración es la siguiente: computadora que ejecuta bluez + usbip client <- LAN -> otra computadora con dongle USB bluetooth físico + servidor usbip.

Resulta que esto funciona bien. Desde el punto de vista de Bluez, no es capaz de distinguir entre los dongles USB locales y remotos.

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

Lukas
fuente
0

Harrymc está en lo correcto.

Esto no es posible o al menos no es factible.

Puede emparejar su teléfono con una computadora y sus auriculares con otra computadora y así tener dos conexiones bluetooth. La conexión entre las computadoras se puede conectar de la manera que se desee y, a su vez, transmitir toda la comunicación por Bluetooth. Esto hará que parezca que ha puenteado Bluetooth sobre IP y probablemente podría hacer que se comuniquen entre sí y hagan algunas de las cosas que está tratando de hacer.

Pero en realidad no hay conexión Bluetooth entre los dos dispositivos.

El dispositivo A tiene una conexión bluetooth a una computadora.

El dispositivo B tiene una conexión bluetooth a otra computadora.

Los dos dispositivos no podrán emparejarse y conectarse directamente entre sí. Teóricamente, se podría construir algo que permitiría configurar un enlace bluetooth directo, pero atravesar las capas y la administración de la clave de enlace sería una pesadilla para resolver y eso es solo el comienzo, no tengo idea de cómo resolver la administración y frecuencia de paquetes salto, la frecuencia de salto de frecuencia de bluetooth es de 1600 saltos / s para un paquete de ranura única.

Si alguien realmente hiciera esto, estaría muy impresionado y me gustaría echar un vistazo debajo del capó.

Jon Carlstedt
fuente
0

Ok, he investigado esto un poco más. No es posible.

Aquí está la razón: para que esto funcione, necesitará el chip bluetooth en la computadora para transmitir la información en lugar de responderse.

Esta funcionalidad aún no existe.

No puedo compartir ninguna documentación en este momento, ya que es de propiedad y confidencial.

Si es miembro de BT SIG, puede ver la hoja de ruta de bluetooth en la sección panorámica en bluetooth.org

Jon Carlstedt
fuente