当前位置: 首页 > 工具软件 > MADWIFI > 使用案例 >

hostapd wpa_supplicant madwifi详细分析(十四)——完结篇

柯良骏
2023-12-01

注:这篇文章不谈技术

查看了一下《hostapd wpa_supplicant madwifi详细分析》系列文章,断断续续更新到现在,发现中间的持续时间都快要两年了。记得那时候刚毕业到公司,组长叫我看项目的无线部分代码,自己稀里糊涂的看了一个月,组长问我:

vap是怎么创建的?sta和AP是怎么建立连接的?wds是怎么工作的?WPS中PIN和PUSHBUTTON的区别是什么?我们DUT中几种加密方式是怎么实现的?hostapd是用来干什么的?

这些问题把我问的瞠目结舌,十分羞愧,感觉自己花了一个多月学的东西对他们来说简直就是鸡毛蒜皮。后来就下定决心开始从hostapd深入学习,一边将自己的想法总结。


这个系列的第一篇文章就是《hostapd是干嘛的?》,其实那时候回答得不好,作为完结篇,这里再回答一下:

hostapd是一个应用程序,作为一个工作在应用层的进程,它能完成什么样的工作,很大程度取决于内核和驱动,而hostapd是和无线相关的进程,所以它对wifi driver的依赖更加的紧密。如果要问hostapd是干嘛的,主要是基于wifi driver来问,不同的无线芯片厂商有不同的实现,有提供不同的wifi driver,所以对需要hostapd来补充相应功能的wifi driver来说,hostapd是实现无线局域网的左膀右臂,比如QCA;但是对于不需要hostapd提供服务,驱动能够封装相应功能的wifi driver来说,hostapd却没大用处。比如MTK。

hostapd几乎可以完成其他无线工具能够完成的无线配置工作,比如iwconfig,iwpriv, wlanconfig, iwlist等工具能完成的工作,hostapd它也可以完成。

hostapd也可以完成无线工具不能完成的工作,包括wpa/wpa2加密,radius加密,WPS,PIN等功能。

所以在应用层,wifi这一块往往只要一个hostapd进程就够了,特别是对于STA接口,比如手机,往往只要一个wpa_supplicant进程就可以完成大多数wifi工作了。因此hostapd不仅能够在应用层完成无线接口的配置,获取无线接口的信息,而且能够实现相应接口的加密功能。


前面一系列文章虽然介绍了hostapd和wpa_supplicant的一些东西,其实并不是很全面,大多数都只是一个概要,并不深入,当然了,对于一个应用程序想要深入到哪里去似乎也不太现实,除非进一步了解driver以及无线网络协议。后面应该不会再写这个系列的文章了,但是会对前面的文章进行维护,进行充实,同时也会维护一个hostapd.git仓库,对其中的一些代码进行注释,有兴趣的同学可以到这里clone查看 git@code.csdn.net:lee244868149/hostapd.git

前面那些文章,主要资料都是来自网络搜索(有冒犯原作者的地方还望指出,会及时修正)以及RFC,个人推荐多参考官方标准文档,毕竟通过别人整理的,都有可能存在差错,别人的书籍或者文章应该用来帮助我们更好的理解RFC,最终还是要回到RFC找最初的依据。下面是相关的RFC:

802.1X-2004.pdf

IEEE Std 802.1X-2010.pdf

rfc4137.State-Machines-for-Extensible-Authentication-Protocol-(EAP)-Peer-and-Authenticator.pdf

802.11-2012.pdf

Wi-Fi_Simple_Configuration_Technical_Specification_v2.0.5.pdf

wpa_supplicant-devel.pdf

IEEE Std 802.1AR-2009 IEEE Standard for Local and metropolitan area networks—Secure Device Identity.pdf

 类似资料: