《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > 基于IEEE802.15.4a的工业无线网络嗅探器

基于IEEE802.15.4a的工业无线网络嗅探器

2009-07-31
作者:张 锦1, 侯维岩1, 2, 杨

  摘  要: 针对基于IEEE802.15.4a的工业无线传感器监控网络嗅探器的研究和实现,从分析嗅探器原理,介绍了IEEE802.15.4a协议,详细描述了嗅探器的系统结构及设计中对数据包的捕获和过滤过程。给出了针对4种不同过滤设置条件所对应的类定义,可根据用户要求对指定类型、特定站点或设定时间段及包含热点关键字的数据进行捕获过滤,动态显示网络的实时状况。经过试验,本嗅探器完全达到了设计要求,实现了对无线传感器网络的主动侦听监控。
  关键词: IEEE802.15.4a; 嗅探器; 无线传感器网络; 包捕获; 切普扩频

 

  工业过程及生产现场环境中,对于一些禁止使用通信电缆(如超净或真空封闭的房间)或者很难使用电缆(如高速旋转的设备、强腐蚀恶劣环境)的场合,其通信过程是很难或甚至是无法用普通的有线网络实现的,但可以采用无线通信技术来组建现场设备互连通信网络。
  IEEE802.15.4a是基于切普扩频(CSS)的无线短距离传输技术,特别适合于对抗干扰性能要求很高的工业无线(传感器)监控网络,其在2007年7月成为国际标准后引起了多家研究单位的重视,有了许多研究和应用实例。
  网络嗅探技术是网络管理和监测中的一项重要技术。它是通过捕获并分析数据报文,获取实时有效的网络状态信息,以方便对网络的运行状况进行分析和管理。网络嗅探技术在有线网络的维护和管理中已经得到了广泛应用[1]。但基于IEEE802.15.4a标准的工业无线监控网络嗅探器的设计在国内外尚不多见。鉴于此,本文阐述了嗅探器的工作原理,并简要介绍了IEEE802.15.4a协议,以及一种针对该协议标准的工业无线传感器监控网络嗅探器的系统结构、数据包的捕获和过滤过程及其对应的类定义、嗅探器的用户界面设计,对本嗅探器进行了实验验证,实现了对无线传感器网络的主动侦听监控。
1 嗅探器原理
  网络嗅探是指捕获在网络中传输的封包信息并对其进行译码和分析,从而获取网络的状态、数据流动情况以及网络上传输的数据等信息,以方便找到网络的潜在问题等。
  在共享式有线网络中,同一网段上的所有网络接口都有接收物理媒体上传输所有数据的能力。网卡将根据所设置的接收模式进行接收。通常情况下,网络接口只接收与自身地址相匹配的帧和广播帧。如将接收模式设置为混杂(Promiscuous)模式,则网卡能够接收到总线上的所有数据,从而实现对共享式网络的监听[2]。而对交换式有线网络的侦听则是在普通的侦听上辅以一定的欺骗方法,以扩展的中间人监听的方式来实现[3]。
  对于无线网络,所有的无线站点都能够监听到目标工作频段内所有符合目标物理层协议的无线信号。即使站点对于非广播包、非组播包且目的地址与接收站点地址不匹配包都丢弃,而只要将无线网络接口设置为射频监听模式(RF-MON Mode)都可以接收所有包,以实现无线网络嗅探[4]。
2 监控网络MAC协议
  目前成熟的无线传感器网络MAC协议中,使用较多的是S-MAC与CSMA协议。IEEE802.15.4a的MAC层使用CSMA,物理层使用CSS(Chirp Spread Spectrum),即宽带线性调频扩频,又简称切普扩频。
  CSS是新一代短距离无线数字传输技术,已被IEEE 802.15.4a任务组选定为基准物理层标准。其每一位传输所需功耗是IEEE802.11b的1/6、蓝牙的1/60。其数据传送速率最高可达到2 Mb/s,室外视距达900 m,接收灵敏度为-92 dBm/Mb/s。CSS综合了FSK、PSK和ASK 3种方法的优点,能十分有效地抑制工业环境中的各种噪音和多径漫射,并且在拥挤的ISM(Industrial Scientific Medical)频段与其他现有的信号互不影响,用于实时精准位置和感应网络。简单地说,CSS技术加上IEEE802.15.4的MAC协议和组网规则就构成了改进的IEEE802.15.4a,特别适合在工业自动化现场设备层控制网络使用。
