RAW SOCKET有的计算机上抓不到本机发的包

   今天碰到个怪问题,用RAW SOCKET做的抓包程序,在一部分机器上工作正常;另一部分只能抓到收的包,本机发送的包抓不到。用Ethereal抓包,发现发的包IP校验和全是错误的(00),接收的包IP校验和没问题。上网收了下资料:

 

Ethereal抓包时发现TCP校验和错误

Q:

在Windows平台上用Ethereal抓包时发现TCP校验和错误,但应用层的反应告诉我,这
个报文的TCP校验和没问题。

A: 2000-03

网卡配置->高级->Rx Checksum Offload/Tx Checksum Offload,很可能你的这两处
设置是Enable,将之调整成Disable即可,代价是网络性能降低。

一般由操作系统的TCP/IP协议栈完成TCP/UDP/IP校验和的计算工作,这两处设置成
Enable之后,协议栈不再进行校验和的计算,而是由网卡自己完成。如果在前述位置
没有发现Rx Checksum Offload/Tx Checksum Offload项,有两种可能,一种是网卡
本身不支持这种功能,另一种是网卡驱动未提供配置项,后一种情形居多。

事实上该问题与使用何种Sniffer软件无关。 

 

 

把网卡的Rx Checksum Offload/Tx Checksum Offload禁用后,Ethereal显示正常了,RAW SOCKET程序也能正常工作了。

 

RAW SOCKET表现真是怪异,难道不兼容这种硬件校验和的模式,还是需要特别的设置。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值