基于Linux的802_11b无线局域网数据包捕获方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FCS
End
Delimiter
从表 1 可以看到 ,完整的 IEEE 802. 11bMAC 帧包括五个 部分 :MAC 帧头部 、LLC (可选) 、Network Data 、FCS (校验) 和 End Delimiter (尾端分隔符) 。IEEE 802. 11bMAC 帧头结构如 表 2 所示 。
可以看出 ,有线局域网和 WLAN 都是共享广播式的信道 , 这是两者实现数据包捕获的前提条件 。在有线局域网中 ,网卡 应置为混杂模式 ,这样才能捕获到所在网段的所有数据包 ;而 在 WLAN 中 ,无线网卡置为射频监听模式才可以捕获到完整 的 IEEE802. 11b 数据包 。如果无线网卡置为混杂模式 ,那么 捕到的只是 IEEE802. 11b 中以太帧 ,而忽略了 802. 11b 的帧 头 ,这样就无法对 IEEE802. 11bMAC 子层中相关数据进行提 取和分析 。所以 ,研究如何将无线网卡设置为射频监听模式是 捕获 WLAN 数据包首先要解决的问题 。 214 在 Linux 环境下的具体实现
21414 关于 Libpcap 捕包函数库
Libpcap (其 Windows 版本为 WinPcap) 是 Linux 环境下的 一个与系统无关 、采用分组捕获机制的分组捕获函数库 ,用于 访问数据链路层 。这个库为不同的平台提供了一致的编程接 口 ,在安装了 Libpcap 的平台上 ,以 Libpcap 为接口写的程序 、 应用 ,能够自由地跨平台使用 。大多数监听程序都使用它和内 核部 分 进 行 通 信 。Libpcap 共 包 括 20 多 个 C 程 序 文 件[2 ] 。 Libpcap 库自诞生之日起 ,不断发展 ,功能日益完善 。发展到 0. 6 版本 ,已经可以在内核版本是 2. 2 或更高的 Linux 系统中 用 PF- PACKET 套接字捕包 ,支持内核包过滤 ,并支持任何网 络接口的捕包 。0. 7 版本则加上了一个补丁以支持无线的具 有 Prism Header 的数据的捕获 。在开发过程中 ,必须保证在 Linux 系统中安装较高版本的 Libpcap 函数库 。如果库的版本 过低 ,将不能很好地支持无线网卡的捕包 。目前 ,网上 Libpcap 的最新版本是 0. 7. 2 。
收稿日期 : 2003 - 09 - 20 ; 修返日期 : 2003 - 11 - 27 基金项目 : 山东省自然科学基金资式下 ,网卡工作在非侦听状态 ,只会接收到发给自己的数据 包和广播包 ,而丢弃其他包。如果把网卡设置成为混杂模式 ,使网 卡工作在侦听状态时 ,网卡就具有了广播地址 ,可以接收流经该网 卡的所有数据包 ,而不管数据包的目的 MAC 地址是不是与网卡 本身一致。这样 ,操作系统就可以直接访问数据链路层 ,截获相关 数据 ,再由相应的软件进行处理[2 ,3] 。
第 12 期
李海林等 :基于 Linux 的 802. 11b 无线局域网数据包捕获方法
·2 71 ·
后的四 个 地 址 域 用 来 表 示 BSSID , 目 标 地 址 ( DA) 、源 地 址 (SA) 、接收地址 ( RA) 、发送地址 ( TA) 。特定地址域的用法是 由这四个地址域的相对位置决定的 ,某些特定的帧可能不包含 某些地址域 。Sequence Control 则标志了数据包的顺序号和分 段号 。以太网的 MAC 帧头结构如表 3 所示 。
1 有线局域网有线网卡的捕包
目前使用最为广泛的局域网是以太网 。以太网采用带冲突 检测的载波侦听多路访问协议 (CSMA/ CD) 作为介质访问控制协 议。CSMA/ CD 使用广播机制 ,所传输的数据包能被共享信道的 所有主机接收 ,这是在以太网上实现包捕获的物理基础。以太网 卡有两种工作模式 :正常模式和混杂模式 (Promiscuous Mode) 。在
214. 2 捕包的方法
芯片类型与驱动程序的不同 ,造成了不同无线网卡必须使 用不同的方法才能捕到数据包 。我们还是以 Prism 2 和 Prism 2-legacy 为例 ,由于 Wlan2ng2 0. 1. 14 和更高的版本不仅可以报 告物理层 的 数 据 , 而 且 支 持 Libpcap 捕 包 函 数 库 , 所 以 基 于 Prism 2 的无线网卡可以用 Libpcap 库捕获 802. 11b 的数据包 , Wlan2ng2 0. 1. 13 和 更 低 的 版 本 不 支 持 Libpcap , 所 以 基 于 Prism 2-legacy 的无线网卡只能用 Linux2netlink2socket 来捕获 数据包了 。
21411 关于无线网卡的驱动程序 根据无线网卡采用的芯片组类型的不同 ,无线网卡可分为
多种 类 型 , 如 CISCO 的 Aironet 340 , Aironet 350 , LUCEN T 的 WaveLAN Servies ,还有应用最为广泛的基于 Prism 2 的 PCMCI2 A ,PCI , PLX , USB 等 接 口 的 无 线 网 卡 , 其 生 产 商 有 D2Link , Linksys ,3Com 等 。不同类型的无线网卡所使用的驱动程序也是 大不相同 ,如 Prism 2 类型的无线网卡使用的驱动程序是 Wlan2 ng 系列 ,版本须为 Wlan2ng2 0. 1. 14 或更高 ;而 Prism 2-legacy 类 型的无线网卡使用的驱动程序却是 Wlan2ng20. 1. 13 或更低 。 Wlan2ng 系列的驱动程序支持无线网卡的射频监听模式 。
无线局域网是在普通局域网基础上通过无线 Hub 、无线接 入点 (Access Point ,AP) 、无线网桥 、无线 Modem 及无线网卡等 来实现的 。近年来 ,无线局域网以其安装便捷 、使用方便灵活 等优势在各个领域得到了广泛的应用 。
与此同时 , WLAN 用户也开始寻求完善的无线网络管理 技术和协议分析工具 , 以便能够对 WLAN 进行在线监测 , 掌 握 WLAN 网络的动态运行状况 , 进而为入侵监测 、网络故障 排除等工作提供重要依据 。但是 , 目前国内尚未提出无线网 络分析方法 , 国外也是刚刚起步 。由于各种辅助工具的缺乏 , 特别是网络协议分析设备的缺乏 , 严重制约了 WLAN 的发 展 。所以 , 非常有必要开发 WLAN 协议分析系统 。而在这个 系统中 , 数据包的捕获是第一步和关键技术 , 这个问题的解 决可以为以后的数据包解码和统计工作铺平道路 。本文将结 合笔者所做的研究工作 , 给出两种在 Linux 环境下无线网卡 的捕包方法 。
21413 Linux 系统对包捕获的支持
包捕获机制是依赖于操作系统的 。Linux 系统为用户提 供了一种工作在数据链路层的套接字 Sock2Packet ,它绕过系 统协议栈直接从网卡驱动程序读取数据[3 ] 。若已经把网卡设 置成为混杂模式 (有线条件下) 或射频监听模式 (无线条件下) , 则用户就可通过此套接口捕获流经子网的所有数据包 。
ence Center , Ji nan S handong 250014 , Chi na)
Abstract : Packet capturing is a fundamental technique in the networks management activities ,such as network monitoring ,the analysis of traffic ,and etc. . Begins at the differences between Wireless Local Area Networks ( WLAN) and Wired Local Area Networks ,and then researches the principles of capturing packets in WLAN. Finally ,two different methods of capturing packets using wireless network cards are provided. Key words : Wireless Local Area Networks ( WLAN) ; Capturing Packets ; Wireless Network Card ; Libpcap ; RF Monitor Mode ; Promiscuous Mode
Met hods of Packet Capturing in 802. 11b WLAN Based on Linux
L I Hai2lin1 , WAN G Mei2qin2 , GAO Zhen2ming1 (1. School of I nf orm ation Science & Engi neeri ng , S handong U niversity , Ji nan S handong 250100 , Chi na ; 2. S handong Com puter Sci2
2 WLAN 中无线网卡的捕包
211 WLAN 的数据包格式
目前应用最为广泛的 WLAN 协议是 IEEE802. 11b ,此协 议明确规定了 WLAN 的数据包格式 ,如表 1 所示 。
表 1 IEEE802. 11bMAC 帧结构[4 ]
MAC Header
LL C (op t)
Network Data
表 2 IEEE802. 11bMAC 帧头结构[4 ]
Frame Control
Duration ID
Address One
Address Two
Address Three
Sequence Control
Address Four
Frame Control 有两个字节 ,可以标志出数据帧的协议版 本 ,数据帧的类型 (数据帧还是管理帧或控制帧) 是发往分布系 统还是来自分布系统 ,以及是否经过 WEP 加密等信息 。Dura2 tion ID 在 PS2Poll 帧 中 , 表 示 联 合 标 志 ( Association Identity , AID) ,在其他帧中则表示与帧类型相对应的持续时间值 。随
·270 ·
计算机应用研究
2004 年
基于 Linux 的 802. 11b 无线局域网 数据包捕获方法 3
李海林1 , 王美琴2 , 高振明1
(1. 山东大学 信息科学与工程学院 , 山东 济南 250100 ; 2. 山东省计算中心 , 山东 济南 250014)
摘 要 : 数据包捕获是进行网络监测 、流量分析等网管活动中所使用的基本技术 。从无线局域网 ( WLAN) 和有 线局域网的区别出发 ,研究了 WLAN 包捕获的原理及无线网卡两种不同的捕包方法 。 关键词 : 无线局域网 ; 捕包 ; 无线网卡 ; Libpcap 库 ; 射频监听模式 ; 混杂模式 中图法分类号 : TP393108 文献标识码 : A 文章编号 : 1001 - 3695 (2004) 12 - 0270 - 03
表 3 以太网 MAC 帧头结构[2 ]
Destination Address Source Address Type or Length
从表 2 、表 3 可以看出 , IEEE802. 11b 的数据帧头格式和 以太网的数据帧头差异较大 ,这是由 WLAN 的特点决定的 。 212 WLAN 的拓扑结构
WLAN 最常用的结构如图 1 所示 。
从图 1 可以看出 ,AP 是连接在有线网上 ,终端上都装有无 线网卡 。这些终端通过 AP 相互通信 。装有捕包软件的终端 可以捕获所在 BSS 的所有数据包 。 213 无线网卡的捕包
基于 IEEE802. 11b 的 WLAN 采用的是带冲突避免的载 波侦听多路访问协议 (CSMA/ CA) 来访问介质 ,与有线局域网 中的 CSMA/ CD 一样 ,使用的也是广播机制 。这是 WLAN 中 实现数据包捕获的物理基础 。无线网卡也有混杂模式 ,处于混 杂模式的无线网卡除了可以接收数据包外 ,同时还可以发送数 据包 。大多数无线网卡除了正常的工作模式和混杂模式以外 , 还有一种工作模式是射频监听模式 ( RF Monitor Mode) 。这种 模式使得无线网卡只能接收数据 ,不能发送数据 。当无线网卡 工作在射频监听模式时 ,就能在空中捕获到所在的基本服务集 (Basic Service Set ,BSS) 中的所有数据包 。
相关文档
最新文档