摘要:
本文对当今2.6版本Linux内核中IEEE 802.11无线局域网络协议栈的组成进行了详细的介绍.其中包括:定义IEEE 802.11标准的数据结构和类型,对802.11数据报文的发送和接收处理,部分802.11管理和控制报文的处理,用户无线网络接口的配置的支持,对无线信道的检查和限制以及无线网络服务质量(QoS)的支持和无线网络安全的实现等.作为一个通用的网络协议栈,数据包的发送和接收处理是其最重要的两个方面,本文对其流程进行了重点地阐述.其中包括:对无线网络信号指标的统计,处理数据包的SNAP协议头,根据用户对无线网络接口的配置决定是否需要进行软件的分片和加密,调用加密模块对MSDU和MPDU进行加密解密,切片和重组,与硬件以及上层协议栈的通信等.
本文还针对英特尔(R)迅驰(R)平台中的Intel PRO/Wireless 2915ABG系列无线网卡的Linux内核驱动程序的设计和实现过程进行了剖析.根据无线网卡硬件的特点阐明了该协议栈的设计要领,并对其重要实现部分进行具体的代码分析.其中包括:PCI设备的初始化(如IO地址映射,中断设置),无线网络设备的回调函数的设置,无线网卡固件(firmware)的加载,主机与网卡设备的DMA通信,对无线服务质量,无线网络扩展(如设置频段,SSID等)和其他硬件特性的支持(如射频开关,LED等).
展开