Bluetooth через IP?


13

Здається, можна запустити USB через IP, наприклад, використовуючи usbipякий є частиною деяких дистрибутивів Linux, наприклад https://www.archlinux.org/packages/?q=usbip

Чи є щось подібне для Bluetooth через IP? (НЕ: IP через Bluetooth).

Це дозволило б фізично відокремити, скажімо, смартфон із підтримкою BT від навушників із підтримкою BT через Інтернет.

Linux bnepможе це зробити, але я не зміг знайти інструкції, як це зробити.


3
Сумніваюсь, ви зможете користуватися USB через Інтернет, головним чином через проблеми із затримкою.
Даніель Б

Це справді USB? Специфікації USB закликають до речей, які просто не можуть бути забезпечені IP, наприклад, фізичні характеристики роз'єму, потужність тощо
Рон Маупін

@RonMaupin Звичайно, мова йде лише про те, що відбувається між USB-контролером та процесором. Незважаючи на це, якщо затримка досить низька (локальна мережа), програмне забезпечення, яке використовує ці пристрої, не зможе побачити різницю.
Даніель Б

2
Я насправді просто мав ідею з usbip. Чи можливо використовувати usbip за допомогою USB-ключа Bluetooth? (це я божевільна ідея, я знаю)
Лео Лам

@Leo Lam. Ну, технічно це було б "bt over ip", що маскується під "usb over ip". ;)
rinfinity

Відповіді:


7

Хоча сьогодні в нашому технологічному світі все здається можливим, наскільки я знаю, справжній Bluetooth-to-Bluetooth-over-IP ніколи не був реалізований. Я спробую пояснити труднощі, які, хоча і не є непереборними, є причиною цієї ситуації.

Сам Bluetooth - це стандарт бездротової технології для обміну даними на невеликі відстані. Зазвичай він використовується для підключення пристрою до пристрою і включає поняття «Спарювання» з метою безпеки. Протокол Bluetooth надзвичайно універсальний і його можна використовувати для багатьох цілей. Його популярність виникає через те, що він працює на частотах, які є глобально неліцензованими (але не нерегульованими).

Справжній Bluetooth-через-Bluetooth над IP-адресою потребуватиме два пристрої Bluetooth для сполучення через IP. Це не те саме, що, наприклад, двоє людей, які використовують Skype для спілкування через Інтернет через гарнітуру Bluetooth, оскільки гарнітури поєднуються зі своїми комп’ютерами, а не один з одним.

Ось кілька уривків із статті OSI статті у Вікіпедії :

Шар 1: Фізичний шар

Фізичний рівень Parallel SCSI працює в цьому шарі, як і фізичні шари Ethernet та інших локальних мереж, такі як Token Ring, FDDI, ITU-T G.hn і IEEE 802.11 (Wi-Fi). як персональні мережі, такі як Bluetooth та IEEE 802.15.4.

Шар 4: Транспортний шар

Прикладом протоколу транспортного рівня в стандартному стеку Інтернету є протокол управління передачею (TCP), який зазвичай будується поверх Інтернет-протоколу (IP).

TCP і UDP - це протоколи транспортного рівня 4, тоді як Bluetooth - протокол нижчого фізичного рівня 1. Таким чином, ви можете використовувати TCP або UDP поверх Bluetooth так само, як ви використовуєте TCP і UDP поверх Ethernet, але навпаки набагато складніше.

Стек протоколів Bluetooth включає власні транспортні протоколи: L2CAP і RFCOMM, де в посиланнях RFCOMM використовується рівень L2CAP. Ви можете працювати з IP-тунелюванням через Bluetooth, інкапсулюючи пакети UDP через посилання RFCOMM.

Використовуючи чисту термінологію OSI, неможливо, навіть суперечить термінам, використовувати протокол рівня 1 над шаром 4.

Практично кажучи, ми могли б уявити написаний програмним забезпеченням віртуальний адаптер, який оголосив би себе Linux на клієнтській стороні як фізичний пристрій Bluetooth і спілкувався через IP з іншим таким віртуальним пристроєм Bluetooth на Linux-сервері Linux. Але складність, пов'язана з емуляцією шарів OSI, та зусилля програмування, необхідні для реалізації дуже універсального протоколу Bluetooth та його архітектури master-slave, роблять створення такої загальної реалізації дуже вимогливою вправою, що навряд чи відбудеться, як це існує зараз відсутність попиту на таке програмне забезпечення.


4
Настільки ж, як і стек OSI, суворий шар є лише у фантазіях. Широко використовується програмне забезпечення VPN робити передавальну L3 IP - пакети і навіть L2 Ethernet кадри через L4 UDP ...
user1686

