一种数据包处理方法、装置和系统
技术领域
本发明涉及网络安全领域,尤其涉及一种数据包处理方法、装置和系统。
背景技术
传统的网络防护技术中,一旦发现数据包存在异常(认为该数据包为测试攻击数据包或实际攻击数据包)时就进行数据包阻断,使得可以及时阻止攻击者的攻击行为,确保网络的安全性。即在现有技术中,一旦检测到异常数据包(攻击者用于发起网络攻击的数据包,即异常数据包可以理解为测试攻击数据包或实际攻击数据包)时,通常采用阻断包含该异常数据包的数据流的方式,来防止该异常数据包的目的主机受到攻击。
这样虽然能有效地防止目的主机受到攻击,但由于阻断了包含异常数据包的数据流,用于进行网络攻击的异常数据包不会被完整接收,无法完整获得来自攻击者的测试攻击数据包和实际攻击数据包,因此也就无法根据异常数据包实现对攻击者攻击行为和特征的准确分析,无法跟踪研究最新的攻击手段和方法。
发明内容
本发明实施例提供一种数据包处理方法、装置和系统,用于解决现有技术中,由于对包含异常数据包的数据流采取阻断策略,导致无法持续跟踪黑客攻击行为,无法获取完整的攻击数据包,也无法根据异常数据包进行准确分析的问题。
一种数据包处理方法,所述方法包括:
接收客户端向目的主机发送的数据包,将所述数据包发送至本地指定端口;
从所述本地指定端口监听到的数据包中确定发生了异常的第一数据包和没有发生异常的第二数据包;
将所述第一数据包发送到指定主机,并将所述第二数据包发送至所述目的主机。
一种数据包处理装置,所述装置包括流量代理模块和用户态转发引擎,其中:
流量代理模块,用于接收客户端向目的主机发送的数据包,将所述数据包发送至本地指定端口;
用户态转发引擎,用于从所述本地指定端口监听到的数据包中确定发生了异常的第一数据包和没有发生异常的第二数据包,并将所述第一数据包发送到指定主机,并将所述第二数据包发送至所述目的主机。
一种数据包处理系统,所述系统包括如上所述的数据包处理装置、目的主机网关、指定主机网关、目的主机和指定主机,其中:
数据包处理装置,用于在确定接收到产生了异常的第一数据包时,将该第一数据包通过指定主机网关发送到指定主机,在确定接收到没有产生异常的第二数据包时,将该第二数据包通过目的主机网关发送到目的主机。
根据本发明实施例提供的方案,针对现有技术在检测到发往目的主机的异常数据包,阻断包含该异常数据包的数据流,导致用于进行网络攻击的异常数据包无法被完整接收,进而无法用于后续的攻击行为和特征的准确分析的问题,本发明实施例提出,如果在向目的主机发送的数据包中,确定出异常数据包,则将该异常数据包发往指定主机,在保证目的主机不会受到异常数据包攻击的同时,可以利用指定主机完整接收用于进行网络攻击的异常数据包,从而可以利用指定主机接收到的异常数据包进行后续的攻击者攻击行为和特征的准确分析,跟踪研究最新的攻击手段和方法。
附图说明
图1为本发明实施例一提供的数据包处理方法的步骤流程图;
图2为本发明实施例二提供的数据包处理装置的结构示意图;
图3为本发明实施例三提供的数据包处理系统的结构示意图;
图4为本发明实施例四提供的数据包处理系统的结构示意图;
图5为本发明实施例五提供的数据包处理装置的功能架构示意图;
图6为本发明实施例五提供的Tproxy模块工作流程示意图;
图7为本发明实施例六提供的数据包处理过程的示意图。
具体实施方式
在本发明实施例中,考虑将异常数据包通过数据包转发的方式引导到设定的主机,既保证该异常数据包的目的主机不受到攻击,也可以利用设定的主机持续接收用于进行网络攻击的异常数据包,从而后续可以根据异常数据包进行攻击行为和特征的准确分析。
而在异常数据包转发过程中,存在数据包转发对攻击者的透明性问题:如果数据包转发操作改变了数据包传输目标而为攻击者所发现,即数据包转发操作对攻击者不透明,则攻击者可能会调整攻击策略,从而导致数据包转发操作失败。
因此,本发明实施例将异常数据包通过数据包转发的方式引导到设定的主机的基础上,还进一步具体提供了解决以上问题的方案。
下面通过说明书附图和各实施例对本发明方案进行说明。
实施例一、
本发明实施例一提供一种数据包处理方法,该方法的步骤流程可以如图1所示,包括:
步骤101、接收客户端向目的主机发送的数据包。
在本实施例中,以针对向一个目的主机发送的数据包处理为例进行说明。因此,在本步骤中,可以接收客户端向该目的主机发送的数据包,从而后续可以针对接收到的数据包进行处理。
步骤102、将所述数据包发送到指定端口。
在本实施例中,可以通过监听指定端口,来确定向目的主机发送的数据包。因此,在本步骤中,需要将客户端向该目的主机发送的数据包发送到指定端口。
以本实施例提供的方案利用linuxTproxy技术实现为例,在本步骤中,可以配置Iptables,给所述数据包打标记,将所述数据包发送到本地指定端口,并通过策略路由,将所述数据包发送至本地指定端口。
步骤103、确定数据包是否发生异常。
在本步骤中,可以从所述本地指定端口监听到的数据包中确定发生了异常的第一数据包和没有发生异常的第二数据包,从而可以针对发生了异常的数据包和没有发生异常的数据包分别进行处理。
具体的,可以基于数据包内容特征,如利用规则匹配的方式,确定所述数据包中是否包括产生了异常的第一数据包,即可以通过动态匹配的方式确定产生了异常的第一数据包。或者,可以基于IP五元组(包括源IP,源端口,目标IP,目标端口,协议),确定所述数据包中产生了异常的第一数据包,即可以通过静态匹配的方式确定产生了异常的第一数据包。
步骤104、发送数据包。
在本步骤中,可以将产生了异常的所述第一数据包发送到指定主机,并将没有产生异常的所述第二数据包发送至所述目的主机。
以本实施例提供的方案利用linuxTproxy技术实现为例,在本步骤中,可以保持第一数据包的源IP地址不变,将所述第一数据包发送到指定主机,并保持第二数据包的源IP地址不变,将所述第二数据包发送至所述目的主机。由于利用Linux内核的Tproxy技术,将所述第一数据包发送到指定主机的过程中,不改变第一数据包的源IP地址,因此,从指定主机角度,虽然经过了中间的代理设备,但从客户端发送的数据包的源IP地址、源端口不会有任何变化,从而可以保证数据包转发操作对于指定主机的透明性。
在本实施例中,针对产生了异常的第一数据包,可以利用数据包转发技术,将所述第一数据包发送到指定主机。从而可以在避免目的主机受到攻击的同时,持续接收异常数据包,并可以在后续利用接收到的异常数据包进行攻击行为和特征的准确分析,跟踪研究最新的攻击手段和方法。
进一步的,在将数据包发送到指定主机之后,指定主机还可以反馈数据包。通过指定主机向发送该异常数据包的客户端反馈数据包的方式,可以迷惑攻击者,使其误以为攻击成功,从而可以诱使攻击者持续攻击,有利于接收更多的异常流量,使得后续的分析更加准确。当然,在将数据包发送到目的主机之后,目的主机也可以反馈数据包,响应客户端的请求。因此,在步骤104之后,还可以进一步包括以下步骤:
步骤105、接收指定主机或目的主机发送的第三数据包。
本实施例各步骤的执行主体可以理解为数据包处理装置,如代理服务器。在本实施例中,指定主机或目的主机向客户端发送的数据包也可以经过数据包处理装置的转发。因此在本步骤中,可以接收指定主机或目的主机发送的第三数据包。
步骤106、将第三数据包发送至客户端。
为了在将第三数据包发送至客户端的过程中,使得数据包转发操作不被攻击者发现,使得攻击者误以为用于攻击的异常数据包正常发送至了目的主机,可以在接收所述指定主机或目的主机发送的第三数据包之后,将所述第三数据包发送至所述客户端之前,配置Iptables,利用套接字匹配机制,给所述第三数据包打标记,并通过策略路由,将所述第三数据包发送至所述本地指定端口。并在将所述第三数据包发送至所述客户端时,保持所述第三数据包的源IP地址不变。
由于利用Linux内核的Tproxy技术,将所述将第三数据包发送至客户端的过程中,不改变第三数据包的源IP地址,使得从客户端角度,在访问远端服务器的时候,感觉不到中间的代理设备,客户端不需要做任何配置,因此,可以保证数据包转发操作对于客户端的透明性。
根据本发明实施例一提供的方案,不仅可以将异常数据包发送至指定主机,从而使得后续可以利用指定主机完整接收到的用于进行网络攻击的异常数据包进行后续的攻击者攻击行为和特征的准确分析,跟踪研究最新的攻击手段和方法。进一步的,还可以利用Linux内核的Tproxy技术,确保数据包转发操作对于指定主机和客户端的透明性,确保数据包转发操作执行的成功率。同时,根据本实施例提供的方案,对现有网络的拓扑结构影响较小,并可以进行比较完善的异常数据包检测。
需要说明的是,本实施例中涉及的指定主机可以位于蜜罐系统中,从而可以将异常数据包发送至蜜罐系统,在蜜罐系统中进行进一步的攻击行为和特征分析。同时,针对非加密型的网页(web)应用数据包,通常以短连接为主,数据包转发在大多数情况下不会影响到对攻击行为和特征的后续分析。
与本发明实施例一基于同一发明构思,提供以下的装置和系统。
实施例二、
本发明实施例二提供一种数据包处理装置,该装置的结构可以如图2所示,包括流量代理模块01和用户态转发引擎02,其中:
流量代理模块01用于接收客户端向目的主机发送的数据包,将所述数据包发送至本地指定端口;用户态转发引擎02用于从所述本地指定端口监听到的数据包中确定发生了异常的第一数据包和没有发生异常的第二数据包,并将所述第一数据包发送到指定主机,并将所述第二数据包发送至所述目的主机。
流量代理模块01具体用于接收客户端向目的主机发送的数据包,配置Iptables,给所述数据包打标记,将所述数据包发送到本地指定端口,并通过策略路由,将所述数据包发送至本地指定端口;用户态转发引擎02具体用于保持用户态转发引擎确定出的第一数据包的源IP地址不变,将所述第一数据包发送到指定主机,并保持用户态转发引擎确定出的第二数据包的源IP地址不变,将所述第二数据包发送至所述目的主机。
流量代理模块01还用于接收客户端向目的主机发送的数据包之后,将所述数据包发送至本地指定端口之前,确定所述客户端和所述目的主机是否处于同一个网段,若确定所述客户端和所述目的主机处于同一个网段,通过配置Ebtables将所述数据包送到IP层。
流量代理模块01还用于接收所述指定主机或目的主机发送的第三数据包;用户态转发引擎02还用于将所述第三数据包发送至所述客户端。
流量代理模块01具体用于接收所述指定主机或目的主机发送的第三数据包,配置Iptables,利用套接字匹配机制,给所述第三数据包打标记,并通过策略路由,将所述第三数据包发送至所述本地指定端口;用户态转发引擎02具体用于保持所述第三数据包的源IP地址不变,将所述第三数据包发送至所述客户端。
流量代理模块01具体用于接收所述指定主机或目的主机发送的第三数据包之后,将所述第三数据包发送至所述本地指定端口之前,确定所述客户端和发送第三数据包的所述指定主机或目的主机是否处于同一个网段,若确定所述客户端和发送第三数据包的所述指定主机或目的主机处于同一个网段,通过配置Ebtables将所述第三数据包送到IP层。
用户态转发引擎02具体用于基于IP五元组确定所述数据包中产生了异常的第一数据包和没有发生异常的第二数据包,或者,基于数据包内容特征确定所述数据包中产生了异常的第一数据包和没有发生异常的第二数据包。
用户态转发引擎02还用于针对客户端的一次连接请求,建立对应的会话表,根据建立的会话表,接收属于本次连接的数据包,并具体用于从属于同一次连接的数据包中确定发生了异常的第一数据包和没有发生异常的第二数据包,将所述第一数据包发送到指定主机,并将所述第二数据包发送至所述目的主机。
用户态转发引擎02还用于建立对应的会话表之后,回收超时的会话表和已经关闭的连接的会话表。
用户态转发引擎02具体用于客户端的一次连接请求为用户数据报协议(TCP)连接请求时,利用属于本次连接的所有数据包,判断接收到的每个数据包是否为异常数据包,若确定属于本次连接的所有数据包中存在发生了异常的第一数据包,则将属于本次连接的所有数据包发送到指定主机,否则,将属于本次连接的所有数据包发送至所述目的主机。
用户态转发引擎02具体用于客户端的一次连接请求为用户数据报协议(UDP)连接请求时,针对接收到的属于本次连接的每个数据包,判断该数据包是否为异常数据包,若确定一个数据包为发生了异常的第一数据包,则将该数据包发送到指定主机,否则,将该数据包发送至所述目的主机。
实施例三、
本发明实施例三提供一种数据包处理系统,该系统的结构可以如图3所示,包括如实施例二所述的数据包处理装置11、目的主机网关12、指定主机网关13、目的主机14和指定主机15,其中:
数据包处理装置11用于在确定接收到产生了异常的第一数据包时,将该第一数据包通过指定主机网关13发送到指定主机15,在确定接收到没有产生异常的第二数据包时,将该第二数据包通过目的主机网关12发送到目的主机14。
下面通过实施例四对本发明实施例一~实施例三的方案进行详细说明。
实施例四、
以数据包处理装置将异常数据包发送至蜜罐系统为例,即实施例一中的指定主机为位于蜜罐系统的蜜网主机为例,本发明实施例四提供一种数据包处理系统,该系统的结构可以如图4所示,包括接入路由器21、网络交换机22、数据包处理装置23(可以理解为本发明实施例二提供的数据包处理装置)、应用服务器网关24、蜜网网关25、应用服务器26和蜜网主机27,其中:
来自互联网(Internet)接入网的数据包经过接入路由器21和网络交换机22传输至数据包处理装置23。
在本实施例中,可以利用网桥技术,将数据包处理装置23模拟成一个二层集线器(HUB),在所述系统中可以串联部署数据包处理装置23,从而保持现有的网络拓扑结构不变。其中,为了保证数据包处理装置与目标机器(指定主机或目的主机)的数据传输畅通,可以给数据包处理装置配置上相应的接口地址,使得数据包处理装置能与目标机器建立TCP连接。例如,如图3所示,数据包处理装置23可以理解为包括网桥1和网桥2,其中网桥1包括3个接口,分别为eth0,eth1,eth2,其中,eth0连接接入路由器21,eth1连接蜜网网关25,eth2连接应用服务器网关24,则需要给网桥1的eth2配置接口地址,该接口地址与通过应用服务器网关24连接到的应用服务器的IP地址在同一个网段上,给网桥1的eth1配置接口地址,该接口地址与通过蜜网网关25连接到的蜜网主机的IP地址在同一个网段上。
在本实施例中,若数据包处理装置23的功能利用Linux内核的Tproxy技术实现,Tproxy技术工作在IP层。由于数据包处理装置23是基于网桥技术进行配置的,而网桥工作在数据链路层,当发送数据包的客户端和该数据包的目的主机处于同一个网段的时候,该数据包将通过网桥直接被转发,因此,需要强制把该数据包送到IP层,也可以理解为不论接收到的数据包的源IP和目标IP是否在同一网段,均需要把该数据包送到IP层。
由于Ebtables工作在数据链路层,在数据链路层对数据进行过滤,因此,可以利用Ebtables将数据包强制送到IP层。
客户端与目的主机无论是否处于同一网段,强制从客户端访问的数据经过IP层,Ebtables具体配置可以如下:
ebtables-tbroute-ABROUTING-i[接口名称]-pipv4--ip-protocol[协议:tcporudp]--ip-dst[目标地址]--ip-dport[目标端口]-jredirect--redirect-targetDROP
当然,数据包处理装置23在将服务器(目的主机或指定主机)返回的数据发送至客户端时,也可以无论服务器与客户端是否处于同一网段,强制从服务器返回的数据经过IP层,Ebtables具体配置可以如下:
ebtables-tbroute-ABROUTING-i[接口名称]-pipv4--ip-protocol[协议:tcporudp]--op-src[源地址]--ip-sport[源端口]-jredirect--redirect-targetDROP
数据包处理装置23在确定接收到产生了异常的第一数据包时,利用数据包转发技术将该第一数据包通过蜜网网关25发送到蜜网主机27,从而可以利用蜜网主机27完整接收用于进行网络攻击的异常数据包,并可以利用蜜网主机27接收到的异常数据包进行后续的攻击者攻击行为和特征的准确分析,跟踪研究最新的攻击手段和方法。数据包处理装置23在确定接收到的数据包没有发生异常时,可以将该数据包通过应用服务器网关24发送到相关的应用服务器26,从而实现合法数据包的传输。
下面从功能架构方面,对本发明实施例四中提供的数据包处理装置进行进一步说明。
实施例五、
数据包处理装置的功能架构可以如图5所示,除了包括实施例二中涉及的Tproxy模块(图5中用附图标记32表示)和用户态转发引擎(图5中用附图标记34表示)之外,还可以包括网卡驱动模块31和TCP/IP协议栈模块33,其中:
网卡驱动模块31实现互联网和局域网的连接,来自互联网(Internet)接入网的数据包经网卡驱动模块31发送至Tproxy模块32。
流量代理模块32用于将数据流量发送至本地监听端口,并实现流量转发的透明过程。本发明基于LinuxTproxy技术,具体的,是给接收到的数据包打标记,通过策略路由将数据包路由到本地回环(loopback)接口,再送到设置了IP_TRANSPARENT选项的套接字。且在发送数据包时不作源地址检测。
具体的,LinuxTproxy技术需要借助于Iptables实现。以客户端发起一次HTTP请求为例,假设目的主机的IP地址为192.168.0.2,端口为80,数据包处理装置监听在127.0.0.1:1080端口。则,当客户端向目的主机发起请求的数据到达数据包处理装置的时候,为了能使该数据到达监听端口(127.0.0.1:1080),可以当数据包到达IP层的时候,给数据包打上标记,使得数据包经策略路由可以到达监听端口,Iptables配置策略可以如下:
iptables-tmangle-APREROUTING-ptcp-d192.168.0.2--dport1080-jTPROXY--tproxy-mark0x1/0x1–on-ip127.0.0.1--on-port1080
服务器(目的主机或指定主机)响应的数据经过数据包处理装置的时候,为了能使响应的数据到达数据包处理装置的监听端口,可以使用socket匹配机制,新建转发规则链,对数据包进行标记。Iptables配置策略可以如下:
iptables-tmangle-NDIVERT
iptables-tmangle-ADIVERT-jMARK--set-mark1
iptables-tmangle-ADIVERT-jACCEPT
iptables-tmangle-APREROUTING-ptcp-msocket-jDIVERT
数据包被标记后,为了能到达流量分发器监听的套接字,必须配置相应的策略路由,策略路由配置可以如下:
ipruleaddfwmark1lookup100
iprouteaddlocal0.0.0.0/0devlotable100
例如,如图6所示,其中各实线箭头的指向表明客户端向服务器发送的数据包的流向,各虚线箭头的指向表明服务器向客户端发送的数据包的流向,且图6中省略了TCP连接的建立过程。从图6中可以看出,数据包处理装置(流量代理模块)监听端口0.0.0.0:880,在接收到客户端的请求后,利用客户端的IP地址和端口向服务器(指定主机或目的主机)发起连接,从而使得对于客户端和服务器而言,数据包处理装置均是透明的。
用户态转发引擎34,用于监听端口流量,检测流量是否异常,根据判断结果确认转发策略。
TCP/IP协议栈模块33基于TCP/IP协议,可以理解为用于建立和拆除网络连接。且网卡驱动模块31遵循关于网卡驱动的Linux标准规范,TCP/IP协议栈模块33遵循关于TCP/IP协议栈的Linux标准规范。
用户态转发引擎34可以从功能上进行划分,理解为包括用于实现数据接收的数据接收子模块、用于实现数据安全检测、确定数据包是否为异常数据包的安全检测子模块、用于实现会话表管理的会话表管理子模块和用于实现转发策略确定的转发策略确定子模块。下面通过实施例五对用户态转发引擎34进行说明。
数据包处理装置(用户态转发引擎)针对采用不同协议的数据包,可以分别进行处理,并可以采取不同的数据包转发策略。如,对于采用TCP协议的数据包(TCP数据包),可以接收属于同一次连接的全部的数据包,在接收到属于同一次连接的所有数据包后,若从中判断出异常数据包,将属于本次连接过程的数据包都作为异常数据包转发,从而实现TCP会话的平滑迁移,对于采用UDP协议的数据包(UDP数据包),可以针对每个数据包进行检测,并转发检测到的异常数据包。下面通过实施例六进行详细说明。
实施例六、
以数据包处理装置(用户态转发引擎)针对采用TCP协议的数据包和采用UDP协议的数据包进行处理为例,如图7所示为数据包处理装置进行数据包处理的示意图,包括:
步骤201、创建监听端口。
在本步骤中,数据包处理装置可以根据配置文件,建立本地监听端口。
步骤202、分别创建TCP监听线程、UDP监听线程以及工作线程,且可以理解为TCP监听线程、UDP监听线程以及工作线程并行工作。
在UDP监听线程,等待接收UDP连接请求,并执行步骤203’及204’:
步骤203’、确定是否存在新连接,可以理解为判断是否接收到UDP连接请求。
步骤204’、在确定存在新连接时,接收UDP连接请求,将相应的socket句柄(UDP句柄)放入UDP等待表队列,然后继续等待接收UDP请求。
在TCP监听线程,等待接收TCP连接请求,并执行步骤203”及204”:
步骤203”、确定是否存在新连接,可以理解为判断是否接收到TCP连接请求。
步骤204”、在确定存在新连接时,接收TCP连接请求,将相应的socket句柄(TCP句柄)放入TCP等待表队列,然后继续等待接收TCP请求。
在工作线程,读取UDP等待表队列和TCP等待表队列中的句柄,建立相应的会话表,并继续执行以下步骤:
针对UDP等待表队列中的UDP句柄,执行以下步骤:
步骤203”’、接收UDP数据包;
步骤204”’、判断接收到的数据包是否为异常数据包;
本步骤可以理解为针对接收到的每个数据包,判断该数据包是否为异常数据包。
具体的,可以基于IP五元组确定该数据包是否为异常数据包,或者,基于数据包内容特征确定该数据包是否为异常数据包。
步骤205”’、若确定数据包为异常数据包,则将该数据包转发至指定主机(如蜜网主机),若确定数据包没有发生异常,则将该数据包发送至该数据包的目的主机(真实的应用服务器)。
针对TCP等待表队列中的TCP句柄,执行以下步骤:
步骤203””、接收TCP数据包;
步骤204””、确定是否已经接收到了全部的数据包;
针对采用TCP协议的数据包(如,采用HTTP协议的数据包),需要接收到属于本次连接的所有的数据包才能够进行数据包的异常检测,因此,在本步骤中,可以确定是否已接收到属于本次连接过程的所有数据包。
步骤205””、若确定已经接收到了全部的数据包,则判断接收到的数据包是否为异常数据包;
本步骤可以理解为若确定接收到属于本次连接过程的所有数据包,则利用属于本次连接过程的所有数据包,判断接收到的每个数据包是否为异常数据包。
步骤206””、若确定数据包为异常数据包,则将该数据包转发至指定主机(如蜜网主机),若确定数据包没有发生异常,则将该数据包发送至该数据包的目的主机(真实的应用服务器)。
如果确定接收到的属于本次连接过程的一个数据包为异常数据包,则可以将本次连接过程中接收到的所有数据包转发到指定主机。当然,若确定接收到的属于本次连接过程的数据包均没有发生异常,则可以将本次连接过程中接收到的所有数据包转发到目的主机。
将本次连接过程中接收到的所有数据包转发到指定主机,可以解决转发部分数据包会导致TCP会话迁移的问题,实现TCP会话平滑迁移。
进一步的,在数据包处理过程中,可以回收超时的会话表和已经关闭的连接的会话表,释放对应的内存空间,避免内存空间的占用和浪费。
经过上述过程,用户态转发引擎实现了包括数据接收、数据安全检测、会话表管理和转发策略确定在内的功能,且实现了针对采用不同协议的数据包的分别处理,使得数据包处理装置可以根据用户态转发引擎确定出的转发策略,通过TCP/IP协议栈模块将数据包转发到对应的服务器。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。