一 Android 数据包过滤器
1.1 概述
硬件中的数据包过滤对于实现可接受的功耗至关重要。唤醒应用处理器(AP)的成本比在 Wi-Fi 固件中丢弃数据包的成本高 1 到 2 个数量级。
之前 Android 上的数据包过滤支持复杂且不灵活。它由多个不同的过滤器组成(例如,内核多播过滤器、驱动程序接收过滤器)。这意味着如果不修改固件,过滤逻辑就无法更改;难以轻松适应网络条件;在不同设备上存在差异,并且无法进行代码审查。
因此,谷歌 Android N 引入了 Android 数据包过滤器功能(APF),这是一种硬件数据包过滤架构。该架构的工作原理如下:
- 谷歌框架(或应用程序)生成数据包过滤程序。
- 谷歌框架通过框架数据包过滤功能和 Wi-Fi 驱动程序支持,将数据包过滤程序传递给 Wi-Fi 固件。
- Wi-Fi 固件支持用于传入数据包的数据包过滤程序解释器。
- 在 Wi-Fi 固件中运行的数据包过滤程序会检查传入的数据包,并据此做出判断。
后续章节将对此进行更详细的说明。
1.2 考量因素
APF 支持以下特性:
- APF 具备在运行时控制数据包过滤的框架。
- 将所有现有数据包过滤器(可能除了 L2 多播过滤器)统一为一种机制。
- 利用该机制实现增强的节能效果,例如在休眠模式下丢弃传入的数据包。
- 该 API 应能适用于所有链路类型(例如,Wi-Fi、电话网络)。
由于目标之一是尽可能通用,最简单的方法是提供两种类型的过滤器
订阅专栏 解锁全文
1239

被折叠的 条评论
为什么被折叠?



