Basic Diagram of Component Interaction
[Wireless Card] | [Linux Kernel ] | | [udev][libnl]-[iw] | / \ [crda] \ | \ [ Wireless ] | [Regulatory] | [ Database ] | | | [ hostapd ]
Understanding what each part does
Wireless Card:Should be self explanitory... handles sending/receiving wireless packets
Linux Kernel:
The linux kernel contains the driver for the wireless card, the mac80211 subsystem which handles packet generation and scheduling, and the nl80211 subsystem, which handles configuring the wireless interfaces for userspace
libnl:
libnl is the transport layer used to communicate with the kernel via netlink
udev:
udev is the facility the kernel uses to pass events/calls to crda
iw:
iw is a userspace utility that we can use to test that libnl is working correctly, as well as create additional virtual wireless interfaces on the wireless card
crda:
crda is a userspace program that the kernel queries (through udev) to find what channels/frequencies are usable, and at what powers. This moves the information out of static tables maintained in kernel to userspace, which allows them to be updated without reloading drivers/rebooting
Wireless Regulatory Database: database of allowable frequencies and transmit power levels used by crda
hostapd:
This is the daemon that handles generation of beacons and other wireless packets, as wel as wpa-psk, wpa2, etc encryptions.
沒有留言:
張貼留言