一种基于被审计对象的报文过滤方法及系统转让专利

申请号 : CN200810106659.X

文献号 : CN101582880B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赵海峰

申请人 : 北京启明星辰信息技术股份有限公司

摘要 :

本发明公开了一种基于被审计对象的报文过滤方法及系统,其中,所述方法,包括:审计系统的控制管理端将被审计服务器主机的以太网MAC地址及服务端口等信息发给探测器;所述探测器的网卡驱动程序根据网卡捕获的当前网络通信报文,解析得到该报文的源、目的MAC地址,源、目的端口,与从控制管理端收到的被审计服务器主机的MAC地址、服务端口进行匹配,过滤得到匹配成功的通信报文。本发明在报文捕获的早期阶段对不需要关注的报文进行过滤和抛弃,从而节省后期各个阶段的处理开销,从而带来较大的系统资源裕度,提高了系统的处理能力,降低了网络审计系统对报文捕获探测器的硬件需求。

权利要求 :

1.一种基于被审计对象的报文过滤方法,其特征在于,

审计系统的控制管理端将被审计服务器主机的以太网MAC地址信息发给探测器;

所述探测器的网卡驱动程序根据网卡捕获的当前网络通信报文,解析得到该报文的源、目的MAC地址,与从控制管理端收到的被审计服务器主机的MAC地址进行匹配,过滤得到匹配成功的通信报文,包括:所述探测器的网卡驱动程序收到被审计服务器主机的以太网MAC地址信息及其服务端口地址信息后,生成MAC地址散列表和服务端口散列表;MAC地址散列表内具有相同散列值的MAC地址构成一个MAC地址单向链表;MAC地址单向链表中的一个MAC地址对应一个服务端口散列表,所述服务端口散列表中的服务端口散列表内具有相同散列值的被审计服务端口地址构成一个服务端口单向链表;

在进行MAC地址匹配时,分别根据计算出的所述通信报文中的源、目的MAC地址的散列值,在MAC地址散列表中进行匹配,如果所述散列值存在,则继续匹配MAC地址值,提取出匹配成功的相应MAC地址对应的服务端口散列表;然后进行服务端口匹配,分别根据计算出的所述通信报文中的源、目的服务端口的散列值,在服务端口散列表中进行匹配,如果所述端口的散列值存在,继续匹配端口值。

2.如权利要求1所述的方法,其特征在于,

所述控制管理端还将被审计服务器主机相应的被审计服务的服务端口地址信息发给所述探测器;

所述探测器的网卡驱动程序对MAC地址匹配成功的通信报文,还解析出其中的源、目的端口地址,并与被审计服务的网络端口地址进行再次匹配,匹配成功的通信报文添加到协议栈报文队列中。

3.如权利要求1所述的方法,其特征在于,

所述探测器的网卡驱动程序在对MAC地址匹配成功的通信报文,先解析出其报文类型,如果是被审计对象使用的报文类型,则继续进行后续的服务端口地址的匹配,否则,将其直接丢弃。

4.一种基于被审计对象的报文过滤系统,其特征在于,包括:相连的控制管理端和探测器;所述探测器,还包括:网卡驱动单元、告警解析单元、报文接收单元、应用层传输单元以及操作系统协议栈,其中:所述控制管理端,用于配置被审计对象,并将配置的被审计服务器主机的以太网MAC地址信息,通过所述应用层传输单元转发给探测器的网卡驱动单元;

所述报文接收单元,用于捕获交互的当前通信报文,并给所述网卡驱动单元处理;

所述网卡驱动单元,根据报文接收单元所捕获的当前网络通信报文,并解析得到该通信报文的源、目的MAC地址,与从所述应用层传输单元收到的被审计服务器主机的MAC地址进行匹配,过滤得到匹配成功的通信报文;其中:所述网卡驱动单元,收到所述应用层传输单元转发的被审计服务器主机的以太网MAC地址信息及其服务端口地址信息后,生成MAC地址散列表和服务端口散列表,并依据该散列表对所述报文接收单元发来的当前网络通信报文进行过滤,将过滤后的报文发送给所述操作系统协议栈,添加到相应协议栈的报文队列中;MAC地址散列表内具有相同散列值的MAC地址构成一个MAC地址单向链表;MAC地址单向链表中的一个MAC地址对应一个服务端口过滤散列表,所述服务端口散列表内具有相同散列值的被审计服务端口地址构成一个服务端口单向链表;

