WireShark中为什么会出现Tcp Checksum Offload
来源:互联网 发布:淘宝多少天自动收货 编辑:程序博客网 时间:2024/05/15 01:21
这篇文章一个人在日志里写了四次!!!!不知道为什么不过确实对我有用特别是最后一句就转了过来。
其实经常在抓包的时候发现这个问题,今天才好奇的去Google了一下
简单的总结下,就是wireshark抓到的数据包提示Checksum错误,仅仅是因为它截获到的是操作系统胡乱填充的checksum,而千兆网卡在开启Checksum Offload之后,会把这些计算的工作交给网卡去做,网卡最后还是会计算出正确的checksum并且发出去的。
这几天在分析通讯报文的过程中发现WireShark里显示本机发出去的一些数据包Bad Checksum,并提示 maybe caused by “TCP checksum offload?”
Google了一下,发现这是网卡的一项功能,可以替代系统的TCP/IP协议栈来计算TCP包的校验和。
在windows系统中的Checksum Offload过程如下:
如果网卡支持,在高级选项里可以设置Checksum Offload是否对Rx或Tx有效,也可以设置为对两者都有效。
对于Tx,设置Checksum Offload有效之后,Windows的传输层将随机填充TCP校验和,因此在本机上抓取的数据包是Bad CheckSum。然后,网卡会自动计算正确的校验码然后发送,因此对方收到的仍然是正确的TCP包。
对于Rx,设置Checksum Offload有效之后,网卡在接收数据时,会填充一个NDIS_TCP_IP_CHECKSUM_PACKET_INFO 结构并设置标志位;如果由于某种原因失败,则不设置标志位,由Windows里的TCP/IP协议栈来完成数据校验。
CheckSum Offload实际上是将传输层的一部分工作交给了硬件完成,以节约系统的CPU资源。微软的测试表明它可以最多节约30%的CPU资源。IBM里AIX的文档则指出:对于PCI接口的千兆网卡来说还不如让400Mhz以上的CPU来计算校验和,而PCI-X的千兆网卡启用此项后可以达到线路速度,从而节约CPU资源。
解决方法:
windows下可以再网卡的高级属性里将checksum offload属性改为none。
linux下使用ethtool命令关闭checksum offload,具体命令如下:
- 转载:WireShark中为什么会出现Tcp Checksum Offload?
- WireShark中为什么会出现Tcp Checksum Offload
- WireShark 中为什么会出现 Tcp Checksum Offload?
- 什么是Tcp Checksum Offload,WireShark中为什么会出现Tcp Checksum Offload
- WireShark 出现 Checksum Offload
- TCP checksum offload
- TCP checksum offload
- wireshark抓包中Checksum Offload问题
- DPDK 使用网卡ip/tcp/udp checksum offload
- Checksum: 0x7259 [incorrect, should be 0x0a75 (maybe caused by "TCP checksum offload"?)]
- WireShark抓包,may be caused by ip checksum offload的解决办法
- WireShark抓包,may be caused by ip checksum offload的解决办法
- wireshark抓包时出现header checksum出错
- [Protocol Analysis]Wireshark capture packet tcp udp checksum error
- Wireshark抓包时显示TCP校验和错误(checksum incorrect)
- C语言中为什么会出现UL?
- mac os x 关闭checksum offload
- How to turn off checksum offload?
- 局部静态对象
- shared_ptr的一些尴尬
- Python Exercise #11
- 没有学位,他通过以下四步进入Google
- Tiny6410 led 驱动实现分析
- WireShark中为什么会出现Tcp Checksum Offload
- Null value was assigned to a property of primitive type setter of……
- 解决QML设置Image 的source 时路径为绝对路径的问题
- ASP 无控件分页
- 努力成为优秀的工程师
- js转换json格式时间成字符串前台显示
- 指针常量和常量指针
- 虚拟机软件VMWare安装
- LoadRunner检查点使用小结