从协议理论我们知道TCP是有状态的协议。
不同的有状态数据包过滤器根据连接状态进行过滤。即它可以区分响应和回复。这显然是针对 TCP 和 ICMP(作为对 UDP 的回答,例如需要 Frag Needed 等等),但是关于纯 UDP 交换呢?
没有深入的 L7 分析,如何区分 UDP 响应和 UDP 响应?
从协议理论我们知道TCP是有状态的协议。
不同的有状态数据包过滤器根据连接状态进行过滤。即它可以区分响应和回复。这显然是针对 TCP 和 ICMP(作为对 UDP 的回答,例如需要 Frag Needed 等等),但是关于纯 UDP 交换呢?
没有深入的 L7 分析,如何区分 UDP 响应和 UDP 响应?
它实际上是根据源和目标 IP 地址和端口以及时间来猜测的。在这些地址和端口之间没有流量一段时间后,就认为它完成了。不同的观察者将有自己的算法来根据时间确定 UDP 交换何时关闭。没有标准,因为 UDP 是明确无连接的。防火墙之类的东西正在转向深度数据包检查,而如何做到这一点是供应商专有的。
许多 UDP 交换小而短,例如 DNS 请求和回复。一些,例如VoIP,将在每个方向上几乎是恒定的,而一些,例如视频,将主要在一个方向上是恒定的。几乎所有的 UDP 交换要么小而短,要么是持续不断的实时流量。随着像 QUIC 这样的东西开始发挥作用,这种情况正在发生变化。