阅读:1931回复:6
转发包时如何处理 OOB 数据?[50 分]
我的程序中有一个转发流程,就是把从网卡 A 收到的包用网卡 B 转发出去,我是改写 Passthru,当然也就保留了它复制 OOB 数据的部分,可是程序运行一段时间之后网卡就好象“失效”了一样,其它主机发给我的包在 Passthru 里根本看不到,先禁用再启用网卡一般就能恢复正常,过一会儿就又不行了。
听胡版主说 OOB 数据是 NDIS 做管理之用的,那么我把收到的包不交给上层直接转发出去(用另一块网卡)这些 OOB 数据是不是对于用于转发的网卡就是没有意义的?该怎么处理?对 OOB 数据有深入分析的大侠给俺讲讲好吗? 假如这种现象不是由 OOB 数据引起的,那又可能是什么原因造成的呢?请各位大侠畅所欲言,谢谢! |
|
沙发#
发布于:2002-12-21 15:01
呵呵原因已经找到,是缓冲区全满造成的,一定是我某处的代码没有释放缓冲区:)
现在问题改为“OOB 数据跟转发包的互动关系”。 |
|
板凳#
发布于:2002-12-22 21:39
在2k和xp下,你转发的包都要用那几个宏取到OOD数据加到你新构造的packet里面,xp的passthru里面使用了这些宏
|
|
|
地板#
发布于:2002-12-23 09:00
那么这些 OOB 数据不是用于管理目的的吗?那从网卡收到的包,为其复制 OOB 数据并将其指示给上层就很容易理解了,可是如果收到的包我是要用另一块网卡转发到其它主机去,那么这些 OOB 数据就没有意义了吧?而且它会妨碍转发吗?
|
|
地下室#
发布于:2002-12-23 09:38
你是在中间层的,还要交给ndis处理,所以你得复制这些ddb数据,
|
|
|
5楼#
发布于:2002-12-23 17:38
用户被禁言,该主题自动屏蔽! |
|
6楼#
发布于:2002-12-23 17:55
98下不用
|
|
|