antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1677回复:7

怎么让miniport计算CHECKSUM

楼主#
更多 发布于:2003-07-17 16:57
OOB数据一般翻译为带外数据。但是这个带外数据不是一般
所说的协议的带外数据的概念,TCP也没有真正的带外数据。

这个参数在NDIS 3的PACKET结构中是没有的,NDIS4里面有
一些,NDIS5里面内容很多了。NDIS使用这个域存放TIME
STAMP等等东西。一般来说,不太用考虑这个问题,对于
IMD的编程者或者TCP FILTER的编程者来说,如果需要修改
数据包,那么值得注意的一个地方乃是OOB数据中的TCPCHKSUM
IPCHKSUM内容,因为对于W2K来说,NDIS可以让MINIPORT
计算TCP/IP CHKSUM。
上边是HU斑竹的原话,!
我想知道当我修改了包内容后怎么才能让WIN2K的NDIS miniport来计算TCPCHESM和IPCHKSUM呢?
听说一般情况下OS对这个算法进行了优化,所以想请教一下




 

[编辑 -  7/18/03 by  antspower]
放弃瘟草,现吃李草
antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-17 18:57
晕,难道大家都像偶一样是自己算的不?:
放弃瘟草,现吃李草
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-17 23:02
不是所有的miniport都支持计算checksum,具体是否支持checksum,可以通过oid来查询。

所以还是自己算的好一些,TCP协议还好,如果进行了其他的封装,miniport不认识了,他怎么算checksum?
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-07-18 08:05
不是所有的miniport都支持计算checksum,具体是否支持checksum,可以通过oid来查询。

所以还是自己算的好一些,TCP协议还好,如果进行了其他的封装,miniport不认识了,他怎么算checksum?

偶是想知道,到底是怎么做的?
有对应的函数么?
放弃瘟草,现吃李草
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-07-18 08:58
用task_offload去查询,看网卡是否支持算checksum。
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
longfoot
驱动牛犊
驱动牛犊
  • 注册日期2002-07-26
  • 最后登录2011-08-10
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望12点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-07-18 16:50
呵呵,我是自己算得,代码很简单亚。
需要注意的是-----分片包文处理的特殊性
antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-07-18 16:55
楼上看清楚啊,算法已经实现了的。
我现在主要是想提高效率,利用系统/网卡上做了优化的算法/硬件
来做chksum,
放弃瘟草,现吃李草
Turbo
驱动牛犊
驱动牛犊
  • 注册日期2002-02-05
  • 最后登录2009-01-12
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-07-18 17:32
现在又些nic支持ip checksum,尤其是Giga的,如果hardware不支持,还是不要自己算。
用task_offload去查询,看网卡是否支持算checksum。
游客

返回顶部