一晃13年过去了,苹果的Airdrop依然很坚挺。

撰稿 | 张大圣

苹果Airdrop三部曲

https://mp.weixin.qq.com/s/23DTl05QWj-pRoGJxxPNvQhttp://苹果这些年,AWDL 一代神兵,技术详细拆解https://mp.weixin.qq.com/s/C8QZSSxwrL2gUul6KmoO7ghttp://一晃13年过去了,苹果的Airdrop依然很坚挺。https://mp.weixin.qq.com/s/b3_mSvk4rl2PV-8EG8YawAhttp://苹果转向:Wifi Aware优势在哪里?原理解析

先看技术时间线

  • 2010.6.30 BLE随着core4.0发布

  • 2012年 三星S Beam(NFC)

  • 2013年 Airdrop跟随IOS 7发布

  • 2016年 华为 HUAWEI分享

  • 2020年 三星快速分享

Airdrop是苹果开发的短距通信功能,比如分享视频,照片等等。体验确实无比丝滑,发现附近设备没有明显延迟。

手机间分享文件,蓝牙吞吐率太低,一张3MB照片需要几分钟;用wifi Direct设备确实快,但设备连接过程复杂,可以劝退绝大多数用户。

逆向工程的完美揭开Airdrop的真面目,协议框架非常精致。

Airdrop的整个传输过程分为三个阶段

  • 设备发现BLE+AWDL

  • 身份验证Authentication

  • 数据传输Data Transfer

功能启动:双方都需要启动Airdrop功能,同时其依赖的蓝牙和wifi功能也需要打开。开启Airdrop后会在后台开启ble的广播和扫描动作。

设备发现过程:以用户信息为参数计算Hash值,ble广播的有效字段填充这个Hash值以及截短的设备名字,设备收到广播并解析Hash后,对照自己存储的历史用户列表,匹配成功就直接显示对方的头像等详细信息,否则只有截断的名字。

采用BLE主要两个原因:首先,ble的广播是在37、38和39广播信道,发现过程非常快,最快十几ms就可以完成发现过程;其次,ble的功耗极低,而且还可以配合ble的背景扫描功能,controller可以过滤特定字段的广播,避免频繁和host通信。

随后,进入设备发现第二步AWDL设备发现,Apple Wireless Direct Link,苹果无线直连属于私有协议,工作在二层的数据链路层,基于这一层的多播通信发现AWDL设备。要比mDNS等应用层基于ip地址的多播快很多。

AWDL创造了一个虚拟的、所有苹果设备共用的BSSID (抓包显示:00:25:00:ff:94:73),所有AWDL设备都将自己的网卡"逻辑上"关联到这个BSSID,从而监听发往该地址的帧。

但随后致命的问题又出现了!每个设备占用自己的wifi物理频段,不仅影响本机的wifi通信,而且不同信道的设备也无法直接通信。AWDL进入设备发现后,会强制切换到共同的频段,通常是44信道;并且会在局域网中协商出来一个master,其主要的作用是提供时钟,兼顾普通wifi和AWDL之间的通信。

这也正是苹果电脑平时要关闭AWDL功能的原因,否则wifi网络会收到明显影响。苹果论坛中有用户反馈的数据,ping网络出现非常高的时延,甚至联通失败。

大神提供了关闭AWDL的命令脚本:每秒监测一次,当awdl网卡启动后,就直接将网卡干掉。

AWDL是苹果这些年非常亮眼的成果之一,基于它实现的功能很多:Airdrop文件传输协议、Airplay投屏协议、通用控制"一套键鼠控制多台Mac/iPad",以及快速连接iPhone热点。

AWDL通信识别对方是Airdrop设备后,会创建awdl0网络节点,同时操作系统会自动为其配置链路本地IPv6地址(如 fe80:: 开头的地址),然后通过Bonjour / mDNS启动应用层的多播服务,为真正的传输交互数据。

开启awdl后,系统中会看到awdl0名称的网卡。

在用户真正点击对方头像"分享"后,进入用户认证阶段,对方手机会出现图片的缩略图,以及接受和拒绝的按钮。请求用户许可。这个阶段对应建立TLS安全链路,并携带用户信息。

当用户认证完成后,就可以看到对方的头像缩略图信息。

最后,数据传输阶段依然是建立TLS安全链路,http协议传输用户数据。

iphone中Airdrop功能有多种模式:所有人可见,仅限联系人,接收关闭,平时基本不使用其传输文件的,建议默认关闭。

设置路径:

  • iPhone/iPad:前往 设置 > 通用 > 隔空投送;或在控制中心长按网络设置块后点击隔空投送图标进行快速切换。

  • Mac:前往 系统设置 > 通用 > 隔空投送与接力

创作不易,关注一哈,谢谢

未来侦察班

科技圈的这点事儿,挺有意思

108篇原创内容

公众号

往期文章

蓝牙那些事,BLE低功耗蓝牙Host主机GATT

蓝牙那些事,蓝牙Host主机L2CAP层

蓝牙那些事,BLE低功耗蓝牙Host主机ATT

蓝牙那些事,BLE低功耗蓝牙controller

蓝牙那些事,BR/EDR经典蓝牙HCI主机控制器接口

蓝牙那些事,BR/EDR经典蓝牙controller

蓝牙那些事,前传一文讲完

一言不合,上蓝牙资料60+

不废话,上wifi资料包98+

wifi的"斩杀线" CCA机制

wifi7失去6GHz频段,还有竞争力吗?看看实测数据(文末领报告)

参考:

https://jiapan.me/2023/AWDL-Mac-disconnected/

https://discussionschinese.apple.com/thread/255369050?sortBy=best

相关推荐
恋猫de小郭6 分钟前
Apple 的 ANE 被挖掘,AI 硬件公开,宣传的 38 TOPS 居然是"数字游戏"?
前端·人工智能·ios
忆江南18 小时前
iOS 深度解析
flutter·ios
没有故事的Zhang同学18 小时前
05-主题|事件响应者链@iOS-应用场景与进阶实践
ios
FeliksLv1 天前
尝试给Lookin 支持 MCP
ios
没有故事的Zhang同学1 天前
01-研究系统框架@Web@iOS | JavaScriptCore 框架:从使用到原理解析
ios
pe7er3 天前
macOS 应用无法打开(权限问题)解决方案
macos·mac
CocoaKier3 天前
苹果谷歌商店:如何监控并维护用户评分评论
ios·google·apple
iOS日常3 天前
iOS设备崩溃日志获取与查看
ios·xcode
wangruofeng3 天前
AI 助力 Flutter 3.27 升级到 3.38 完整指南:两周踩坑与实战复盘
flutter·ios·ai编程
iOS日常4 天前
Xcode 垃圾清理
ios·xcode