所述网卡驱动单元,在进行报文的MAC地址匹配时,分别根据计算出的所述通信报文中的源、目的MAC地址的散列值,在MAC地址散列表中进行匹配,如果所述散列值存在,则继续匹配MAC地址值,提取出匹配成功的相应MAC地址对应的服务端口散列表;然后进行服务端口匹配,分别根据计算出的所述通信报文中的源、目的服务端口的散列值,在服务端口散列表中进行匹配,如果所述端口的散列值存在,继续匹配端口值。

5.如权利要求4所述的系统,其特征在于,

所述控制管理端,用于配置被审计对象,并将配置的被审计服务器主机相应的被审计服务的服务端口地址信息,通过所述应用层传输单元转发给探测器的网卡驱动单元;

所述网卡驱动单元,对MAC地址匹配成功的通信报文进行解析,得到其中的源、目的端口地址,并与被审计服务的网络端口地址进行再次匹配,匹配成功的通信报文发送给所述操作系统协议栈,添加到协议栈报文队列中,发送给所述告警解析单元进行后续处理。

6.如权利要求4所述的系统,其特征在于,

所述网卡驱动单元,在对MAC地址匹配成功的通信报文,先解析出其报文类型,如果是被审计对象使用的报文类型,则继续进行后续的服务端口地址的匹配,否则,将其直接丢弃。

说明书 :

一种基于被审计对象的报文过滤方法及系统

技术领域

[0001] 本发明涉及网络安全审计系统的网络数据的处理,具体涉及一种基于网络审计系统的网卡驱动层报文过滤方法及一种基于网络审计系统的报文过滤子系统。

背景技术

[0002] 高性能报文捕获和处理是网络安全审计系统的关键技术和基本问题。网络审计系统是通过对被审计的网络通信的报文捕获、报文解析、碎片重组、会话重组、协议解析等步骤并将协议参数及内容和审计策略相匹配,从而对违背安全策略的网络通信进行报警、记录和阻断的系统。该系统通常由部署在交换机镜像端口处的用于捕获分析网络通信报文的探测器和部署于普通桌面计算机系统上的控制管理和数据存储子系统构成。参见图1。
[0003] 在常见的网络审计系统部署方式当中,审计系统的报文捕获探测器部署在交换机的镜像端口处或者集线器的端口处,这样捕获的报文通信流量的大部分都不是审计系统所要关注和记录的。以下的常规的报文捕获和处理阶段会消耗大量计算机I/O带宽和CPU运算能力、以及内存资源。
[0004] 1)对于网络报文的捕获和传送过程,为了获取所审计的网络的通信报文,需要将以太网卡设置为混杂模式,接在以太网交换机的镜像端口,由于通用的网卡和驱动程序在此模式下无法区分哪些是需要的报文,哪些是无用的报文,其结果所有通过交换机镜像端口或者集线器进入捕获报文网卡的报文都将需要由驱动程序传送至操作系统协议栈的报文队列,然后应用程序通过操作系统接口全部复制到应用层,在此过程中,不需要关注的通信流量占用探测器大部分的带宽和CPU资源。
[0005] 2)对于报文的预处理阶段,所有捕获来的在缓冲区中的报文需要逐步经过报文的数据链路层、网络层、传输层、会话层、表示层直至应用层的协议解码,并对报文碎片进行重组、对基于流的协议进行流的重组合缓冲、对基于会话的协议进行会话重组,在此过程中所有采集来的报文都将进行这些步骤的处理,无疑浪费了探测器大量的CPU资源和内存。
[0006] 3)对于模式匹配和异常发现阶段,所有经过解析等预处理而产生的协议参数、内容数据需要和审计策略进行比对、模式匹配、以及和审计策略中的正常模式定义进行比对,以发现不符合被审计对象安全规范的服务操作并进行告警和记录。在此阶段,大量的无关数据的匹配和比对浪费探测器的很多CPU计算资源。

发明内容

