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 类型、代码和 ID (单播) 的第一个入站非错误 ICMP 消息。

注意

非 TCP 或 ICMP 的协议被视为 UDP。

 

原始套接字接收的 TCP 数据包的处理方式与 UDP 流量类似。 也就是说,仅筛选原始套接字上的第一个 TCP 发送 () 和第一个 TCP recv ()

AUTH_CONNECT

FWPM_LAYER_ALE_AUTH_CONNECT_V{4|6} 层的筛选器匹配 TCP connect () 调用、发送到唯一远程地址和端口元组的第一个 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 DISCARD 层

对于上述每个 ALE 层,筛选引擎都包含一个匹配的丢弃层。 标注使用 ALE 放弃层进行日志记录。 在某个 ALE 筛选层中丢弃的数据包和指示会指示到匹配的 ALE 丢弃层。

应用程序层强制实施 (ALE)

ALE 有状态筛选

ALE 多播/广播流量

ALE 重新授权

ALE 流自定义

TCP 数据包流

UDP 数据包流

Winsock 函数

筛选条件标志

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