一种基于小波分析和支持向量机的网络数据流量识别方法及
系统
技术领域
本发明涉及电网调度数据中心机房网络流量数据的技术领域,具体涉及一种基于小波分析和支持向量机的网络数据流量识别方法及系统。
背景技术
电网调度数据中心的正常运行对于一个地区甚至对整个国家经济发展和居民生活都起到了举足轻重的作用,任何一个局部出现问题都可能会波及到整个数据中心甚至整个地区电网的正常运行。网络流量的测量和预测对电网数据调度中心大规模网络管理、规划和设计具有非常重要的意义,网络流量异常检测可以监控网络工作状态是否健康,这对于确保电网数据调度中心网络系统的正常工作是意义重大的,也是网络安全领域的重点研究方向,根据目前的形式,大多数网络流量检测系统都不完美,现有技术中,使用连续小波分解来检测频域中正常和异常流量信号之间的差异,作为检测的基础,这些检测算法基于多分辨分析,可以对信号进行有效的时频分解,由于其尺度以二进制方式改变,因此其频率分辨率在高频频段较差,然而,各种异常流量产生原因多种多样导致了异常有可能是低频的,也有可能是高频的。因此,这些方法的缺点是不能有效地检测所有频段中的异常。
发明内容
针对相关技术中存在的不足,本发明所要解决的技术问题在于:提供一种能够有效检测所有网络数据流量频段中的异常,且基于小波分析和支持向量机的网络数据流量识别方法及系统。
为解决上述技术问题,本发明采用的技术方案为:一种基于小波分析和支持向量机的网络数据流量识别方法,包括:S101、解析pcap数据包,并通过KNN分类方法将解析后的网络流量数据进行分类标记,正常流量数据标记为“0”,异常流量数据标记为“1”;S102、通过二进制离散小波变换算法对KNN分类方法筛选出来的异常流量数据的包长序列和URL长度序列进行处理,获得异常流量数据的训练特征集;S103、将异常流量数据的训练特征集作为训练样本对支持向量机(SVM)分类器进行训练,得到SVM分类器;S104、对处理后的待测试网络流量数据加入训练好的SVM分类器中,用所述SVM分类器计算,得到最终的分类结果,判定处理后的待测试网络流量数据是否为异常流量数据。
优选地,所述解析pcap数据包,并通过KNN分类方法将解析后的网络流量数据进行分类标记,具体包括:使用python的scapy模块对tcpdump生成的pcap文件进行解析及信息提取,所述提取内容包括数据的source ip、destination ip、time node和URL;以数据的source ip、destination ip、time node和URI为匹配条件,将告警日志中的每条记录与已解析的pcap文件中的数据进行匹配,将正常流量数据中提取出的包长序列和URL长度序列为“0”,将异常流量数据中提取出的包长序列和URL长度序列标记为“1”,跨站脚本攻击数据标记为“2”;将已获得的有标记数据的包长序列、URL长度序列和无标签数据的包长序列和URL长度序列均看做向量,分别计算其欧氏距离;统计最接近无标记数据的邻近K个数据中出现次数最多的有标记数据,则将该无标记数据打上与该有标记数据相同的标记。
优选地,所述通过二进制离散小波变换算法对KNN分类方法筛选出来的异常流量数据的包长序列和URL长度序列进行处理,获得异常流量数据的训练特征集,具体包括:分别估算异常流量数据中包长序列的周期和URL长度序列的周期;获取异常流量数据在包长序列每个周期窗口内的特征向量组和在URL长度序列每个周期内的特征向量组,并存储至异常流量数据的训练特征集。
优选地,所述对处理后的待测试网络流量数据加入所述SVM分类器中,用所述SVM分类器计算,得到最终的分类结果,具体包括:通过KNN分类方法将解析后的待测试网络流量数据进行分类标记,正常流量数据标记为“0”,异常流量数据标记为“1”;通过小波包变换算法对KNN分类方法筛选出来的待测试网络流量中的异常流量数据的包长序列和URL长度序列进行处理,获得异常流量数据的训练特征集;对处理后的待测试网络流量数据的异常流量数据加入SVM分类器中,得到最终的分类结果。
相应地,一种基于小波分析和支持向量机的网络数据流量识别系统,包括:第一预处理单元:用于解析pcap数据包,并通过KNN分类方法将解析后的网络流量数据进行分类标记,正常流量数据标记为“0”,异常流量数据标记为“1”;第一处理单元:通过二进制离散小波变换算法对KNN分类方法筛选出来的异常流量数据的包长序列和URL长度序列进行处理,获得异常流量数据的训练特征集;SVM分类器建立单元:将异常流量数据的训练特征集作为训练样本对支持向量机(SVM)分类器进行训练,得到SVM分类器;分类单元:对处理后的待测试网络流量数据加入训练好的SVM分类器中,用所述SVM分类器计算,得到最终的分类结果,判定处理后的待测试网络流量数据是否为异常流量数据。
优选地,所述第一预处理单元包括:解析单元:使用python的scapy模块对tcpdump生成的pcap文件进行解析及信息提取,所述提取内容包括数据的source ip、destinationip、time node和URL;第一标记单元:以数据的source ip、destination ip、time node和URI为匹配条件,将告警日志中的每条记录与已解析的pcap文件中的数据进行匹配,将正常流量数据中提取出的包长序列和URL长度序列为“0”,将异常流量数据中提取出的包长序列和URL长度序列标记为“1”,跨站脚本攻击数据标记为“2”;计算单元:将已获得的有标记数据的包长序列、URL长度序列和无标签数据的包长序列和URL长度序列均看做向量,分别计算其欧氏距离;第二标记单元:统计最接近无标记数据的邻近K个数据中出现次数最多的有标记数据,则将该无标记数据打上与该有标记数据相同的标记。
优选地,所述第一处理单元包括:估算单元:用于分别估算异常流量数据中包长序列的周期和URL长度序列的周期;特征向量获取模块:用于获取异常流量数据在包长序列每个周期窗口内的特征向量组和在URL长度序列每个周期内的特征向量组,并存储至异常流量数据的训练特征集。
优选地,所述分类单元包括:第二预处理单元:用于通过KNN分类方法将解析后的待测试网络流量数据进行分类标记,正常流量数据标记为“0”,异常流量数据标记为“1”;第二处理单元:通过小波包变换算法对KNN分类方法筛选出来的待测试网络流量中的异常流量数据的包长序列和URL长度序列进行处理,获得异常流量数据的训练特征集;第一分类单元:对处理后的待测试网络流量数据的异常流量数据加入SVM分类器中,得到最终的分类结果。
本发明的有益技术效果在于:
本发明一种基于小波分析和支持向量机的网络数据流量识别方法及系统,解析后的pcap数据包通过KNN分类方法进行分类标记,正常流量数据标记为“0”,异常流量数据标记为“1”,标记后,将KNN分类方法筛选出来的异常流量数据的包长序列和URL长度序列均看做信号,通过二进制离散小波变换算法对信号进行多尺度聚焦分析,并从中提取有用的信息处理,获得异常流量数据的训练特征集;将异常流量数据的训练特征集作为训练样本对支持向量机(SVM)分类器进行训练,得到SVM分类器,对处理后的待测试网络流量数据加入训练好的SVM分类器中,用所述SVM分类器计算,得到最终的分类结果;由于通过KNN分类方法标记的数据是离散形式的数值序列,因此发明中,使用二进制离散小波变换进行数值序列过程的处理,对于网络的流量信号进行有效的时频分解,通过压缩特征构建异常SVM分类器,为了防止经过二进制离散小波变换得到的流量特征矩阵过大导致计算量大、分类器训练时间长的问题,因此,本发明通过降低特征矩阵维度保持对方差贡献最大的特征,具有极强的实用性。
附图说明
图1为本发明实施例一提供的一种基于小波分析和支持向量机的网络数据流量识别方法的流程示意图;
图2为本发明实施例一提供的一种基于小波分析和支持向量机的网络数据流量识别系统的结构示意图;
图3为本发明实施例二提供的一种基于小波分析和支持向量机的网络数据流量识别系统的结构示意图;
图4为本发明实施例三提供的一种基于小波分析和支持向量机的网络数据流量识别系统的结构示意图;
图5为本发明实施例四提供的一种基于小波分析和支持向量机的网络数据流量识别系统的结构示意图;
图6为本发明中Autoencoder神经网络训练特征集的示意图;
图7为本发明Autoencoder神经网络中损失函数取值的示意图;
图中:1为第一预处理单元,11为解析单元,12为第一标记单元,13为计算单元,14为第二标记单元,2为第一处理单元,21为估算单元,22为特征向量获取模块,3为SVM分类器建立单元,4为分类单元,41为第二预处理单元,42为第二处理单元,43为第一分类单元。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例;基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例一提供的一种基于小波分析和支持向量机的网络数据流量识别方法的流程示意图,如图1所示,一种基于小波分析和支持向量机的网络数据流量识别方法,包括:
S101、解析pcap数据包,并通过KNN分类方法将解析后的网络流量数据进行分类标记,正常流量数据标记为“0”,异常流量数据标记为“1”;
S102、通过二进制离散小波变换算法对KNN分类方法筛选出来的异常流量数据的包长序列和URL长度序列进行处理,获得异常流量数据的训练特征集;
S103、将异常流量数据的训练特征集作为训练样本对支持向量机(SVM)分类器进行训练,得到SVM分类器;
S104、对处理后的待测试网络流量数据加入训练好的SVM分类器中,用所述SVM分类器计算,得到最终的分类结果,判定处理后的待测试网络流量数据是否为异常流量数据。
具体地,解析后的pcap数据包通过KNN分类方法进行分类标记,正常流量数据标记为“0”,异常流量数据标记为“1”,由于正常流量和攻击导致的异常流量之间差异大,因此具有较好的分类特性,标记后,将KNN分类方法筛选出来的异常流量数据的包长序列和URL长度序列均看做信号,通过二进制离散小波变换算法对信号进行多尺度聚焦分析,并从中提取有用的信息处理,获得异常流量数据的训练特征集;将异常流量数据的训练特征集作为训练样本对支持向量机(SVM)分类器进行训练,得到SVM分类器,对处理后的待测试网络流量数据加入所述SVM分类器中,用所述SVM分类器计算,得到最终的分类结果;由于通过KNN分类方法标记的数据是离散形式的数值序列,因此本实施例中,使用二进制离散小波变换进行数值序列过程的处理,对于网络的流量信号进行有效的时频分解,本实施例通过压缩特征构建异常SVM分类器,为了防止经过二进制离散小波变换得到的流量特征矩阵过大导致计算量大、分类器训练时间长的问题,因此,本实施例通过降低特征矩阵维度保持对方差贡献最大的特征,具有极强的实用性。
进一步地,所述解析pcap数据包,并通过KNN分类方法将解析后的网络流量数据进行分类标记,具体包括:使用python的scapy模块对tcpdump生成的pcap文件进行解析及信息提取,所述提取内容包括数据的source ip、destination ip、time node和URL;以数据的source ip、destination ip、time node和URI为匹配条件,将告警日志中的每条记录与已解析的pcap文件中的数据进行匹配,将正常流量数据中提取出的包长序列和URL长度序列为“0”,将异常流量数据中提取出的包长序列和URL长度序列标记为“1”,跨站脚本攻击数据标记为“2”;将已获得的有标记数据的包长序列、URL长度序列和无标签数据的包长序列和URL长度序列均看做向量,分别计算其欧氏距离;统计最接近无标记数据的邻近K个数据中出现次数最多的有标记数据,则将该无标记数据打上与该有标记数据相同的标记。
具体地,python的scapy模块对pcap文件进行解析,然后使用source ip、destination ip、time node和URL作为pcap数据包和告警日志之间的匹配条件,将告警日志中的每条记录映射到已解析的pcap文件,获取相应的数据并打上标记;将已获得的有标记数据的包长序列、URL长度序列和无标签数据的包长序列和URL长度序列均看做向量,计算其欧氏距离,欧式距离的计算公式为:
欧式距离能够衡量多维空间中各个点之间的绝对距离,统计最接近无标记数据的邻近K个数据中出现次数最多的有标记数据,则将该无标记数据打上与该有标记数据相同的标记,这样又获取一批有标签数据,从而在数据数量上能够支撑后续工作。
进一步地,通过二进制离散小波变换算法对KNN分类方法筛选出来的异常流量数据的包长序列和URL长度序列进行处理,获得异常流量数据的训练特征集,具体包括:分别估算异常流量数据中包长序列的周期和URL长度序列的周期;获取异常流量数据在包长序列每个周期窗口内的特征向量组和在URL长度序列每个周期内的特征向量组,并存储至异常流量数据的训练特征集。
具体地,将KNN分类方法筛选出来的异常流量数据的包长序列和URL长度序列均看做信号,通过二进制离散小波变换算法对信号进行多尺度聚焦分析,由于通过KNN分类方法标记的数据是离散形式的数值序列,所以使用二进制离散小波变换进行数值序列过程的处理,将序列过程{X(t)}作J层分解
本实施例中小波基的选择采用的是Meyer小波函数,主要考虑到在小波分析中,小波基的选取是一个很重要的问题,而所选取的Meyer小波基具有良好的时频局部特性,可以很好的显示出异常网络流量数据信号的中的突变信息。现有技术中提出的方法是连续小波变换对异常流量数据进行处理,没有充分考虑网络流量数据的数据特性,并且流量数据信号尺度以二进制方式改变,所以,普通的连续小波变换并不能有效地检测所有频段中的异常。
本实施例中,还可通过Autoencoder神经网络对经KNN分类方法分类标记后的数据进行训练,训练过程为:通过编码器产生特征,然后训练下一层,这样逐层训练,通过二进制离散小波变换获得了第一层的编码信息,并且最小重构误差证明该编码信息就是原输入信号的良好表达,第二层和第一层的训练方式相同,前后两层相连接,也就是说第二层的输入信号就是第一层的输出的编码信息,并且还最小化重构误差,就会得到第二层的参数,并且得到第二层输入的编码信息,也就是原输入信息的第二个表达,其他层同理可得(训练当前层,前层的参数都是固定的,不需要他们的decoder);有监督微调:在上述训练过程完成之后,如果想得到更好的结果,可以通过反向传播算法微调所有层的参数,以改善结果,自编码器深度网络权重Wi和偏置项bi通过经KNN分类方法所得到的有标签数值序列来做有监督学习,对每一层的参数进行微调,将从自编码器获得的权重Wi和偏置项bi用作深度网络训练的初始值,并且对损失函数L(X,decode(encode(X)))进行优化,以达到对数据特征表达的最小偏差,同样的使用有监督学习来进行。此时,Autoencoder仅学习获得可以表示输入的特征y1,...,yk,并且这些特征可以最大程度地代表原输入信号,示意图如图6所示,这些特征也正是本文所需要的用来区分不同异常类型的分类模型的输入。Autoencoder参数选择:损失函数L(X,decode(encode(X))),本实施例使用交叉熵作为损失函数,表达式为:L=-[xlogy+(1-x)log(1-y)],当x=1,y=-logy,据log函数的特性,预测输出y越接近真实样本值1,损失函数L越小,反之预测输出y越接近0,L越大;当x=0时,表达式为L=-log(1-y),预测输出y越接近真实样本值0,损失函数L越小;预测函数越接近1,L越大;分别对应函数图像如图7所示,通过使用不同的特征提取方法以及建立不同的分类模型,得到了不同的结果;在使用Antoencoder挖掘特征之后,为了实现分类,还需要基于SVM、softmax等分类器对特征数据进行分类,而对于softmax分类器,由于具有更简单的训练过程和结构,分类结果逊于SVM分类器。
进一步地,所述对处理后的待测试网络流量数据加入所述SVM分类器中,用所述SVM分类器计算,得到最终的分类结果,具体包括:通过KNN分类方法将解析后的待测试网络流量数据进行分类标记,正常流量数据标记为“0”,异常流量数据标记为“1”;通过小波包变换算法对KNN分类方法筛选出来的待测试网络流量中的异常流量数据的包长序列和URL长度序列进行处理,获得异常流量数据的训练特征集;对处理后的待测试网络流量数据的异常流量数据加入SVM分类器中,得到最终的分类结果。
进一步地,所述的一种基于小波分析和支持向量机的网络数据流量识别方法,还可将SVM分类器替换为Softmax分类器,将异常流量数据的训练特征集作为训练样本对Softmax分类器进行训练,得到Softmax分类器;对处理后的待测试网络流量数据加入所述Softmax分类器中,用所述Softmax分类器计算,得到最终的分类结果,判定处理后的待测试网络流量数据是否为异常流量数据。
具体地,经二进制离散小波变换算法获得异常流量数据的训练特征集后进行学习与训练分类器,主要包括小波函数的选择与参数的优化等内容,从而确保在当前应用场景和数据集下得到的分类模型最优,分类器的训练分别采用SVM算法、Softmax算法和RF算法;SVM模型的训练学习要考虑到两个很重要的参数,分别是cost与gamma;其中cost是惩罚系数,决定对误差的宽容程度,它的取值和对误差的宽容程度成反比,cost值越小,对误差的容忍限度越高,但可能会出现欠拟合的问题;如果cost值越大,则对误差的容忍限度越低,但可能出现过拟合现象,cost一般可以选择为10t,t=-4,-3….4,3,cost选择的越大,对错误例惩罚程度越大,但可能会导致模型的过度拟合;对于核函数的选择,考虑到Sigmoid核函数需要确定的参数要更少,而核函数参数的多少直接影响函数的复杂程度,Sigmoid核函数则会减少数值上的计算困难,所以,我们选用Sigmoid核函数对异常网络流量数据进行精确分类而不增加计算量。
图2为本发明实施例一提供的一种基于小波分析和支持向量机的网络数据流量识别系统的结构示意图,如图2所示,一种基于小波分析和支持向量机的网络数据流量识别系统,包括:
第一预处理单元1:用于解析pcap数据包,并通过KNN分类方法将解析后的网络流量数据进行分类标记,正常流量数据标记为“0”,异常流量数据标记为“1”;
第一处理单元2:通过二进制离散小波变换算法对KNN分类方法筛选出来的异常流量数据的包长序列和URL长度序列进行处理,获得异常流量数据的训练特征集;
SVM分类器建立单元3:将异常流量数据的训练特征集作为训练样本对支持向量机(SVM)分类器进行训练,得到SVM分类器;
分类单元4:对处理后的待测试网络流量数据加入训练好的SVM分类器中,用所述SVM分类器计算,得到最终的分类结果,判定处理后的待测试网络流量数据是否为异常流量数据。
具体地,通过第一预处理单元1解析pcap数据包,并通过KNN分类方法将解析后的网络流量数据进行分类标记,第一处理单元2通过二进制离散小波变换算法对KNN分类方法筛选出来的异常流量数据的包长序列和URL长度序列进行处理,获得异常流量数据的训练特征集,SVM分类器建立单元3将异常流量数据的训练特征集作为训练样本对支持向量机(SVM)分类器进行训练,得到SVM分类器,分类单元4:对处理后的待测试网络流量数据加入所述SVM分类器中,用所述SVM分类器计算,得到最终的分类结果,判定处理后的待测试网络流量数据是否为异常流量数据;本实施例中,使用二进制离散小波变换进行数值序列过程的处理,对于网络的流量信号进行有效的时频分解,并通过压缩特征构建异常SVM分类器,为了防止经过二进制离散小波变换得到的流量特征矩阵过大导致计算量大、分类器训练时间长的问题,因此,本实施例通过降低特征矩阵维度保持对方差贡献最大的特征,具有极强的实用性。
图3为本发明实施例二提供的一种基于小波分析和支持向量机的网络数据流量识别系统的结构示意图,如图1所示,在实施例一的基础上,所述第一预处理单元1包括:
解析单元11:使用python的scapy模块对tcpdump生成的pcap文件进行解析及信息提取,所述提取内容包括数据的source ip、destination ip、time node和URL;
第一标记单元12:以数据的source ip、destination ip、time node和URI为匹配条件,将告警日志中的每条记录与已解析的pcap文件中的数据进行匹配,将正常流量数据中提取出的包长序列和URL长度序列为“0”,将异常流量数据中提取出的包长序列和URL长度序列标记为“1”,跨站脚本攻击数据标记为“2”;
计算单元13:将已获得的有标记数据的包长序列、URL长度序列和无标签数据的包长序列和URL长度序列均看做向量,分别计算其欧氏距离;
第二标记单元14:统计最接近无标记数据的邻近K个数据中出现次数最多的有标记数据,则将该无标记数据打上与该有标记数据相同的标记。
具体地,解析单元11通过python的scapy模块对tcpdump生成的pcap文件进行解析,第一标记单元12使用source ip、destination ip、time node和URL作为pcap数据包和告警日志之间的匹配条件,将告警日志中的每条记录映射到已解析的pcap文件,获取相应的数据并打上标记,计算单元13将已获得的有标记数据的包长序列、URL长度序列和无标签数据的包长序列和URL长度序列均看做向量,分别计算其欧氏距离,第二标记单元14统计最接近无标记数据的邻近K个数据中出现次数最多的有标记数据,则将该无标记数据打上与该有标记数据相同的标记,从而在数据数量上能够支撑后续工作。
图4为本发明实施例三提供的一种基于小波分析和支持向量机的网络数据流量识别系统的结构示意图,如图4所示,在实施例二的基础上,所述第一处理单元2包括:
估算单元21:用于分别估算异常流量数据中包长序列的周期和URL长度序列的周期;
特征向量获取模块22:用于获取异常流量数据在包长序列每个周期窗口内的特征向量组和在URL长度序列每个周期内的特征向量组,并存储至异常流量数据的训练特征集。
具体地,通过估算单元21对异常流量数据的包长序列和URL长度序列进行初步分析,得出其大致的周期,特征向量获取模块22以所得到的周期为滑动窗口,并以预设滑动步长(如1等)移动所述滑动窗口,将每个滑动窗口内的数值序列作为一个子序列,即一个窗口内提取一组特征向量。
图5为本发明实施例四提供的一种基于小波分析和支持向量机的网络数据流量识别系统的结构示意图,如图5所示,在实施例三的基础上,所述分类单元4包括:
第二预处理单元41:用于通过KNN分类方法将解析后的待测试网络流量数据进行分类标记,正常流量数据标记为“0”,异常流量数据标记为“1”;
第二处理单元42:通过小波包变换算法对KNN分类方法筛选出来的待测试网络流量中的异常流量数据的包长序列和URL长度序列进行处理,获得异常流量数据的训练特征集;
第一分类单元43:对处理后的待测试网络流量数据的异常流量数据加入SVM分类器中,得到最终的分类结果。
具体地,第二预处理单元41通过KNN分类方法将解析后的待测试网络流量数据进行分类标记,第二处理单元42:通过小波包变换算法对KNN分类方法筛选出来的待测试网络流量中的异常流量数据的包长序列和URL长度序列进行处理,获得异常流量数据的训练特征集;第一分类单元43:对处理后的待测试网络流量数据的异常流量数据加入SVM分类器中,得到最终的分类结果。
可以理解的是,上述方法、装置及系统中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所述领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其他设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定的编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在本申请所提供的实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。以上所描述的系统实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。