做购物网站需要什么资质,WordPress博客模板慢,三拼域名做网站长不长,网站域名注册流程Wifi架构介绍
本文基于Android介绍其Wifi架构。Wifi是许多操作系统提供的重要功能之一#xff0c;特别是越来越多的车载系统wifi是其必备功能。为啥wifi是必备功能#xff1f; 一方面是传统的上网#xff08;现在有些车载使用DCM模块管理网络#xff09;#xff0c;另一方…Wifi架构介绍
本文基于Android介绍其Wifi架构。Wifi是许多操作系统提供的重要功能之一特别是越来越多的车载系统wifi是其必备功能。为啥wifi是必备功能 一方面是传统的上网现在有些车载使用DCM模块管理网络另一方面就是AP功能了是自身成为热点因为无线Carplay和无线AndroidAuto是需要借助蓝牙协议AP实现无线认证及数据传输而Carplay、AndroidAuto是车载系统的主要业务功能之一。
Wifi架构
Wifi架构图参考如下包括应用App、Service层、Oss三方库、系统层Socket
应用层
WifiApp。应用层根据系统使用的UI框架调用网络服务API进行开发。如Android可以采用Java形式开发linux可以采用QT、CEGUI、Kanzikanzi也适用于Android进行开发。通过调用服务层提供的接口实现相应功能打开/关闭无线、打开Ap模式、打开P2P模式、选择加密算法等等。
服务层
主要包括NetWorkManager、WifiService两个服务。
networkmanager网络管理服务向应用层提供DHCP动态主机配置协议动态分配地址、网络状态管理等功能。实际上是通过libnetutils这个动态库调用dhcpd这个服务来实现的。WifiService一般来说wifi service会提供无线搜索、无线连接、无线断开模式切换staion、p2p、ap等功能。Station指标准无线模式Station模式下将设备连接到无线网。AP指master模式即从无线模式切换到热点模式。P2P指直连模式。WifiService使用libwifi提供的接口实现功能。
Oss三方库 功能开发时很少重复造轮子一般都会考虑使用现有的三方库商用系统还需要考虑三方库的license。参考Android系统使用了libnetutils提供网络管理功能、libwifi提供无线管理功能。 dhcpd第三方开源库。提供了dhcp功能libnetutils通过socket “PF_PACKET : local socket”与dhcpd交互。 wpa_supplicant第三发开源库。wpa_supplicant提供了wifi功能libwifi通过socket “wlan0 : local socket”与其交互。 hostapd第三发开源库。hostapd提供了AP、P2P等功能。libwifi通过linux socket与交互。 dhcpd、hostapd、wpa_supplicant都提供了Config文件通过配置文件实现相应功能。 一般来说功能开发时通过三方库提供的基本功能再根据具体业务需要可进行源码的二次开发。
系统层
这里的系统层指的就是Linux系统了。Linux系统提供了基本的系统级服务文件管理、进程管理、IPC(Socket、共享内存、管道)等等。
Wifi应用打开AP模式
以Wifi打开AP模式为例整理流程为
应用层调用WifiService的接口完成Ap Model Enable功能。wifiservice处理业务逻辑获取并组合业务层信息。调用libwifi的API。libwifi根据业务层信息创建配置文件通过ctl.start(实际上是socket通信启动hostapd进程。hostapd进程被系统拉起读取config文件启动Ap功能。
本文简单介绍了Wifi架构可以看出从软件层次考虑当然也需要考虑硬件。主要包括Oss的选择分层每一层完成何种功能、层与层间的通信形式、应用框架的选择等方面的考虑。当前除了这些诸如安全、wifi认证等方面也需要考虑。