跨平台 P2P Wi-Fi:欧盟如何扼杀了 AWDL

这篇文章探讨了我们如何从 Wi-Fi Direct 发展到 AWDL 再到 Wi-Fi Aware,是什么使 Wi-Fi Aware 在技术上更胜一筹,以及为什么这种转变为开发者解锁了真正的跨平台点对点连接。

Adam Fish

Founder and CEO

TL;DR: 在欧盟《数字市场法案》(DMA) 的压力下,Apple 被迫放弃其专有的点对点 Wi-Fi 协议——Apple Wireless Direct Link (AWDL),转而支持行业标准的 Wi-Fi Aware,也称为 Neighbor Awareness Networking (NAN)。欧盟悄然发布的一份互操作性路线图强制要求 Apple 在 iOS 19 中支持 Wi-Fi Aware 4.0,并在之后的版本中支持 v5.0,1,这实际上是将 AWDL 推向了淘汰。这篇文章探讨了我们是如何走到这一步的(从 Wi-Fi Direct 到 AWDL 再到 Wi-Fi Aware),是什么让 Wi-Fi Aware 在技术上更胜一筹,以及为什么这种转变为开发者解锁了真正的跨平台点对点连接。

欧盟迫使 Apple 在点对点 Wi-Fi 上让步

在一项鲜为人知的指令中,欧盟委员会明确要求 Apple 实施 Wi-Fi Alliance 的 Wi-Fi Aware 标准,作为 DMA 互操作性措施的一部分。官方 DMA 路线图指出:

“Apple 应在下一个主要的 iOS 版本(即 iOS 19)中,最迟实施 Wi-Fi Aware 4.0 的措施,并在 Wi-Fi Alliance 最终确定 Wi-Fi Aware 5.0 规范后,最迟在下一个 iOS 版本中九个月内实施 Wi-Fi Aware 5.0 的措施。”

简单来说,到 iOS 19 发布时,iPhone 必须支持 Wi-Fi Aware v4.0,并且 Apple 必须在 Wi-Fi Alliance 最终确定该规范后不久推出 v5.0 支持。

至关重要的是,这一决定并非 Apple 的自愿声明,而是监管机构强加的。Apple 对这些变化一直保持沉默,可能是因为它们涉及开放以前封闭的技术。DMA 的执行时间表是在欧盟的问答网站和法律附件中强调的,而不是 Apple 的新闻稿中。欧盟委员会的措辞明确表明,这是为了使第三方设备和应用程序能够使用与 Apple 自己的设备相同的、高带宽点对点 (P2P) Wi-Fi 功能,而不是 Apple 仁慈地采用新标准。事实上,欧盟的命令迫使 Apple 弃用 AWDL,并确保使用 Wi-Fi Aware 的第三方解决方案与 Apple 的内部协议一样有效。简而言之,欧盟别无选择:要么拥抱 Wi-Fi Aware,要么面临处罚。

这意味着什么?本质上,Apple 用于快速设备间通信的秘密武器——AWDL——正在被迫退役。有了它,iPhone 和 Android 将首次使用一种通用的本地无线网络语言。让我们来剖析一下我们是如何走到这一步的,以及为什么这对开发者来说意义重大。

从 Wi-Fi Direct 到 AWDL 再到 Wi-Fi Aware:简史

为了理解其重要性,我们需要快速了解一下 Ad-hoc Wi-Fi 协议的历史:

总而言之,AWDL 是 Apple 的竞争优势——一种专有的 P2P 堆栈,其性能优于传统的 Wi-Fi Direct,并且仅在 Apple 设备上运行。如果一个应用程序需要跨平台本地连接,它就不能使用 AWDL (Apple 没有提供原始 AWDL API)。开发者们不得不求助于 Wi-Fi Direct,或者 Android 上的 Wi-Fi Aware 与 iOS 上的 Apple AWDL,而没有互操作性。这种碎片化正是欧盟 DMA 针对的目标。

DMA 的命令有效地迫使 Apple 放弃 AWDL 并与 Wi-Fi Aware 保持一致。委员会明确表示 Apple 必须

“按照 Wi-Fi Aware 规范在 iOS 设备中实施 Wi-Fi Aware”, 以及 “继续…改进 Wi-Fi Aware 标准…Apple 不应阻止 AWDL 成为 Wi-Fi Aware 标准的一部分”,

