WFP之WFP简介
·过滤引擎是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简介的更多相关文章
- WF4.0(1)---WorkFlow简介
编程编的越久就发现自己以前的语文真的没学好,写个随笔取个名字都需要思考半天,以前工作的时候只是听说过工作流,知道的范围仅限于工作流在OA审批流程中用的比较多,现在自己实实在在的用工作流也做过不少项目, ...
- WF4.0 基础篇 (一)开始使用WF
来源:https://www.cnblogs.com/caosenianhuan/p/WF.html 最近公司要重新上线一套新的CRM系统,要重整老系统里的业务流模块,团队讨论已微软的workflow ...
- 2012年第三届蓝桥杯C/C++程序设计本科B组决赛
1.星期几(取余/excel) 2.数据压缩 3.拼音字母(比较) 4.DNA比对(dp) 5.方块填数 1.星期几[结果填空] (满分5分) 1949年的国庆节(10月1日)是星期六. ...
- 2012蓝桥杯本科组C/C++决赛题
星期几 [结果填空] (满分5分) 1949年的国庆节(10月1日)是星期六. 今年()的国庆节是星期一. 那么,从建国到现在,有几次国庆节正好是星期日呢? 只要答案,不限手段! 可以用windows ...
- 读取配置文件的C语言接口实现
在一些场合,需要对一些配置文件进行读取,去设置软件的参数,自己实现了一些接口函数,以供以后使用. ConfigFile.c #include <stdio.h> #include < ...
- 算法笔记_200:第三届蓝桥杯软件类决赛真题(C语言本科)
目录 1 星期几 2 数据压缩 3 拼音字母 4 DNA比对 5 方块填数 前言:以下代码部分仅供参考,若有不当之处,还望路过同学指出哦~ 1 星期几 1949年的国庆节(10月1日)是星期六. ...
- 第三届蓝桥杯决赛c++b组
1.星期几 [结果填空] (满分5分) 1949年的国庆节(10月1日)是星期六. 今年(2012)的国庆节是星期一. 那么,从建国到现在,有几次国庆节正好是星期日呢? 只要 ...
- 第三届蓝桥杯C++B组国(决)赛真题
解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.星期几 1949年的国庆节(10月1日)是星期六. 今年(2012)的国庆节是星期一. 那么,从建国到现在,有几次国庆节正好是星期日呢 ...
- java实现第三届蓝桥杯数据压缩
数据压缩 某工业监控设备不断发回采样数据.每个数据是一个整数(0到1000之间).各个数据间用空白字符(空格,TAB或回车换行)分隔.这些数据以文本形式被存储在文件中. 因为大多数时候,相邻的采样间隔 ...
随机推荐
- 33 class.forname
class.forname(className) class.forname(classname).newInstance class.forname(classname,true,Thread.XX ...
- YUV 和 YCbCr 辨析
YCbCr或Y'CbCr 是在世界数字组织视频标准研制过程中作为ITU-R BT1601 建议的一部分, 其实是YUV经过缩放和偏移的翻版. 通常会用于影片中的影像连续处理,或是数字摄影系统中. 其中 ...
- yolo系列目标检测+自标注数据集进行目标识别
1. yolov1的识别原理 参考:https://blog.csdn.net/u010712012/article/details/85116365 https://blog.csdn.net/gb ...
- Java 在Excel单元格中应用一种/多种字体样式
在Excel表格中,设置单元格字体样式时,可以对单元格内的所有字符应用同一样式,即获取指定单元,应用样式即可:另外也可以对单元格内的不同字符内容应用不同字体样式,即获取单元格中的字符位置,应用样式:本 ...
- 如何使用ffmpeg进行音视频裁剪命令和音视频合成命令
音视频剪裁命令 ffmpeg -i input.mp4 -ss 00:00:00 -t 10 out.ts -i : 指定视频 -ss : 开始时间 -t : 指定裁剪的秒数 音视频合并的命令 ffm ...
- 列举mvc ActionResult的返回值
8.列举ASP.NET MVC ActionResult的返回值有几种类型? 主要有View(视图).PartialView(部分视图).Content(内容).Json(Json字符串).Javas ...
- python中主要存在的四种命名方式:
1.object -- 公用方法 2._object -- 办保护 (1)被看做是‘protect’,意思是只用类对象和自来对象自己能访问的变量 (2)在模块或类外不可以使用,不能用 ‘from m ...
- 关于HTTP 协议
HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送 ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表单:输入框(Input)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- js 字符串 常用处理方式(检索、截取、拼接、批量替换)
// 检索(字符串中判断是否包含某个字符) 字符串.search('检索的内容');// 返回-1,不包含: 返回非-1,包含 字符串.indexOf("待判断的内容"); // ...