- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Winpcap网络数据包捕获和存储技术探究
基于Winpcap网络数据包捕获和存储技术探究 摘要:利用Winpcap网络开发包使应用程序绕过协议栈捕获并传送网络数据包,实现了数据包的循环捕获。基于Windows平台,用VC++6.0实现界面设计,并运用ADO技术与数据库连接,实现了数据包实时分析和数据的存储功能。
关键词:Winpcap;数据包;协议分析;数据库
中图分类号:TP391 文献标识码:A 文章编号文章编号2014)001012503
作者简介作者简介:李星(1987-),男,西南交通大学电气工程学院硕士研究生,研究方向为微机保护与综合自动化。
0 引言
随着计算机网络的迅速发展,人们迫切希望网络上的信息不被泄露、更改和破坏,网络服务不被中断。网络数据包捕获和分析技术是网络安全维护的基础技术和核心手段,因此,深入研究网络数据包的捕获和分析技术尤为必要。本文提出了一种可行的捕获网络数据包的设计流程,并实现了对捕获的数据包的实时分析和存储功能。
1 基于Winpcap数据包的捕获技术
1.1 网络通信模型及常规通信编程方法
计算机网络通信采用OSI七层模型标准,只要遵循这个标准就可以和位于世界任何地方、同样也遵循OSI标准的其它任何系统进行连接。但实际上完全符合各层协议的商用产品很少,随着Internet在全世界的飞速发展,TCP/IP已经成为事实上的国际标准,它们的对比参考模型如图1所示。
图1 OSI模型与TCP/IP参考模型
对Windows系统,数据包捕获用到的主要方法有原始套接字、调用NDIS库函数、使用他人编写的中间层驱动、使用第三方组织提供的捕获组件或者库(如Winpcap)共4种。本文采用第4种,具体介绍如下:
1.2 Winpcap技术简介
Winpcap是UNIX下的libpcap移植到Windows下的产物,它是一个开源项目。Winpcap工作于驱动(Driver)层,所以能以很高的效率进行网络操作。Winpcap提供了以下强大功能[1]:
①获取网卡列表及信息;
②捕获原始的数据包;
③设置filter,只捕获自己感兴趣的数据包;
④方便地把捕获的数据包输出到文件和从文件输入;
⑤发送原始的数据包;
⑥统计网络流量。
本文使用MFC应用程序的界面设计编写程序,核心开发主要使用Winpcap完成。Winpcap的组成部分如图2所示,使用其提供的函数主要完成网络数据包的捕获等功能。
图2 Winpcap的组成部分
Winpcap为Win32应用程序提供访问网络底层的能力,底层是基于WINPCAP包进行开发。主要用到的函数包括[2]:
(1) int pcap_findalldevs();用于返回所找到的适配器列表。
(2) pcap_t * pcap_open();用于打开一个网络接口进行数据包捕获。
(3) void pcap_dump();用于将包内容输出到由pcap_dump_open()打开的文件中。
(4) int pcap_compile();用于将过滤规则字符串编译成一个BPF内核过滤程序。
(5) int pcap_setfilter();功能是设置BPF过滤规则。
(6) int pcap_datalink();功能是获取数据链路层类型,如10M以太网、SLIP、 IEEE802.3等。
1.3 数据捕获原理
以太网(Ethernet)是一种总线型网络,具有共享介质的特征,当网络适配器设置为监听模式(混杂模式,Promiscuous)时,由于采用以太网广播信道争用的方式,使得监听系统与正常通道的网络能够并联连接,并可以捕获任何一个在同一冲突域上传输的数据包,运用这一原理就能监听所需要的信息。
1.4 原始数据包捕获的实现
捕获流程按先后顺序如下:
① 捕获设备可用的接口列表;
② 选择接口并将其设为混杂模式捕捉;
③ 将捕捉的数据包保存进数据库以便读取和分析;
④ 读取数据库保存的数据包并进行分析;
⑤ 释放接口。
本软件建立在Winpcap结构的第三层模块Winpcap.dll之上,并用VC++6.0多线程技术实现。主线程用于查找和显示网络设备、设置过滤器、分析数据包。子线程用于打开选择网络接口、捕获数据包并实时存入数据库中。
1.5 体系结构设计总框架
Winpcap提供了数据包的捕获功能,在不同的应用中需要设计不同的协议分析模块。针对不同的协议,设计相应的协议分析功能,是基于Winpcap应用的关键所在。本文使用Winpcap捕获和分析网络数据包的框架如图3所示。
您可能关注的文档
最近下载
- 人教版数学六年级上册第四单元《比》单元整体作业设计 (3).docx VIP
- 2025年水平定向钻市场调查报告.docx
- IPC J-STD-003D CN 中文目前最新版TOC.pdf VIP
- 2024年杭州钱塘新区产业发展集团有限公司下属公司招聘真题及答案详解(各地真题).docx VIP
- 飞机主动杆结构设计及控制策略研究.doc VIP
- 2024年世界职业院校技能大赛中职组“婴幼儿保育组”赛项考试题库-下(多选、判断题汇总).docx VIP
- 全新版大学英语第三册Unit 1 Changes in the way we live.ppt VIP
- CNAS-CL02-A006:2018 医学实验室质量和能力认可准则在输血医学领域的应用说明.pdf VIP
- xx集团粮食仓储及加工基地可行性研究报告.docx
- 2025医院药品不良反应培训.pptx VIP
文档评论(0)