甚至敦促 Apple 在完全弃用 AWDL 之前,以非歧视的方式为旧设备上的并发 P2P 分配内存。结论是:AWDL 作为一种私有协议已经结束。

AWDL 内部:Apple 曾经秘密的点对点协议

AWDL 值得仔细研究,因为它展示了 Apple 取得的成就,以及现在将通过 Wi-Fi Aware 开放的内容。AWDL 是如何工作的?简而言之,它会在附近的 Apple 设备之间_动态_创建一个持续同步的 Ad-hoc 网络:

正是欧盟正在打破这个围墙花园。“Apple 应向第三方提供 Wi-Fi Aware” 的指令意味着 Apple 必须公开新的 iOS API,用于基于标准的 P2P 连接。由于 Android(甚至一些 IoT 设备)已经支持 Wi-Fi Aware,因此我们正在迈向一个 iPhone 和 Android 手机可以通过 Wi-Fi 直接找到并连接的世界,无需接入点,无需云,无需破解——AWDL 本身从未允许这种情况发生。

Wi-Fi Aware 4.0:新的跨平台标准

那么,Wi-Fi Aware(又名 NAN)到底是什么?为什么 4.0 版本会改变游戏规则?从高层次来看,Wi-Fi Aware 提供_与 AWDL 相同的功能_,但它是一个面向所有供应商的开放标准。它允许设备通过 Wi-Fi 直接相互发现和交换数据,而无需路由器或蜂窝网络服务。您可以将其视为 Wi-Fi 对 Bluetooth 发现的回应,但具有 Wi-Fi 的速度和范围。Wi-Fi Aware 的一些关键技术特性(尤其是在最新的 v4.0 规范中)包括:

本质上,Wi-Fi Aware 4.0 是 AWDL 的增强版,并且对所有人开放。它采用了 Apple 首创的概念(时隙同步、双 Wi-Fi/BLE 使用等),并将它们形式化为跨供应商标准,并在其中添加了改进。任何通过 Wi-Fi Aware 认证的设备都可以加入发现集群并连接,不再局限于 Apple 设备。借助 iOS 19,iPhone 将成为另一个 Wi-Fi Aware 节点——能够通过 Wi-Fi 直接发现并连接到 Android 手机、PC、IoT 小工具等。

AWDL 与 Wi-Fi Aware 与 BLE:功能比较

Apple 的 AWDL、即将推出的 Wi-Fi Aware 和良好的旧 Bluetooth Low Energy 如何叠加?下表总结了这些点对点无线技术的关键差异和功能:

| 功能 | Apple AWDL (专有) | Wi-Fi Aware 4.0 (2022 规范) | Bluetooth LE (5.x) | | -------------------- | ----------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------------------------- | | 标准化 | Apple 定义(私有协议) | Wi-Fi Alliance NAN 标准 | Bluetooth SIG 标准 | | 拓扑 | Mesh 网络。集群中的多个设备。一个充当时间同步主设备。 | 去中心化集群(没有固定的主设备)。通常是一对一的数据链路,但支持多个链路。 | 点对点或星型(一对多,每个连接 1:1)。没有原生 mesh 路由。 | | 发现机制 | AWDL 帧(Wi-Fi 信标),BLE 辅助的初始发现(例如,AirDrop)。 | 发布/订阅发现与 NAN 帧。支持带外 BLE 唤醒以节省电量。 | BLE 广播信道、低功耗持续广播和扫描。 | | 初始连接延迟 | 使用 BLE 辅助(AirDrop)非常快(<1 秒)。快速 AWDL 链路设置。 | 快速(<1 秒典型)发现,发现后数十毫秒的连接设置。 | 快速发现(约 0.5–1 秒)。连接建立延迟(50–100 毫秒)。 | | 数据吞吐量 | 高 – 160–320 Mbps 实际(AirDrop)。Wi-Fi 5/6 速度。 | 高 – 在 Wi-Fi 5 硬件上 100+ Mbps 实际,在 Wi-Fi 6 上可能 250+ Mbps。 | 低 – 最大约 1.36 Mbps 应用程序吞吐量 (BLE 5),通常 0.2–0.5 MB/s。 | | 范围 | ~50–100 米典型 Wi-Fi 范围。100 米+ 视线距离。 | ~50–100 米典型 Wi-Fi 范围,类似于 AWDL。 | 高达 100–200 米典型;使用 BLE 5 远程(编码 PHY)最大约 1 公里视线距离。 | | 并发互联网 | 是 – 通过信道跳频同时进行基础设施 Wi-Fi 和 P2P。 | 是 – NAN 发现窗口围绕 AP 连接进行调度。支持共存。 | 是 – BLE 与 Wi-Fi 分开,并行运行。 | | 值得注意的功能 | 专有;为 AirDrop/AirPlay 提供动力;Mesh 带有主设备;没有直接的公共 API(应用程序使用 Multipeer Connectivity)。 | 开放标准;灵活的发现;即时消息;内置的安全数据路径设置;自 2017 年以来支持 Android API。 | 普遍支持;极其节能;后台存在检测;有限的数据速率。通常与 Wi-Fi 结合用于批量传输。 |

