Header checksum: 0x0000 [incorrect, should be...]

8 篇文章 0 订阅

wireshark抓自己发出去的包的时候碰到这个问题,以为是程序的问题,可是接收方却说收到的包一点问题都没有。奇怪了,到网上一搜,长见识了。

http://forums.whirlpool.net.au/forum-replies-archive.cfm/1265837.html

a lot of modern network cards use TCP/IP checksum offloading, inwhich case Windows doesn't bother generating a checksum for eachoutbound packet and the network card adds them just beforetransmission.

This reduces the amount of work that the computer's CPU has todo, but the problem is that Wireshark can only intercept packets atthe OS level, and hence thinks the checksums are invalid (when infact the problem is that they haven't been added yet).

大意就是操作系统偷懒,把计算校验和的工作扔给了网卡,网卡在包发出去才加上校验和,wireshark在OS层抓包的时候,包的校验和还没被添加,是0x0000,于是认为headerchecksum incorrect。

想让OS自己加校验和,怎么办呢?

http://support.microsoft.com/kb/904946

要变通解决此问题,关闭将卸载网络适配器上的校验和。若要这样做,请按照下列步骤操作:

  1. 单击 开始、单击 运行,键入 regedit,然后单击 确定
  2. 找到并单击以下注册表子项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  3. 在右窗格中确保 DisableTaskOffload 注册表项存在。如果此项不存在,请按照下列步骤以将项添加操作:
    1.  编辑 菜单上指向 新建,然后单击 DWORD值
    2. 键入 DisableTaskOffload,然后按ENTER 键。
  4. 单击 DisableTaskOffload
  5.  编辑 菜单上单击 修改
  6.  数值数据 框中键入 1,然后按ENTER 键。
  7. 退出注册表编辑器。

可是,我在win7下改了也没用,莫非要重启机器?不懂ing

 

果然,重启后正常了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值