linux Wireless基础知识(cfg80211 mac80211 nl80211)

1. 基本概念

? cfg80211:  用于对无线设备进行配置管理。与FullMAC, mac80211和nl80211一起工作。(Kernel态)

? mac80211: 是一个driver开发者可用于为SoftMAC无线设备写驱动的框架 (Kernel态)。

? nl80211: 用于对无线设备进行配置管理,它是一个基本Netlink的用户态协议(User态)

? WNIC : Wireless Network Interface Controller, 它总是指望硬件执行协议(如IEEE802.11)描述的功能。

? MLME: 即MAC(Media Access Control ) Layer Management Entity,它管理物理层MAC状态机。

? SoftMAC: 其MLME由软件实现,mac80211为SoftMAC实现提供了一个driver API。 即:SoftMAC设备允许对硬件执行更好地控制,允许用软件实现对802.11的帧管理,包括解析和产生802.11无线帧。目前大多数802.11设 备为SoftMAC,而FullMAC设备较少。

? FullMAC:  其MLME由硬件管理,当写FullMAC无线驱动时,不需要使用mac80211。

? wpa_supplicant: 是用户空间一个应用程序,主要发起MLME命令,然后处理相关结果。

?

2. cfg80211

cfg80211是Linux 802.11配置API。cfg80211用于代码wext(Wireless-Extensions),nl80211用于配置一个cfg80211设 备,且用于kernel与userspace间的通信。wext现处理维护状态,没有新的功能被增加,只是修改bug。如果需要通过wext操作,则需要 定义CONFIG_CFG80211_WEXT。

cfg80211 and nl80211: 基于消息机制,使用netlink接口

wext: 基于ioctl机制

? struct ieee80211_hw: 表示硬件信息和状态

? ieee80211_alloc_hw:每个driver调用ieee80211_alloc_hw分配ieee80211_hw,且以ieee80211_ops为参数

? ieee80211_register_hw:每个driver调用ieee80211_register_hw创建wlan0和 wmaster0,并进行各种初始化。

? struct ieee80211_ops:每个driver实现它的成员函数,且它的成员函数都以struct ieee80211_hw做为第一个参数。在struct ieee80211_ops中定义了24个方法,以下7个方法必须实现:
       tx,start,stop,add_interface,remove_interface,config和configure_filter。

3. mac80211

它是一个driver开发者可用于为SoftMAC无线设备写驱动的框架,mac80211为SoftMAC设备实现了cfg80211回调函数,且mac80211通过cfg80211实现了向网络子系统注册和配置。配置由cfg80211通过nl80211和wext实现。

mac80211在体系结构中的位置如下图所示:

4. socket

http://wireless.kernel.org/en/developers/Documentation/

时间: 2024-08-19 11:31:20

linux Wireless基础知识(cfg80211 mac80211 nl80211)的相关文章

linux wireless 基础知识 MAC80211 CFG80211

转:http://blog.csdn.net/liuxd3000/article/details/23761663 1. 基本概念 • cfg80211:  用于对无线设备进行配置管理.与FullMAC, mac80211和nl80211一起工作.(Kernel态) • mac80211: 是一个driver开发者可用于为SoftMAC无线设备写驱动的框架 (Kernel态). • nl80211: 用于对无线设备进行配置管理,它是一个基本Netlink的用户态协议(User态) • WNIC

linux入门基础知识及简单命令介绍

linux入门基础知识介绍 1.计算机硬件组成介绍 计算机主要由cpu(运算器.控制器),内存,I/O,外部存储等构成. cpu主要是用来对二进制数据进行运算操作,它从内存中取出数据,然后进行相应的运算操作.不能从硬盘中直接取数据. 内存从外部存储中取出数据供cpu运存.内存的最小单位是字节(byte) 备注:由于32的cpu逻辑寻址能力最大为32内存单元.因此32位cpu可以访问的最大内存空间为:4GB,算法如下: 2^32=2^10*2^10*2^10*2^2 =1024*1024*1024

Kali Linux渗透基础知识整理(二)漏洞扫描

Kali Linux渗透基础知识整理系列文章回顾 漏洞扫描 网络流量 Nmap Hping3 Nessus whatweb DirBuster joomscan WPScan 网络流量 网络流量就是网络上传输的数据量. TCP协议 TCP是因特网中的传输层协议,使用三次握手协议建立连接.当主动方发出SYN连接请求后,等待对方回答SYN+ACK ,并最终对对方的 SYN 执行 ACK 确认.这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议. 连接建立 TC

linux内存基础知识和相关调优方案

内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁.计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大.内存作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据.只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行.对于整个操作系统来说,内存可能是最麻烦的的设备.而其性能的好坏直接影响着整个操作系统. 我们知道CPU是不能与硬盘打交道的,只有数据被载入到内存中才可

Linux防火墙基础知识及配置

Linux防火墙基础知识 Linux的防火墙正确的来说并不算是防火墙,只是一种防火墙的功能体现.我们现在来讲解下Linux的这个防火墙功能的详细解释. Linux的防火墙是由iptables与netfilter两个程序组成的,而iptables是一个单独的程序,netfilter是集成到内核中的一个程序,两个程序合作才能拥有完整的防火墙功能. Iptables的功能是向netfiler提供规则,netfilter则是将规则执行起来. Linux防火墙还分为主机防火墙与网络防火墙. 主机防火墙:工

Linux系统基础知识

1.linux概述 ??Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协议.它支持32位和64位硬件.Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统.??Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间).Linux存在着许多不同的Linux版本,但它们都使用了Linux内核.Linux可安装在各

linux的基础知识

1.描述计算机的组成及其功能 计算机分为软件和硬件 软件:例如我们的系统.QQ.360等等 计算机硬件由五大部分组成:运算器.控制器.存储器.输入设备.输出设备,也就是我们生活中常见 CPU .主板.内存.硬盘.键盘.鼠标.显示器等.它们的各个具体功能如下: (1)CPU:是英语“Central Processing Unit中央处理器”的缩写,是一台计算机的运算核心和控制核心.它的功能主要 是解释计算机指令以及处理计算机软件中的数据.如今主流分AMD和Intel. (拓展IntelCPU的优点

Linux系统基础知识-嵌入式迅为4412开发板学习笔记

1. 什么是Linux系统编程 详情了解:http://topeetboard.com  更多了解:https://arm-board.taobao.com Linux系统编程分为三个部分:系统调用.C库和C编译器. 系统调用系统编程的基础是系统调用,也结束于系统调用.在带有操作系统的嵌入式开发中,需要从操作系统申请一些服务和资源,从用户空间向内核发起的一些函数调用.系统调用包括对文件的读写.进程的控制等等.在Linux中,系统的实现少于其它内核.例如在Windows下有几千个系统调用,但是在L

Linux必备基础知识

1.计算机体系结构:(五大组件) 运算器 控制器 存储器,内存,编址 输出设备 输入设备 2.如何实现线路复用:这就要求运算器中有存储设备,而这个设备就是寄存器. 3.CPU中最核心组件:运算器+控制器+寄存器 运算器:处理数据 控制器:协调各个部件正常工作 寄存器:实现数据和指令的寄存,是线路复用的基础. 4.POST:BIOS 自举:如何实现,需要借助ROM实现,一开机芯片(ROM)上的指令就自动(硬件逻辑)映射到内存               (最开始的那一端)上,控制器和运算器才可以读