【问题标题】:Iptables filtering performance: TCP and UDPiptables过滤性能:TCP和UDP
【发布时间】:2012-04-25 12:23:52
【问题描述】:

我写信询问 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 拓扑

【问题讨论】:

    标签: tcp udp iptables throughput


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的回复。我用wireshark捕获了传出的数据包。我发现 TCP 数据包长度很大。
    • Wireshark 有一个用于 TCP 数据包重组的选项,它将多个数据包连接成段。所以这些大小可能不代表实际的 IP 级数据报大小。看看你是否可以关闭重组以获得更“原始”的网络视图。如果您确实有将近 3000 字节长的 TCP 数据包,那么有些问题是非常错误的,因为标准 TCP 在没有某种配置的情况下不会超过 1500 MTU。
    猜你喜欢
    • 1970-01-01
    • 2012-10-16
    • 2013-03-18
    • 2012-04-17
    • 2018-11-17
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多