ALE 层
应用程序层强制 (ALE) 由多个筛选层和许多匹配的放弃层组成。 筛选层标识符中介绍了所有Windows筛选平台 (WFP) 筛选引擎层(包括 ALE)。 本主题包含有关 ALE 一部分的筛选层的更详细说明。
RESOURCE_ASSIGNMENT
FWPM_LAYER_ALE_RESOURCE_ASSIGNMENT_V{4|6} 层的筛选器与网络绑定操作、显式或隐式匹配。
如果此层上的筛选器与授权原始套接字创建匹配,则会设置 FWP_CONDITION_FLAG_IS_RAW_ENDPOINT 标志。
如果此层中的筛选器与授权杂交模式接收匹配, FWP_CONDITION_ALE_PROMISCUOUS_MODE 字段将设置为SIO_RCVALL。 有关SIO_RCVALL的说明,请参阅 WSAIoctl。
注意
这是唯一可以筛选杂交模式的层。
如果在 bind () 期间未指定端口,即端口设置为 0 (零) ,则 TCP/IP 堆栈将从动态端口范围中选择端口, (19152–65535) 。 所选端口将在此层以及 FWP_CONDITION_FLAG_IS_WILDCARD_BIND 标志进行分类。
如果在 bind () 调用中未指定本地地址,则本地地址字段设置为 FWP_EMPTY。
AUTH_LISTEN
FWPM_LAYER_ALE_AUTH_LISTEN_V{4|6} 层的筛选器与 TCP 侦听 () 调用匹配。
AUTH_RECV_ACCEPT
FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V{4|6} 层的筛选器匹配 TCP accept () 调用、从唯一远程地址/端口元组 (单播) 的第一个 UDP 数据包,以及第一个入站非错误 ICMP 消息, (具有唯一 ICMP 类型、代码和 ID 的单播) 。
注意
不是 TCP 或 ICMP 的协议被视为 UDP。
原始套接字接收的 TCP 数据包处理方式与 UDP 流量类似。 也就是说,只会筛选第一个 TCP 发送 () 和原始套接字上的第一个 TCP recv () 。
AUTH_CONNECT
FWPM_LAYER_ALE_AUTH_CONNECT_V{4|6} 层的筛选器匹配 TCP 连接 () 调用、发送到唯一远程地址和端口元组的第一个 UDP 数据包,以及具有唯一 ICMP 类型、代码和 ID 的第一个出站非错误 ICMP 消息。
注意
不是 TCP 或 ICMP 的协议被视为 UDP。
原始套接字发送的 TCP 数据包处理方式与 UDP 流量类似。 也就是说,只会筛选第一个 TCP 发送 () 和原始套接字上的第一个 TCP recv () 。
FLOW_ESTABLISHED
在 TCP 三向握手成功完成后 ,FWPM_LAYER_ALE_FLOW_ESTABLISHED_V{4|6} 层的筛选器匹配。 对于非 TCP 流量,筛选器在匹配 来自AUTH_RECV_ACCEPT 或 AUTH_CONNECT 层的筛选器后立即匹配。
此层的筛选器不应返回 Block 或 Permit。
标注驱动程序使用此层来跟踪连接状态,Windows驱动程序工具包文档中详细介绍。
RESOURCE_RELEASE
在释放通过RESOURCE_ASSIGNMENT分配的资源后,FWPM_LAYER_ALE_RESOURCE_RELEASE_V{4|6} 层的筛选器匹配。
ENDPOINT_CLOSURE
关闭连接的 TCP 流或 UDP 套接字终结点时, FWPM_LAYER_ALE_ENDPOINT_CLOSURE_V{4|6} 层中的筛选器匹配。
CONNECT_REDIRECT
FWPM_LAYER_ALE_CONNECT_REDIRECT_V{4|6} 层的筛选器允许修改远程地址和端口。 出站连接将在该连接期间重定向。
BIND_REDIRECT
FWPM_LAYER_ALE_BIND_REDIRECT_V{4|6} 层的筛选器允许修改基础套接字的本地地址和端口。 本地套接字将在套接字的生存期内重定向
ALE 放弃层
对于上述每个 ALE 层,筛选引擎包含匹配的放弃层。 ALE 放弃层由标注用于日志记录目的。 已丢弃在 ALE 筛选层之一处的数据包和指示将指示为匹配的 ALE 放弃层。
相关主题