【问题标题】:How can I force full checksumming of UDP data?如何强制对 UDP 数据进行完整校验和?
【发布时间】:2011-02-11 01:06:54
【问题描述】:

根据http://kerneltrap.org/mailarchive/linux-netdev/2007/9/23/272755,Linux 不会为发往环回接口的数据包生成完整的校验和。我想强制 UDP 校验和。我该怎么做?

【问题讨论】:

  • 为什么要对绑定到本地机器的数据包进行校验和?您是否担心它会在 RAM 和...其他 RAM 之间损坏?
  • 否 ;)。我在本地机器上截取数据包,做一些处理,然后发送出去。

标签: linux networking udp


【解决方案1】:

校验和对于UDP是可选的,你也可以设置为0。

如果您出于某种原因需要它,为什么不自己创建校验和呢?例如:

http://www.netfor2.com/udpsum.htm

然后(至少如果您使用原始套接字,我不确定您是否可以使用普通 UDP 套接字执行此操作)只需使用您计算的校验和更新数据包。

【讨论】:

  • 我想用普通的 UDP 套接字进行校验和。
【解决方案2】:

问题更多的是您的 NIC 具有硬件校验和支持,而 Linux 正在使用它,因此永远不要在内核中设置校验和。尝试禁用硬件校验和,但要注意性能开销。

【讨论】:

    猜你喜欢
    • 2019-06-17
    • 1970-01-01
    • 2015-08-31
    • 1970-01-01
    • 2010-12-01
    • 2014-06-15
    • 1970-01-01
    • 2014-08-16
    • 2010-12-18
    相关资源
    最近更新 更多