Wireshark技巧-禁止验证协议校验和

Wireshark开发与使用 admin 3139℃ 0评论

在使用Wireshark抓取报文进行协议分析的时候,很多时候会出现IP/TCP/UDP校验和错误的情况,通常,如果协议校验和错误,那么数据是顺利到达目的地的,但实际情况却到达了,否则对方也不对其进行响应,见下图:

既然没有报文本身没有错误,那为什么Wireshark会出现校验和错误的警告呢?

原来在现代网卡设计中,为了性能考虑,已经支持通过硬件来对网络层和传输层的协议进行校验和计算,如果对网卡进行了相应的配置,那么操作系统的网络协议栈并不计算网络层和传输层的协议的校验和,而Wireshark内核抓包的实现是在报文发送之前,还没有到达网卡,简单点说,就是还没有到网卡计算校验和那一步,因此它得到的报文校验和是错误的,与自己计算的不相符,所以才会在界面上显示Bad Checksum。

按照上面的分析,只有发送的报文才有可能出现这种情况,那接收是否就不会出现?看上图,的确是这样的,接收报文并没有这中情况。

有两种方法解决这个问题,其实这不是问题,Wireshark程序没有错,协议也没有错,但是为了不产生歧义,可以根据需要可以修改一下系统的设置或者Wireshark的配置。

1、修改Wireshark的配置,点击菜单Edit->Perferences->IPv4,如下图,将Validate the ipv4 checksum if possible的选项去掉(UDP和TCP的修改方法与此类似)。

 

2、修改操作系统的网卡配置信息,打开设备管理器,然后选择相应的网卡,双击网卡名称显示属性对话框,点击“高级”TAB项,根据需求关闭相应的协议的硬件校验和设置。如下图:

转载请注明:协议分析与网络安全 » Wireshark技巧-禁止验证协议校验和

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址