(注意:以上范围和吞吐量基于 Ditto 的实际测试和规范数据。Bluetooth 5 的理论范围增加 4 倍可以达到约 400 米视线距离,典型可用范围为室内 100–200 米。Wi-Fi 范围随环境变化很大。)

正如该表所示,Wi-Fi Aware (NAN) 和 AWDL 在功能上非常匹配——鉴于它们的亲缘关系,这不足为奇。对于高带宽应用,两者都大大优于 Bluetooth LE,尽管 BLE 对于超低功耗需求和简单的接近检测仍然非常宝贵。AWDL 和 Aware 占据的优势在于:在房间或建筑物楼层的距离上,以快速的本地数据交换(从数十兆位到数百兆位),而不需要任何网络基础设施。这就是为什么迫使 Apple 支持 Wi-Fi Aware 如此关键——这意味着相邻的 iPhone 和 Android 手机最终可以在没有接入点的情况下建立快速的直接 Wi-Fi 链接,这在以前是不可能的(因为 iPhone 只会使用 AWDL,而 Android 只会使用 Wi-Fi Aware/Wi-Fi Direct)。实际上,欧盟正在全行业统一该表的中间列(“Wi-Fi Aware”),并将专有的 AWDL 列推向过时。

Wi-Fi Aware 5.0 的一瞥 – 接下来是什么?

欧盟已经在展望 Wi-Fi Aware 5.0,要求 Apple 在可用时支持它。虽然 v5.0 仍在开发中,但我们可以根据行业趋势和草案讨论进行推测:

一旦 Wi-Fi Alliance 发布 Wi-Fi Aware 5.0 规范,我们就会确切地知道,但方向很明确:更快、更远、更无缝的点对点连接。重要的是,Apple 将从一开始就加入(不像以前的标准那样晚了几年)。

Wi-Fi Aware in Action:Android Kotlin 示例

为了说明开发者如何使用 Wi-Fi Aware,让我们来看一个 Android 上的简化实际示例。下面是 Kotlin 代码,演示了设备发布服务和处理来自订阅者的消息。(Android 的 Wi-Fi Aware API 可从 API 级别 26 获得;必须具有位置和“附近的 Wi-Fi 设备”权限,并且设备必须支持 Aware。)

val wifiAwareMgr = context.getSystemService(Context.WIFI_AWARE_SERVICE) as WifiAwareManager
if (!wifiAwareMgr.isAvailable) {
  Log.e("WiFiAwareDemo", "Wi-Fi Aware not available on this device.")
  return
}
// Attach to the Wi-Fi Aware service
wifiAwareMgr.attach(object : AttachCallback() {
  override fun onAttached(session: WifiAwareSession) {
    // Once attached, we can publish or subscribe
    val publishConfig = PublishConfig.Builder()
      .setServiceName("com.example.p2pchat")  // Name of our service
      .build()
    session.publish(publishConfig, object : DiscoverySessionCallback() {
      override fun onPublishStarted(pubSession: PublishDiscoverySession) {
        Log.i("WiFiAwareDemo", "Service published, ready for subscribers.")
      }
      override fun onMessageReceived(
        session: DiscoverySession,
        peerHandle: PeerHandle,
        message: ByteArray
      ) {
        val msgStr = String(message, Charsets.UTF_8)
        Log.i("WiFiAwareDemo", "Received message from subscriber: $msgStr")
        // Here we could respond or establish a data path if needed
      }
    }, null)
  }
  override fun onAttachFailed() {
    Log.e("WiFiAwareDemo", "Failed to attach to Wi-Fi Aware session.")
  }
}, null)

