·过滤引擎是WFP的核心组成部分,过滤引擎分为两大层:用户态基础过滤引擎和内核态过滤引擎。基础过滤引擎会与内核过滤引擎交互。
·内核态过滤引擎是整个过滤引擎的主体,内部分为多个分层,每分层都代表着网络协议栈特定的层。每个分层存在子层和过滤器。内核过滤引擎检查网络数据包是否

命中过滤器的规则,命中的过滤器,执行这些过滤器指定的动作。
·一般,过滤的动作为放行或拦截网络数据包。实际中,内核过滤引擎的分层中,存在多个子层和多个过滤器。一次网络事件,可能同时命中多个过滤器的规则,而且

这些过滤器可能有不同的过滤动作。为了计算最终的过滤动作,WFP引入了过滤仲裁器,过滤仲裁器计算最终的过滤动作交给内核态过滤引擎,然后内核态过滤引擎将

结果反馈给垫片。
·垫片是一种特殊的内核模块,安插在系统的网络协议栈的不同层中,获取网络协议栈的数据,通过内核过滤引擎提供的API,将数据传到相应的WFP分层中。作用有

二种:获取网络数据传递给内核态过滤引擎,把内核态过滤引擎的过滤结果反馈给网络协议栈。对于开发者是透明的。
·呼出接口是WFP框架中的重要数据结构,也是能力的扩展。由一系列回调函数组成,当网络数据命中过滤器且此过滤器定义了一个呼出接口,那么对应的回调函数就

被调用。有一个唯一识别此呼出接口的GUID。
·分层是网络数据包的分类,根据需要与相应的分层交互。分层是一个容器,里面包含了0或一个过滤器,还可能包含一个或多个子层。每个分层有一个唯一的值标识

,内核态是64位的LUID来标识。用户态用128位GUID来标识。
·子层是分层更小的一个划分,一个分层可以分为多个子层,每个子层有一个权重,权重越大,优先级越高。当数据达到分层时,子层的权值越大,越早获取到数据。
·过滤器是存在WFP的分层中,是一套规则和动作的集合,规则指明了对那些数据包感兴趣,过滤那些数据包。过滤器的规则被命中时,过滤器里面指定的动作会被

WFP执行。一个过滤器有一个或多个过滤条件,当全部成立时,才命中。使用时,必须知道过滤器被添加到内核过滤引擎的那一个分层中,不同分层中,可以过滤到不

同层次的网络数据。统一层内,可存多个过滤器,不同过滤器有不同的权重,为了避免重复,可指定一个子层,只保证子层中的过滤器权重不重复就可以。过滤器关联

子层后,按照权重值大到小匹配子层的过滤器。子层内,WFP也是按照过滤器的权值,大到小匹配过滤器的规则。过滤器可以关联分层和子层,还可以关联呼出接口。

在复杂的分析和处理的情况下,过滤器一般要关联一个呼出接口,当命中时,执行与过滤器关联的呼出接口内的回调函数
·呼出接口包含三个回调函数,notifyFn,classifyFn,flowDeleterFn。 classifyFn 规则被命中,执行此函数,获取网络数据包的相关信息,所得内容取决于所过

滤的分层,此接口还可以设置对网络数据包的允许和拦截。notifyFnl当过滤器被添加或移除时,WFP会调用此函数,知道呼出接口关联的过滤器的操作情况。

flowDeleterFn 当一个网络数据流将要被终止时,WFP或调用此函数,而且将要终止的数据流被关联了上下,才会被调用,用来清理别关联的上下文。

WFP步骤
·定义一个或多个呼出接口,然后向过滤引擎注册呼出接口。
·添加呼出接口道过滤引擎。
·设计一个或多个引擎,把子层添加到分层中
·设计过滤器,把呼出接口,子层,分层,过滤器关联,向过滤引擎添加过滤器

