Wydaje się, że możliwe jest uruchomienie USB przez IP, np. Za pomocą, usbip
która jest częścią niektórych dystrybucji Linuksa, np. Https://www.archlinux.org/packages/?q=usbip
Czy istnieje coś podobnego dla Bluetooth przez IP? (NIE: IP przez Bluetooth).
Umożliwiłoby to fizyczne oddzielenie, powiedzmy, smartfona z obsługą BT od zestawu słuchawkowego z obsługą BT za pośrednictwem Internetu.
Linux bnep
może to zrobić, ale nie byłem w stanie znaleźć instrukcji, jak to zrobić.
linux
networking
bluetooth
tunnel
Johannes Ernst
źródło
źródło
Odpowiedzi:
Chociaż w naszym świecie technologicznym wszystko dzisiaj wydaje się możliwe, o ile wiem, prawdziwa łączność Bluetooth do Bluetooth nigdy nie została wdrożona. Spróbuję wyjaśnić trudności, które choć nie są nie do pokonania, są przyczyną tej sytuacji.
Sam Bluetooth jest standardem technologii bezprzewodowej do wymiany danych na krótkie odległości. Zwykle jest używany do połączeń między urządzeniami i ze względów bezpieczeństwa wymaga parowania. Protokół Bluetooth jest niezwykle wszechstronny i może być wykorzystywany do wielu celów. Jego popularność wynika z faktu, że działa na częstotliwościach, które są globalnie nielicencjonowane (ale nie są nieuregulowane).
Prawdziwe połączenie Bluetooth przez Bluetooth wymagałoby połączenia dwóch urządzeń Bluetooth przez IP. Nie jest to to samo, co na przykład dwie osoby używające Skype do rozmowy przez Internet za pomocą zestawów słuchawkowych Bluetooth, ponieważ zestawy słuchawkowe są sparowane z komputerami, a nie ze sobą.
Oto kilka fragmentów modelu OSI z artykułu w Wikipedii :
TCP i UDP są protokołami na poziomie transportu 4, podczas gdy Bluetooth jest protokołem niższego poziomu fizycznego 1. Tak więc możesz używać TCP lub UDP na Bluetooth, tak samo jak TCP i UDP na Ethernet, ale odwrotnie jest znacznie trudniej.
Stos protokołów Bluetooth zawiera własne protokoły transportowe: L2CAP i RFCOMM, w których łącza RFCOMM wykorzystują warstwę L2CAP. Możesz pracować z tunelowaniem IP przez pakiety UDP hermetyzujące Bluetooth przez łącza RFCOMM.
Korzystanie z czystej terminologii OSI jest niemożliwe, a nawet sprzeczność pojęć, stosowanie protokołu warstwy 1 w stosunku do warstwy 4.
Praktycznie rzecz biorąc, możemy sobie wyobrazić napisany programowo wirtualny adapter, który zadeklaruje się w systemie Linux po stronie klienta jako fizyczne urządzenie Bluetooth i będzie rozmawiać przez IP z innym takim wirtualnym urządzeniem Bluetooth po stronie serwera Linux. Ale złożoność związana z emulowaniem warstw OSI oraz wysiłek programistyczny wymagany do wdrożenia bardzo wszechstronnego protokołu Bluetooth i jego architektury master-slave sprawiają, że tworzenie tak ogólnej implementacji jest bardzo wymagającym ćwiczeniem, które jest mało prawdopodobne, ponieważ obecnie brak zapotrzebowania na takie oprogramowanie.
źródło
Nie próbowałem tego w praktyce, ale mogę znaleźć coś, co mówi o „Bluetooth przez IP”.
Książka Linux Kernel Networking jest bardzo techniczna, ale opisuje, jak wykonać „Bluetooth przez IP”:
To tworzy wirtualny interfejs
bnep0
.Najwyraźniej daje to po prostu L2CAP, który może wysyłać pakiety tylko przez „piconet”. Ale w przypadku L2CAP zastanawia się, jak wysłać je przez IP w wersji roboczej IETF: Transmisja pakietów IP przez sieci Bluetooth .
A potem znalazłem także UbiPAN: rozszerzoną osobistą sieć Bluetooth, która wspomina o „Bluetooth przez IP” - ale niestety nie wygląda na to, że UbiPAN został wydany jako darmowe oprogramowanie.
źródło
Miałem ostatnio taką samą (lub podobną) myśl. Chcę skorzystać z centrali automatyki domowej, która niestety nie może dotrzeć do całego domu za pomocą radia z jedną lokalizacją.
Moja konfiguracja jest następująca: komputer z uruchomionym klientem bluez + usbip <- LAN -> inny komputer z fizycznym kluczem USB Bluetooth + serwer usbip.
Okazuje się, że działa dobrze. Z punktu widzenia Bluez nie jest w stanie odróżnić lokalnego i zdalnego klucza USB.
(Maszyny z systemem Linux 4.9.80 + up-todate-usbip + Bluez 5.48; arm)
źródło
Harrymc ma rację.
Nie jest to możliwe, a przynajmniej niewykonalne.
Możesz sparować telefon z komputerem i zestaw słuchawkowy z innym komputerem, a tym samym mieć dwa połączenia Bluetooth. Połączenie między komputerami można mostkować w dowolny sposób, a to z kolei przekazuje całą komunikację Bluetooth. To sprawi, że będzie wyglądać, jakbyś zmostkował bluetooth przez IP i prawdopodobnie możesz zmusić ich do rozmowy ze sobą i robienia niektórych rzeczy, które próbujesz zrobić.
Ale w rzeczywistości nie ma połączenia Bluetooth między dwoma urządzeniami.
Urządzenie A ma połączenie Bluetooth z komputerem.
Urządzenie B ma połączenie Bluetooth z innym komputerem.
Oba urządzenia nie będą mogły się sparować i połączyć bezpośrednio ze sobą. Można teoretycznie zbudować coś, co pozwoliłoby na skonfigurowanie bezpośredniego łącza bluetooth, ale przejście przez warstwy i zarządzanie kluczami byłoby koszmarem do uporządkowania, a to dopiero początek, nie mam pojęcia, jak rozwiązać zarządzanie pakietami i częstotliwość przeskakiwanie, częstotliwość przeskakiwania częstotliwości Bluetooth wynosi 1600 przeskoków / s dla pojedynczego pakietu gniazd.
Gdyby ktoś to zrobił, byłbym pod wielkim wrażeniem i bardzo chciałbym rzucić okiem pod maską.
źródło
Ok, zbadałem to jeszcze trochę. To niemożliwe.
Oto dlaczego: Aby to zadziałało, będziesz potrzebować układu Bluetooth w komputerze, aby przekazywać informacje zamiast odpowiadać samemu sobie.
Ta funkcja jeszcze nie istnieje.
Nie mogę obecnie udostępniać żadnej dokumentacji, ponieważ jest ona zastrzeżona i poufna.
Jeśli jesteś członkiem BT SIG, możesz wyświetlić mapę drogową Bluetooth w sekcji panoramy na bluetooth.org
źródło