Bluetooth sur IP?

13

Il semble possible d'exécuter USB sur IP, par exemple en utilisant usbipce qui fait partie de certaines distributions Linux, par exemple https://www.archlinux.org/packages/?q=usbip

Existe-t-il quelque chose de similaire pour Bluetooth sur IP? (PAS: IP sur Bluetooth).

Cela permettrait la séparation physique, par exemple, d'un smartphone compatible BT d'un casque compatible BT via Internet.

Linux bneppourrait peut-être le faire, mais je n'ai pas pu trouver d'instructions sur la façon de le faire.

Johannes Ernst
la source
3
Je doute que vous puissiez utiliser l'USB sur Internet, principalement en raison de problèmes de latence.
Daniel B
Est-ce vraiment USB? Les spécifications USB exigent des choses qui ne peuvent tout simplement pas être fournies par IP, comme les spécifications des connecteurs physiques, l'alimentation, etc.
Ron Maupin
@RonMaupin Bien sûr, il s'agit simplement de ce qui se passe entre le contrôleur USB et le CPU. Néanmoins, à condition que la latence soit suffisamment faible (LAN), les logiciels utilisant ces appareils ne pourront pas voir la différence.
Daniel B
2
En fait, je viens d'avoir une idée avec usbip. Serait-il possible d'utiliser une clé USB avec un dongle Bluetooth USB? (c'est une idée folle, je sais)
Léo Lam
@Leo Lam. Eh bien, techniquement, ce serait «bt over ip» se faisant passer pour «usb over ip». ;)
rinfinity

Réponses:

7

Bien que dans notre monde technologique, tout semble aujourd'hui possible, pour autant que je sache, le véritable Bluetooth-to-Bluetooth-sur-IP n'a jamais été mis en œuvre. Je vais essayer d'expliquer les difficultés qui, bien que non insurmontables, sont à l'origine de cette situation.

Le Bluetooth lui-même est une norme de technologie sans fil pour l'échange de données sur de courtes distances. Il est généralement utilisé pour les connexions d'appareil à appareil et implique la notion d'appariement, à des fins de sécurité. Le protocole Bluetooth est extrêmement polyvalent et peut être utilisé à de nombreuses fins. Sa popularité vient du fait qu'il fonctionne à des fréquences qui ne sont pas autorisées à l'échelle mondiale (mais pas non réglementées).

La véritable connexion Bluetooth à Bluetooth sur IP nécessiterait deux appareils Bluetooth pour se coupler sur IP. Ce n'est pas la même chose que, par exemple, deux personnes utilisant Skype pour parler sur Internet via des casques Bluetooth, car les casques sont couplés avec leurs ordinateurs et non entre eux.

Voici quelques extraits du modèle OSI de l'article Wikipedia :

Couche 1: couche physique

La couche physique de Parallel SCSI fonctionne dans cette couche, tout comme les couches physiques d'Ethernet et d'autres réseaux locaux, tels que Token Ring, FDDI, ITU-T G.hn et IEEE 802.11 (Wi-Fi), ainsi en tant que réseaux personnels tels que Bluetooth et IEEE 802.15.4.

Couche 4: couche de transport

Un exemple de protocole de couche transport dans la pile Internet standard est le TCP (Transmission Control Protocol), généralement construit au-dessus du protocole Internet (IP).

TCP et UDP sont des protocoles de niveau 4 de transport, tandis que Bluetooth est un protocole de niveau 1 physique inférieur. Ainsi, vous pouvez utiliser TCP ou UDP sur Bluetooth, tout comme vous utilisez TCP et UDP sur Ethernet, mais l'inverse est beaucoup plus difficile.

La pile de protocoles Bluetooth comprend ses propres protocoles de transport: L2CAP et RFCOMM, où les liaisons RFCOMM utilisent la couche L2CAP. Vous pouvez utiliser un tunnel IP sur des paquets UDP encapsulant Bluetooth sur des liaisons RFCOMM.

En utilisant une terminologie OSI pure, il est impossible, voire une contradiction de termes, d'utiliser un protocole de couche 1 sur la couche 4.

En pratique, nous pourrions imaginer un adaptateur virtuel écrit par logiciel qui se déclarerait à Linux côté client en tant que périphérique Bluetooth physique et parlerait sur IP à un autre périphérique Bluetooth virtuel de ce type sur le côté serveur Linux. Mais la complexité de l'émulation des couches OSI et l'effort de programmation requis pour implémenter le protocole Bluetooth très polyvalent et son architecture maître-esclave font de la création d'une telle implémentation générale un exercice très exigeant qui ne se produira probablement pas, comme il existe actuellement aucune demande pour un tel logiciel.

