WIFI接入之Authentication和Association流程梳理

目录

1.Authentication

2.Association

3.总结


在Wifi与AP进行四次握手前,需要进行Authentication(认证)和Association(关联)操作。这里梳理一下这两个操作的流程。

认证:提供身份的校验。

关联:建立信息通信关系。

四次握手:确定后面通信过程中所使用到的各种秘钥。关于四次握手,请参考领一篇文章:supplicant 四次握手流程

1.Authentication

framework层通过JNI接口,发送socket消息给Supplicant。

WIFI接入之Authentication和Association流程梳理

WIFI接入之Authentication和Association流程梳理

WIFI接入之Authentication和Association流程梳理

WIFI接入之Authentication和Association流程梳理

WIFI接入之Authentication和Association流程梳理

由如下的结构体,我们可以看到authenticate方法对应的是wpa_nl80211_authenticate。

WIFI接入之Authentication和Association流程梳理

接着往下看:

WIFI接入之Authentication和Association流程梳理

WIFI接入之Authentication和Association流程梳理

WIFI接入之Authentication和Association流程梳理

WIFI接入之Authentication和Association流程梳理

WIFI接入之Authentication和Association流程梳理

WIFI接入之Authentication和Association流程梳理

WIFI接入之Authentication和Association流程梳理

也就是说,supplicant在Authentication阶段阶段只是个通路,做核心的功能实现是在driver中。

2.Association

这个流程跟上一节是类似的,在这里简单说明:

与上层对应的消息是PRIVSEP_CMD_ASSOCIATE:

WIFI接入之Authentication和Association流程梳理

supplicant与driver通信也是通过socket,关键实现是在如下接口中:

WIFI接入之Authentication和Association流程梳理

WIFI接入之Authentication和Association流程梳理

WIFI接入之Authentication和Association流程梳理

WIFI接入之Authentication和Association流程梳理

 

3.总结

supplicant通过socket与驱动交互上报数据给用户,而用户可以通过socket发送命令给supplicant调动驱动来对WiFi芯片操作。 简单的说,wpa_supplicant就是WiFi驱动和用户的中转站外加对协议和加密认证的支持