当前位置: 首页 > OpenSource > 正文

ethtool maybe caused by “TCP checksum offload”

使用tcpdump抓包时发现有这样的错误信息:

Transmission Control Protocol, Src Port: 44937 (44937), Dst Port: https (443), Seq: 111, Ack: 147, Len: 6

Checksum: 0x5edd [incorrect, should be 0x15db (maybe caused by “TCP checksum offload”?)]
 Good Checksum: False
 Bad Checksum: True

或许是TCP checksum offload的原因

查看本机的网卡信息
2hei# ethtool -k eth0
Offload parameters for eth0:
Cannot get device rx csum settings: Operation not supported
Cannot get device udp large send offload settings: Operation not supported
rx-checksumming: off
tx-checksumming: on
scatter-gather: on
tcp segmentation offload: off
udp fragmentation offload: off
generic segmentation offload: off

其他一些帮助
ethtool -K|–offload DEVNAME    Set protocol offload
                [ rx on|off ]
                [ tx on|off ]
                [ sg on|off ]
                [ tso on|off ]
                [ ufo on|off ]
                [ gso on|off ]

关闭rx和tx
#ethtool -K rx off
#ethtool -K tx off
#ethtool -K eth0 rx off tx off tso off gso off

也可用这个命令
#ethtool -K eth0 tx off tso off

打开
#ethtool -K eth0 tx on
#ethtool -K eth0 tso on

关闭tx和rx后,再次抓包,结果显示正常。

CheckSum Offload实际上是将传输层的一部分工作交给了硬件完成,以节约系统的CPU资源。wireshark在本地抓包时看到是系统随机填充的校验和,所以会显示Checksum Offload,实际并不影响数据包的正常传输。
微软的测试表明它可以最多节约30%的CPU资源。IBM里AIX的文档则指出:对于PCI接口的千兆网卡来说还不如让400Mhz以上的CPU来计算校验和,而PCI-X的千兆网卡启用此项后可以达到线路速度,从而节约CPU资源。

详细可见: http://www.microsoft.com/whdc/device/network/taskoffload.mspx

本文固定链接: http://2hei.net/ethtool_maybe_caused_by_tcp_checksum.html | 2hei's site

该日志由 2hei 于2010年03月03日发表在 OpenSource 分类下,
原创文章转载请注明: ethtool maybe caused by “TCP checksum offload” | 2hei's site
关键字:

报歉!评论已关闭.