在这段代码中,该应用程序连接到 Wi-Fi Aware 服务,然后发布一个名为 "com.example.p2pchat" 的服务。当对等设备订阅并向我们发送消息(例如,“来自订阅者的 Hello”)时,它会到达 onMessageReceived 中。订阅设备将执行补充步骤:使用相同的服务名称调用 session.subscribe(...) 并实现 onServiceDiscovered 以检测发布者,然后可能使用 subscribeSession.sendMessage(peer, ...) 发送该“Hello”。此时,任何一方都可以使用 WifiAwareSession.createNetworkSpecifier() 来设置用于更大通信的实际数据路径(网络接口)。

关键的要点是,Wi-Fi Aware 使对等设备发现和消息传递成为 API 中的头等公民,从而抽象出了底层的 Wi-Fi 细节。应用程序开发者只需提供服务名称,并在出现对等设备或消息到达时获得回调。

(注意:以上是一个最小的示例。在实际应用程序中,您将处理权限,通过 PackageManager.FEATURE_WIFI_AWARE 检查支持情况,并且可能在 Android 13+ 上使用新的 NEARBY_WIFI_DEVICES 权限。此外,建立完整的数据路径将涉及使用来自 Aware 会话的网络说明符从 ConnectivityManager 请求 Network。)

在 Google 宣布 Android 中的 Wi-Fi Aware 后,我们在 Ditto 立即意识到了它在无缝对等同步方面的潜力。如上所示,您当然可以使用 Aware 推出自己的发现和数据交换。但是,并非每个开发者都希望管理这些细节或处理连接性的极端情况。这就是为什么 Ditto 的实时同步 SDK 正在开箱即用地集成 Wi-Fi Aware 支持**。**

我们即将发布的版本将在底层自动使用 iOS 中的 Wi-Fi Aware 来进行附近的设备,从而在零配置的情况下实现 iOS 和 Android 之间的对等数据库同步和二进制文件共享。实际上,如果您使用 Ditto 构建应用程序,则附近的两个设备将能够使用最快的可用传输方式(现在包括 Wi-Fi Aware 以及 Bluetooth、AWDL、LAN 等)直接找到彼此并同步数据(绕过云或 LAN)。

跨平台、边缘优先的应用程序(协作应用程序、离线优先数据存储、本地 IoT 网络)将从中受益匪浅,因为设备将形成一个本地 mesh,该 mesh 可以立即、可靠地同步,即使互联网已关闭。Ditto 的方法一直是多路复用多个传输方式(Wi-Fi 基础设施、P2P、BLE 等)以实现稳健性;添加 NAN 支持可以增强附近同步会话的可用带宽。

一个具体的例子:考虑一个为急救人员设计的应用程序,该应用程序在现场团队之间共享地图和实时传感器数据。借助 Wi-Fi Aware,Android 平板电脑、iPhone 和专用头盔设备都可以自动相互发现,并形成一个 mesh 以实时同步任务数据,而无需任何网络。以前,如果 iPhone 上有一个使用 AWDL 的应用程序,它就无法直接连接到 Android 平板电脑的 Wi-Fi Aware 会话——它们是不兼容的孤岛。现在,它们将使用一种语言,使这种场景真正可行。

更大的图景:真正跨平台 Mesh 网络的曙光

Apple 不情愿地采用 Wi-Fi Aware 标志着设备连接的转折点。多年来,我们看到了分裂:Apple 的生态系统在自身内部“Just Works”(这要归功于 AWDL、AirDrop 等),而其他平台则使用从未完全匹配无缝性或性能的标准。这使得跨平台交互受阻——在 iPhone 和 Android 之间共享内容的体验远非即时或简单。

随着 iOS 支持 Wi-Fi Aware,我们基本上看到了 AWDL 的开放。为 Apple 的一些最神奇的功能提供支持的专有技术现在将以可互操作的方式提供给任何开发者。其影响是巨大的:

