2012年5月30日 星期三

wifi basic diagram on Linux

reference http://acx100.erley.org/stable.html

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.

沒有留言:

張貼留言