[0007] 本发明要解决的技术问题是提供一种基于被审计对象的报文过滤方法及系统,提高系统资源的利用率,降低系统对硬件资源的要求。
[0008] 为了解决上述问题,本发明提供了一种基于被审计对象的报文过滤方法,其中,审计系统的控制管理端将被审计服务器主机的以太网MAC地址信息发给探测器;
[0009] 所述探测器的网卡驱动程序根据网卡捕获的当前网络通信报文,解析得到该报文的源、目的MAC地址,与从控制管理端收到的被审计服务器主机的MAC地址进行匹配,过滤得到匹配成功的通信报文。
[0010] 进一步的,所述控制管理端还将被审计服务器主机相应的被审计服务的服务端口地址信息发给所述探测器;
[0011] 所述探测器的网卡驱动程序对MAC地址匹配成功的通信报文,还解析出其中的源、目的端口地址,并与被审计服务的网络端口地址进行再次匹配,匹配成功的通信报文添加到协议栈报文队列中;
[0012] 进一步的,所述探测器的网卡驱动程序收到被审计服务器主机的以太网MAC地址信息及其服务端口地址信息后,生成MAC地址散列表和服务端口散列表;MAC地址散列表内具有相同散列值的MAC地址构成一个MAC地址单向链表;MAC地址单向链表中的一个MAC地址对应一个服务端口散列表,所述服务端口散列表内具有相同散列值的被审计服务端口地址构成一个服务端口单向链表;
[0013] 进一步的,在进行MAC地址匹配时,根据计算出的所述通信报文中的MAC地址(包括源、目的MAC地址)的散列值,在MAC地址散列表中进行匹配,如果该散列值存在,继续匹配MAC地址值,提取出匹配成功的MAC地址对应的服务端口散列表;然后进行服务端口匹配,根据计算出的所述通信报文中的端口(包括源、目的端口)的散列值,在服务端口散列表中进行匹配,如果该端口的散列值存在,继续匹配端口值;
[0014] 进一步的,所述探测器的网卡驱动程序在对MAC地址匹配成功的通信报文,先解析出其报文类型,如果是被审计对象使用的报文类型,则继续进行后续的服务端口地址的匹配,否则,将其直接丢弃。
[0015] 为了解决上述问题,本发明还提供了一种基于被审计对象的报文过滤系统,包括:相连的控制管理端和探测器;所述探测器,还包括:网卡驱动单元、告警解析单元、报文接收单元、应用层传输单元以及操作系统协议栈,其中:
[0016] 所述控制管理端,用于配置被审计对象,并将配置的被审计服务器主机的以太网MAC地址信息,通过所述应用层传输单元转发给探测器的网卡驱动单元;
[0017] 所述网卡驱动单元,根据报文接收单元所捕获的当前网络通信报文,并解析得到该通信报文的源、目的MAC地址,与从所述应用层传输单元收到的被审计服务器主机的MAC地址进行匹配,过滤得到匹配成功的通信报文;
[0018] 进一步的,所述控制管理端,用于配置被审计对象,并将配置的被审计服务器主机相应的被审计服务的服务端口地址信息,通过所述应用层传输单元转发给探测器的网卡驱动单元;
[0019] 所述网卡驱动单元,对MAC地址匹配成功的通信报文进行解析,得到其中的源、目的端口地址,并与被审计服务的网络端口地址进行再次匹配,匹配成功的通信报文发送给所述操作系统协议栈,添加到协议栈报文队列中,发送给所述告警解析单元进行后续处理;
[0020] 进一步的,所述报文接收单元,用于捕获交互的当前通信报文,并给所述网卡驱动单元处理;
[0021] 所述网卡驱动单元,收到所述应用层传输单元转发的被审计服务器主机的以太网MAC地址信息及其服务端口地址信息后,生成MAC地址散列表和服务端口散列表,并依据该散列表对所述报文接收单元发来的当前网络通信报文进行过滤,将过滤后的报文发送给所述操作系统协议栈,添加到相应协议栈的报文队列中;MAC地址散列表内具有相同散列值的MAC地址构成一个MAC地址单向链表;MAC地址单向链表中的一个MAC地址对应一个服务端口散列表,所述服务端口散列表内具有相同散列值的被审计服务端口地址构成一个服务端口单向链表;
[0022] 进一步的,所述网卡驱动单元,在进行MAC地址匹配时,根据计算出的所述通信报文中的MAC地址(包括源、目的MAC地址)的散列值,在MAC地址散列表中进行匹配,如果该散列值存在,继续匹配MAC地址值,提取出匹配成功的MAC地址对应的服务端口散列表;然后进行服务端口匹配,根据计算出的所述通信报文中的端口(包括源、目的端口)的散列值,在服务端口散列表中进行匹配,如果该端口的散列值存在,继续匹配端口值;
[0023] 进一步的,所述网卡驱动单元,在对MAC地址匹配成功的通信报文,先解析出其报文类型,如果是被审计对象使用的报文类型,则继续进行后续的服务端口地址的匹配,否则,将其直接丢弃。
[0024] 与现有技术相比,本发明在报文捕获的早期阶段对不需要关注的报文进行过滤和抛弃,从而节省后期各个阶段的处理开销,从而带来较大的系统资源裕度,提高了系统的处理能力,降低了网络审计系统对报文捕获探测器的硬件需求。

