计算机和网络过滤驱动中间层实现网卡远程唤醒的方法

文档序号:7695935阅读:266来源:国知局
专利名称:计算机和网络过滤驱动中间层实现网卡远程唤醒的方法
技术领域
本发明涉及计算机领域中网络安全领域中的网络过滤驱动,特别是指一种 计算机和网络过滤驱动中间层实现网卡远程唤醒的方法。
背景技术
如图l所示,为现有计算机系统中多协议多网卡的安装结构图,所有的网
络协议都绑定到所有的网卡上,如计算机系统中,安装有网卡1 (又称NIC 1, 网络接口卡)和网卡2 (NIC 2),以及TCP/IP协议集和IPX/SPX协议集,其 中,TCP/IP协议.集分别绑定到网卡1对应的miniport端口和网卡2对应的 miniport端口 , IPX/SPX协议集也分别绑定到网卡1对应的miniport端口和网 卡2对应的miniport端口 ,为了使计算系统的网络环境更加安全,在Windows 环境下,在基于^f敖软的IMD架构(也称passthru)的包过滤防火墙中,DDK 附带了 一个中间层驱动的例程,而passthm就能实现该中间层驱动的基本功能, 利用passthm来构造VPN (虚拟专用网)、NAT (网络地址转换)等模块架构。
如图2所示,为在图1所示多协议多网卡的安装结构中,在网卡和上层协 议层中间又安装了 passthru这个中间层过滤驱动的结构图,passthru中间层过 滤驱动对下的网卡(miniport)表现为一个协议层的驱动,对上的协议层表现 为 一个虚拟网卡驱动,passthru可以监控所有本机收发的网络包。
但是passthru目前存在不支持网络远程唤醒的问题,进行休眠恢复时系统 偶会超过两秒的时间,这样会影响整机Whql认证。
针对上述问题,微软提出,如果需要网络远程唤醒时,可以卸载passthru, 这种方式的缺点是卸载时间过长,不能在实际的商用软件中使用。
在发明人实现本发明的过程中,发现现有技术至少存在如下问题
在不卸载passthru的情况下,让passthru支持网络远程唤醒,来提高网络 性能。