harrymc
la source
4
Tout comme la pile OSI elle-même, la superposition stricte n'existe que dans les fantasmes. Largement utilisé le logiciel VPN faire transmettre des paquets IP L3 et L2 même des trames Ethernet sur L4 UDP ...
user1686
@grawity: Je suis d'accord jusqu'à un point qu'un paquet est un paquet, peu importe sa profondeur. Cependant, le VPN ne fait finalement que IP sur IP, même s'il est conditionné dans des couches inférieures / supérieures, tandis que Bluetooth est un protocole physique entièrement différent. Ma réponse dit que cela est possible mais probablement trop compliqué à déranger, en raison des différences de protocole. Êtes-vous en désaccord avec cela?
harrymc
3

Je n'ai pas essayé tout cela en pratique, mais c'est des choses que je pourrais trouver qui parlent de "Bluetooth sur IP".

Le livre Linux Kernel Networking est très technique mais il décrit comment faire "Bluetooth sur IP":

Côté serveur:

pand --listen --role=NAP

Côté client:

pand --connect btAddressOfTheServer

Cela crée une interface virtuelle bnep0.

Apparemment, cela vous donne juste L2CAP, qui ne peut envoyer que des paquets sur un "piconet". Mais pour L2CAP, il y a des réflexions sur la façon de les envoyer sur IP dans un projet IETF: Transmission de paquets IP sur les réseaux Bluetooth .

L'IETF peut envisager d'exécuter L2CAP sur IP sur le contrôleur hôte avec un nouveau protocole:

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

Figure 4.3.3 - 3e. Pile de protocole Bluetooth possible pour les réseaux IP

Et puis j'ai aussi trouvé UbiPAN: Un réseau étendu personnel Bluetooth qui mentionne "Bluetooth sur IP" - mais malheureusement, il ne semble pas que UbiPAN ait été publié en tant que logiciel gratuit.

kqw
la source
1
BNEP est utilisé pour envoyer des paquets réseau directement sur L2CAP dans un piconet existant, il ne permet pas à l'utilisateur de relier le bluetooth sur IP. De plus, la spécification à laquelle vous avez lié est ancienne et ne provient pas de la source d'origine (BT SIG), voici la spécification adoptée: bluetooth.org/docman/handlers/DownloadDoc.ashx?doc_id=6552
Jon Carlstedt
2
Désolé, ma réponse est un travail en cours et vous ne serez peut-être pas satisfait, mais elle contient actuellement plus d'informations utiles sur une solution possible que toutes les autres réponses.
kqw
Votre réponse n'indique pas s'il est possible ou non d'utiliser Bluetooth sur IP.
Winny
1

J'ai été sur la même pensée (ou similaire) récemment. Ce que je veux faire, c'est utiliser un concentrateur domotique, qui ne peut malheureusement pas atteindre toute la maison avec une radio à emplacement unique.

Ma configuration est la suivante: ordinateur exécutant le client bluez + usbip <- LAN -> autre ordinateur avec dongle USB Bluetooth physique + serveur USB.

Il s'avère que cela fonctionne très bien. Du point de vue Bluez, il n'est pas en mesure de faire la différence entre les dongles USB locaux et distants.

(Machines exécutant Linux 4.9.80 + mise à jour-usbip + Bluez 5.48; arm)

Lukas
la source
0

Harrymc a raison.

Ce n'est pas possible ou du moins pas faisable.

Vous pouvez coupler votre téléphone avec un ordinateur et votre casque avec un autre ordinateur et avoir ainsi deux connexions Bluetooth. La connexion entre les ordinateurs peut être pontée comme bon vous semble et à son tour relayer toutes les communications Bluetooth. Cela donnera l'impression que vous avez ponté le Bluetooth sur IP et vous pourriez probablement les amener à se parler et à faire certaines des choses que vous essayez de faire.

Mais en réalité, il n'y a pas de connexion Bluetooth entre les deux appareils.

Le périphérique A dispose d'une connexion Bluetooth à un ordinateur.

Le périphérique B dispose d'une connexion Bluetooth à un autre ordinateur.

Les deux appareils ne pourront pas se coupler et se connecter directement l'un à l'autre. On pourrait théoriquement construire quelque chose qui permettrait d'établir une liaison Bluetooth directe, mais traverser les couches et la gestion des clés de liaison serait un cauchemar à régler et ce n'est qu'un début, je n'ai aucune idée de la façon de résoudre la gestion et la fréquence des paquets saut, le taux de saut de fréquence Bluetooth est de 1600 sauts / s pour un seul paquet de slot.

Si quelqu'un faisait cela, je serais très impressionné et j'aimerais beaucoup jeter un œil sous le capot.

Jon Carlstedt
la source
0

Ok, j'ai enquêté un peu plus. Ce n'est pas possible.

Voici pourquoi: Pour que cela fonctionne, vous aurez besoin de la puce Bluetooth de l'ordinateur pour relayer les informations au lieu de vous répondre.

Cette fonctionnalité n'existe pas encore.

Je ne peux partager aucune documentation pour le moment, car elle est exclusive et confidentielle.

Si vous êtes membre de BT SIG, vous pouvez consulter la feuille de route Bluetooth dans la section Panorama sur bluetooth.org

Jon Carlstedt
la source