似乎可以通过 IP 运行 USB,例如使用usbip
某些 Linux 发行版的一部分。https://www.archlinux.org/packages/?q=usbip
基于 IP 的蓝牙有类似的东西吗?(不是:基于蓝牙的 IP)。
这将允许通过互联网将支持蓝牙的智能手机与支持蓝牙的耳机进行物理分离。
Linuxbnep
也许可以做到这一点,但我还没有找到如何做的说明。
答案1
尽管在当今的技术世界中一切皆有可能,但据我所知,真正的蓝牙到蓝牙 IP 从未实现过。我将尝试解释造成这种情况的原因,尽管这些困难并非不可克服。
蓝牙蓝牙本身是一种用于短距离数据交换的无线技术标准。它通常用于设备到设备的连接,出于安全考虑,涉及配对的概念。蓝牙协议用途极其广泛,可用于多种用途。它之所以如此受欢迎,是因为它的工作频率是全球未经许可的(但并非不受管制)。
真正的蓝牙到 IP 蓝牙需要两台蓝牙设备通过 IP 进行配对。这与两个人使用 Skype 通过蓝牙耳机在互联网上交谈不同,因为耳机与他们的计算机配对,而不是彼此配对。
以下是维基百科文章的一些摘录OSI 模型:
第 1 层:物理层
并行 SCSI 的物理层在此层运行,以太网和其他局域网络(如令牌环、FDDI、ITU-T G.hn 和 IEEE 802.11(Wi-Fi))以及个人局域网络(如蓝牙和 IEEE 802.15.4。
第 4 层:传输层
标准互联网堆栈中的传输层协议的一个示例是传输控制协议 (TCP),它通常建立在互联网协议 (IP) 之上。
TCP 和 UDP 是传输层 4 协议,而蓝牙是较低的物理层 1 协议。因此,您可以在蓝牙上使用 TCP 或 UDP,就像在以太网上使用 TCP 和 UDP 一样,但相反的做法要困难得多。
蓝牙协议栈包含自己的传输协议:L2CAP 和 RFCOMM,其中 RFCOMM 链路使用 L2CAP 层。您可以通过蓝牙进行一些 IP 隧道传输,在 RFCOMM 链路上封装 UDP 数据包。
使用纯 OSI 术语,在第 4 层上使用第 1 层协议是不可能的,甚至是术语矛盾的。
从实际角度来说,我们可以设想一个软件编写的虚拟适配器,它会在客户端向 Linux 声明自己是一个物理蓝牙设备,并通过 IP 与服务器端 Linux 上的另一个虚拟蓝牙设备进行通信。但是,模拟 OSI 层所涉及的复杂性,以及实现用途广泛的蓝牙协议及其主从架构所需的编程工作,使得创建这样一个通用的实现成为一项非常艰巨的任务,而且不太可能实现,因为目前对此类软件没有需求。
答案2
我最近也有同样(或类似)的想法。我想做的是使用家庭自动化中心,但不幸的是,它无法通过单点无线电覆盖整个房子。
我的设置如下:运行 bluez + usbip 客户端的计算机 <- LAN -> 带有物理蓝牙 USB 加密狗 + usbip 服务器的其他计算机。
事实证明这很好用。从 Bluez 的角度来看,它无法区分本地和远程 USB 加密狗。
(运行 Linux 4.9.80 + up-todate-usbip + Bluez 5.48 的机器;arm)
答案3
我还没有在实践中尝试过这些,但我能找到有关“基于 IP 的蓝牙”的内容。
这本书Linux 内核网络非常技术性,但它描述了如何实现“通过 IP 实现蓝牙”:
在服务器端:
pand --listen --role=NAP
在客户端:
pand --connect btAddressOfTheServer
这将创建一个虚拟接口bnep0
。
显然,这只会给你 L2CAP,它只能通过“微微网”发送数据包。但对于 L2CAP,有关于如何通过 IP 发送数据包的想法IETF 草案:通过蓝牙网络传输 IP 数据包。
IETF 可能会考虑使用新协议在主机控制器上的 IP 上运行 L2CAP:
+------------+ | L2CAP | +------------+ | IP | +------------+ | Foo2 Proto.| +------------+ | Host Cont. | +------------+
图 4.3.3 - 第三。 用于 IP 网络的可能的蓝牙协议栈
然后我还发现UbiPAN:蓝牙扩展个人局域网其中提到了“IP 蓝牙”——但不幸的是,UbiPAN 似乎并没有作为免费软件发布。
答案4
Harrymc 是正确的。
这是不可能的,或者至少是不可行的。
您可以将手机与计算机配对,将耳机与另一台计算机配对,这样就拥有了两个蓝牙连接。您可以按照自己喜欢的任何方式桥接计算机之间的连接,然后转接所有蓝牙通信。这样看起来就像您已经通过 IP 桥接了蓝牙,并且您可能可以让它们相互通信并执行您要执行的一些操作。
但实际上这两个设备之间并没有蓝牙连接。
设备 A 与计算机有蓝牙连接。
设备 B 与另一台计算机有蓝牙连接。
这两个设备将无法直接配对和连接。理论上可以构建某种东西来建立直接蓝牙链接,但遍历层和链接密钥管理将是一场噩梦,而这仅仅是开始,我不知道如何解决包管理和跳频问题,蓝牙跳频速率为单个时隙数据包 1600 跳/秒。
如果有人真的这样做了,我会非常感动,并且非常想亲眼看看。