附图说明

[0025] 图1为现有技术中的网络拓扑图;
[0026] 图2为本发明实施例中的方法流程图;
[0027] 图3为本发明实施例中的散列表结构示意图;
[0028] 图4为本发明实施例中的系统结构图。

具体实施方式

[0029] 本发明方法包括基于被审计对象的网络报文过滤策略生成方法和过滤策略在报文捕获驱动程序中的执行方法。基于被审计对象的网络报文过滤策略是根据被关注的服务器主机的以太网地址(MAC地址)和提供的网络服务的TCP/IP端口号来匹配所有通过交换机镜像端口和报文捕获网卡所捕获的所有以太网报文,过滤掉所有不需要关注的网络通信报文。
[0030] 下面以具体实施例进一步阐述本发明所述的基于被审计对象的报文过滤方法及系统,以下对具体实施方式进行详细描述,但不作为对本发明的限定,例如本发明不限定具体使用的散列算法。
[0031] 在执行过滤流程之前,在驱动程序编写时,增加过滤执行函数执行报文过滤;执行该函数是由网卡的硬件中断触发的,当网络报文来到时,网卡发生接收报文中断,网卡驱动程序中的中断服务函数被执行,中断服务函数调用所述报文过滤函数执行报文过滤。
[0032] 如图2所示,为本发明实施例中的方法流程图,包括以下步骤:
[0033] S1,系统管理员通过审计系统的控制管理端添加被审计对象,包括:被审计服务器主机以及相应的被审计服务;
[0034] 被审计对象通常是被重点保护的存储有重要信息资产的服务器和其提供的网络服务。
[0035] 向审计系统配置被审计服务器主机时,需要提供该被审计服务器主机的有效网络接口的TCP/IP地址,并通过arp协议获取该被审计服务器主机的以太网地址(MAC地址);
[0036] 向审计系统配置相应被审计服务时,需要提供该服务的网络端口地址,该网络端口地址将作为被审计服务的标识之一;
[0037] S2,该控制管理端生成被审计对象的报文过滤配置文件;
[0038] 1)审计系统根据S1中的各被审计主机的MAC地址和相应的被审计服务的网络端口地址,生成如下的内存数据结构:
[0039] 将不同的被审计主机的MAC地址以单向链表的结构进行组织(参见图3中的MAC地址链表),其中,链表内每个节点的内容如下:
[0040] struct au_mac_link{
[0041] unsigned char mac_addr[6];
[0042] struct port_link *pport;
[0043] struct au_mac_link *pnext;
[0044] };
[0045] 每个被审计主机相应的被审计服务的网络端口地址也以单向链表的结构进行组织,其中,链表内每个节点的数据结构如下:
[0046] struct port_link{
[0047] unsigned short serv_port;
[0048] struct port_link *pnext;
[0049] };
[0050] 即以多重链表的数据结构来存储各个被审计的服务器主机的以太网地址及其主机上所提供的服务的端口地址。
[0051] 2)按照步骤1)中定义的数据结构,生成被审计对象的报文过滤配置文件,结构如下:
[0052] [主机总数]=N;
[0053] [审计主机]
[0054] [序号]=1;
[0055] [MAC]=A23F23B23C23;
[0056] [服务总数]=M;
[0057] [服务端口]=80;
[0058] [服务端口]=23;
[0059] .... ...
[0060] [审计主机]
[0061] [序号]=2;
[0062] [MAC]=A22F23B23C24;
[0063] [服务总数]=M;
[0064] [服务端口]=80;
[0065] [服务端口]=23;
[0066] ... ...
[0067] 在另一实施例中,控制管理端也可以直接载入或配置生成一个上述的报文过滤配置文件。
[0068] S3,该控制管理端将报文过滤配置文件发送给探测器审计应用程序,审计应用程序控制该探测器操作系统内的网卡驱动程序根据报文过滤配置文件构建报文过滤散列表。
[0069] 1)在网卡驱动程序中添加过滤策略加载接口,审计应用程序通过该接口加载控制管理端发来的报文过滤配置文件中的过滤策略;
[0070] a在网卡驱动程序中注册一个字符设备,字符设备是指在I/O传输过程中以字符为单位进行传输的设备;
[0071] b编写该字符设备的ioctl()方法,ioctl()用于设备的控制操作,参数配置等;
[0072] c在ioctl()方法中处理过滤策略加载命令从审计应用程序加载报文过滤配置文件中的过滤策略。
[0073] 2)网卡驱动程序根据报文过滤策略构建报文过滤散列表;
[0074] a参见图3,首先根据报文过滤配置文件中的被审计对象服务器主机的MAC地址,构建一个长度为256的MAC地址散列表,每个节点的数据结构定义如下:
[0075] struct mac_hash{
[0076] unsigned short mac_hash;
[0077] struct mac_link *pmac_link;
[0078] };
[0079] mac_hash是MAC地址的hash值,*pmac_link是指向MAC地址单向链表中第一个MAC地址的指针。在MAC地址散列表中,再根据具有相同散列值的各被审计主机的MAC地址,构建MAC地址单向链表,链表中每个节点的数据结构如下:
[0080] struct mac_link{
[0081] unsigned char mac_addr[6];
[0082] struct port_hash *pport_hash;
[0083] struct mac_link *pnext;
[0084] };
[0085] 其中mac_addr[6]为MAC地址,*pport_hash为指向该MAC地址主机的被审计服务端口散列表的指针;*pnext为指向下一MAC地址的指针。
[0086] b在上述MAC地址单向链表内的每个MAC地址还对应一个服务端口散列表,参见图3,一个服务端口散列表是根据一个MAC地址对应的被审计主机所提供的相应被审计服务的网络端口地址构建的,长度为32,该服务端口散列表的节点数据结构定义如下:
[0087] struct port_hash{
[0088] unsigned char port_hash;
[0089] struct port_link *pport_link;
[0090] };
[0091] port_hash是端口的hash值,*pport_link是指向单向链表中第一个端口值的指针。在服务端口散列表中,再根据具有相同散列值的各被审计服务的网络端口地址,构建服务端口单向链表,链表中每个节点的数据结构如下:
[0092] struct port_link{
[0093] unsigned short serv_port;
[0094] struct port_link *pnext;
[0095] };
[0096] 注意,对MAC地址和端口地址的散列算法的自由选取不影响本发明的思想,本发明不提供专门的散列算法。
[0097] S4,由过滤执行函数执行报文过滤,并将过滤后得到的报文添加到探测器中操作系统内的TCP/IP协议栈的报文队列中;
[0098] 当网络报文来到时,网卡发生接收报文中断,网卡驱动程序中的中断服务函数被执行,中断服务函数调用该报文过滤函数。
[0099] 1)在网卡驱动程序的网卡中断处理(服务)函数中,在响应报文接收报文中断之后,增加报文的解析和首次过滤函数,解析出报文的源,目的MAC(以太网)地址,将报文的源和目的MAC地址作为参数进行过滤散列表的第一次匹配,如果没有命中,则丢弃该报文,如果命中,返回散列表中端口散列表地址,继续以下步骤2);对于多数的报文而言,应该都能够通过首次的过滤匹配被丢弃掉,剩下的仅仅是和被审计主机相关的通讯报文;
[0100] 在进行过滤散列表匹配时,先计算MAC地址的散列值,在MAC地址散列表中,相应散列值如果没有相应的单链表节点,则改散列值被置-1,先匹配散列值,如果散列值存在继续匹配具体的MAC地址值,如不存在则立即返回,丢弃目标报文,如成功,提取出匹配成功的MAC地址对应的服务端口散列表;
[0101] 然后进行服务端口匹配,类似的,先查找是否存在端口的散列值,如果不存在,丢弃目标报文,如存在,继续匹配端口值;
[0102] 2)对第一次匹配命中的报文继续进行解析,得到数据链路层的报文类型,如果是非IP报文(08 00),则丢弃该报文;如果是IP报文,则解析出其协议类型:
[0103] 如果不是TCP或UDP报文(本实施例中被审计对象使用TCP和UDP报文,但本发明不局限于此,只要采用被审计对象通信使用的报文类型来匹配即可),则丢弃该报文;否则,继续解析出该报文的TCP或UDP的源、目的端口地址,根据该源、目的端口地址的散列值到上一步返回的服务端口散列表中相应散列值处的服务端口单向链表中,对该源、目的端口地址进行第二次搜索和匹配,如果没有命中,则丢弃报文;否则,将第二次匹配命中的报文添加到探测器中操作系统内的TCP/IP协议栈的报文队列中。
[0104] S5,在审计系统的探测器内,执行告警解析的应用程序通过其与操作系统间的报文捕获接口接收TCP/IP协议栈的报文队列中过滤后得到的网络报文,继续进行报文的协议解析、流重组,策略匹配等常规工作;
[0105] 过滤流程结束。
[0106] 如图4所示,为本发明实施例中的系统结构图,基于被审计对象的报文过滤系统,包括相连的控制管理端10和探测器20,其中:
[0107] 控制管理端10,用于配置被审计对象(即被审计的服务器主机及其上被审计的网络服务),这里是根据被审计服务器主机的以太网MAC地址以及相应的被审计服务的网络端口地址,生成被审计对象的报文过滤配置文件,并下发给探测器20;还用于接收探测器20发回的当前网络通信报文中的告警并进行审计处理;
[0108] 探测器20,用于根据报文过滤配置文件构建报文过滤散列表,解析出捕获的网络通信报文中的MAC地址和服务端口,与报文过滤散列表中的被审计对象的MAC地址及其服务端口地址进行匹配,过滤出被审计对象相关的数据报文并进行报文的协议解析、流重组,策略匹配等常规工作,之后将解析得到的告警发回给控制管理端10。
[0109] 该探测器20包括:网卡驱动单元201、告警解析单元202、报文接收单元203、应用层传输单元205以及操作系统协议栈204,网卡驱动单元201可由安装在探测器上操作系统内的网卡驱动程序实现,告警解析单元202可对应于解析过滤后报文的审计应用程序中的模块,应用层传输单元205可对应于控制管理端与探测器在应用层的接口,也属于审计应用程序中的模块,报文接收单元203可对应于安装在探测器上的网卡,本实施例是运行于混杂模式的以太网网卡;其中:
[0110] 报文接收单元203,用于捕获交换机交互的当前通信报文,并发给网卡驱动单元201;
[0111] 应用层传输单元205,用于接收控制管理端10发来的报文过滤配置文件,并转发给网卡驱动单元201;
[0112] 网卡驱动单元201,根据应用层传输单元205发来的报文过滤配置文件构建报文过滤散列表,包括MAC地址散列表和与其中每个MAC地址对应的服务端口散列表;MAC地址散列表中,具有相同散列值的MAC地址构成一个MAC地址单向链表,MAC地址单向链表内每个MAC地址都对应一个服务端口散列表,在每个服务端口散列表中,具有相同散列值的被审计服务端口地址构成一个服务端口单向链表;
[0113] 网卡驱动单元201,接收报文接收单元203发来的当前网络通信报文,并解析得到所述通信报文的源、目的MAC地址和端口地址,与其构建的报文过滤散列表中的MAC地址和服务端口地址分别进行匹配,匹配命中的报文交给操作系统协议栈204;
[0114] 操作系统协议栈204,接收网卡驱动单元201发来的匹配过滤后的报文,并添加到操作系统协议栈的报文队列中,报文后续将通过操作系统接口发给告警解析单元202;
[0115] 告警解析单元202,用于将收到的操作系统协议栈204发来过滤后的报文进行报文的协议解析、流重组,策略匹配等常规工作,将其中发生的告警发送给控制管理端10。
[0116] 上述系统功能的一些具体实现见上述方法中的描述,此处不再赘述。
[0117] 当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。