Digital
驱动牛犊
驱动牛犊
  • 注册日期2001-08-08
  • 最后登录2008-07-08
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望6点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2114回复:8

我对IMD流程的理解,不对的,请多多指教

楼主#
更多 发布于:2001-08-09 14:21
1,ndis结构:

        |tcp/ip|   |netbeui|  |ipx/spx|
--------------------------------------------
              tdi
--------------------------------------------
    /miniport接口
 imd
    \protcal 接口
--------------------------------------------
              miniport
--------------------------------------------
       |nic|      |nic|        |nic|

2,PACKET的收发流程
包发送:
 app -> tcp/ipc...-> tdi(协议层接口) ->imd的miniport接口 -> imd的protcal接口  -> miniport ->nic    

包收接:
  nic -> miniport -> imd的protocal接口 ->imd 的miniport接口
-> tdi(协议层接口) -> tcp/ipc...-> app


3,如是以上成立
哪就是说包截获可以在imd的miniport接口处进行,也可以在imd的protocal接口进行


哪么是不是在imd的miniport拦接发送包,在IMD的protocal拦接接收包
效率最高?

讲各位高手,新手讨论讨论!




最新喜欢:

aventineaventi...
相信自已!
blue
驱动大牛
驱动大牛
  • 注册日期2001-04-25
  • 最后登录2010-10-15
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-08-09 16:10
我认为你的理解有误,对于流程可具体看DDK中,反正我是这样理解的:
包发送,这两条线路是主从的:
| Transport Driver  protocol| ---->imd的miniport接口 --->NIC
| Transport Driver  protocol| ---->miniport------------->NIC
包接收时同理。
此图为DDK中的流程。
quartz
驱动小牛
驱动小牛
  • 注册日期2001-07-11
  • 最后登录2004-07-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-08-09 17:26
我觉得你说得不正确,相比之下我赞成digtal的说法,根据http://www.pcausa.com/resources/ndispacket.htm#ConstructingPacket上所说的理解。
疯狂灌水,得分 疯狂提问,放分 什么时候能够:疯狂回答,得分啊!!!!
Digital
驱动牛犊
驱动牛犊
  • 注册日期2001-08-08
  • 最后登录2008-07-08
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望6点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-08-09 17:48
2,PACKET的收发流程
包发送:
app -> tcp/ipc...-> tdi(协议层接口) ->imd的miniport接口 ->  miniport ->nic

包收接:
nic -> miniport -> imd的protocal接口-> tdi(协议层接口) -> tcp/ipc...-> app


同理3 也就不存在于哪截获效率高的问提了!因为对于发送和接收都只有一个接收点!


感谢各位指教,特别是firewall的讲解


相信自已!
zjb
zjb
驱动牛犊
驱动牛犊
  • 注册日期2001-04-13
  • 最后登录2004-05-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-08-10 09:17
上面的流程我觉得是最正确的
hehe,我在这里是zjb了,在QQ上才是firewall:)
[zjb 编辑于 2001-08-10 09:19]
andor
驱动牛犊
驱动牛犊
  • 注册日期2001-08-06
  • 最后登录2001-12-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2001-08-12 15:31
         所有的Windows NT传送驱动程序都通过传送驱动程序接口(TDI)为内核模式网络客户程序提供服务。TDI规范定义支持基于连接的和非连接的协议的低级接口。所有传送驱动程序显露一个共同的接口,简化了传送驱动程序和它们支持的客户程序的实现。
       所以我认为正确得应当是:
包发送:
app ->  tdi(协议层接口) ->tcp/ip->imd的miniport接口 -> miniport ->nic

包收接:
nic -> miniport -> imd的protocal接口-> tcp/ipc->tdi(协议层接口) -> app



hustfyb
驱动牛犊
驱动牛犊
  • 注册日期2001-05-28
  • 最后登录2002-01-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2001-08-13 09:11
tdi仅次于app是对的
再见了白云 永别了黄鹤
lzwf4
驱动小牛
驱动小牛
  • 注册日期2002-10-10
  • 最后登录2006-06-09
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-02-16 14:58
哈哈,我认为andor是正确的!
gjpland
驱动小牛
驱动小牛
  • 注册日期2001-09-13
  • 最后登录2011-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-02-17 11:43
1,ndis结构:

        |tcp/ip|   |netbeui|  |ipx/spx|
--------------------------------------------
              tdi
--------------------------------------------
    /miniport接口
 imd
    protcal 接口
--------------------------------------------
              miniport
--------------------------------------------
       |nic|      |nic|        |nic|


>> miniport 肯定在protocol下面.

2,PACKET的收发流程
包发送:
 app -> tcp/ipc...-> tdi(协议层接口) ->imd的miniport接口 -> imd的protcal接口  -> miniport ->nic    

包收接:
  nic -> miniport -> imd的protocal接口 ->imd 的miniport接口
-> tdi(协议层接口) -> tcp/ipc...-> app

>>以上流程,应该严格的说,当有一个Protocol把他绑定的网卡设成混杂模式时以上,流程是对的。但这是例外,一般来说miniport下面就是nic


3,如是以上成立
哪就是说包截获可以在imd的miniport接口处进行,也可以在imd的protocal接口进行

>>不一定,一般是NDIS的接口,然后再有NDIS的接口分发到绑定的PROTOCOL,或IMD。

哪么是不是在imd的miniport拦接发送包,在IMD的protocal拦接接收包
效率最高?
>> 是的,但复杂,不确定性增加

讲各位高手,新手讨论讨论!




 

我思故我在,脑袋不会坏.
游客

返回顶部