阅读:1752回复:7
关于协议驱动的疑惑?
最近在看ndis的ddk,有点疑惑。
在ndis的三层驱动中,协议驱动位于顶层,它的位置好像和系统的tcp/ip冲突了,我的疑问是协议驱动与tcp/ip设备的关系是怎样的呢?感觉他们应该是并行的呀,那么一个帧会同时交给两个设备? 还是在两个设备之间串行处理? 如果两者都可能,那么又是由什么决定的呢? 请大家解惑! |
|
最新喜欢:ABUABU |
沙发#
发布于:2002-06-28 13:44
我的想法是:
tcpip.sys中注册了一个协议,顺便创建了tcp,udp,ip,rawip等设备,当协议从nic得到数据后,分发给tcp,udp等设备,这些设备对上提供tdi的接口。 |
|
板凳#
发布于:2002-06-28 16:40
我想问的是自己注册的协议与tcpip.sys中注册的协议是什么关系呢?并行还是串行。他们都可以从nic上得到数据吗?谁先谁后?
由什么决定? 这些在NdisRegisterProtocol中都看不出来呀。 |
|
地板#
发布于:2002-07-01 11:26
难道没有人知道这个问题吗?
拜托回一下吧! |
|
地下室#
发布于:2002-07-01 11:38
最近在看ndis的ddk,有点疑惑。 没搞懂你TCPIP设备是什么意思。 不过,我想你大概想知道TCPIP.SYS做了些什么吧。 其实tcpip.sys即使用一个tdi driver 也是一个protocol driver. 在他启动时首先创建了device\\ip,tcp,udp,然后又向NDIS注册了 TCPIP,TCPIP_WANARP协议。 说的简单的点,tcpip做的事情就是将协议驱动收到的数据进过处理传给tdi driver然后在传递给上层驱动(winsock 驱动程序),反之发送数据包也一样。 |
|
|
5楼#
发布于:2002-07-01 20:01
谢谢版主!
我还是不太明白板主所说的TDI driver是怎样一个概念? 我理解TDI Driver就是一个实现了TDI的protocol driver,是不是这样呢? 另外,如果我们开发一个协议驱动,那么它注册的协议与tcpip.sys注册的tcpip协议构成什么样的关系呢?这是我现在最搞不清楚的一点。 请板主指教,谢谢! |
|
6楼#
发布于:2002-07-04 22:21
谢谢版主! TDI其实就是面向所有网络使用者了,为网络使用者提供该协义的接口。而protocol driver只是协议的处理部分 你写的协议驱动,如果不涉及IP的话,那你就和TCPIP无关。(也说的不够谨慎) |
|
|
7楼#
发布于:2002-07-05 16:11
那么自己写的协议驱动与系统本身的比如tcpip.sys等之间是如何来处理miniport传上来的数据帧的呢?
是呈链状,还是并行的把帧的拷贝给每个协议? 这个好像在ddk文档里面没有提到过。:( 板主能不能讲一下? 还有为什么不涉及ip就没有关系,涉及ip就会有冲突吗? 不明白呀,也找不到什么资料,谁能推荐一些协议驱动方面的资料吗? |
|