处理数据包的方法、交换机、装置及计算机可读存储介质
技术领域
本发明涉及软件定义网络(Software Defined Network,SDN)中的开放流(OpenFlow)技术领域,尤其涉及一种处理数据包的方法、交换机、装置及计算机可读存储介质。
背景技术
随着互联网规模的不断壮大,传统的网络架构已无法很好的满足人们的需要;目前,SDN逐渐受到人们的重视,SDN作为一种新型网络创新架构,是网络虚拟化的一种实现方式,其中核心技术OpenFlow将网络设备(通常是支持OpenFlow协议的交换机)的控制层面和数据层面分离,开发人员可以根据实际的需要设计控制层的业务逻辑,使流量控制变得更加灵活、更加可控;同时,由于网络设备只负责数据层面,这使得转发效率也有了大幅提升。
在交换机的运行过程中,其数据包转发的依据就是流表;所谓流表,其实可被视作是OpenFlow对网络设备的数据转发功能的一种抽象,在传统网络设备中,交换机和路由器的数据包转发需要依赖设备中保存的二层介质访问控制(Media Access Control,MAC)地址转发表或者三层网络之间互连的协议(Internet Protocol,IP)地址路由表,而交换机中使用的流表也是如此,不过在它的流表项中整合了网络中各个层次的网络配置信息,从而在进行数据转发时可以使用更丰富的规则。
但是,在数据包转发的过程中,如果数据包与流表项匹配失败的话,交换机会将数据包先转发至控制器,控制器在完成路由重计算后再将该数据包以及新的流表项发回到交换机,由交换机重新进行数据包与新的流标项匹配;这样一来,数据包在交换机和控制器之间需要频繁交换,不仅提高了丢包率,还会占用过多的带宽资源,降低了服务质量。
发明内容
有鉴于此,本发明实施例期望提供一种处理数据包的方法、交换机、装置及计算机可读存储介质,以提高交换机和控制器之间的通信效率、降低丢包率,节省带宽资源,提高服务质量。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供一种处理数据包的方法,所述方法包括:
提取数据包的包头域信息;
在所述数据包与第一流表项匹配失败时,将所述包头域信息和匹配失败信息封装成packet_in消息,将所述packet_in消息发送至控制器,并将所述数据包存入缓存;
接收所述控制器发送的packet_out消息,并提取所述packet_out消息中携带的所述包头域信息对应的第二流表项;
按照所述第二流表项,将所述缓存中的所述数据包重新进入流表项匹配流程。
上述方案中,所述将所述缓存中的所述数据包重新进入流表项匹配流程,包括:
在所述缓存中存在有两个或两个以上数据包时,将所述缓存中的每个数据包按照预设调度规则依次重新进入流表项匹配流程;
所述预设调度规则包括:所述每个数据包进入所述缓存的等待时间由长到短的顺序依次排队的规则、所述每个数据包本身的优先级由高到低的顺序依次排队的规则,或所述数据包的综合调度等级由高到低的顺序依次排队的规则。
上述方案中,所述数据包进入所述缓存的等待时间为T,所述数据包本身的优先级为P,所述数据包的综合调度等级为Q,其中,所述Q=PT2。
上述方案中,在所述提取所述packet_out消息中携带的所述包头域信息对应的第二流表项之后,在所述按照所述更新后的流表项及预设调度规则,将所述缓存中的所述数据包重新进入流表项匹配流程之前,所述方法还包括:
根据所述第二流表项更新本地的流表。
上述方案中,所述包头域信息对应的第二流表项,是由所述控制器根据所述匹配失败信息路由重计算后得到的。
本发明还提供一种处理数据包的交换机,所述交换机包括:接口,总线,存储器,与处理器,所述接口、所述存储器与所述处理器通过所述总线相连接,所述存储器用于存储计算机程序,所述处理器读取所述计算机程序用于:
提取数据包的包头域信息;
在所述数据包与第一流表项匹配失败时,将所述包头域信息和匹配失败信息封装成packet_in消息,将所述packet_in消息发送至控制器,并将所述数据包存入缓存;
接收所述控制器发送的packet_out消息,并提取所述packet_out消息中携带的所述包头域信息对应的第二流表项;
按照所述第二流表项,将所述缓存中的所述数据包重新进入流表项匹配流程。
上述方案中,所述处理器读取所述计算机程序具体用于:
在所述缓存中存在有两个或两个以上数据包时,将所述缓存中的每个数据包按照预设调度规则依次重新进入流表项匹配流程;
所述预设调度规则包括:所述每个数据包进入所述缓存的等待时间由长到短的顺序依次排队的规则、所述每个数据包本身的优先级由高到低的顺序依次排队的规则,或所述数据包的综合调度等级由高到低的顺序依次排队的规则。
上述方案中,所述数据包进入所述缓存的等待时间为T,所述数据包本身的优先级为P,所述数据包的综合调度等级为Q,其中,所述Q=PT2。
上述方案中,所述处理器读取所述计算机程序还用于:
根据所述第二流表项更新本地的流表。
上述方案中,所述包头域信息对应的第二流表项,是由所述控制器根据所述匹配失败信息路由重计算后得到的。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的处理数据包的步骤。
本发明还提供一种处理数据包的装置,所述处理数据包的装置包括:
提取模块,用于提取数据包的包头域信息;
封装模块,用于在所述数据包与第一流表项匹配失败时,将所述包头域信息和匹配失败信息封装成packet_in消息,将所述packet_in消息发送至控制器,并将所述数据包存入缓存;
管理模块,用于接收所述控制器发送的packet_out消息,并提取所述packet_out消息中携带的所述包头域信息对应的第二流表项;
调度模块,用于按照所述第二流表项,将所述缓存中的所述数据包重新进入流表项匹配流程。
本发明提供的处理数据包的方法、交换机、装置及计算机可读存储介质,通过提取数据包的包头域信息;在数据包与第一流表项匹配失败时,将包头域信息和匹配失败信息封装成packet_in消息,将packet_in消息发送至控制器,并将数据包存入缓存;接收控制器发送的packet_out消息,并提取packet_out消息中携带的包头域信息对应的第二流表项;按照第二流表项,将缓存中的数据包重新进入流表项匹配流程;通过将数据包的包头域信息和匹配失败信息封装成packet_in消息与控制器进行交换,以及在交换机中增设缓存区专门保存配置失败的数据包,避免了数据包在交换机与控制器之间的交换,由于包头域信息和匹配失败信息占用的字节大小很小,不仅提高了交换机和控制器之间的通信效率、降低了丢包率,而且不会占用过多的带宽资源,能够有效的提高服务质量。
附图说明
图1为本发明处理数据包的方法实施例一的流程图;
图2为本发明处理数据包的方法实施例二的流程图;
图3为本发明处理数据包的装置实施例的结构示意图;
图4为本发明处理数据包的交换机实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
图1为本发明处理数据包的方法实施例一的流程图,如图1所示,本发明实施例提供的处理数据包的方法应用在交换机上,该方法可以包括如下步骤:
步骤101、提取数据包的包头域信息。
交换机在接收到新的数据包后,将数据包的包头域信息提取出来。
步骤102、在数据包与第一流表项匹配失败时,将包头域信息和匹配失败信息封装成packet_in消息,将packet_in消息发送至控制器,并将数据包存入缓存。
交换机在将数据包的包头域信息提取出后,会判断数据包与第一流表项是否匹配成功,如果数据包与第一流表项匹配成功,则执行第一流表项对应的动作(Action),如果数据包与第一流表项匹配失败,则交换机会将该数据包的包头域信息和匹配失败信息一并封装成packet_in消息,将packet_in消息通过专用通道发送至控制器(Controller),并将该数据包存储在本地的缓存中。
这里需要说明的是,这里的第一流表项可以理解为本地当前的流表项,如果有多个数据包都匹配的话,其每个数据包的匹配过程都相同,只是根据流表编号从小到大、流表项优先级从高到低的顺序依次匹配,因此,在本发明实施例中仅以一个数据包的匹配来具体说明。
流表中的流表项有很多匹配规则,比较重要的有入端口、源(目的)MAC地址、源(目的)IP地址(v4或v6)及优先级等,其中优先级规定了流表项的匹配先后顺序,优先级越大的流表项越先被匹配;匹配规则须全部条件满足才算匹配成功,匹配成功之后则按照流表项规定的动作(Action)进行直接输出(output)、入队(set_queue)、洪范(flood)、丢弃(drop)、转发至控制器(Controller)、匹配下一级流表(goto_table)等操作。
通过将数据包的包头域信息和匹配失败信息封装成packet_in消息与控制器进行交换,包头域信息和匹配失败信息仅数十字节大小,不仅提高了交换机和控制器之间的通信效率、降低了丢包率,而且不会占用过多的带宽资源。
步骤103、接收控制器发送的packet_out消息,并提取packet_out消息中携带的包头域信息对应的第二流表项。
交换机接收控制器(Controller)发送的packet_out消息,并从packet_out消息中提取出携带的该数据包的包头域信息对应的第二流表项,该第二流表项即为控制器(Controller)根据该数据包的包头域信息与匹配失败信息路由重计算后得到的新的流表项。
步骤104、按照第二流表项,将缓存中的数据包重新进入流表项匹配流程。
交换机按照第二流流表项,将之前存储在缓存中的匹配失败的数据包提取出,并使该数据包重新进入流表项匹配流程,最终完成数据包的转发。
本发明实施例提供的处理数据包的方法,通过提取数据包的包头域信息;在数据包与第一流表项匹配失败时,将包头域信息和匹配失败信息封装成packet_in消息,将packet_in消息发送至控制器,并将数据包存入缓存;接收控制器发送的packet_out消息,并提取packet_out消息中携带的包头域信息对应的第二流表项;按照第二流表项,将缓存中的数据包重新进入流表项匹配流程;通过将数据包的包头域信息和匹配失败信息封装成packet_in消息与控制器进行交换,以及在交换机中增设缓存区专门保存配置失败的数据包,避免了数据包在交换机与控制器之间的交换,由于包头域信息和匹配失败信息占用的字节大小很小,不仅提高了交换机和控制器之间的通信效率、降低了丢包率,而且不会占用过多的带宽资源,能够有效的提高服务质量。
为了更加体现出本发明的目的,在上述实施例的基础上,进一步的举例说明。
图2为本发明处理数据包的方法实施例二的流程图,如图2所示,本发明实施例提供的处理数据包的方法可以应用在OpenFlow交换机上,该方法可以包括如下步骤:
步骤201、提取数据包的包头域信息。
OpenFlow交换机在接收到新的数据包后,将数据包的包头域信息提取出来;该包头域信息用于后续步骤中表流项匹配。
步骤202、判断数据包与第一流表项是否匹配失败。
OpenFlow交换机在将数据包的包头域信息提取出后,会判断数据包与第一流表项是否匹配失败,若数据包与第一流表项匹配成功,则执行步骤203;若数据包与第一流表项匹配失败,则执行步骤204。
这里需要说明的是,这里的第一流表项可以理解为本地当前的流表项,如果有多个数据包都匹配的话,其每个数据包的匹配过程都相同,只是根据流表编号从小到大、流表项优先级从高到低的顺序依次匹配,因此,在本发明实施例中仅以判断一个数据包的匹配来具体说明。
步骤203、将数据包转发。
OpenFlow交换机将数据包转发。
步骤204、将数据包的包头域信息和匹配失败信息封装成packet_in消息。
OpenFlow交换机将数据包的包头域信息和匹配失败信息封装成packet_in消息。
步骤205、将packet_in消息发送至控制器,并将数据包存入本地缓存中。
OpenFlow交换机将packet_in消息通过专用通道发送至控制器(Controller),并将该数据包存储在本地的缓存中。
步骤206、接收控制器发送的packet_out消息,并提取packet_out消息中携带的包头域信息对应的第二流表项。
OpenFlow交换机接收控制器(Controller)发送的packet_out消息,并从packet_out消息中提取出携带的该数据包的包头域信息对应的第二流表项,其中,该第二流表项,是由控制器根据该数据包的包头域信息与匹配失败信息路由重计算后得到的新的流表项。
步骤207、根据第二流表项更新本地的流表。
OpenFlow交换机根据获取到的第二流表项更新本地的流表。
步骤208、在缓存中只存在一个数据包时,按照第二流表项,将缓存中的数据包重新进入流表项匹配流程。
在缓存中只存在一个数据包时,OpenFlow交换机按照第二流表项,将之前存储在缓存中的匹配失败的数据包提取出,并使该数据包重新进入流表项匹配流程,最终完成数据包的转发。
步骤209、在缓存中存在有两个或两个以上数据包时,将缓存中的每个数据包按照预设调度规则依次重新进入流表项匹配流程。
在缓存中存在有两个或两个以上数据包时,OpenFlow交换机按照每个数据包各自对应的第二流表项,将之前存储在缓存中的每个数据包按照预设调度规则依次提取出,并使数据包重新进入流表项匹配流程,最终完成数据包的转发。
其中,预设调度规则包括但不限于:每个数据包进入缓存的等待时间由长到短的顺序依次排队的规则、每个数据包本身的优先级由高到低的顺序依次排队的规则,或数据包的综合调度等级由高到低的顺序依次排队的规则;OpenFlow交换机中开放有预设调度规则的开放式编程接口,这样可以供不同的业务逻辑按需所用。
优选的,对于数据包的综合调度等级由高到低的顺序依次排队的规则,数据包进入缓存的等待时间为T,数据包本身的优先级为P,数据包的综合调度等级为Q,定义公式为:Q=PT2。
由公式可以看出,综合调度等级兼顾了原数据包的优先级和进入缓存的等待时间,对于等待时间较长的数据包会有更高的调度等级,防止低优先级的数据包因长时间得不到调度而饿死,能有效降低数据包的排队时延,为用户提供更加优质的服务。
本发明实施例提供的处理数据包的方法,通过提取数据包的包头域信息;判断数据包与第一流表项是否匹配失败;在匹配失败时,将数据包的包头域信息和匹配失败信息封装成packet_in消息;将packet_in消息发送至控制器,并将数据包存入本地缓存中;接收控制器发送的packet_out消息,并提取packet_out消息中携带的包头域信息对应的第二流表项;根据第二流表项更新本地的流表;在缓存中只存在一个数据包在缓存中存在有两个或两个以上数据包时,将缓存中的每个数据包按照预设调度规则依次重新进入流表项匹配流程时,按照第二流表项,将缓存中的数据包重新进入流表项匹配流程;将数据包的包头域信息和匹配失败信息封装成packet_in消息与控制器进行交换,以及在交换机中增设缓存区专门保存配置失败的数据包,避免了数据包在交换机与控制器之间的交换,由于包头域信息和匹配失败信息占用的字节大小很小,不仅提高了交换机和控制器之间的通信效率、降低了丢包率,而且不会占用过多的带宽资源,能够有效的提高服务质量;另外,设置预设调度规则,并开放预设调度规则的编程接口,可以根据业务需求灵活配置,进一步提高服务质量。
图3为本发明处理数据包的装置实施例的结构示意图,如图3所示,本发明实施例提供的处理数据包的装置03,包括:
提取模块31,用于提取数据包的包头域信息;
封装模块32,用于在所述数据包与第一流表项匹配失败时,将所述包头域信息和匹配失败信息封装成packet_in消息,将所述packet_in消息发送至控制器,并将所述数据包存入缓存;
管理模块33,用于接收所述控制器发送的packet_out消息,并提取所述packet_out消息中携带的所述包头域信息对应的第二流表项;
调度模块34,用于按照所述第二流表项,将所述缓存中的所述数据包重新进入流表项匹配流程。
进一步的,所述调度模块34,具体用于在所述缓存中存在有两个或两个以上数据包时,将所述缓存中的每个数据包按照预设调度规则依次重新进入流表项匹配流程;
所述预设调度规则包括:所述每个数据包进入所述缓存的等待时间由长到短的顺序依次排队的规则、所述每个数据包本身的优先级由高到低的顺序依次排队的规则,或所述数据包的综合调度等级由高到低的顺序依次排队的规则。
进一步的,所述数据包进入所述缓存的等待时间为T,所述数据包本身的优先级为P,所述数据包的综合调度等级为Q,其中,所述Q=PT2。
进一步的,所述装置还包括:
更新模块35,用于根据所述第二流表项更新本地的流表。
进一步的,所述包头域信息对应的第二流表项,是由所述控制器根据所述匹配失败信息路由重计算后得到的。
需要说明的是:上述实施例提供的处理数据包的装置在进行处理数据包时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。
本实施例的处理数据包的装置,可以用于执行上述所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图4为本发明处理数据包的交换机实施例的结构示意图,如图4所示,本发明实施例提供的处理数据包的交换机04,包括:接口41,总线42,存储器43,与处理器44,所述接口41、所述存储器43与所述处理器44通过所述总线42相连接,所述存储器43用于存储计算机程序,所述处理器44读取所述计算机程序用于:
提取数据包的包头域信息;
在所述数据包与第一流表项匹配失败时,将所述包头域信息和匹配失败信息封装成packet_in消息,将所述packet_in消息发送至控制器,并将所述数据包存入缓存;
接收所述控制器发送的packet_out消息,并提取所述packet_out消息中携带的所述包头域信息对应的第二流表项;
按照所述第二流表项,将所述缓存中的所述数据包重新进入流表项匹配流程。
进一步的,所述处理器44读取所述计算机程序具体用于:
在所述缓存中存在有两个或两个以上数据包时,将所述缓存中的每个数据包按照预设调度规则依次重新进入流表项匹配流程;
所述预设调度规则包括:所述每个数据包进入所述缓存的等待时间由长到短的顺序依次排队的规则、所述每个数据包本身的优先级由高到低的顺序依次排队的规则,或所述数据包的综合调度等级由高到低的顺序依次排队的规则。
进一步的,所述数据包进入所述缓存的等待时间为T,所述数据包本身的优先级为P,所述数据包的综合调度等级为Q,其中,所述Q=PT2。
进一步的,所述处理器44读取所述计算机程序还用于:
根据所述第二流表项更新本地的流表。
进一步的,所述包头域信息对应的第二流表项,是由所述控制器根据所述匹配失败信息路由重计算后得到的。
如图4所示,处理数据包的交换机04中的各个组件通过总线42耦合在一起;可理解,总线42用于实现这些组件之间的连接通信,总线42除包括数据总线之外,还包括电源总线、控制总线和状态信号总线,但是为了清楚说明起见,在图4中将各种总线都标为总线42。
其中,接口41可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。
可以理解,存储器43可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory);本发明实施例描述的存储器43旨在包括但不限于这些和任意其它适合类型的存储器。
本发明实施例中的存储器43用于存储各种类型的数据以支持处理数据包的交换机04的操作;这些数据的示例包括:用于在处理数据包的交换机04上操作的任何计算机程序,如操作***和应用程序等;其中,操作***包含各种***程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;应用程序可以包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务;实现本发明实施例方法的程序可以包含在应用程序中。
上述本发明实施例揭示的方法可以应用于处理器44中,或者由处理器44实现,处理器44可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器44中的硬件的集成逻辑电路或者软件形式的指令完成;上述的处理器44可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等;处理器44可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图;通用处理器可以是微处理器或者任何常规的处理器等;结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成,软件模块可以位于存储介质中,该存储介质位于存储器43,处理器44读取存储器43中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,处理数据包的交换机04可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable LogicDevice)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或其他电子元件实现,用于执行前述方法。
本发明提供的处理数据包的交换机,可以用于执行上述所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本发明还提供一种计算机可读存储介质,例如包括计算机程序的存储器43,上述计算机程序可由处理数据包的交换机04中的处理器44执行,以完成前述方法所述步骤;计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行,以实现以下步骤:
提取数据包的包头域信息;
在所述数据包与第一流表项匹配失败时,将所述包头域信息和匹配失败信息封装成packet_in消息,将所述packet_in消息发送至控制器,并将所述数据包存入缓存;
接收所述控制器发送的packet_out消息,并提取所述packet_out消息中携带的所述包头域信息对应的第二流表项;
按照所述第二流表项,将所述缓存中的所述数据包重新进入流表项匹配流程。
进一步的,所述计算机程序可被所述处理器执行,以具体实现以下步骤:
在所述缓存中存在有两个或两个以上数据包时,将所述缓存中的每个数据包按照预设调度规则依次重新进入流表项匹配流程;
所述预设调度规则包括:所述每个数据包进入所述缓存的等待时间由长到短的顺序依次排队的规则、所述每个数据包本身的优先级由高到低的顺序依次排队的规则,或所述数据包的综合调度等级由高到低的顺序依次排队的规则。
进一步的,所述数据包进入所述缓存的等待时间为T,所述数据包本身的优先级为P,所述数据包的综合调度等级为Q,其中,所述Q=PT2。
进一步的,所述计算机程序还可被所述处理器执行,以实现以下步骤:
根据所述第二流表项更新本地的流表。
进一步的,所述包头域信息对应的第二流表项,是由所述控制器根据所述匹配失败信息路由重计算后得到的。
本发明提供的计算机可读存储介质,可以用于执行上述所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。