1

我写信询问 iptables 在 TCP 和 UDP 过滤中的性能。我正在使用大量 iptables 规则对其进行测试。当 FORWARD 链中有 10 000 个混合 TCP 和 UDP 规则时,我得到 TCP 吞吐量 35.5 Mbits/sec 和 UDP 吞吐量 25.2 Mbits/sec

我很困惑为什么 TCP 吞吐量大于 UDP?我认为 TCP 会因为 ACK 数据包而变慢。我已经用cisco ACL测试过,UDP更快。

PC ---- FW ----- PC 拓扑

4

1 回答 1

1

防火墙开销对于数据包而不是字节最为重要。因此,如果平均 UDP 数据包小于平均 TCP 数据包,那么 CPU 将以比 TCP 更小的每秒比特数最大化 CPU。

相反,如果 UDP 数据包大到足以导致碎片,并且防火墙配置为在检查碎片之前重新组装碎片,那么重组将导致大量开销,这将降低每秒比特数的吞吐量。

可能还有其他特定于防火墙实施和配置的因素​​,但我相信这两个将是首要的。

于 2012-04-26T22:06:39.163 回答