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_ACCEPTAUTH_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 放弃层。

应用程序层强制 (ALE)

ALE 有状态筛选

ALE 多播/广播流量

ALE 重新授权

ALE Flow自定义

TCP 数据包流

UDP 数据包流

Winsock 函数

筛选条件标志

每个筛选层可用的筛选条件