前言

昨天在电脑上抓取的报文,想进行回话,但是发现全部被设备丢弃了,没有debug信息,查看了抓包文件,原来是IP头和TCP、UDP头的检验和全部为0,也就是TOE(TCP/IP Offload Engine)导致的。

TOE(TCP/IP Offload Engine)

传统的TCP/IP处理网络数据传输过程中,要占用大量的主机CPU资源,为了减轻CPU的压力,一种叫TOE(TCP/IP offload engine,TCP/IP卸载引擎)的技术应运而生。TOE技术对TCP/IP协议栈进行扩展,使部分TCP/IP协议从CPU转移到TOE硬件,减轻CPU的负担。
TOE引擎需要做的一件事情就是将IP头、TCP头、UDP头的checksun计算由网卡来计算,CPU不需要计算IP头、TCP头、UDP头的检验和的工作由网卡来进行。这样可以减轻CPU的负担,如下图所示,但是这样会带来一个问题,就是在user application抓的发送出去的报文的检验和是不对的,如果直接对报文进行回放,会被设备丢弃,导致报文回放失败。

禁用网卡硬件校验和的功能

点击网卡属性、找到高级一项。把

  • IPv4 硬件校验和
  • TCP 硬件校验和(IPv4)
  • UDP硬件校验和(IPv4)

把这三项全部关闭,就可以关闭网卡的硬件检验和功能。

重新计算检验和的工具

另外做了一个重新计算检验和的工具:

1、把要修改checksum的pcap/cap文件放入此文件夹下面。

2、双击doit.cmd,就会生成新的文件。

关于TOE(TCP/IP Offload Engine)的更多相关文章

  1. TOE(TCP/IP Offload Engine)网卡与一般网卡的区别

    TCP减压引擎,第一次听说这个名词,但是并不是一个新的概念了,若干年前听说过设备厂商在研究在FPGA之中实现TCP Stack,但是后来没有听到任何的产品出来,应该是路由设备to host的traff ...

  2. Method of offloading iSCSI TCP/IP processing from a host processing unit, and related iSCSI TCP/IP offload engine

    A method of offloading, from a host data processing unit (205), iSCSI TCP/IP processing of data stre ...

  3. 云计算之路-阿里云上:消灭“黑色n秒”第三招——禁用网卡的TCP/IP Offload

    程咬金有三板斧,我们有三招.在这篇博文中我们要出第三招,同时也意味着昨天在“希望的田野”上的第二招失败了. 前两招打头(CPU)不凑效,这一招要换一个部位,但依然要坚持攻击敌人最弱(最忙最累)部位的原 ...

  4. tcp ip参数详解

    http://www.cnblogs.com/digdeep/p/4869010.html 1. TCP/IP模型 我们一般知道OSI的网络参考模型是分为7层:“应表会传网数物”——应用层,表示层,会 ...

  5. Tcp/Ip 三次握手与四次挥手

    1. TCP/IP模型 我们一般知道OSI的网络参考模型是分为7层:“应表会传网数物”——应用层,表示层,会话层,传输层,网络层,数据链路层,物理层.而实际的Linux网络层协议是参照了OSI标准,但 ...

  6. 单片机联网需求攀升 WIZnet全硬件TCP/IP技术崛起

    --新华龙电子为韩国WIZnet公司网络芯片授权代理商,具有20多年的专业团队IC应用开发实力-- 如今不管是在企业还是小区.街道,甚至是居民室内,以太网接口无处不在.有鉴于此,电子设备必将向更加智能 ...

  7. W7500P硬件TCP/IP+硬件物理层PHY+Cortex-M0处理器(48MHZ)

    W7500P 硬件TCP/IP+硬件物理层PHY+Cortex-M0处理器(48MHZ) 硬件TCP/IP+硬件物理层PHY+Cortex-M0处理器(48MHZ) 如果您发现商品信息不准确,欢迎纠错 ...

  8. Linux 从网卡到TCP IP协议栈数据流跟踪与审计

    前沿 在学代码审计,然后最近做Linux协议栈的审计,发现Linux不愧是一个久经考验的系统,本来以为可以找到个DoS的,结果发现其在TCP/IP协议栈的链路层实现,利用了各种技术,用来提高性能与安全 ...

  9. NET使用SuperSocket完成TCP/IP通信

    1)为什么使用SuperSocket? 性能高,易上手.有中文文档,我们可以有更多的时间用在业务逻辑上,SuperSocket有效的利用自己的协议解决粘包 2)SuperSocket的协议内容? 命令 ...

随机推荐

  1. 用代码控制退出APP

    + (void)exitApplication { AppDelegate *app = [UIApplication sharedApplication].delegate; UIWindow *w ...

  2. 【转】AS3多种天气预报调用代码分享

    今天我们来介绍利用weather.com.cn上的天气预报功能,这里介绍了大家常用的,其它的大家可以自己去下载. 我们这里的天气预览不需要js来调用,只要用iframe就可以了,更不需要ASP/' t ...

  3. [原]android sdk更新的终极解决方案

    由于众所周知的原因,国内更新Android SDK一直是个老大难的事情,一般都要到处找VPN之类的工具来曲线救国.不过其实谷歌已经帮我们想到这点了,我们自身就可以解决问题,步骤如下: 打开SDK Ma ...

  4. 6.Redis常用命令:Set

    在Redis中,我们可以将Set类型看作为没有排序的字符集合,和List类型一样,我们也可以在该类型的数据值上执行添加.删除或判断某一元素是否存在等操作.需要说明的是,这些操作的时间复杂度为O(1), ...

  5. 我的iOS-App

    1.PocketConfidential(密保箱) 简介 保存账号密码等敏感信息. 应用技术: sqlite.sqlcipher加密.AES数据加密.GCD https://itunes.apple. ...

  6. 基于Flink的windows--简介

    新的一年,新的开始,新的习惯,现在开始. 1.简介 Flink是德国一家公司名为dataArtisans的产品,2016年正式被apache提升为顶级项目(地位同spark.storm等开源架构).并 ...

  7. StarUML的9种图

    UML的九种图:用例图,类图,对象图,状态图,活动图,序列图,协作图,构件图,部署图.外加包图. (一).用例图 1.定义:由参与者(Actor).用例(Use Case)以及它们之间的关系构成的用于 ...

  8. 设置ZooKeeper服务器地址列表源码解析及扩展

    设置ZooKeeper服务器地址列表源码解析及扩展 ZooKeeper zooKeeper = new ZooKeeper("192.168.109.130:2181",SESSI ...

  9. linux环境下 mysql数据库忘记密码 处理办法UPDATE user SET Password = password ( 'new-password' ) WHERE User = 'root' ;

    整个修改过程大概3-10分钟(看个人操作),这个时间内mysql出于不需要密码就能登陆的状态,请设法保证系统安全 不罗嗦直接上步骤 1.vi /etc/my.cnf 在[mysqld]下,添加一句:s ...

  10. NSString 为什么要使用copy,而不是retain

    NSString 为什么要使用copy,而不是retain1.首先如果使用retain,只是引用计数+1,并没有生成新的对象,所以效率好2.但是使用copy安全.因为NSString 为 NSMuta ...