阅读:1627回复:13
关注:100分奉送,见者有份。
加载一个NDIS中层驱动,对数据包进行处理,调用MPSend之前,IP CheckSum肯定是没有问题,但Sniffer抓包发现离开该机器的数据包
IP Checksum经常就变为0了!Ping包一般没有问题,访问网上邻居的SMB包总是有问题,导致无法搜索到目标机器。 不加载此驱动的情况下是好的。各位老大帮忙分析。 另外:很多机器中,仅此一台有问题! |
|
|
沙发#
发布于:2003-02-27 20:00
不懂,顶顶!
|
|
|
板凳#
发布于:2003-02-28 09:13
关注
|
|
地板#
发布于:2003-02-28 20:40
顶一下。
|
|
地下室#
发布于:2003-02-28 21:41
你是怎么处理的,能粘出代码看看吗?
|
|
5楼#
发布于:2003-03-01 02:07
问题小弟已经解决了50%,情况是这样的:
大家都知道网卡的Task Offload功能,小弟也听说过,只是没有遇到过,这回终于遇到了,前面一句话可能对大家有误导:“另外:很多机器中,仅此一台有问题!”。事实是,该机器的网卡有Task Offload功能,且开启了Transimit TCP/IP Checksum的计算,但网卡的这种功能有些傻逼,它在计算校验和的时候,没有将checksum位置零,因此我们必须在数据包交给网卡驱动前将其置零,而我的驱动却没有考虑这件事,并在处理后更新了校验和,到了网卡再算一遍,当然每次都是零了。 对于这种情况,我想有两种做法: 1> 关闭Task Offload功能。 这里要注意,DDK里所提到的: HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services\\TCPIP\\Paramters\\DisableTaskOffload小弟试了是没有效果的,也不知是否试的方法不对,因为小弟没有在注册表里看到该项,于是就加了一个DWORD值。因此关闭Task Offload功能就只能借助于OID_TCP_TASK_OFFLOAD了,具体做法DDK里说的很详细了。另外,有些网卡驱动做的比较好,它会在网卡配置里显示各种Task的状态,你可以手动设置其是否启用。但手动改动和Driver里处理之间是个什么关系,小弟还不敢讲,因为晚上才刚刚装了一块。 2> 检查Tcp/Ip交过来的包,如果其IP Checksum为0,表明该功能已开启,则不重算;否则,处理之后重算。 上述两种方法都可以保证从网卡出去的数据包校验和是好的,只是小弟头一次遇到这个问题,目前还有些相关的现象不好解释,但问题还不明确,稍后再请各位分析。 希望遇到过、处理过相关问题的各位老大们不吝赐教,说的不对的地方,一定请予指正。 各位关注的老大,小弟有小分送上。 补:不是哥们不给分,谁能告诉我怎么给?哥们以前也不是没有给过分,可这回怎么折腾都说什么我不是起帖人或者已经给了分,kao!简直受不了。 [编辑 - 3/1/03 by SharpShooter] |
|
|
6楼#
发布于:2003-03-01 09:43
你要给我的话~~~ 估计给分动作就被允许了 :D
|
|
|
7楼#
发布于:2003-03-01 13:17
你用的什么网卡?
你的网卡,如果可以理解到IP层协议,那就可以内置ROUTER功能了。 别不是网卡驱动搞得鬼吧。不是网卡干的。 |
|
8楼#
发布于:2003-03-01 14:57
你要给我的话~~~ 估计给分动作就被允许了 :D 你老大也不是神人,本想100分都给了你,可系统不答应。我也没有法子了 :( 别不是网卡驱动搞得鬼吧。不是网卡干的。我说的就是网卡驱动,DDK里有讲,Task Offload就是NIC Driver的事情。 |
|
|
9楼#
发布于:2003-03-01 17:14
我估摸着给不了分是因为当初新建此帖的时候分数设定为零的缘故,尽管后来改成了100分也不顶事了,改天重建一帖给各位放分吧。
|
|
|
10楼#
发布于:2003-03-02 00:46
终于搞定,我是说给分问题,感谢各位的关注。
|
|
|
11楼#
发布于:2003-03-03 14:01
谢谢了,我只是没注意 RTL8139的卡是否有这个功能。如果有的话,做个ROUTER太方便了。 连 CRC都不用自己算了。
|
|
12楼#
发布于:2003-03-03 18:26
谢谢了,我只是没注意 RTL8139的卡是否有这个功能。如果有的话,做个ROUTER太方便了。 连 CRC都不用自己算了。 我觉得凡是miniport driver都是网卡功能的扩展,因此如果厂商愿意做的话,网卡什么都可以做。 |
|
|
13楼#
发布于:2003-03-03 18:31
小弟在NDIS版中又发了一帖,请大家继续关注:
http://www.driverdevelop.com/forum/html_35549.html?1046686902 |
|
|