毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
利用WinPcap技术实现数据包的捕获和分析(5)
(1)捕获原始数据包,包括在共享网络上,各主机发送或接收的以及相互之间交换的数据包;
(2)在数据包发往应用程序之前,按照自定义规则将某些特殊的数据包过滤掉;
(3)在网络上发送原始的数据包;
(4) 收集网络通信过程中的统计信息。
2.3.3 基于WinPcap数据包捕获的基本过程
WinPcap从网络上捕获一个数据包,然后递送给应用程序,所调用的组件如图4、图5所示。
图4 伴随着NPF驱动细节的WinPcap的结构
(1)网卡与NIC设备驱动
现代NIC板载内存的数量通常限制为几千字节。在不依赖主机工作站的能力下,这些内存在全连接速度(full link speed)下需要满足数据包的接收与发送。此外,NIC在数据包被存储在板载内存中时,就执行一些初步的的检查,诸如CRC错误、短以太网帧,因此无效帧可以立即被丢弃。
在一个有效数据包被NIC接收后,将对总线控制器产生一个总线数据传输请求。此时,NIC控制了总线,传输数据包到工作站主内存中的NIC缓冲区中(参见图5),释放总线,产生一个硬件中断给高级可编程中断控制器芯片。该芯片叫醒操作系统的中断处理例程,其触发NIC设备驱动程序的中断服务程序(ISR)。
一个写的好的设备驱动程序的ISR只做很少的事情。最基本的事情,它要检查该中断是否是它自己要处理的的,并做出应答。接着,ISR调度一个较低优先级的函数,该函数稍后处理硬件请求与告知上层驱动程序一个数据包被接收了。当没有中断被挂起时CPU将处理DPC例程。当NIC设备驱动程序正在执行处理时,来自NIC的中断被禁用,因为在处理下一个服务前一个数据包的处理必须完成。此外,既然中断的产生是一个耗费很大的操作,现代NIC允许多个数据包被送入一个中断的上下文中,因此上层驱动程序每次激活是要能够处理多个数据包的。
图5 从NIC到应用程序的路径
(2)数据包捕获驱动
数据包捕获组件通常对其它的软件模块是透明的,并不对标准的系统行为带来影响。它们仅仅在系统中插入一个钩子——通常使用一个回调函数tap()——只要一个新的数据包从网络上到来,它们就能够被告知。tap()函数所作的第一步就是对数据包执行过滤。在Win32平台下数据包捕获组件通常作为一个网络协议驱动程序被实现。
共5页:
上一页
1
2
3
4
5
下一页
上一篇:
智慧城市管理系统中的传感器数据采集与清洗方法研究
下一篇:
C#开发GPS/INS控制和数据广播软件开发
数据挖掘的主题标绘数据获取技术与实现
论利用ebXML和SOAP开发Web服务【2352字】
论信息技术茬外语教學中的應用【3270字】
计算机技术基础精品課建设【1708字】
虚拟制造技术的相關概念及其應用【1280字】
现代虚拟制造技术及應用前景分析【1935字】
浅谈嵌入式Modem的通信技术【2467字】
志愿者活动的调查问卷表
医院财务风险因素分析及管理措施【2367字】
C#学校科研管理系统的设计
承德市事业单位档案管理...
AT89C52单片机的超声波测距...
公寓空调设计任务书
10万元能开儿童乐园吗,我...
国内外图像分割技术研究现状
神经外科重症监护病房患...
中国学术生态细节考察《...