我试图了解无线在linux中的工作原理。我从wpa_supplicant、hostapd应用程序开始,借助它们的文档和源代码code.Understood (流程和基本功能):
我理解了上面的软件流程,在我的探索中,我了解到,为了为开发人员提供自由,MAC层是在软件(流行的实现mac80211)中实现的。
在所有情况下都是这样吗?如果是这样的话,softMAC和hardMAC的利弊是什么?内核中的cfg80211接口是否直接与驱动程序通信?谁以及如何与mac80211进行沟通?
提前谢谢。
发布于 2015-02-06 07:35:41
术语“SoftMAC”是指在硬件上不实现MAC层的无线网络接口设备(WNIC),它期望驱动程序实现MAC层。
'HardMAC‘(也称为'FullMAC')描述了一个WNIC,它在硬件中实现MAC层。
SoftMAC的优点是:
另外一个优点(至少在Linux内核中)是,不同类型WNIC的许多不同驱动程序都可以共享内核本身提供的相同的MAC实现。
尽管有这些优点,但并不是所有的WNIC都使用SoftMAC。HardMAC的主要优点是,由于其功能是在硬件上实现的,因此它们贡献的CPU负载较少。
mac80211是Linux内核中用于实现SoftMAC驱动程序的框架。它实现了cfg80211回调,否则必须由驱动程序自己实现,并且还实现了MAC层功能。因此,它位于cfg80211和SoftMAC驱动程序之间。
HardMAC驱动程序必须完全自己实现cfg80211接口。
发布于 2015-10-29 10:13:02
还需要补充:与SoftMAC相比,Hardmac驱动程序的帮助更大,由于在HW中实现了MLME,节省了电源和快速连接/断开连接恢复。更好的省电是因为HW/FW不需要在断开时唤醒主机,还可以连接和恢复。
https://stackoverflow.com/questions/28343384
复制相似问题