什么是AWDL(Apple Wireless Direct Link)以及它是如何工作的?

Ada*_*dam 33 bluetooth ios

我试图找出AWDL是什么.在iOS上,如果您通过BlueTooth使用Apple的点对点网络,Apple似乎会创建一个新的网络接口"awdl0"来实现(我猜)IP-over-BT.

但是我找不到关于这个技术或这个界面的任何文档,它的行为方式,我们必须/不能用它做的事情等等.谷歌出现了空白:(.

特别是,我认为它意味着"建立了一个BT连接,我正在顶层运行一个IP桥接器,你可以用它来进行点对点通信".Apple自己的系统库存在错误,这种桥的设置速度不够快,如果过早发送数据,它似乎会被操作系统删除.所以...如果我可以查询这个awdl0,我希望检查"你准备好了吗?" 并延迟P2P消息,直到操作系统开心.


UPDATE

更多信息:我可以获得成对的iOS设备来创建彼此的awdl0连接 - 但它们永远不会被创建到OS X机器,无论BT和Bonjour是否打开,设备是否配对.


一些背景:

在iOS5中,Apple永久禁用了Bonjour/Peer-to-peer网络的蓝牙部分,并发布了一个技术说明,指示每个人如果想继续使用蓝牙作为iOS设备之间的传输,则使用DNS-SD.这很好,但这意味着如果你想要高性能的BT,你必须使用DNS-SD,并且你希望它可靠.

(GameKit 有时可以正常工作,但我们经常会在现实场景中看到糟糕的表现,例如拥挤的公共场所 - 如果您使用DNS-SD就会消失)

DNS-SD协议不包含告诉您硬件使用的信息.但它确实告诉你网络接口(这就是我知道我们在awdl0上运行的方式)

DNS-SD非常棒,我们在iOS设备之间进行点对点的高速,低延迟连接 - 所有GameKit承诺的东西,但是当范围内有多个wifi/BT设备时,它们往往无法提供.

bzz*_*bzz 38

最近,当它在iOS 8和OS X Yosemite设备中引起Wi-Fi问题时,AWDL引起了很多关注.

什么是AWDL? AWDL(Apple无线直接链接)是一种低延迟/高速WiFi点对点连接Apple,可用于您所期望的任何地方:AirDrop,GameKit(也使用蓝牙),AirPlay,以及其他地方.它使用自己的专用网络接口,通常是"awdl0".

虽然一些服务,如Instant HotSpot,Bluetooth Tethering(当然)和GameKit通过蓝牙SDP宣传他们的服务,但Apple决定通过WiFi宣传AirDrop,并无意中破坏了数百万Yosemite和iOS 8用户的WiFi性能.

AWDL如何工作? 自iPhone 4以来,iOS内核已经有多个WiFi接口连接到1个WiFi Broadcom硬件芯片.

en0 - 主要WiFi接口ap1 - 用于WiFi网络共享awdl0的接入点接口 - Apple Wireless Direct Link接口(自iOS 7以来?)

通过拥有多个接口,Apple可以在en0上拥有您的标准WiFi连接,同时仍然可以在awdl0上广播,浏览和解析对等连接(只是不太好).

您可以在这里这里找到更多信息.


小智 8

我想提供一个关于协议内部工作方式的更精确的答案。我引用了抽象的一部分本文

简而言之,每个AWDL节点都会宣布一系列的可用性窗口(AW),表明其准备与其他AWDL节点进行通信。当选的主节点将同步这些序列。在AW外部,节点可以将其Wi-Fi无线电调谐到其他信道以与接入点进行通信,或者可以将其关闭以节省能量。

从用户的角度来看,AWDL允许设备保持连接到基于基础架构的Wi-Fi网络,并通过在两个网络的通道之间快速跳变来“同时”与AWDL对等方进行通信(AWDL使用固定的社交渠道6,44和149)。与先前的答案相反,我们发现当前版本的AWDL效果很好,并且信道跳变仅会产生少量开销。

免责声明:我的合着者提出,我们通过逆向工程的方式获取这些信息。如果您对这些细节感兴趣,请阅读该论文并查看Wireshark解剖器(即将发布)。

  • [Google 的零项目](https://googleprojectzero.blogspot.com/2020/12/an-ios-zero-click-radio-proximity.html) 对 AWDL 有另一个很好的解释。 (2认同)