3 系统硬件结构
  嗅探器的系统硬件结构如图1所示。其中微控制器采用Atmel公司的ATmega128L。它采用低功耗CMOS工艺,基于RISC结构,具有片内128 KB的程序存储器 (Flash)、4 KB的数据存储器(SRAM)和4 KB的EEPROM;有8个10位ADC通道、2个8位和2个16位硬件定时/计数器、8个PWM通道,具有可编程看门狗定时器和片上振荡器、片上模拟比较器、JTAG、UART、SPI、I2C总线等接口。ATmega128L可在多种不同模式下工作,除了正常操作模式外,还具有6种不同等级的低能耗操作模式,适合于低能耗的应用场合。

 

  为了与PC机的串口相联,使用了MAXIM公司的串行收发芯片MAX3232CSE来完成RS232电平到TTL电平的转换。
无线通信芯片采用德国NanoTron公司的NA1TR8,该芯片符合最新IEEE802.15.4a标准,其内部集成1个可编程控制器,该控制器又分为2个部分:一个是基带控制器(baseband controller),功能有帧的产生、错误纠正、解包/封包等;另一个是MAC控制器,主要作用是控制介质访问控制,如CSMA/CA、TDMA等。NA1TR8的Memory在逻辑上有1 024 B的编址空间,这1 024 B由两部分组成:一个是128 B的寄存器,该寄存器依据编址为0x7F的索引寄存器低2位的不同设置,在地址空间中被映射成4个128 B的地址空间;另一个是512 B的基带RAM(Baseband memory,BBRAM),由Segment0、Segment1、Segment2、Segment3组成,每个Segment占用128 B。此RAM根据不同的设计需要可以设置成4种不同的配置模式: Auto/Duplex、Auto/Simplex、Transparent/Duplex、Transparent/Simplex。这4种配置模式各有优劣,需要根据具体的应用需求作出选择。
嗅探器的主要功能是接收数据而不是发送数据。鉴于此,监测仪的BBRAM的配置采用Auto/Simplex模式,此模式下的BBRAM配置如图2所示。

  在Auto/Simplex模式下,Segment0、Segment1被保留下来专用于存储MAC帧头、加密/解密、站点地址、实时时钟(RTC)等信息。Segment2、Segment3用于发送和接收时共享Buffer。针对嗅探器BBRAM的配置,可以将Segment2、Segment3都用于数据的接收。
4 数据包捕获过滤
4.1 IEEE802.15.4a中的数据帧格式

  物理层及MAC层的数据帧格式如图3所示。物理层由4个域组成,分别是前:导码,其作用是自动增益控制校验及位同步;同步字段,其作用是帧同步;MAC帧域及尾字符域,其作用是尾部与帧间间隔的分隔符。

 

  MAC层有6种帧格式,分别是数据帧(Data)、应答帧(Ack)、广播帧(Brdcast)、时间信标帧(TimeB)、请求发送帧(Req2S)、清除发送帧(Clr2S)。依据上述不同的6种帧格式,MACFrame包含10个域,每个域的详细功能描述可参见芯片NA1TR8的相关文档,这里不再赘述。
4.2 数据包捕获
  对无线网络进行监听,首先必须对目标侦听网络中符合物理层通信协议的数据包进行捕获。这是对网络进行监控分析的基础。在这里首先需要取消监听站点的地址匹配,并设置为监听模式,使其可以监听到所有其他站点发送的数据。再将接收的有效协议数据单元传送至PC机串口。当串口监视进程CSerialPort::CommThread( )监测到串口有数据到达时,发送WM_COMM_RXCHAR消息给主框架窗口,由响应函数CMainFrame::OnComm( )对收到的数据进行初步的判断处理。而数据包则定义了一个普通类,其具体定义如下:
