ALE 有状态筛选

安装在 Windows 筛选平台 (WFP 的应用程序层强制 (ALE) 层) 执行有状态网络筛选的筛选器。 ALE 流用作 ALE 有状态筛选的基础。

ALE 流是一种根据源 IP 地址、目标 IP 地址、源端口、目标端口和协议对网络流量进行分组的方法。 ALE 流可以是泛型流,即一个或多个描述符可以匹配所有 (或通配符 *) 。 例如,泛型 UDP ALE 流将描述为源 IP 地址 = *、目标 IP 地址 = *、源端口 = *、目标端口 = *和协议 = UDP。

在FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V ({4|6} 层对入站连接和FWPM_LAYER_ALE_AUTH_CONNECT_V{ 4|6 } 层) 的出站连接进行授权后,将创建 ALE 流,这样,在策略更改的情况下,将自动允许属于同一 ALE 流的所有数据包(入站和出站) 。 由于策略更改可能需要阻止以前允许的连接,因此发生策略更改时,需要 重新授权 ALE 流。

ALE 有状态筛选仅对属于 ALE 流的第一个数据包进行分类,大大减少了所需分类的数量。 相比之下,非有状态筛选需要对遍历网络的每个数据包进行分类。

ALE 流具有关联的方向,即流的第一个数据包的方向。 这允许入站发起的连接具有与出站发起的连接不同的策略,从而允许更灵活的策略。

TCP ALE 流

TCP 流量的 ALE 流由 TCP/IP (源 IP 地址、目标 IP 地址、源端口、目标端口和协议) 五元组标识。

TCP ALE 流的生存期与连接的 TCP 套接字相同。 连接的 TCP 套接字可以是使用 connect () 创建的套接字,也可以是因 accept () 调用而创建的套接字。

ALE 维护 TCP ALE 流与 TCP 控制块之间的一对一关系, (TCB) 。

UDP ALE 流

注意

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

 

UDP 流量的 ALE 流由 TCP/IP (源 IP 地址、目标 IP 地址、源端口、目标端口和协议) 五元组标识。

UDP ALE 流基于 UDP 套接字创建,它表示应用程序与之通信的远程对等方。 远程对等方由 (目标 IP 地址和目标端口) 元组标识。

UDP 套接字与它与之通信的远程对等方之间存在一对多关系。

关闭本地 UDP 套接字时,将删除与其关联的所有 ALE 流。

在没有套接字关闭的情况下,UDP 单播 ALE 流具有 可配置 的空闲超时,默认为 60 秒。 如果在此窗口中未发送或接收任何数据包,则将删除 ALE 流。 当系统范围的 ALE 流数达到特定阈值时,此默认超时会逐渐缩短。

ICMP ALE 流

ICMP 流量的 ALE 流由六元组标识, (源 IP 地址、目标 IP 地址、ICMP 类型、ICMP 代码、协议和 ICMP ID) 。 ICMP ID 是 ALE 流的一部分,仅适用于 ICMP 回送/回复流量。

在没有套接字关闭的情况下,ICMP 单播 ALE 流具有 可配置 的空闲超时,默认为 60 秒。 如果在此窗口中未发送或接收任何数据包,则将删除 ALE 流。 当系统范围的 ALE 流数达到特定阈值时,此默认超时会逐渐缩短。

仅向 ALE 层指示 ICMP 非错误消息。 可以在ICMP_ERROR层检查 ICMP 错误消息。

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

ALE 层

ALE 多播/广播流量

ALE 重新授权

ALE 流自定义

TCP 数据包流

UDP 数据包流

Winsock 函数