对winpcap抓包方法的改进

对winpcap抓包方法的改进

ID:10155164

大小:30.00 KB

页数:8页

时间:2018-06-11

对winpcap抓包方法的改进_第1页
对winpcap抓包方法的改进_第2页
对winpcap抓包方法的改进_第3页
对winpcap抓包方法的改进_第4页
对winpcap抓包方法的改进_第5页
资源描述:

《对winpcap抓包方法的改进》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、对Winpcap抓包方法的改进摘要:当代,国际互联网迅猛发展,一日千里,网络技术日新月异。人们在享受互联网络带来便捷的同时,网络安全问题也随之而来。入侵检测作为提高网络安全的一种有效手段,得到了广泛的应用。本文针对网络入侵检测的第一步――网络抓包进行了研究和改进,把Winpcap作为研究对象。对Winpcap传统抓包方法的原理、存在问题进行了仔细分析,针对其存在的问题提出改进方法,降低Winpcap在进行网络抓包时的丢包率。关键词:WinPcap;抓包;改进中图分类号:TP393.07国际互联网Internet作为一种新兴的网络技术,经过几十年的发展从最初联网数量很

2、少的计算机发展成为今日全球性的互联网,但随着人们享受着Internet带来的方便和快捷的同时,网络安全的重要性也日益突显出来。被称为“第二道防火墙”的入侵检测技术越来越受大家的重视[1]。8为了更好的拦截、检测入侵行为,研究者们需要大量的网络数据来研究入侵数据与正常数据之间的不同,了解他们的特征,以便能对其进行区分[2]。因此,入侵检测的首要工作就是抓包。如果抓包环节出现了严重的丢包现象,很可能因为丢掉了一些重要的信息而使得出的结论与事实相差甚远。因此,提高系统的抓包效率,对于入侵检测系统是至关重要的。传统的网络抓包方法存在严重的丢包问题,为了解决高速网络环境中丢包

3、率高的问题,本文针对网络抓包问题进行了深入探讨,并提出了一种基于Winpcap的快速抓包方法,来降低丢包率。Winpcap的结构如图1所示:图1Winpcap的结构图1传统抓包方法存在的问题传统网络模型是在上世纪设计的,在网络模型设计之初,网速很低,并不存在网络抓包时丢包的问题。随着网络技术的迅猛发展,人们对信息交换的需求量迅速增加,高速网络便应运而生,而且发展迅猛。这样Winpcap的先天不足――无法适应高速网络产生丢包,就明显的暴露出来,对后期入侵检测方法成了很大的损失。8丢包率一方面反映在线路损失,另一方面反映在服务器(中转节点)对数据的处理方法及结果上。线路

4、损失方面大都受运营商即公网线路控制,而后者则在于受服务节点处理的影响。其中有两个最主要的原因:(1)缺乏CPU处理时间。当网络数据流量很大的情况下,数据的传输能力甚至会超过CPU的处理能力,这样在整个网络抓包的过程中系统内核CPU忙于接受数据而无暇处理数据包,从而长时间处于中断接受状态。与此同时大量数据包因为得不到及时响应而被丢弃;(2)内核缓冲区没有足够的空间来容纳从网卡上复制过来的新的数据包。如果内核缓冲区满了,新数据包就会被丢弃。适当增大内核缓冲区的大小,可以降低丢包率。另外,捕获过程中数据包从通信接口被抓取后经过滤器存入缓存最后到达实际应用程序空间所经历的二

5、次拷贝和进程切换需要占用大量系统资源,从而使系统性能降低。针对这些问题,WinPcap在某些方面进行了优化,还提供了发送原始数据包和统计网络通信过程中各种信息的功能,方便进行测试。著名的开放源代码入侵检测系统Snort(Windows操作系统环境里)和流行的网络分析工具Windump都是采用传统的流程来捕获网络数据包的。Winpcap传统抓包方法流程图如图2所示:图2Winpcap传统抓包流程图采用此抓包方法,在高流量网络环境中存在很高的丢包率(高达60%左右)。下面对丢包的原因进行分析。通过对流程的仔细分析可以看出,pcap_loop()函数是截包的关键环节,它是

6、一个循环截包函数,其原型如下:Intpcap_loop(pcap_t*p,intcnt,pcap_handlercallback,u_char*user);该函数各参数的解释如下:P是由pcap_open_live()返回的所打开网卡的指针8Cnt用于设置所捕获数据包的个数Callback指向包的处理函数User值一般为Null在pcap_loop()的每次循环中,首先通过调用PacketReceivePacket()函数,从内核缓冲区中把一组数据包读取到用户缓冲区;然后,根据bpf_hdr结构提供的该数据包的定位信息,把用户缓冲区的多个数据包逐个提取出来,并依次送

7、入回调函数进行进一步处理(进行数据包封装)。由于用户缓冲区对数据包的处理方式过于复杂,当网络流量比较小时,这种处理方式还可以应付,但当数据流量大时,用户缓冲区处理数据包的速度跟不上内核缓冲区从网卡复制数据的速度,所以新的数据包就会因为内核缓冲区满而被丢弃。因此,简化对用户缓冲区内的数据包块的处理方式就成为改善抓包性能的首要任务。2针对传统抓包方法的改进8针对传统网络抓包方法存在的问题和丢包原因,本文提出了基于Winpcap的快速抓包方法,具体方法如下:(1)把pcap_file_header文件头信息记录到存包文件中;(2)调用PacketSetMinToCop

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

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

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