Bluetooth über IP?


13

Es scheint möglich zu sein, USB über IP auszuführen, z. B. unter Verwendung usbipeiniger Linux-Distributionen, z. B. https://www.archlinux.org/packages/?q=usbip

Gibt es etwas Ähnliches für Bluetooth over IP? (NICHT: IP über Bluetooth).

Dies würde die physische Trennung beispielsweise eines BT-fähigen Smartphones von einem BT-fähigen Headset über das Internet ermöglichen.

Linux ist bnepmöglicherweise in der Lage, dies zu tun, aber ich konnte keine Anweisungen dazu finden.


3
Ich bezweifle, dass Sie USB über das Internet verwenden können, hauptsächlich aufgrund von Latenzproblemen.
Daniel B

Ist es wirklich USB? Die USB-Spezifikationen fordern Dinge, die von IP einfach nicht bereitgestellt werden können, wie physische Steckerspezifikationen, Stromversorgung usw.
Ron Maupin

@ RonMaupin Natürlich geht es nur darum, was zwischen dem USB-Controller und der CPU passiert. Vorausgesetzt, die Latenz ist niedrig genug (LAN), kann Software, die diese Geräte verwendet, den Unterschied nicht erkennen.
Daniel B

2
Ich hatte gerade eine Idee mit usbip. Könnte es möglich sein, usbip mit einem USB-Bluetooth-Dongle zu verwenden? (Es ist eine verrückte Idee, ich weiß)
Léo Lam

@ Leo Lam. Nun, technisch gesehen wäre das "BT über IP", das sich als "USB über IP" tarnt. ;)
Rinfinity

Antworten:


7

Obwohl in unserer technologischen Welt heute alles möglich erscheint, wurde meines Wissens echtes Bluetooth-zu-Bluetooth-über-IP nie implementiert. Ich werde versuchen, die Schwierigkeiten zu erklären, die, obwohl nicht unüberwindbar, die Ursache für diese Situation sind.

Bluetooth selbst ist ein drahtloser Technologiestandard für den Datenaustausch über kurze Entfernungen. Es wird normalerweise für Geräte-zu-Geräte-Verbindungen verwendet und beinhaltet aus Sicherheitsgründen den Begriff Pairing. Das Bluetooth-Protokoll ist äußerst vielseitig und kann für viele Zwecke verwendet werden. Seine Popularität ergibt sich aus der Tatsache, dass es mit Frequenzen arbeitet, die global nicht lizenziert (aber nicht unreguliert) sind.

Für echtes Bluetooth-zu-Bluetooth-über-IP wären zwei Bluetooth-Geräte erforderlich, um über IP gekoppelt zu werden. Dies ist nicht dasselbe wie beispielsweise zwei Personen, die Skype verwenden, um über Bluetooth-Headsets über das Internet zu kommunizieren, da die Headsets mit ihren Computern und nicht miteinander gekoppelt sind.

Hier einige Auszüge aus dem Wikipedia-Artikel OSI-Modell :

Schicht 1: Physikalische Schicht

Die physische Schicht von Parallel SCSI arbeitet in dieser Schicht ebenso wie die physischen Schichten von Ethernet und anderen lokalen Netzwerken wie Token Ring, FDDI, ITU-T G.hn und IEEE 802.11 (Wi-Fi) als persönliche Netzwerke wie Bluetooth und IEEE 802.15.4.

Schicht 4: Transportschicht

Ein Beispiel für ein Transportschichtprotokoll im Standard-Internet-Stack ist das Transmission Control Protocol (TCP), das normalerweise auf dem Internet Protocol (IP) aufbaut.

TCP und UDP sind Protokolle der Transportstufe 4, während Bluetooth ein Protokoll der unteren physischen Ebene 1 ist. Sie können also TCP oder UDP über Bluetooth verwenden, genauso wie Sie TCP und UDP über Ethernet verwenden, aber das Gegenteil ist viel schwieriger.

Der Bluetooth-Protokollstapel enthält seine eigenen Transportprotokolle: L2CAP und RFCOMM, wobei RFCOMM-Verbindungen die L2CAP-Schicht verwenden. Sie können IP-Tunneling über Bluetooth durchführen und UDP-Pakete über RFCOMM-Verbindungen kapseln.

Bei Verwendung einer reinen OSI-Terminologie ist es unmöglich, sogar ein Widerspruch zu Begriffen, ein Schicht-1-Protokoll über Schicht 4 zu verwenden.

In der Praxis könnten wir uns einen von Software geschriebenen virtuellen Adapter vorstellen, der sich auf der Clientseite als physisches Bluetooth-Gerät für Linux deklariert und über IP mit einem anderen solchen virtuellen Bluetooth-Gerät auf dem serverseitigen Linux kommuniziert. Die Komplexität bei der Emulation von OSI-Schichten und der Programmieraufwand, der für die Implementierung des sehr vielseitigen Bluetooth-Protokolls und seiner Master-Slave-Architektur erforderlich ist, machen die Erstellung einer solchen allgemeinen Implementierung jedoch zu einer sehr anspruchsvollen Aufgabe, die derzeit nicht wahrscheinlich ist Keine Nachfrage nach solcher Software.


4
Ähnlich wie der OSI-Stack selbst existiert eine strikte Überlagerung nur in Fantasien. VPN - Software weit verbreitete tun Sende L3 IP - Pakete und sogar L2 Ethernet - Frames über L4 UDP ...
user1686