发明内容
本发明要解决的技术问题是提供一种计算机和网络过滤驱动中间层实现
网卡远程唤醒的方法,有效解决了基于passthru的网络中的网卡不能^皮网络远 程唤醒的问题。
为解决上述技术问题,本发明的实施例提供技术方案如下
一种计算机,包括至少一个物理网卡,具有与远程计算机连接的网络接 口;协议层,包括至少一个协议集;
网络过滤驱动中间层,安装在所述至少一个物理网卡与所述协议层之间, 并与所述至少 一个物理网卡和所述协议层中的所述至少 一个协议集分别连接, 用于监控和过滤所有通过所述至少一个物理网卡和所述协议层中的所述至少 一个协议集接收的和发送的网络包;
所述网络过滤驱动中间层根据上层应用的命令,与所述至少一个物理网卡 中的需要被远程唤醒的物理网卡解除绑定连接,与所述网络过滤驱动中间层解 除绑定后的所述物理网卡直接与所述协议层中的所述至少一个协议集绑定连 接,所述物理网卡接收并执行来自所述远程计算机的唤醒命令。
优选的,上述计算机还包括一网络驱动接口规范模块,与所述网络过滤驱 动中间层连接,用于接收来自所述上层应用的命令,并将该命令传输至所述网 络过滤驱动中间层,并为所述至少一个物理网卡提供网络驱动程序接口 。
优选的,所述上层应用为图形用户界面控制应用,用于接收用户的设置 命令,并将该设置命令通过所述网络驱动接口规范模块转发给所述网络过滤驱 动中间层。
优选的,所述网络过滤驱动中间层包括所述至少一个物理网卡对应的协 议驱动和所述协议层中的所述至少 一个协议集对应的虚拟网卡驱动。
优选的,上述计算机还包括至少一个虚拟网卡,与所述网络过滤驱动中间
拟网卡和所述协议层中的所述至少 一个协议集接收和发送的网络包。
优选的,所述网络过滤驱动中间层包括所述至少一个物理网卡对应的协议驱动和所述协议层中的所述至少一个协议集对应的虚拟网卡驱动;以及
所述至少 一个虚拟网卡对应的协议驱动和所述协议层中的所述至少 一个 协议集对应的虚拟网卡驱动。
优选的,所述被远程唤醒的物理网卡包括与所述物理网卡对应的miniport 端口 、所述miniport端口对应的在所述网络过滤驱动中间层中的协议驱动,以 及对所述协议层的虚拟网卡驱动。
为解决上述技术问题,还提供一种网络过滤驱动中间层实现网卡远程唤醒 的方法,包括如下步骤
根据计算机的上层应用传输的命令,将所述网络过滤驱动中间层与所述计 算机的至少一个物理网卡中的需要被远程唤醒的物理网卡解除绑定连接;
将与所述网络过滤驱动中间层解除绑定连接后的所述物理网卡直接与所 述计算机的协议层中的所述至少一个协议集绑定连接;
所述物理网卡接收并执行来自远程计算机的唤醒命令。
优选的,将所述网络过滤驱动中间层与所述计算机的至少一个物理网卡中 的所述需要#1远程唤醒的物理网卡解除绑定连接的步骤具体为
将所述网络过滤驱动中间层与所述计算机的至少一个物理网卡中的所述 需要被远程唤醒的物理网卡对应的miniport端口 、所述miniport端口对应的在 所述网络过滤驱动中间层中的协议驱动,以及对所述协议层的虛拟网卡驱动解 除绑定连接。
优选的,所述计算机的上层应用传输的命令为计算机的图形用户界面控 制应用通过网络驱动接口规范模块传输的用户的设置命令。 本发明的实施例具有以下有益效果
上述技术方案通过将需要被远程唤醒的物理网卡从基于passthru网络过滤 驱动中间层所构建的多协议多网卡架构中移出,即将该被远程唤醒的物理网卡 与passthm解除绑定,使该物理网卡能够直接与上层协i^直接连接,这样网卡 就可以被远程唤醒了 ,并且通过上层协议与该物理网卡的网络包不必再通过 passthru网络过滤驱动中间层的过滤和监控,提高了网络的性能。


