Apple Wireless Direct Link (AWDL) is a proprietary and undocumented wireless ad hoc protocol that Apple introduced around 2014 and which is the base for applications such as AirDrop and AirPlay. We have reverse engineered the protocol and explain its frame format and operation in our MobiCom '18 paper "One Billion Apples' Secret Sauce: Recipe of the Apple Wireless Direct Link Ad hoc Protocol." AWDL builds on the IEEE 802.11 standard and implements election, synchronization, and channel hopping mechanisms on top of it. Furthermore, AWDL features an IPv6-based data path which enables direct communication. To validate our own work, we implement a working prototype of AWDL on Linux-based systems. Our implementation is written in C, runs in userspace, and makes use of Linux's Netlink API for interactions with the system's networking stack and the pcap library for frame injection and reception. In our demonstrator, we show how our Linux system synchronizes to an existing AWDL cluster or takes over the master role itself. Furthermore, it can receive data frames from and send them to a MacBook or iPhone via AWDL. We demonstrate the data exchange via ICMPv6 echo request and replies as well as sending and receiving data over a TCP connection.
翻译:苹果无线直接链接(AWDL)是苹果于2014年前后推出的专有和无证无线无线特设协议,是AirDrop和AirPlay等应用程序的基础。我们已经在MobiCom'18的论文“十亿苹果的秘密酱:苹果无线直接链接特设协议的食谱”中反转了协议的设计,解释了其框架格式和操作。AWDL在IEE E 802.11标准上建了基础,并实施了选举、同步和频道购物机制。此外,AWDL为基于IPv6的数据路径设置了一种能够进行直接通信的路径。为了验证我们自己的工作,我们在Linux的系统上实施了AWDL的工作原型。我们的执行用C书写,运行在用户空间,并利用Linux的网络链接API与系统网络堆和框架注射和接收库。我们演示我们的Linux系统如何同步到现有的AWDL集群或接管主机连接功能。此外,我们可以通过CMWL进行数据交换,通过数据框架或接收数据反馈,我们通过IMPC接收数据。