Wi-Fi基础
无线电频谱管制机构
缩写 | 全称 | 说明 |
FCC | Federal Communication Commission | 美国联邦通信委员会 |
ERO | European Radio-Communication Office | 欧洲无线电通信局 |
MIIT | Ministry of Industry and Information Technology | 中国工信部下属的无线电管理局 |
ITU | International Telecommunication Union | 国际电信联盟 |
ISM(Industrial Scientific Medical):国际共用频段。
WFA(Wireless Fidelity Alliance):Wi-Fi联盟,负责认证商标授权。
IEEE 802.11,Insitute of Electrical and Electronics Engineers,美国电气和电子工程师协会。802局域网标准,11无线局域网。
OSI(Open System Interconnection Reference Model)计算机网络体系结构七层模型,数据链路层(Data Link Layer)分为LLC,MAC子层。
LLC(Logic Link Control Sub Layer),逻辑链路控制子层。
MAC(Media Access Control Layer)媒介访问控制子层。
CSMA/CD(Carrier Sense Multiple Access/Collision Detect),载波监听多路访问/冲突检测机制。
CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance), 载波监听多路访问/冲突避免机制。
RTS-CTS握手。RTS(Request To Send),CTS(Clear To Send)
物理组件:
缩写 | 全称 | 说明 |
WM | Wireless Medium,无线媒介 | 物理层,射频、红外 |
STA | Station,工作站 | 带有无线无卡的设备 |
AP | Access Point,接入点 | 提供DS服务 |
DS | Distribution Service |
网络构建:
缩写 | 全称 | 说明 |
BSS | Basic Service Set | 基础服务集,无线网基本构建组件。 |
IBSS | Independent(独立型) BSS | 不需要AP,自组网络,对等网络 |
Infrastructure BSS | 基础结构型BSS | STA间交换需要通过AP |
ESS | Extended Service Set | 控制服务集,多个BSS组成 |
BSSID | BSS Identification | AP的MAC地址,IBSS的MAC随机 |
SSID | Service Set Identification | 网络名 |
服务:
缩写 | 全称 | 说明 |
SS | Station Service | STA应该具有的功能 |
DSS | Distribution System Service | DS应该具有的功能 |
DS | Distribution Service | 分布式服务,跨BSS传递数据 |
IS | Intergration Service | 整合服务,Portal发送数据到LAN |
Authentication | 身份验证 | |
Deauthentication | 解除身份验证 | |
TPC | Transmit Power Control | 传输功率控制 |
DFS | Dynamic Frequency Selection | 动态频率选择 |
RRP | Resource Reservation Protocol | 预留资源 |
TSF | Timing Synchronization Function | 时间同步 |
Radio Measurement | 无线电测量,发现AP |
MAC服务:
认证:
缩写 | 全称 | 说明 |
WEP | Wired Equivalent Privacy | 有线等效加密Key Stream,伪随机数发生器,XOR |
Open System Authentication | 开放系统身份验证 | |
Shared Key Authentication | 共享密钥身份认证 | |
WPA | Wi-Fi Protected Access | WFA提出中间方案 |
TKIP | Temporal Key Intergrity Protocol | 临时密钥完整性协议 |
CCMP | Counter Mode with CBC-MAC Protocol | 计数器模块及密码块链消息认证码协议,基于AES |
RSN | Robust Security Network | 强健安全网络,WFA称为WPA2 |
EAP | Extensible Authentication Protocol | RFC 3748 |
Authenticator | 验证着,AP | |
Supplicant | 验证申请者,STA | |
BAS | Backend Authentication Server | 后台认证服务器 |
AAA | Authentication、Authorization and Accounting | 认证,授权和计费,RADIUS服务器,是BAS的一种具体实现 |
RSNA | Robust Security Network Association | 强健安全网络联合 |
PMT | Pairwise Master Key | 成对主密钥 |
PKT | Pairwise Transient Key | 成对临时密钥 |
wex(wext)
Linux Wireless Extension,使用ioctl函数控制无线网卡驱动。
iwreq,iwreq_data
netlink
libnl
源代码位于:external/libnl。
下面三个库,其核心都基于libnl。
库 | 说明 |
libnl-route | 用于和Kernel中的Routing子系统交互 |
libnl-nf | 用于和Kernel中的Netfilter子系统交互 |
libnl-genl | 用于和Kernel中的Generic Netlink模块交互 |
libnl_2
Android精简了libnl,得到libnl_2,源代码位于:system/core/libnl_2。
wpa_supplicant
源代码位于:external/wpa_supplicant_8。
cfg80211用于驱动开放,nl80211 API供用户空间程序调用。使用netlink机制。
wpa_supplicant、wpa_cli、libwpa_client。
hostapd、hostapd_cli。
软件架构:
模块 | 说明 |
event loop | 事件驱动,主线程,没有多线程 |
driver wrapper | 封装驱动接口,如wext |
driver events | 驱动返回的信息处理 |
EAP状态机 | |
EAPOL状态机 | |
EAP methods | EAP加密、校验方法 |
l2_packet | 收发EAPOL和EAP信息 |
configuration | 配置参数处理 |
ctrl i/f | 与客户端通信接口 |
客户端命令:
命令 | 说明 |
PING | 心跳检测,返回PONG |
MIB | 获取MIB信息 |
STATUS | 获取工作状态 |
ADD_NETWORK | 添加一个新的无线网络,返回网络ID,后续命令使用ID |
SET_NETWORK | 设置无线网络信息 |
ENABLE_NETWORK | 加入该无线网络 |
CTRL-REQ | 向客户端发送命令 |
CTRL-RSP | 客户端应答 |
CTRL-EVENT | 向客户端通知事件 |
控制API(wpa_ctrl.h):
命令 | 说明 |
wpa_ctrl_open | 打开wpa_ctrl 控制对象,建立UNIX套接字连接 |
wpa_ctrl_close | 关闭wpa_ctrl控制对象 |
wpa_ctrl_request | 发送命令并等待应答,同时可以接受事件 |
wpa_ctrl_attach | 打开事件监听功能 |
wpa_ctrl_recv | 接收事件 |
初始化流程:
- wap_supplicant_init()
- wap_msg_register_ifname_cb()【设置一下回调方法】
- eap_register_methods()
- eap_peer_md5_register()
- …
- epoll_init()
- random_init()
- wpa_supplicant_global_ctrl_iface_init()
- wpa_drivers【分配驱动私有信息空间drv_priv,void*】