@grawity: Ich stimme bis zu einem gewissen Punkt zu, dass ein Paket ein Paket ist, egal wie tief es verpackt ist. VPN führt jedoch letztendlich nur IP über IP aus, selbst wenn es in niedrigeren / höheren Schichten verpackt ist, während Bluetooth ein völlig anderes physisches Protokoll ist. Meine Antwort besagt, dass dies möglich ist, aber aufgrund von Protokollunterschieden wahrscheinlich zu kompliziert, um sich darum zu kümmern. Würden Sie dem nicht zustimmen?
Harrymc

3

Ich habe nichts davon in der Praxis ausprobiert, aber es sind Dinge, die ich finden könnte, die über "Bluetooth über IP" sprechen.

Das Buch Linux Kernel Networking ist sehr technisch, beschreibt aber, wie man "Bluetooth over IP" macht:

Auf der Serverseite:

pand --listen --role=NAP

Auf der Client-Seite:

pand --connect btAddressOfTheServer

Dadurch wird eine virtuelle Schnittstelle erstellt bnep0.

Anscheinend gibt Ihnen dies nur L2CAP, das nur Pakete über ein "Piconetz" senden kann. Für L2CAP gibt es jedoch Überlegungen, wie sie in einem IETF-Entwurf über IP gesendet werden können: Übertragung von IP-Paketen über Bluetooth-Netzwerke .

Die IETF kann in Betracht ziehen, L2CAP über IP über den Host-Controller mit einem neuen Protokoll auszuführen:

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

Abbildung 4.3.3 - 3 .. Möglicher Bluetooth-Protokollstapel für IP-Netzwerke

Und dann habe ich auch UbiPAN gefunden : Ein erweitertes Bluetooth-Netzwerk für den persönlichen Bereich, in dem "Bluetooth over IP" erwähnt wird - aber leider sieht es nicht so aus, als ob UbiPAN als freie Software veröffentlicht wurde.


1
BNEP wird verwendet, um Netzwerkpakete direkt über L2CAP in einem vorhandenen Piconetz zu senden. Es ermöglicht dem Benutzer nicht, Bluetooth über IP zu überbrücken. Außerdem ist die von Ihnen verknüpfte Spezifikation alt und stammt nicht aus der Originalquelle (BT SIG). Hier ist die angenommene Spezifikation: bluetooth.org/docman/handlers/DownloadDoc.ashx?doc_id=6552
Jon Carlstedt

2
Entschuldigung, meine Antwort ist in Arbeit und Sie sind vielleicht nicht zufrieden damit, aber sie enthält derzeit mehr nützliche Informationen über eine mögliche Lösung als jede andere Antwort.
kqw

In Ihrer Antwort wird nicht angegeben, ob Bluetooth über IP verwendet werden kann oder nicht.
Winny

1

Ich habe in letzter Zeit den gleichen (oder einen ähnlichen) Gedanken gehabt. Was ich tun möchte, ist die Verwendung eines Hubs für die Hausautomation, der leider nicht mit einem Funkgerät an einem Ort das ganze Haus erreichen kann.

Mein Setup ist wie folgt: Computer mit Bluez + USB-Client <- LAN -> anderer Computer mit physischem Bluetooth-USB-Dongle + USB-Server.

Es stellt sich heraus, dass dies gut funktioniert. Aus Sicht von Bluez ist es nicht möglich, zwischen lokalen und entfernten USB-Dongles zu unterscheiden.

(Maschinen unter Linux 4.9.80 + up-to-update-usbip + Bluez 5.48; arm)


0

Harrymc ist richtig.

Dies ist nicht möglich oder zumindest nicht möglich.

Sie können Ihr Telefon mit einem Computer und Ihr Headset mit einem anderen Computer koppeln und haben somit zwei Bluetooth-Verbindungen. Die Verbindung zwischen den Computern kann nach Belieben überbrückt werden und leitet die gesamte Bluetooth-Kommunikation weiter. Dadurch sieht es so aus, als hätten Sie Bluetooth über IP überbrückt, und Sie könnten sie wahrscheinlich dazu bringen, miteinander zu sprechen und einige der Dinge zu tun, die Sie versuchen zu tun.

In Wirklichkeit besteht jedoch keine Bluetooth-Verbindung zwischen den beiden Geräten.

Gerät A verfügt über eine Bluetooth-Verbindung zu einem Computer.

Gerät B verfügt über eine Bluetooth-Verbindung zu einem anderen Computer.

Die beiden Geräte können nicht direkt miteinander gekoppelt und verbunden werden. Man könnte theoretisch etwas bauen, mit dem eine direkte Bluetooth-Verbindung eingerichtet werden kann, aber das Durchqueren der Ebenen und der Linkkey-Verwaltung wäre ein Albtraum, und das ist erst der Anfang. Ich habe keine Ahnung, wie man die Paketverwaltung und -häufigkeit löst Hopping, Bluetooth-Frequenzsprungrate beträgt 1600 Hops / s für ein einzelnes Slot-Paket.

Wenn jemand dies tatsächlich tun würde, wäre ich sehr beeindruckt und würde sehr gerne einen Blick unter die Haube werfen.


0

Ok, ich habe das noch etwas untersucht. Es ist nicht möglich.

Hier ist der Grund: Damit dies funktioniert, benötigen Sie den Bluetooth-Chip im Computer, um die Informationen weiterzuleiten, anstatt sich selbst zu beantworten.

Diese Funktionalität existiert noch nicht.

Ich kann derzeit keine Dokumentation freigeben, da diese urheberrechtlich geschützt und vertraulich ist.

Wenn Sie Mitglied von BT SIG sind, können Sie die Bluetooth-Roadmap im Panoramabereich auf bluetooth.org anzeigen

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.