@grawity: Я згоден до того, що пакет - це пакет, незалежно від того, наскільки глибоко загорнутий. Однак, зрештою, VPN робить лише IP через IP, навіть якщо він упакований у нижній / вищий шари, тоді як Bluetooth - це зовсім інший фізичний протокол. У моїй відповіді сказано, що це можливо, але, ймовірно, занадто складно, щоб турбувати через розбіжності в протоколі. Чи не погоджуєтесь ви з цим?
harrymc

3

Я нічого не пробував цього на практиці, але я можу знайти, що говорить про "Bluetooth через IP".

Книга Linux Kernel Networking дуже технічна, але вона описує, як зробити "Bluetooth через IP":

На стороні сервера:

pand --listen --role=NAP

На стороні клієнта:

pand --connect btAddressOfTheServer

Це створює віртуальний інтерфейс bnep0.

Мабуть, це просто дає вам L2CAP, який може надсилати пакети лише через "піконет". Але для L2CAP є роздуми про те, як надсилати їх через IP в чернетці IETF: Передача IP-пакетів по мережах Bluetooth .

IETF може розглянути можливість запуску L2CAP через IP через хост-контролер з новим протоколом:

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

Малюнок 4.3.3 - 3-й. Можливий стек протоколу Bluetooth для мереж IP

І тоді я також знайшов UbiPAN: розширену мережу особистої області Bluetooth, в якій згадується "Bluetooth через IP", але, на жаль, це не виглядає так, що UbiPAN було випущено як безкоштовне програмне забезпечення.


1
BNEP використовується для передачі мережевих пакетів безпосередньо через L2CAP в існуючій пікомережі, він не дозволяє користувачеві переносити Bluetooth через IP. Крім того, специфікація, на яку ви посилаєтеся, є старою, а не з початкового джерела (BT SIG), ось прийнята специфікація: bluetooth.org/docman/handlers/DownloadDoc.ashx?doc_id=6552
Джон Карлстедт

2
Вибачте, моя відповідь триває, і ви, можливо, не будете задоволені нею, але наразі вона містить більше корисної інформації про можливе рішення, ніж будь-яка з інших відповідей.
kqw

У вашій відповіді не вказано, чи можливо використовувати Bluetooth через IP чи ні.
Вінні

1

Я бідував на тій же (або подібній) думці недавно. Що я хочу зробити, - це використовувати центр домашньої автоматизації, який, на жаль, не може охопити весь будинок одноразовим радіо.

Моя настройка така: комп'ютер, на якому працює клієнт bluez + usbip-клієнт <- LAN -> інший комп'ютер з фізичним bluetooth-USB dongle + сервер usbip.

Виявляється, це працює чудово. З точки зору Bluez, він не в змозі перемикатися між локальними та віддаленими USB-ключами.

(Машини, на яких працює Linux 4.9.80 + up-todate-usbip + Bluez 5.48; arm)


0

Гаррім прав.

Це неможливо або, принаймні, неможливо.

Ви можете з’єднати телефон з комп'ютером, а гарнітуру - з іншим комп'ютером і, таким чином, мати два Bluetooth-з'єднання. Зв'язок між комп’ютерами може бути налагоджений будь-яким способом, який вам подобається, і, в свою чергу, передає весь Bluetooth-зв’язок. Це зробить вигляд, як у вас з'єднаний Bluetooth через IP, і, ймовірно, ви можете змусити їх поговорити один з одним і зробити деякі речі, які ви намагаєтеся зробити.

Але насправді між двома пристроями немає зв'язку Bluetooth.

Пристрій A має з'єднання Bluetooth через комп'ютер.

Пристрій B має з'єднання Bluetooth з іншим комп'ютером.

Два пристрої не зможуть з'єднуватися та підключатися безпосередньо один до одного. Теоретично можна побудувати щось, що дозволило б встановити пряме з'єднання Bluetooth, але проходження шарів та керування ключами було б кошмаром, щоб розібратися, і це лише початок, я не маю уявлення про те, як вирішити управління пакетами та частотою стрибки, частота перестрибування частоти Bluetooth становить 1600 стрибків / с для одного пакету слотів.

Якби хтось насправді робив це, я був би дуже вражений і дуже хотів би заглянути під капот.


0

Гаразд, я це ще кілька досліджував. Це неможливо.

Ось чому: для цього вам знадобиться мікросхема Bluetooth у комп’ютері, щоб передати інформацію, а не відповідати самому собі.

Ця функціональність ще не існує.

Я не можу поділитися жодною документацією на даний момент, оскільки вона є власною та конфіденційною.

Якщо ви є членом BT SIG, ви можете переглянути дорожню карту Bluetooth у розділі панорама на bluetooth.org

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.