class CPacket
{
public:
    ……
   void GetReceiveTime( ); //获取高精度时间
  CString m_pTime;   //数据捕获时间
  CString m_pPacket;  //数据包的十六进制代码
  CString m_pData;   //传感数据
  CString m_pPacketNum;  //传感数据包顺序号
  CString m_pNetNum;  //网络群号
  CString m_pSendAdd;  //数据包源地址
  CString m_pToAdd;  //数据包目的地址
  CString m_pType;   //数据包类型
  CString m_pLength;  //数据包总长度
  ……
};
  其中,GetReceiveTime( )对普通的CTime类进行了扩展,提高了时间的精度,为数据的进一步分析处理和网络管理提供了很好的时间记录。本设计中使用了绝对时间戳。这样,当知道某事件发生的大概时间时,可以快速找到详细的数据包解析以及对应的源码。
4.3 数据包过滤
  嗅探器在默认情况下会对网络中所有包进行捕获。但实际的监听过程中捕获包的数量是相当巨大的,而且通常需要关注采集的只是具有某些特定特征的包。这就需要对捕获的数据包按照要求进行过滤,且显示结果。
  过滤条件的设定主要分为如下4类:数据包的类型,收发地址,时间,关键字。
  详细的参数设置界面如图4所示。其具体过滤功能由COutputBar::OutFilter( )函数实现。过滤条件的设置可在数据监听前预设也可在监听过程中及时按需修改。

 


5 用户界面设计
  嗅探器在WM_CREATE消息处理函数CMainFrame::OnCreate()中创建了2个子控件窗口,将整个主窗口分为数据分析和网络监控2个区,如图5所示。捕获数据在嗅探器客户端的显示由COutputBar::ShowNetworkMessage()实现。其中,一区的上部为解码区,给出了数据包的收发时间、地址、类型、具体的传感数据等详细分析信息;一区的下部显示了对应数据包的原始十六进制编码。而二区则以图形化的方式显示了整个无线网络的拓朴状态,以实现对整个网络的实时监控。


  以对令牌传递的监控为例,从图6所示的嗅探器解码区所显示的详细分析信息可以看到,令牌在网络内传递的一个过程:包70、71表明站点5传送完数据后将令牌传送至主站点;而包72中主站点将令牌传给站点6;包73则是站点6获得令牌并进行了数据传输;最终,从包74、75中可看出,站点5再次获得令牌并传输了数据。

 


  从嗅探器的运行结果可看出,嗅探器能够捕获无线传感器网络中的数据,并对其过滤分析,提供了整个无线网络的图形化监控等功能,而且未被原网络发现,也没有对其运行造成影响,最终实现了对IEEE802.15.4a无线传感器网络的主动侦听监控。


参考文献
[1] 王石.局域网安全与攻防——基于Sniffer Pro实现[M]. 北京:电子工业出版社, 2006.
[2] 黄志洪. 现代计算机信息安全技术[M]. 北京:冶金工业出版社,2004.
[3] 贺龙涛,方滨兴,胡铭曾.主动监听中协议欺骗的研究[J].通信学报, 2003,24(11).
[4] ANH N T, SHOREY R. Network sniffing tools for WLANs: merits and limitations[C]. 2005 IEEE International Conference on Personal Wireless Communications. New Delhi, India, 2005:389-393.

[5] IEEE Std 802.15.4TM-2006.IEEE standard for infor-mation technology-telecommunications and information    exchange between systems-Local and metropolitan area networks-specific requirements [S]. 2006.

[6] 侯维岩,刘伟春,程俊峰,等.面向无线工业网络的数据链路层协议WICN-Z [J]. 仪器仪表学报,2008,29(3):638-643.

 

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。