一种防御网络攻击的方法以及装置
技术领域
本发明涉及互联网技术领域,尤其涉及到一种防御网络攻击的方法以及装置。
背景技术
当前网络攻击主要分为流量攻击和应用层攻击,其中,流量攻击一般是指3层(网络层)或者4层(传输层)攻击,主要是指利用(英文全称:Transmission Control Protocol/Internet Protocol,缩写:IP/TCP)协议本身的一些缺陷,伪造源IP从而制造攻击包,以打击流量来使业务瘫痪,比如最常见的拒绝服务攻击(SYN-flood)就是非常典型的流量攻击,攻击者通过伪造TCP握手信号(英文全称:SYNCHRONOUS,缩写:SYN)包来打击机房的入口流量,使得正常业务的包无法被处理,从而使正常业务瘫痪。另外其他的流量攻击还有诸如域名系统(英文全称:Domain Name System,缩写:DNS)反射攻击、用户数据报协议攻击(英文全称:User Datagram Protocol-flood,简称:UDP-flood)攻击、网络时间协议(英文全称:Network Time Protocol,缩写:NTP)反射攻击等等。而7层(应用层)攻击一般指CC(Challenge Collapsar)攻击,主要是针对实际业务进行特定的攻击,也可以被看做是超文本传输协议(英文全称:Hyper Text Transfer Protocol,缩写:HTTP)攻击,比如最常见的就是高频地访问某个接口,使应用服务器异常从而影响业务,再比如通过构造请求来刷票或者刷验证码等,这些都属于CC攻击的范围。
但是目前的安全防御基本集中在分布式拒绝服务(英文全称:DistributedDenial of Service,缩写:DDoS)流量清洗攻击,而对于以HTTP请求等为基础的应用层上的CC攻击目前的有效办法不多,现有中常用的防御手段是基于硬件的防御技术,比如RST(Reset the connection)反弹进行防御。RST反弹是一种常见的防御攻击的手段,主要原理是当用户发起TCP连接请求时,先将连接请求拒绝掉(通过返回RST包),而真实用户这时会进行重试,也就是发起第二次连接请求,然后防火墙再放行,但攻击者(如程序)则不会进行重试,于是也就达到了拦截目的。但RST反弹有很多弊端,其中一点就是RST反弹实现时是在传统的负载均衡层7层拦截(即在负载均衡程序或者设备上直接拦截),需要进行完整的HTTP协议解析,需要消耗较较多的CPU资源。
发明内容
本发明实施例提供了一种防御网络攻击的方法以及装置,在内核层进行攻击报文的拦截,不需进行完整的HTTP协议解析,可以有效地降低消耗的CPU资源。
有鉴于此,本发明实施例第一方面提供了一种防御网络攻击的方法,该方法包括:
获取业务访问请求报文;
确定所述业务访问请求报文是否为攻击报文;
若是,在内核层丢弃所述业务访问请求报文。
在一种可能的实现中,所述在内核层丢弃所述业务访问请求报文,包括:
通过操作Iptables在内核层丢弃所述业务访问请求报文。
在一种可能的实现中,所述通过操作Iptables在内核层丢弃所述业务访问请求报文之后,所述方法还包括:
释放所述业务访问请求报文所对应的TCP连接。
在一种可能的实现中,所述释放所述业务访问请求报文所对应的TCP连接,包括:
通过操作所述Iptables将所述TCP连接所对应的TCP包的包类型改为连接重置RST包,以释放所述业务访问请求报文所对应的TCP连接。
在一种可能的实现中,所述确定所述业务访问请求报文是否为攻击报文,包括:
收集所述业务访问请求日志;
根据所述业务访问请求日志的特征信息确定所述业务访问请求报文是否为攻击报文。
在一种可能的实现中,所述根据所述业务访问请求日志的特征信息确定所述业务访问请求报文是否为攻击报文,包括:
根据所述业务访问请求日志的特征信息以及当前所访问的域名确定所述业务访问请求报文是否为攻击报文。
在一种可能的实现中,根据所述业务访问请求日志的特征信息以及当前所访问的域名确定所述业务访问请求报文是否为攻击报文,包括:
根据所述业务访问请求日志的请求时间确定所述业务访问请求报文的历史访问频率;
确定所述业务访问请求日志当前所访问的域名;
当所述业务访问请求报文的历史访问频率大于预置数值并且当前所述访问域名为预置域名时,则确定所述业务访问请求报文为攻击报文。
在一种可能的实现中,当确定所述业务访问请求报文为攻击报文之后,所述方法还包括:
确定所述业务访问请求报文的危险程度等级;
当所述业务访问请求报文的危险程度等级为第一危险程度等级时,触发所述在内核层丢弃所述业务访问请求报文的步骤;
当所述业务访问请求报文的危险程度等级为第二危险程度等级时,显示警告指示,所述警告指示用于指示当前存在网络攻击,所述第一危险程度等级高于所述第二危险程度等级。
本发明实施例第二方面提供了一种防御网络攻击的装置,该装置包括:
获取模块,用于获取业务访问请求报文;
第一确定模块,用于确定所述获取模块获取的所述业务访问请求报文是否为攻击报文;
丢弃模块,用于若所述第一确定模块确定所述业务访问请求报文为攻击报文,则在内核层丢弃所述业务访问请求报文。
在一种可能的实现中,所述丢弃模块具体用于:
通过操作Iptables在内核层丢弃所述业务访问请求报文。
在一种可能的实现中,所述装置还包括:
释放模块,用于所述丢弃模块通过操作Iptables在内核层丢弃所述业务访问请求报文之后,释放所述业务访问请求报文所对应的TCP连接。
在一种可能的实现中,所述释放模块具体用于:
通过操作所述Iptables将所述TCP连接所对应的TCP包的包类型改为连接重置RST包,以释放所述业务访问请求报文所对应的TCP连接。
在一种可能的实现中,所述第一确定模块包括:
收集单元,用于收集所述业务访问请求日志;
确定单元,用于根据所述收集单元收集的所述业务访问请求日志的特征信息确定所述业务访问请求报文是否为攻击报文。
在一种可能的实现中,所述确定单元还用于:
根据所述业务访问请求日志的特征信息以及当前所访问的域名确定所述业务访问请求报文是否为攻击报文。
在一种可能的实现中,所述确定单元具体用于:
根据所述业务访问请求日志的请求时间确定所述业务访问请求报文的历史访问频率;
确定所述业务访问请求日志当前所访问的域名;
当所述业务访问请求报文的历史访问频率大于预置数值并且当前所述访问域名为预置域名时,则确定所述业务访问请求报文为攻击报文。
在一种可能的实现中,所述装置还包括:
第二确定模块,用于当所述第一确定模块确定所述业务访问请求报文为攻击报文之后,确定所述业务访问请求报文的危险程度等级;
触发模块,用于当所述第二确定模块确定所述业务访问请求报文的危险程度等级为第一危险程度等级时,触发所述丢弃模块在内核层丢弃所述业务访问请求报文的步骤;
显示模块,用于当所述第二确定模块确定所述业务访问请求报文的危险程度等级为第二危险程度等级时,显示警告指示,所述警告指示用于指示当前存在网络攻击,所述第一危险程度等级高于所述第二危险程度等级。
从以上技术方案可以看出,本发明实施例提供了一种防御网络攻击的方法以及装置,通过获取业务访问请求报文;确定业务访问请求报文是否为攻击报文,当确定业务访问请求报文为攻击报文时,在内核层丢弃业务访问请求报文。由此可见,与传统的负载均衡层7层拦截攻击报文相比,本发明实施例中,在内核层丢弃攻击报文,不需要进行完整的协议解析,即不需要消耗较多大的CPU资源,可以有效地降低消耗的CPU资源。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例和现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其它的附图。
图1为本发明实施例一种防御网络攻击的方法一个实施例流程示意图;
图2为本发明实施例一种防御网络攻击的方法另一实施例流程示意图;
图3为本发明实施例一种防御网络攻击一个系统架构示意图;
图4为本发明实施例Storm大数据计算平台的一个结构示意图;
图5为本发明实施例一种防御网络攻击的装置一个实施例结构示意图;
图6为本发明实施例一种防御网络攻击的装置另一实施例结构示意图;
图7为本发明实施例一种防御网络攻击的装置另一实施例结构示意图;
图8为本发明实施例一种防御网络攻击的装置另一实施例结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。本领域普通技术人员在基于本发明中的实施例的前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面通过实施例对本发明实施例一种防御网络攻击的方法进行描述,请参阅图1,图1为本发明实施例一种防御网络攻击的方法的一个实施例流程示意图,包括:
101、获取业务访问请求报文。
102、确定所述业务访问请求报文是否为攻击报文,若是,则执行步骤103。
103、在内核层丢弃所述业务访问请求报文。
至此,本发明实施例的基本流程已经结束,可见,在本发明实施例中,通过获取业务访问请求报文,确定业务访问请求报文是否为攻击报文,当确定业务访问请求报文为攻击报文时,在内核层丢弃该业务访问请求报文。由此可见,与传统的在负载均衡层拦截攻击报文相比,本发明实施例中,通过在内核层丢弃攻击报文,不需要进行完整的协议解析,从而不需要消耗较多大的CPU资源,可以有效地降低消耗的CPU资源。
为了便于理解,下面将本发明实施例进行一个详细的描述,请参阅图2,图2为本发明实施例一种防御网络攻击的方法的另一实施例流程示意图,包括:
201、收集所述业务访问请求日志。
Kafka(Apache Kafka)队列,是一种高吞吐量的分布式消息队列,它可以记录网站中的所有动作流数据。例如用户网页浏览,搜索和其他用户的行为。具体用来处理海量业务访问请求日志、用户行为和网站运营统计等的数据处理框架。Kafka队列具有如下特点:
(1)通过时间复杂度在O(1)的磁盘数据结构以提供消息的持久化,即使是超过TB(Terabyte)量级的消息也能够长时间保持存储的稳定性能。
(2)高吞吐量,在实际应用中,即使是普通的硬件Kafka也可以支持收集每秒数百万的消息。
(3)支持对消息进行分区,即支持将消息指定到不同的topic分区,并支持Hadoop并行数据加载。
即在结合了数据挖掘,行为分析,运营监控等需求的情况下,Kafka队列能够满足各种实时在线和离线处理,以及对低延迟和批量吞吐性能的要求。在本发明实施例中,以HTTP请求为例,可以通过Kafka队列收集HTTP访问请求日志。
202、获取业务访问请求报文。
203、根据所述业务访问请求日志的特征信息确定所述业务访问请求报文是否为攻击报文,当根据所述业务访问请求日志的特征信息确定所述业务访问请求报文为攻击报文时,则执行步骤204。
业务访问请求日志是对某段时间内业务访问请求中,对访问过程涉及到的信息、例如访问时间,发出业务访问请求的源IP地址等信息进行记录的文件。以业务访问请求报文为HTTP访问请求报文为例,在本发明实施例中,根据HTTP访问请求日志的特征信息确定HTTP访问请求报文是否为攻击报文,其中,HTTP访问请求日志的特征信息包括,但不局限于:
HTTP请求头(HTTP Request Header);
HTTP响应状态码(HTTP Response Code);
HTTP响应状态头(HTTP Response Header);
HTTP响应状态体(HTTP Response Body);
HTTP请求时间Request Time;
HTTP请求长度(Request Length)。
应理解,通过HTTP访问请求日志记录的HTTP访问记录,可以确定出当前获取的HTTP访问请求报文在某段时间内的访问情况。例如确定出HTTP访问请求报文在预置时段内的历史访问频率、访问总数等信息。其中,预置时段可以根据实际应用情况进行设置,例如预置时段可以为一个月内等等,具体此处不做限定。
在本发明的一些实例中,根据所述业务访问请求日志的特征信息确定所述业务访问请求报文是否为攻击报文,具体是指:
根据所述业务访问请求日志的请求时间确定所述业务访问请求报文的历史访问频率;
所述业务访问请求日志的请求时间确定所述业务访问请求报文的历史访问频率,当业务访问请求报文的历史访问频率大于预置数值时,则确定业务访问请求报文为攻击报文。其中,预置数值可以根据实际需要进行设置,具体此处不做限定。需要说明的是,上述确定业务访问请求报文是否为攻击报文在这里只是其中一种实现方式,根据业务访问请求日志的特征信息,还可以确定出当前获取的业务访问请求报文是否为攻击报文,具体此处不做限定。
应理解,在实际应用中,负载均衡服务器是控制服务器,所有用户的业务访问请求都首先到该负载均衡服务器,然后由该负载均衡服务器根据各个实际处理服务器状态将业务访问请求具体分配到某个实际处理服务器中。该负载均衡服务器一般只做负载均衡任务分配,但不是实际对业务访问请求进行处理的服务器。在同一个负载均衡服务器后面,一般对应多个域名。例如以搜狐对应的负载均衡服务器为例,负载均衡服务器后面的域名一个是http://www.sohu.com,即搜狐的主站,还有一个是http://m.sohu.com,即搜狐的移动端主站,为了对于同一报文,针对不同域名具有不同的行为,即只允许同一报文访问某些域名。在本发明的一些实施例中,结合业务访问请求日志的特征信息以及当前所访问的域名确定业务访问请求报文是否为攻击报文。
例如,确定出业务访问请求报文的历史访问频率,并确定业务访问请求日志当前所访问的域名,当业务访问请求报文的历史访问频率大于预置数值并且当前访问域名为预置域名时,才确定业务访问请求报文为攻击报文。
例如,当某个IP报文的历史访问频率高于预置数值时,被标识为攻击搜狐的移动端主(http://m.sohu.com)站的IP报文后,该IP报文产生的业务访问请求无法通过防火墙,但对于搜狐的主站(http://m.sohu.com),则正常访问,不受影响,由此可见,本发明实施例,可以对同一个IP报文针对负载均衡服务器的不同域名表现不同的行为,也就是能够分域名限制该IP报文的行为,比如只是不让这个IP报文访问同个均衡负载后面的某几个域名,而不是全面禁用掉,增强了方案的多样性以及可以有效地减少某些域名对应的业务无法正常进行的情况。
204、通过操作Iptables在内核层丢弃所述业务访问请求报文。
Iptables是Linux操作系统核心层内部的一个数据包处理模块,它具有如下功能:网络地址转换(Network Address Translate);数据包内容修改以及数据包过滤的防火墙功能。
本发明实施例中,当确定业务访问请求报文为攻击报文后,则通过操作Iptables在内核层丢弃所述业务访问请求报文。
可选地,在本发明的一些实施例中,当确定业务访问请求报文为攻击报文之后,方法还包括:
确定业务访问请求报文的危险程度等级;
当业务访问请求报文的危险程度等级为第一危险程度等级时,才触发在内核层丢弃业务访问请求报文的步骤;
当业务访问请求报文的危险程度等级为第二危险程度等级时,显示警告指示,警告指示用于指示当前存在网络攻击,其中,第一危险程度等级高于第二危险程度等级。
即在本发明实施例中,可以将攻击报文的危险程度等级分为第一危险程度等级以及第二危险程度等级,其中,攻击报文的危险程度等级可以根据攻击报文的一些访问情况,例如历史访问频率、访问路径环重复度等进行确定,具体此处不做限定。当确定业务访问请求报文为攻击报文之后,会再确定该业务访问请求报文的危险程度等级,针对该业务访问请求报文的危险程度等级,对业务访问请求报文进行不同的处理。
例如,对每一个攻击报文进行评分,评分标准可以包括历史访问频率、访问请求时间差异度、访问路径环重复度、访问路径离散度、访问状态码差异度等等,然后根据这些评分标准组合成一个分数,该分值的范围为[0,99],0为无害,99为最危险,用户可以设定危险范围,如60以下不做处理,60到80为第二危险程度等级,当为60分到80分时则只通知报警系统进行报警显示,用于指示当前存在网络攻击,而80分以上则为第一危险程度等级,当为80分以上时则进行实际拦截。
205、释放所述业务访问请求报文所对应的TCP连接。
在本发明实施例中,当通过操作Iptables在内核层丢弃所述业务访问请求报文后,释放所述业务访问请求报文所对应的TCP连接。应理解,对于一个HTTP请求,会先进行TCP连接,当TCP连接建立好了以后才会进行HTTP协议层会话,当确定HTTP请求对应的HTTP访问请求报文为符合攻击报文时,会将该HTTP访问请求报文丢弃掉,并释放该HTTP访问请求报文所对应的TCP连接,可以有效的减少服务端TCP连接数。
优选地,在本发明实施例中,放所述业务访问请求报文所对应的TCP连接,具体通过以下方式:
通过操作所述Iptables将所述TCP连接所对应的TCP包的包类型改为连接重置RST包,达到释放所述业务访问请求报文所对应的TCP连接的目的。
为了便于理解,以HTTP访问请求为例,下面通过Storm大数据计算平台实现上述方法的一个应用实例进行描述:
如图3所示,图3为本发明实施例一种防御网络攻击的方法的一个系统构造示意图,通过拦截器,Storm大数据计算平台以及Kafka队列。其中,拦截器主要起到在内核层拦截攻击报文的作用,采用iptables在内核进行拦截,拦截器通过操作iptables在内核中设置匹配规则,当发生报文匹配规则时,会触发拦截动作。
如图4所示,为Storm大数据计算平台的一个结构示意图,包括日志输入模块(loginput)、过滤模块(filter)、IP模块(IP)、配置模块(Conf)以及告警模块(alert)。通过日志输入模块从kafka队列获取HTTP访问请求日志,并进入过滤模块,过滤模块会对HTTP访问请求日志进行过滤,剔除无效的HTTP访问请求日志,例如HTTP访问请求日志中出现数据错误或缺失的日志,例如HTTP访问请求日志记录的日期超过当前的时间的日志,又例如出现HTTP请求头等数据缺失的日志。在本发明实施例中,可以根据实际应用情况进行配置,配置出何种情况的日志为无效HTTP访问请求日志,具体此处不做限定。
过滤模块接着对有效的HTTP访问请求日志的特征信息,例如HTTP访问请求日志的请求时间进行提取,提取完特征信息后将特征信息发送至IP模块。Storm大数据计算平台中的配置文件中配置有匹配规则,配置模块会根据Storm大数据计算平台中的配置文件的分析匹配规则,并将匹配规则作用在IP模块中,IP模块会通过过滤模块提出的特征信息,对每个接收到的HTTP访问请求报文在一定时间产生的行为对HTTP访问请求报文进行归类,例如看通过特征信息查询HTTP访问请求报文的历史访问频率、根据KMP算法确定HTTP访问请求报文所访问的域名等。一旦HTTP访问请求报文的行为匹配规则,例如HTTP访问请求报文的在最近2天内,访问次数高于设定次数,并且该HTTP访问请求报文所访问的域名为预置域名,则将确定该HTTP访问请求报文为攻击报文,并将该HTTP访问请求报文输送到alert模块,alert模块会根据该HTTP访问请求报文危险程度等级进行不同的动作,当业务访问请求报文的危险程度等级为第一危险程度等级时,才触发在内核层丢弃业务访问请求报文的步骤,当业务访问请求报文的危险程度等级为第二危险程度等级时,显示警告指示,警告指示用于指示当前存在网络攻击,其中,第一危险程度等级高于第二危险程度等级。
从以上技术方案可以看出,本发明实施例提供了一种防御网络攻击的方法以及装置,通过获取业务访问请求报文;确定业务访问请求报文是否为攻击报文,当确定业务访问请求报文为攻击报文时,在内核层丢弃业务访问请求报文。由此可见,与传统的负载均衡层7层对攻击报文进行拦截相比,本发明实施例中,在内核层丢弃攻击报文,不需要进行完整的协议解析,从而不需要消耗较多大的CPU资源,可以有效地降低消耗的CPU资源。
上面对本发明实施例一种防御网络攻击的方法进行了描述,基于该方法,对应的,本发明实施例提出了一种防御网络攻击的装置,下面对本发明实施例提出的一种防御网络攻击的装置进行描述。
请参阅图5,图5为本发明实施例一种防御网络攻击的装置一个实施例结构示意图,该装置包括获取模块101、第一确定模块102、丢弃模块103,下面对各个模块之间的功能进行描述:
其中,获取模块101,用于获取业务访问请求报文;
第一确定模块102,用于确定所述获取模块101获取的所述业务访问请求报文是否为攻击报文;
丢弃模块103,用于若所述第一确定模块102确定所述业务访问请求报文为攻击报文,则在内核层丢弃所述业务访问请求报文。
在一种可能的实现中,所述丢弃模块103具体用于:
通过操作Iptables在内核层丢弃所述业务访问请求报文。
结合图5,请参阅图6,在一种可能的实现中,所述装置还包括:
释放模块104,用于通过操作Iptables在内核层丢弃所述业务访问请求报文之后,释放所述业务访问请求报文所对应的TCP连接。
在一种可能的实现中,所述释放模块104具体用于:
通过操作所述Iptables将所述TCP连接所对应的TCP包的包类型改为连接重置RST包,以释放所述业务访问请求报文所对应的TCP连接。
结合图6,请参阅图7,在一种可能的实现中,所述第一确定模块102包括:
收集单元1021,用于收集所述业务访问请求日志;
确定单元1022,用于根据所述收集单元1021收集的所述业务访问请求日志的特征信息确定所述业务访问请求报文是否为攻击报文。
在一种可能的实现中,所述确定单元1022还用于:
根据所述业务访问请求日志的特征信息以及当前所访问的域名确定所述业务访问请求报文是否为攻击报文。
在一种可能的实现中,所述确定单元1022具体用于:
根据所述业务访问请求日志的请求时间确定所述业务访问请求报文的历史访问频率以及所访问的域名;
当确定所述业务访问请求报文的历史访问频率大于预置数值并且所述访问域名为预置域名时,则确定所述业务访问请求报文为攻击报文。
在一种可能的实现中,所述确定单元1022具体用于:
根据所述业务访问请求日志的请求时间确定所述业务访问请求报文的历史访问频率;
确定所述业务访问请求日志当前所访问的域名;
当所述业务访问请求报文的历史访问频率大于预置数值并且当前所述访问域名为预置域名时,则确定所述业务访问请求报文为攻击报文。
结合图7,请参阅图8在一种可能的实现中,所述装置还包括:
第二确定模块105,用于当所述第一确定模块102确定所述业务访问请求报文为攻击报文之后,确定所述业务访问请求报文的危险程度等级;
触发模块106,用于当所述第二确定模块105确定所述业务访问请求报文的危险程度等级为第一危险程度等级时,触发所述丢弃模块在内核层丢弃所述业务访问请求报文的步骤;
显示模块107,用于当所述第二确定模块105确定所述业务访问请求报文的危险程度等级为第二危险程度等级时,显示警告指示,所述警告指示用于指示当前存在网络攻击,所述第一危险程度等级高于所述第二危险程度等级。
从以上技术方案可以看出,本发明实施例提供了一种防御网络攻击的方法以及装置,通过获取业务访问请求报文;确定业务访问请求报文是否为攻击报文,当确定业务访问请求报文为攻击报文时,在内核层丢弃业务访问请求报文。由此可见,本发明实施例中,在内核层丢弃攻击报文,不需要进行完整的协议解析,即不需要消耗较多大的CPU资源,可以有效地降低消耗的CPU资源。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置、模块和单元的具体工作过程以及更多的细节,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-OnlyMemory,缩写:ROM)、随机存取存储器(英文全称:Random Access Memory,缩写:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。