基于WINPCAP的GOOSE报文捕获分析工具开发

基于WINPCAP的GOOSE报文捕获分析工具开发

ID:38623127

大小:142.00 KB

页数:9页

时间:2019-06-16

基于WINPCAP的GOOSE报文捕获分析工具开发_第1页
基于WINPCAP的GOOSE报文捕获分析工具开发_第2页
基于WINPCAP的GOOSE报文捕获分析工具开发_第3页
基于WINPCAP的GOOSE报文捕获分析工具开发_第4页
基于WINPCAP的GOOSE报文捕获分析工具开发_第5页
资源描述:

《基于WINPCAP的GOOSE报文捕获分析工具开发》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、WINPCAP网络开发包是一个免费、基于Windows平台、访问网络链路层的工具,它允许各种应用程序绕过协议栈捕捉并传送网络数据包,同时还包括一些其他功能,如包过滤、网络流量统计以及远程捕获等。基于这一开发包,可以方便地开发出面向通用对象的变电站事件(GOOSE)报文的捕捉工具,进而根据ASN.1/BER对报文进行解码并分析。文中介绍了如何基于WINPCAP开发包开发一个完整的GOOSE报文捕获工具,以及整个的设计思路和实现过程,并提出了一些可能的应用。0引言   当前,国内厂商对IEC61850的开发工作已经从以制造报文规范(MMS)为核心的客户/服务器(C/S)服务实现转到面

2、向通用对象的变电站事件(GOOSE)和IEC61850-9-1/2的实现上来。GOOSE通信及其应用是IEC61850的一个亮点,其出发点是功能的分布式实现口],GOOSE应用的建立需要多方面配合,同时也是一个较为烦琐的工程。在工程的调试过程中,对GOOSE报文的分析是一个必不可少的步骤,即检查数据发送是否正确及其时间特性。因此,如果有一个简捷的工具来捕捉与分析IEC61850报文,将会有助于工程调试的顺利进行。   WINPCAP(Windowspacketcapture)网络开发包是一个免费、基于Windows平台、访问网络链路层的工业标准工具,它允许各种应用程序绕过协议栈捕

3、捉并传送网络数据包,同时还包括一些其他功能,如包过滤、网络流量统计以及远程捕获等。基于这一开发包,可以方便地开发出GOOSE报文的捕捉工具,进而根据ASN.1/BER对报文进行解码并分析。   本文介绍了如何基于WINPCAP开发包开发一个完整的GOOSE报文捕获工具,以及整个设计思路和实现过程,并提出了一些可能的应用。希望能够为IEC61850标准在中国的推广做出一些贡献。   1WINPCAP简介   1.1内部结构   WINPCAP是一个Win32平台下用于抓包和分析的系统,其基本构成如图1所示。它包含一个运行于操作系统内核级的模块,与网络设备驱动接口直接连接,这一模块直

4、接绕过了系统的协议栈。为了让用户程序使用内核提供的功能,WINPCAP提供了多个编程接口分别封装在2个不同的动态链接库packet.d11和wpcap.d11中。packet.dll提供一个底层的应用程序接口(API),通过这个API可直接访问网络设备驱动,而独立于Microsoft操作系统;wpcap.dll是一个高层的强大捕获程序库,与Unix下的libpcap兼容,它独立于下层的网络硬件和操作系统。      1.2捕获数据包的接口与方法 WINPCAP有捕获数据包、发送数据包、统计网络流量3个主要功能。捕获数据包的基本流程如下:   ⑴通过接口函数pcap_findall

5、devs_ex枚举所有可用的网络设备。   ⑵根据枚举返回的网络设备名称打开一个设备,对应接口函数为pcap_open()。   ⑶如果需要,设置数据包的过滤条件,对应接口函数为pcap_setfilter。   ⑷捕获原始的数据包,有2种方法:一种方法是以回调函数的方式由接口pcap_loop或pcap_dispatch完成,其基本方法是底层收集数据包,当满足一定的条件(timeout或者缓冲区满),就调用回调函数,把收集到的原始数据包通过数据缓存区交给用户;另一种方法是pcap_next_ex()的方法,每当一个包到达以后,接口pcap_next_ex就会返回,返回的数据缓冲

6、区中只包含一个包。   本文采用。pcap_next_ex的方法,并且设置了包过滤的条件,只捕获类型为GOOSE的数据包,即EtherType为0x88的数据包。   2程序设计与开发   2.1初始化   初始化工作包括2个部分:一是人机界面中协议数据单元(PDU)列表控件实例与GOOSE数据集列表控件实例的初始化,包括列名称、列宽度等相关属性;二是网络设备的枚举及显示,枚举可用设备的接口函数为pcap_findalldevs(),调用方法如下:   If(pcap_findalldevs(&m_pAlldevs,errbuf)==-1)returnFALSE;   如果成功地

7、枚举到可用的网络设备,网络设备的相关信息将返回到列表m_pAlldevs中,网络设备的信息包括设备的唯一识别名称及其可读的描述内容,然后将其显示在一个下拉列表中供用户选择。   2.2捕获线程的建立和用户的交互   网络数据的捕获需要为其单独建立一个后台工作线程。当选定网络设备后,点击启动按钮,就启动后台工作线程。后台工作线程与界面线程的交互通过消息机制来完成。在后台工作线程中,首先通过接口函数pcap_open_live打开网络接口设备,然后调用接口函数pcap_next_ex

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。