人们不能忽视 Wi-Fi Aware 标准实际上是 AWDL 的子标准的_讽刺_。现在子标准又回来取代了它的母标准。从技术的角度来看,这是工程优雅的胜利——拥有一个商定的协议而不是并行的协议总是更干净。从开发者的角度来看,这是互操作性和用户覆盖范围的巨大胜利。

Apple 无疑将确保过渡不会降低 Apple-to-Apple 交互的体验;DMA 甚至要求第三方访问与 Apple 自己的解决方案_“同样有效”_。这意味着作为开发者,我们应该期望新的 iOS 19 Wi-Fi Aware API 基本上会给我们 Apple 应用程序所拥有的 AWDL。这就像被 handed the keys to a supercar that was previously locked in Apple’s garage.

结论

欧盟对 Apple 封闭生态系统的打击正在催化短程无线技术领域期待已久的统一。通过迫使 Apple 采用 Wi-Fi Aware,《数字市场法案》实际上正在强制结束 AWDL 作为专属领域。对于开发者和用户来说,这是一个令人兴奋的消息:很快,您的应用程序将能够在 iPhone 上使用高速点对点 Wi-Fi,并使其与其他平台无缝通信。我们可能会看到本地连接的创新用途激增——从真正通用的 AirDrop 替代方案到跨平台本地多人游戏、Ad-hoc 协作编辑、IoT 设备调试等等——无需专门的硬件或路由器。

从技术层面来看,AWDL 将被铭记为一种超前的解决方案,它证明了什么是可能的,而 Wi-Fi Aware 确保这些功能可以作为行业标准广泛使用。随着 Wi-Fi Aware 4.0 即将普及(并且 5.0 指日可待),我们正在进入一个设备之间在物理上无摩擦地共享和同步的新时代。这是互操作性的胜利,也是点对点网络创新的胜利。AWDL 周围的墙正在倒塌——这对边缘计算和离线体验的影响是深远的。

资料来源:

[1] 欧洲委员会 – 关于 Apple 互操作性的 DMA 决策(问答)高带宽 P2P Wi-Fi(iOS 19 中的 Wi-Fi Aware 4.0,下一个是 Wi-Fi Aware 5.0)。(2025) (Interoperability - European Commission) [2] The Apple Wiki – Apple Wireless Direct Link (AWDL)用于 AirDrop/Continuity 的 iOS 7 (2014) 中引入的专有网格协议。 (Apple Wireless Direct Link - The Apple Wiki) (Apple Wireless Direct Link - The Apple Wiki) [3] ZDNet – Apple 的 AWDL 协议受到缺陷困扰…研究说明:“NAN (Wi-Fi Aware) 是 Android 支持的新标准,它借鉴了 AWDL 的设计。” (2019 年 11 月) (Apple's AWDL protocol plagued by flaws that enable tracking and MitM attacks | ZDNET) [4] Android AOSP 文档 – Wi-Fi Aware 功能(Neighbor Awareness Networking)在 Android 8.0 中添加;支持发现、连接和测距(在 Android 9 中添加)。 (Wi-Fi Aware | Android Open Source Project) [5] Nordic Semiconductor – Bluetooth Range ComparedBluetooth 5 LE 提供高达 ~400 米的范围(4 倍于 BLE4)、2 Mbps PHY、~1.36 Mbps 应用程序吞吐量。 (Things You Should Know About Bluetooth Range) [6] Computerworld – 即将推出:更快、更远距离的 Bluetooth 5“在清晰的视线范围内,Bluetooth 5 范围可以延伸到 400 米,” (2016) [7] BGR -- iOS 19 Features Coming to EU -- 详细介绍了 EU iPhones 的新功能,包括高带宽 P2P Wi-Fi、侧加载和替代应用商店(2025 年 3 月)(8 Exclusive iOS 19 Features Coming to EU iPhone Users) [8] Open Wireless Link Wiki - 什么是 Apple Wireless Direct Link (AWDL) -- Apple 关于 AWDL 的专利 (US201800838) 及其作为 Wi-FI IBSS 后继产品的起源(Wiki | Open Wireless Link) [9] CyberHoot – Apple Wireless Direct Link (AWDL) –Apple 在超过 10 亿台设备上部署了 AWDL,以支持 AirDrop、AirPlay 对等连接等 (2002) ([Apple Wireless Direct Link (AWDL) - Cybe