您的位置:首页 > 理论基础 > 计算机网络

Checksum: 0x7259 [incorrect, should be 0x0a75 (maybe caused by "TCP checksum offload"?)]

2013-10-30 10:18 543 查看
       今天在分析一个TCP DUP ACK的问题时,发现Server端的Wireshark抓包出现下面的错误:

       Checksum: 0x7259 [incorrect, should be 0x0a75 (maybe caused by "TCP checksum offload"?)]

        在网上查找原因,基本认为是网卡帮助Tcp协议栈处理了校验和从而发生的错误。本身校验和是Tcp协议栈来处理的,但为了提高效率,降低CPU的负担,可以将校验和的任务分担给网卡来完成,从而提高吞吐率。消除该错误的方法就是关闭网卡的校验和计算功能。

        在windows下直接通过右击网卡属性就可以进行修改:

       如果网卡支持,在高级选项里可以设置Checksum Offload是否对Rx或Tx有效,也可以设置为对两者都有效。

       在Linux下的修改方法为:

       ethtool -K eth1 rx off tx off sg off tso off

 

       从Wireshark网站上看到的处理方法:

       http://wiki.wireshark.org/CaptureSetup/Offloading?action=show&redirect=TCP_checksum_offload

       linux侧的抓包方法:

       /mnt/flash/BIN/tcpdump tcp -i ipoa_linux -w /mnt/flash/BIN/client.cap

       tcpdump -i eth0 -vv -s 0 -w active.cap

 

       这个是 Linux计算checksum的源码

       http://www.2cto.com/kf/201202/118907.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