图1为现有的计算机系统中多协议多网卡安装结构图; 图2为现有的计算机系统中安装有passthru的多协议多网卡安装结构图; 图3为本发明的实施例计算机系统中安装有passthru的多协议多网卡安装 结构图4为图3所示的多协议多网卡结构中,对需要远程唤醒的网卡进行解除 绑定的结构示意图5为图3所示的多协议多网卡结构中,用户需要passthru过滤网络包, 该passthru重新与网卡进行绑定的结构示意流程示意图。
具体实施例方式
为使本发明的实施例要解决的技术问题、技术方案和优点更加清楚,下面 将结合附图及具体实施例进行详细描述。
本发明的实施例针对现有技术中基于passthm技术的防火墙等不能被网络 远程唤醒的问题,提供一种计算机以及网络过滤驱动中间层实现网卡远程唤醒 的方法。
如图3所示,本发明的实施例计算机包括至少一个物理网卡,具有与远 程计算机连接的网络接口,该实施例中有两个物理网卡,如网卡1和网卡2, 也可以有更多的物理网卡,当然也可有一个物理网卡,这些网卡在具体环境中 包括与这些网卡分别对应的miniport端口 ,该miniport端口对应的在网络过 滤驱动中间层passthru中的协议驱动(如TCP/IP协-汉驱动,IPX/SPX协议驱 动)以及对上层协议层的虚拟网卡驱动(如图中的虚拟网卡1驱动,虛拟网卡 2驱动);
协议层,包括至少一个协议集,如TCP/IP协议集和IPX/SPX协议集,每 个协议集与每个物理网卡分别绑定连接;
网络过滤驱动中间层,如passthru, NAT等,安装在至少一个物理网卡与 协议层之间,并与至少一个物理网卡和协议层中的至少一个协议集分别连接,用于监控和过滤所有通过物理网卡和协议层中的协议集收发的网络包,如图中 所示,该网络过滤驱动中间层用于过滤通过网卡1与TCP/IP协议接收和发送
的网络包,也过滤通过网卡1与IPX/SPX协议接收和发送的网络包,对于网 卡2的网络包也进行同样的过滤;
NDIS (网络驱动接口规范)模块,与上述网络过滤驱动中间层连接,用 于接收来自上层应用的命令,并将该命令传输至网络过滤驱动中间层,并为至 少 一个物理网卡提供网络驱动程序接口 ;
上述网络过滤驱动中间层根据通过NDIS模块传输过来的来自上层应用的 命令,与至少一个物理网卡中的需要被远程唤醒的物理网卡解除绑定连接,与 网络过滤驱动中间层解除绑定后的物理网卡并直接与协议层中的至少一个协 议集绑定连接,与至少一个协议集绑定连接后的物理网卡接收并执行来自所述 远程计算机的唤醒命令;这样远程计算机就可以通过网络(如局域网)和协议 层中的协议集远程唤醒该需要远程唤醒的物理网卡了 。
上述网络过滤驱动中间层包括至少 一个物理网卡对应的协议驱动以及协 议层中的至少一个协议集对应的虚拟网卡驱动,也就是说,网络过滤驱动中间 层对上层协议层表现为虚拟网卡,而对下层的miniport表现为协议驱动,如图 所示,该网络过滤驱动中间层包括分别与网卡1 ( miniport )和网卡2( miniport) 对应的协议驱动TCP/IP协议,以及分别与网卡1 ( miniport )和网卡2( miniport) 对应的协议驱动IPX/SPX协议;该网络过滤驱动中间层对上层协议层中的 TCP/IP协议集和IPX/SPX协议集表现为虚拟网卡1和虚拟网卡2。
上述实施例也可以应用到虚拟环境中,如可以将网卡2替换成某一客户操 作系统对应的虚拟网卡,当然也可以在上述网卡1和网卡2的架构上再增加网 卡3,网卡3为某一客户操作系统对应的虚拟网卡;但在这些网卡中,物理网 卡用来被远程唤醒,在该虚拟环境中,上述网络过滤驱动中间层还包括虚拟 网卡(miniport)对应的协议驱动和虚拟网卡驱动,即该网络过滤驱动中间层 对下面的虚拟网卡(miniport)表现为协议驱动,对上面的协议层表现为虚拟 网卡驱动,用于对通过该虛拟网卡(miniport)的网络包进行过滤和转发。
再如图3所示,若以虚拟机为例,网卡l为物理网卡,网卡2为虛拟机网 卡,即虚拟机管理器为客户操作系统分配的虚拟网卡,而其中一个需要被远程唤醒的网卡为网卡l,该网卡l在被解除与passthru的绑定时,实际上是该网 卡1对应的miniport端口 、该miniport端口对应的在网络过滤驱动中间层的协 议驱动,以及对协议层的虚拟网卡驱动,与passthru解除绑定;即当该网卡1 需要4皮远程唤醒时,该网卡1对应的miniport端口 /人网纟各过滤驱动中间层的连 接关系中移出,该miniport端口对协议层的虚拟网卡驱动也从上层协议层的连 接关系中删除;同时该网卡1对应的miniport端口与位于网络过滤驱动中间层 之上的协议层中的至少 一个协议集进行直接绑定连接。
以防火墙为例,当用户不需要防火墙功能时,应用程序通过NDIS模块对 passthru发出解除绑定网卡的命令,此时网卡被上层协议层直接使用,可以使 该网卡被远程唤醒,且以千兆网卡为例,采用passthru的防火墙,无论高级别 或者底级别的安全策略(截包/析包等操作),网络吞吐量大约为 400Mb/s-500Mb/s兆左右,而以本实施方案,当用户选用低安全级别的安全策 略,网络吞吐量可以达到700Mb/s-800/Mb/s,极大的提升了网络效率和性能。
如图4所示,上层应用可具体为图形用户界面控制应用(GUI控制应用), 用于接收用户的设置命令,并将该设置命令通过NDIS模块转发给网络过滤驱 动中间层。
用户可以通过该GUI控制应用设置需要哪一个网卡进行远程唤醒,则GUI 控制应用就会将相应的解除绑定命令发送给NDIS模块,该NDIS模块将该解 除绑定命令发送给网络过滤驱动中间层(如passthru ),该网络过滤驱动中间层 就会将其与需要被远程唤醒的网卡解除绑定,即将该需要被远程唤醒的网卡对 应的miniport从系统中移出,该miniport端口对协议层的虚拟网卡也从上层协 议层的连接关系中删除;同时将该需要^L远程唤醒的网卡对应的miniport与上 层协议层(如TCP/IP协议等)直接绑定连接,以使该需要被远程唤醒的网卡
对该网卡进行远程唤醒,且提高了网络包的收发速率,进而提高网络性能。图 中的winsock是接口规范,用于管理与TCP/IP协议的接口 。
当然,上述计算机的多协议多网卡系统还应当满足其现有的功能,当用户 希望该被远程唤醒的网卡被远程唤醒之后,还需要截获网络数据包进行防火墙、病毒扫描或者NAT操作或者要求高安全级别时,即通过该网卡的网络包 仍然需要经过网络过滤驱动中间层的过滤,则可以通过该GUI控制应用设置, 将该网卡重新与网络过滤驱动中间层进行绑定,如图5所示,GUI控制应用将 绑定命令发送给NDIS模块,该NDIS模块将该绑定命令再发送给网络过滤驱 动中间层passthru,该passthru就会重新与该网卡进行绑定。
综上,当用户希望在计算机的多网卡多协议系统中,需要远程唤醒某一网 卡,则可以通过NDIS模块将网络过滤驱动中间层passthru和该网卡解除绑定, 解决了基于passthru技术的防火墙(或NAT、病毒扫描器等)等软件不能被网 络远程唤醒的问题。当用户需要网络包过滤功能时,passthru可以满负荷运行; 当用户不需要网络包过滤功能时,passthru完全不用截获网络数据包也没有进 行过滤动作,提高了网络效率。不需要随时卸载/安装等操作,及时响应用户 的需求,效率非常高。
如图6所示,本发明的实施例还提供一种网络过滤驱动中间层实现网卡远 程唤醒的方法,包括如下步骤
步骤S61,根据计算机的上层应用传输的命令,将网络过滤驱动中间层与 该计算机的至少一个物理网卡中的需要被远程唤醒的物理网卡解除绑定连接;
步骤S62,将与网络过滤驱动中间层解除绑定连接后的物理网卡直接与计 算机的协议层中的至少 一个协议集绑定连接;
步骤S63,物理网卡接收并执行来自远程计算机的唤醒命令。这样远程计 算机就可以通过网络远程唤醒该需要被远程唤醒的物理网卡了 。
当在虚拟机系统环境中时,计算机还可包括有至少一个虚拟网卡,但被远 程唤醒的网卡为上述的物理网卡。
上述步骤S61中,与计算机的至少一个物理网卡中的需要被远程唤醒的物 理网卡解除绑定连接具体为
将网络过滤驱动中间层与计算机的至少一个物理网卡中的需要被远程唤 醒的物理网卡对应的miniport端口 、该miniport端口对应的在所述网络过滤驱 动中间层中的协议集,以及对协议层的虚拟网卡解除绑定连接。
上述计算机的上层应用传输的命令为计算机的图形用户界面控制应用通过NDIS模块传输的用户的设置命令。
该方法通过将网络过滤驱动中间层passthru和需要神皮远程唤醒的物理网卡 解除绑定,解决了基于passthru技术的防火墙(或NAT、病毒扫描器等)等软 件下的网卡不能被网络远程唤醒的问题,当用户需要网络包过滤功能时, passthru可以满负荷运行;当用户不需要网络包过滤功能时,passthru完全不 用截获网络数据包也没有进行过滤动作,提高了网络效率;不需要随时卸载/ 安装等操作,及时响应用户的需求,效率非常高。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技 术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰, 这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种计算机,包括至少一个物理网卡,具有与远程计算机连接的网络接口;协议层,包括至少一个协议集;网络过滤驱动中间层,安装在所述至少一个物理网卡与所述协议层之间,并与所述至少一个物理网卡和所述协议层中的所述至少一个协议集分别连接,用于监控和过滤所有通过所述至少一个物理网卡和所述协议层中的所述至少一个协议集接收的和发送的网络包;其特征在于,所述网络过滤驱动中间层根据上层应用的命令,与所述至少一个物理网卡中的需要被远程唤醒的物理网卡解除绑定连接;与所述网络过滤驱动中间层解除绑定后的所述物理网卡直接与所述协议层中的所述至少一个协议集绑定连接;所述物理网卡接收并执行来自所述远程计算机的唤醒命令。
2. 根据权利要求1所述的计算机,其特征在于,还包括一网络驱动接口 规范模块,与所述网络过滤驱动中间层连接,用于接收来自所述上层应用的命 令,并将该命令传输至所述网络过滤驱动中间层,并为所述至少一个物理网卡 提供网络驱动程序接口。
3. 根据权利要求2所述的计算机,其特征在于,所述上层应用为图形 用户界面控制应用,用于接收用户的设置命令,并将该设置命令通过所述网络 驱动接口规范模块转发给所述网络过滤驱动中间层。
4. 根据权利要求1所述的计算机,其特征在于,所述网络过滤驱动中间 层包括所述至少一个物理网卡对应的协议驱动和所述协议层中的所述至少一 个协议集对应的虛拟网卡驱动。
5. 根据权利要求1所述的计算机,其特征在于,还包括至少一个虚拟网 卡,与所述网络过滤驱动中间层连接;所述网络过滤驱动中间层还用于监控和过滤所有通过所述至少一个虚拟 网卡和所述协议层中的所述至少 一个协议集接收和发送的网络包。
6. 根据权利要求5所述的计算机,其特征在于,所述网络过滤驱动中间 层包括所述至少一个物理网卡对应的协议驱动和所述协议层中的所述至少一 个协议集对应的虚拟网卡驱动;以及所述至少 一个虚拟网卡对应的协议驱动和所述协议层中的所述至少 一个 协议集对应的虚拟网卡驱动。
7. 根据权利要求4或6所述的计算机,其特征在于,所述被远程唤醒的 物理网卡包括与所述物理网卡对应的miniport端口 、所述miniport端口对应 的在所述网络过滤驱动中间层中的协议驱动,以及对所述协议层的虚拟网卡驱 动。
8. —种网络过滤驱动中间层实现网卡远程唤醒的方法,其特征在于,包 括如下步骤根据计算机的上层应用传输的命令,将所述网络过滤驱动中间层与所述计 算机的至少一个物理网卡中的需要被远程唤醒的物理网卡解除绑定连接;将与所述网络过滤驱动中间层解除绑定连接后的所述物理网卡直接与所 述计算机的协议层中的所述至少一个协议集绑定连接;所述物理网卡接收并执行来自远程计算机的唤醒命令。
9. 根据权利要求8所述的方法,其特征在于,所述将所述网络过滤驱动 中间层与所述计算机的至少一个物理网卡中的所述需要被远程唤醒的物理网 卡解除绑定连接的步骤具体为将所述网络过滤驱动中间层与所述计算机的至少 一个物理网卡中的所述 需要被远程唤醒^J物理网卡对应的miniport端口 、所述miniport端口对应的在 所述网络过滤驱动中间层中的协议驱动,以及对所述协议层的虚拟网卡驱动解 除绑定连接。
10. 根据权利要求8所述的方法,其特征在于,所述计算机的上层应用传 输的命令为计算机的图形用户界面控制应用通过网络驱动接口规范模块传输 的用户的设置命令。
全文摘要
本发明提供一种计算机和网络过滤驱动中间层实现网卡远程唤醒的方法。该计算机包括至少一个物理网卡;协议层,包括至少一个协议集;网络过滤驱动中间层,安装在至少一个物理网卡与协议层之间,监控和过滤所有通过所述至少一个物理网卡和协议层的至少一个协议集收发的网络包;网络过滤驱动中间层根据上层应用的命令,与所述至少一个物理网卡中需要被远程唤醒的物理网卡解除绑定连接,与网络过滤驱动中间层解除绑定后的物理网卡直接与至少一个协议集绑定连接;所述物理网卡接收并执行来自远程计算机的唤醒命令。本发明有效解决了基于passthru的网络中的网卡不能被网络远程唤醒的问题。
文档编号H04L29/06GK101640665SQ20081011728
公开日2010年2月3日 申请日期2008年7月28日 优先权日2008年7月28日
发明者俊 仇, 刘春梅, 席振新, 洋 林 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1