阅读:1677回复:7
怎么让miniport计算CHECKSUM
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] |
|
|
沙发#
发布于:2003-07-17 18:57
晕,难道大家都像偶一样是自己算的不?:
|
|
|
板凳#
发布于:2003-07-17 23:02
不是所有的miniport都支持计算checksum,具体是否支持checksum,可以通过oid来查询。
所以还是自己算的好一些,TCP协议还好,如果进行了其他的封装,miniport不认识了,他怎么算checksum? |
|
|
地板#
发布于:2003-07-18 08:05
不是所有的miniport都支持计算checksum,具体是否支持checksum,可以通过oid来查询。 偶是想知道,到底是怎么做的? 有对应的函数么? |
|
|
地下室#
发布于:2003-07-18 08:58
用task_offload去查询,看网卡是否支持算checksum。
|
|
|
5楼#
发布于:2003-07-18 16:50
呵呵,我是自己算得,代码很简单亚。
需要注意的是-----分片包文处理的特殊性 |
|
6楼#
发布于:2003-07-18 16:55
楼上看清楚啊,算法已经实现了的。
我现在主要是想提高效率,利用系统/网卡上做了优化的算法/硬件 来做chksum, |
|
|
7楼#
发布于:2003-07-18 17:32
现在又些nic支持ip checksum,尤其是Giga的,如果hardware不支持,还是不要自己算。
用task_offload去查询,看网卡是否支持算checksum。 |
|