菜单
  

    (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平台下数据包捕获组件通常作为一个网络协议驱动程序被实现。
  1. 上一篇:智慧城市管理系统中的传感器数据采集与清洗方法研究
  2. 下一篇:C#开发GPS/INS控制和数据广播软件开发
  1. 基于信息技术课程培养初...

  2. javamvc技术的在线考试系统的设计与实现

  3. 面向电商评论的数据挖掘技术与系统

  4. 高光谱数据稀疏约束分类识别技术研究

  5. 基于网页分析和抓取技术的金融数据采集系统

  6. 基于JSP的某社团网站的开发技术研究

  7. 网络环境下电子报纸开发利用现状及模式研究

  8. 杂拟谷盗体内共生菌沃尔...

  9. 电站锅炉暖风器设计任务书

  10. 大众媒体对公共政策制定的影响

  11. java+mysql车辆管理系统的设计+源代码

  12. 酸性水汽提装置总汽提塔设计+CAD图纸

  13. 中考体育项目与体育教学合理结合的研究

  14. 乳业同业并购式全产业链...

  15. 河岸冲刷和泥沙淤积的监测国内外研究现状

  16. 当代大学生慈善意识研究+文献综述

  17. 十二层带中心支撑钢结构...

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回