WFP之WFP简介的更多相关文章

  1. WF4.0(1)---WorkFlow简介

    编程编的越久就发现自己以前的语文真的没学好,写个随笔取个名字都需要思考半天,以前工作的时候只是听说过工作流,知道的范围仅限于工作流在OA审批流程中用的比较多,现在自己实实在在的用工作流也做过不少项目, ...

  2. WF4.0 基础篇 (一)开始使用WF

    来源:https://www.cnblogs.com/caosenianhuan/p/WF.html 最近公司要重新上线一套新的CRM系统,要重整老系统里的业务流模块,团队讨论已微软的workflow ...

  3. 2012年第三届蓝桥杯C/C++程序设计本科B组决赛

    1.星期几(取余/excel) 2.数据压缩 3.拼音字母(比较) 4.DNA比对(dp) 5.方块填数 1.星期几[结果填空] (满分5分)    1949年的国庆节(10月1日)是星期六.     ...

  4. 2012蓝桥杯本科组C/C++决赛题

    星期几 [结果填空] (满分5分) 1949年的国庆节(10月1日)是星期六. 今年()的国庆节是星期一. 那么,从建国到现在,有几次国庆节正好是星期日呢? 只要答案,不限手段! 可以用windows ...

  5. 读取配置文件的C语言接口实现

    在一些场合,需要对一些配置文件进行读取,去设置软件的参数,自己实现了一些接口函数,以供以后使用. ConfigFile.c #include <stdio.h> #include < ...

  6. 算法笔记_200:第三届蓝桥杯软件类决赛真题(C语言本科)

    目录 1 星期几 2 数据压缩 3 拼音字母 4 DNA比对 5 方块填数   前言:以下代码部分仅供参考,若有不当之处,还望路过同学指出哦~ 1 星期几 1949年的国庆节(10月1日)是星期六. ...

  7. 第三届蓝桥杯决赛c++b组

    1.星期几 [结果填空] (满分5分)     1949年的国庆节(10月1日)是星期六.      今年(2012)的国庆节是星期一.     那么,从建国到现在,有几次国庆节正好是星期日呢? 只要 ...

  8. 第三届蓝桥杯C++B组国(决)赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.星期几 1949年的国庆节(10月1日)是星期六. 今年(2012)的国庆节是星期一. 那么,从建国到现在,有几次国庆节正好是星期日呢 ...

  9. java实现第三届蓝桥杯数据压缩

    数据压缩 某工业监控设备不断发回采样数据.每个数据是一个整数(0到1000之间).各个数据间用空白字符(空格,TAB或回车换行)分隔.这些数据以文本形式被存储在文件中. 因为大多数时候,相邻的采样间隔 ...

随机推荐

  1. 33 class.forname

    class.forname(className) class.forname(classname).newInstance class.forname(classname,true,Thread.XX ...

  2. YUV 和 YCbCr 辨析

    YCbCr或Y'CbCr 是在世界数字组织视频标准研制过程中作为ITU-R BT1601 建议的一部分, 其实是YUV经过缩放和偏移的翻版. 通常会用于影片中的影像连续处理,或是数字摄影系统中. 其中 ...

  3. yolo系列目标检测+自标注数据集进行目标识别

    1. yolov1的识别原理 参考:https://blog.csdn.net/u010712012/article/details/85116365 https://blog.csdn.net/gb ...

  4. Java 在Excel单元格中应用一种/多种字体样式

    在Excel表格中,设置单元格字体样式时,可以对单元格内的所有字符应用同一样式,即获取指定单元,应用样式即可:另外也可以对单元格内的不同字符内容应用不同字体样式,即获取单元格中的字符位置,应用样式:本 ...

  5. 如何使用ffmpeg进行音视频裁剪命令和音视频合成命令

    音视频剪裁命令 ffmpeg -i input.mp4 -ss 00:00:00 -t 10 out.ts -i : 指定视频 -ss : 开始时间 -t : 指定裁剪的秒数 音视频合并的命令 ffm ...

  6. 列举mvc ActionResult的返回值

    8.列举ASP.NET MVC ActionResult的返回值有几种类型? 主要有View(视图).PartialView(部分视图).Content(内容).Json(Json字符串).Javas ...

  7. python中主要存在的四种命名方式:

    1.object  -- 公用方法 2._object -- 办保护 (1)被看做是‘protect’,意思是只用类对象和自来对象自己能访问的变量 (2)在模块或类外不可以使用,不能用 ‘from m ...

  8. 关于HTTP 协议

    HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送 ...

  9. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表单:输入框(Input)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  10. js 字符串 常用处理方式(检索、截取、拼接、批量替换)

    // 检索(字符串中判断是否包含某个字符) 字符串.search('检索的内容');// 返回-1,不包含: 返回非-1,包含 字符串.indexOf("待判断的内容"); // ...