我想知道什么是最好的选择方式来建立使用NDIS 6.x的以太网网桥 我应该从哪里开始,我应该使用哪一个对于这一点,微型端口,IM,协议或过滤驱动?
试图以自定义WDK可用,顺利地拿到了连接到以太网适配器的协议驱动程序样本。 接下来是什么?
任何帮助深表感谢。
使用Windows 7x64
我想知道什么是最好的选择方式来建立使用NDIS 6.x的以太网网桥 我应该从哪里开始,我应该使用哪一个对于这一点,微型端口,IM,协议或过滤驱动?
试图以自定义WDK可用,顺利地拿到了连接到以太网适配器的协议驱动程序样本。 接下来是什么?
任何帮助深表感谢。
使用Windows 7x64
让我们来看看可用的NDIS驱动程序类型:微型端口,重量轻的过滤器和协议。
NDIS微型端口不能单独解决这个问题,因为微端口从主机操作系统接收数据包。 你想要的东西,从网络接收数据包。
一个NDIS轻型筛选器可以解决这个问题,但解决方案将是一个小klunky。 你得两个不相关的微型端口堆栈之间手动进行同步。 这是难度比它看起来; 其他人谁曾经使用过这个已经得到了这个错误在最初的几个尝试。
一个NDIS协议驱动程序是解决这一问题的最好办法。 的协议驱动器被设计为连接到多个微端口,和协议驱动程序有能力将路由数据包从一个微型端口堆叠到另一个。
但协议驱动程序丢失一个功能。 如果你只写一个协议驱动程序,那么这是驾驶员如何排队:
[TCPIP] [YourProtocol]
| \ / |
| \/ |
| /\ |
| / \ |
[NIC0] [NIC1]
也就是说,主机的TCPIP协议栈看到两个网卡作为单独的网卡。 (@Aczire,你在表明前一个问题 ,这是对你合适,但对于说明目的,这里的故事的其余部分。)
NDIS让你解决这类问题与MUX-IM驱动程序 。 的IM驱动器基本上是胶合到另一个微型端口的协议。 这使您可以准确地控制主机OS看到的是:
[TCPIP]
|
|
|
|
[YourMiniport]
[YourProtocol]
| |
| |
| |
| |
[NIC0] [NIC1]
在此架构下,你可以欺骗的主机操作系统,以为这两个网络都是一样的。 (例如,面向用户的图形用户界面会显示一个网络适配器,而不是两个。)然而,IM司机付出了相当大的复杂性成本:他们很难写的,甚至难以得到正确的。 我不推荐,除非你有丰富的经验和时间,你解决一个IM驱动程序。
现在,您已经有了一个协议驱动程序:下一步是什么?
你应该检测缆循环,这样你就不会充斥网络。
你应该为802,阅读(OK,脱脂)通过IEEE标准802.1和802.3 ,因为它们对桥梁应该做的一些具体规则。 例如,您可能要特殊情况的目的MAC地址01-80-C2-00-00-00。