流量统计方法及装置和具有流量统计功能的无线接入设备与流程

文档序号:12278212阅读:275来源:国知局
流量统计方法及装置和具有流量统计功能的无线接入设备与流程

本发明涉及智能家居领域,尤其涉及一种流量统计方法及装置和具有流量统计功能的无线接入设备。



背景技术:

随着网络新媒体等技术的迅速发展,网络应用的爆炸性增长,网络安全威胁、网络中的异常流量都给网络的正常运行带来了很大的影响。同时,由于网络具有异构性和复杂性的特点,通过监听网络数据包,对网络流量进行统计分析,从而实现网络流量的检测,是研究网络性能、故障和性能诊断以及检测网络异常的有效方法,同时它能够对解决网络问题提供依据,并为保证网络QoS奠定基础。

在目前Linux平台上,传统的网络流量采集技术有如下几种方式:

在使用SNMP的网络中,流量监测方法的主要思想是在每个网络节点上存放一个管理信息库,并有节点上的代理维护,然后传递给相关网络应用访问,简单的流量采集模式,使用方便简单,但却给网络带宽和出口路由器带来了很大的负担。

Libpcap收集信息的能力最强,范围最广,但是由于从内核缓冲区到用户缓冲区的数据拷贝,会增加内存拷贝次数,当网络通信流量过大时,会严重降低系统的性能。



技术实现要素:

为解决前述问题,本发明提出一种流量统计方法及装置和具有流量统计功能的无线接入设备,以解决现有技术中流量统计耗费性能过大的问题。

为达到前述目的,本发明采用的方法为:流量统计方法,包括如下步骤:

获取多个数据包;

通过挂载于网络协议栈钩子点上的钩子函数获取多个数据包中的多个流量数据包;

通过散列算法对所述多个流量数据包进行分类;

统计各类所述流量数据包的流量值。

为达到前述目的,本发明采用的装置为:流量统计装置,包括如下模块:

获取单元,获取多个数据包;

过滤单元,通过挂载于网络协议栈钩子点上的钩子函数获取多个数据包中的多个流量数据包;

分类单元,通过散列算法对所述多个流量数据包进行分类;

统计单元,统计各类所述流量数据包的流量值。

为达到前述目的,本发明采用的设备为:具有流量统计功能的无线接入设备,包括用于获取数据包的无线通讯模块、与所述无线通讯模块耦接的处理器及与所述处理器耦接的存储模块和外围接口电路,

所述处理器内设网络协议栈,所述网络协议栈的钩子点上设有钩子函数,用于获取所述多个数据包中的多个流量数据包;

所述处理器1通过散列算法对所述多个流量数据包进行分类并统计各类所述流量数据包的流量值。

本发明可达到如下技术效果:能为使用该技术的产品所处的周边环境提供稳定的有线/无线信号,同时可以为无线接入设备端进行流量过滤和流量统计功能。进一步的,在进行流量过滤和流量统计的过程中,该产品的系统资源相比传统无线接入设备占用资源少,节约了计算时间和存储空间,增强计算的准确性,提高工作效率,有效减少系统阻塞和资源浪费情况。

本发明的这些特点和优点将会在下面的具体实施方式、附图中详细的揭露。本发明最佳的实施方式或手段将结合附图来详尽表现,但并非是对本发明技术方案的限制。另外,在每个下文和附图中出现的这些特征、要素和组件是具有多个,并且为了表示方便而标记了不同的符号或数字,但均表示相同或相似构造或功能的部件。

【附图说明】

下面结合附图对本发明做进一步的说明。

图1为本发明实施例1的方法流程图。

图2为本发明实施例2的装置模块图。

图3为本发明实施例3的设备模块图。

【具体实施方式】

下面结合本发明实施例的附图对本发明实施例的技术方案进行解释和说明,但下述实施例仅为本发明的优选实施例,并非全部。基于实施方式中的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得其他实施例,都属于本发明的保护范围。

在本说明书中引用的“一个实施例”或“实例”或“例子”意指结合实施例本身描述的特定特征、结构或特性可被包括在本专利公开的至少一个实施例中。短语“在一个实施例中”在说明书中的各位置的出现不必都是指同一个实施例。

需要说明的是,本发明中虽然在附图中表示出各模块的连接方式,但是该连接方式仅是一个功能说明,而非具体的连接方式,在具体的应用场景中,基于本申请的发明构思,本领域技术人员很容易想到在

在本说明书所附的附图中示出的处理步骤是由包括硬件(例如电路、专用逻辑单元等)、固件(诸如在通用计算装置或专用机器上运行)或这二者的组合的处理逻辑执行的。尽管以下各个实施例是依据一些顺序操作描述了处理,但应该理解的是,某些描述的步骤操作可按不同次序执行。此外,一些步骤操作可被并行地执行而非顺序地执行。

实施例1。

参看图1,一种流量统计方法,该方法的实施可基于任何计算设备或设备集群实现,这些计算设备的实例可包括例如数字信号处理器(DSP)、中央处理单元(CPU)或微处理器(MCU),例如便携式数字电话,便携式电脑或数字助理,在本发明的例示性说明里,对“处理器”等的提及应当被理解为不仅包含具有不同架构(诸如单个/多个逻辑控制结构和串行/并行结构)的计算机,而且包含特定模拟/数字集成电路,诸如现场可编程门阵列(FPGA)、专用电路(ASIC)、信号收发电路以及其他处理电路设备。对计算机程序、指令、代码等的参考应当被理解为包含用于可编程控制电路的软件或固件。包括如下步骤:

步骤101:获取多个数据包;该数据包的来源可以为有限通道,也可以为无线通道。可以由服务器发送给电气设备,也可以为电气设备发送给服务器。

步骤102:通过挂载于网络协议栈钩子点上的钩子函数获取多个数据包中的多个流量数据包;网络协议栈设置于linux内核中的Netfilter框架。

步骤103:通过散列算法对所述多个流量数据包进行分类;

步骤104:统计各类所述流量数据包的流量值。

前述步骤103包括:采用Hash算法,根据多个数据包的源网络地址和目的地址中的关键值对所述多个流量数据包进行分类。关键值为源网络地址和目的地址中第25-32位对应的最小数字。把多个流量数据包分类为N类流量数据包(第一类流量数据包、第二类流量数据包,至到第N类流量数据包),分类完成后,统计每一类流量数据包的流量值。

前述方法,还包括发送各类所述流量数据包的流量值给用户态程序。用户态程序设于用户态中,用户态与linus内核分离。

用户态(user mode)在计算机结构指两项类似的概念。在CPU的设计中,用户态指非特权状态。在此状态下,执行的代码被硬件限定,不能进行某些操作,比如写入其他进程的存储空间,以防止给操作系统带来安全隐患。在操作系统的设计中,用户态也类似,指非特权的执行状态。内核禁止此状态下的代码进行潜在危险的操作,比如写入系统配置文件、杀掉其他用户的进程、重启系统等。

内核态又叫核心态,核心态是操作系统内核所运行的模式,运行在该模式的代码,可以无限制地对系统存储、外部设备进行访问。

Netfilter是继2.0.x的IPfwadm、2.2.x的IPchains之后,新一代的Linux防火墙机制。Netfilter采用模块化设计,具有良好的可扩充性。其重要工具模块IPTables连接到Netfilter的架构中,并允许使用者对数据报进行过滤、地址转换、处理等操作。Netfilter提供了一个框架,将对网络代码的直接干涉降到最低,并允许用规定的接口将其他包处理代码以模块的形式添加到内核中,具有极强的灵活性。

钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。对每种类型的钩子由系统来维护一个钩子链,最近安装的钩子放在链的开始,而最先安装的钩子放在最后,也就是后加入的先获得控制权。要实现Win32的系统钩子,必须调用SDK中的API函数SetWindowsHookEx来安装这个钩子函数,这个函数的原型是HHOOK SetWindowsHookEx(int idHook,HOOKPROC lpfn,HINSTANCE hMod,DWORD dwThreadId);,其中,第一个参数是钩子的类型;第二个参数是钩子函数的地址;第三个参数是包含钩子函数的模块句柄;第四个参数指定监视的线程。如果指定确定的线程,即为线程专用钩子;如果指定为空,即为全局钩子。其中,全局钩子函数必须包含在DLL(动态链接库)中,而线程专用钩子还可以包含在可执行文件中。得到控制权的钩子函数在完成对消息的处理后,如果想要该消息继续传递,那么它必须调用另外一个SDK中的API函数CallNextHookEx来传递它。钩子函数也可以通过直接返回TRUE来丢弃该消息,并阻止该消息的传递。

散列算法又叫哈希算法,哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。一般用于快速查找和加密算法。哈希表是根据设定的哈希函数H(key)和处理冲突方法将一组关键字映射到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。作为线性数据结构与表格和队列等相比,哈希表无疑是查找速度比较快的一种。通过将单向数学函数(有时称为“哈希算法”)应用到任意数量的数据所得到的固定大小的结果。如果输入数据中有变化,则哈希也会发生变化。哈希可用于许多操作,包括身份验证和数字签名。也称为“消息摘要”。简单解释:哈希(Hash)算法,即散列函数。它是一种单向密码体制,即它是一个从明文到密文的不可逆的映射,只有加密过程,没有解密过程。同时,哈希函数可以将任意长度的输入经过变化以后得到固定长度的输出。哈希函数的这种单向特征和输出数据长度固定的特征使得它可以生成消息或者数据。

实施例2。

参看图2,一种流量统计装置20,该装置的实施可基于任何计算设备或设备集群实现,这些计算设备的实例可包括例如数字信号处理器(DSP)、中央处理单元(CPU)或微处理器(MCU),例如便携式数字电话,便携式电脑或数字助理,在本发明的例示性说明里,对“处理器”等的提及应当被理解为不仅包含具有不同架构(诸如单个/多个逻辑控制结构和串行/并行结构)的计算机,而且包含特定模拟/数字集成电路,诸如现场可编程门阵列(FPGA)、专用电路(ASIC)、信号收发电路以及其他处理电路设备。对计算机程序、指令、代码等的参考应当被理解为包含用于可编程控制电路的软件或固件。包括如下模块:

获取单元21:获取多个数据包;该数据包的来源可以为有限通道,也可以为无线通道。可以由服务器发送给电气设备,也可以为电气设备发送给服务器。

过滤单元22:通过挂载于网络协议栈钩子点上的钩子函数获取多个数据包中的多个流量数据包;网络协议栈设置于linux内核中的Netfilter框架。

分类单元23:通过散列算法对所述多个流量数据包进行分类;

统计单元24:统计各类所述流量数据包的流量值。

前述分类单元采用Hash算法,根据多个数据包的源网络地址和目的地址中的关键值对所述多个流量数据包进行分类。关键值为源网络地址和目的地址中第25-32位对应的最小数字。把多个流量数据包分类为N类流量数据包(第一类流量数据包、第二类流量数据包,至到第N类流量数据包),分类完成后,统计每一类流量数据包的流量值。

前述装置,还包括发送各类所述流量数据包的流量值给用户态程序的发送单元。用户态程序设于用户态中,用户态与linus内核分离。

用户态(user mode)在计算机结构指两项类似的概念。在CPU的设计中,用户态指非特权状态。在此状态下,执行的代码被硬件限定,不能进行某些操作,比如写入其他进程的存储空间,以防止给操作系统带来安全隐患。在操作系统的设计中,用户态也类似,指非特权的执行状态。内核禁止此状态下的代码进行潜在危险的操作,比如写入系统配置文件、杀掉其他用户的进程、重启系统等。

内核态又叫核心态,核心态是操作系统内核所运行的模式,运行在该模式的代码,可以无限制地对系统存储、外部设备进行访问。

Netfilter是继2.0.x的IPfwadm、2.2.x的IPchains之后,新一代的Linux防火墙机制。Netfilter采用模块化设计,具有良好的可扩充性。其重要工具模块IPTables连接到Netfilter的架构中,并允许使用者对数据报进行过滤、地址转换、处理等操作。Netfilter提供了一个框架,将对网络代码的直接干涉降到最低,并允许用规定的接口将其他包处理代码以模块的形式添加到内核中,具有极强的灵活性。

钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。对每种类型的钩子由系统来维护一个钩子链,最近安装的钩子放在链的开始,而最先安装的钩子放在最后,也就是后加入的先获得控制权。要实现Win32的系统钩子,必须调用SDK中的API函数SetWindowsHookEx来安装这个钩子函数,这个函数的原型是HHOOK SetWindowsHookEx(int idHook,HOOKPROC lpfn,HINSTANCE hMod,DWORD dwThreadId);,其中,第一个参数是钩子的类型;第二个参数是钩子函数的地址;第三个参数是包含钩子函数的模块句柄;第四个参数指定监视的线程。如果指定确定的线程,即为线程专用钩子;如果指定为空,即为全局钩子。其中,全局钩子函数必须包含在DLL(动态链接库)中,而线程专用钩子还可以包含在可执行文件中。得到控制权的钩子函数在完成对消息的处理后,如果想要该消息继续传递,那么它必须调用另外一个SDK中的API函数CallNextHookEx来传递它。钩子函数也可以通过直接返回TRUE来丢弃该消息,并阻止该消息的传递。

散列算法又叫哈希算法,哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。一般用于快速查找和加密算法。哈希表是根据设定的哈希函数H(key)和处理冲突方法将一组关键字映射到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。作为线性数据结构与表格和队列等相比,哈希表无疑是查找速度比较快的一种。通过将单向数学函数(有时称为“哈希算法”)应用到任意数量的数据所得到的固定大小的结果。如果输入数据中有变化,则哈希也会发生变化。哈希可用于许多操作,包括身份验证和数字签名。也称为“消息摘要”。简单解释:哈希(Hash)算法,即散列函数。它是一种单向密码体制,即它是一个从明文到密文的不可逆的映射,只有加密过程,没有解密过程。同时,哈希函数可以将任意长度的输入经过变化以后得到固定长度的输出。哈希函数的这种单向特征和输出数据长度固定的特征使得它可以生成消息或者数据。

实施例3。

参看图3,一种具有流量统计功能的无线接入设备,包括用于获取数据包的无线通讯模块2、与所述无线通讯模块耦接的处理器1及与所述处理器1耦接的存储模块3和外围接口电路6。无线接入设备基于openwrt开源平台,可以自定义加载软件模块,实现接入设备对向量网络传输协议的支持。OpenWRT是一个高度模块化、高度自动化的嵌入式Linux系统,拥有强大的网络组件和扩展性,常常被用于工控设备、电话、小型机器人、智能家居、路由器以及VOIP设备中。同时,它还提供了100多个已编译好的软件,而且数量还在不断增加,而OpenWrt SDK更简化了开发软件的工序。OpenWRT不同于其他许多用于路由器的发行版,它是一个从零开始编写的、功能齐全的、容易修改的路由器操作系统。

所述处理器1内设网络协议栈,所述网络协议栈的钩子点上设有钩子函数,用于获取所述多个数据包中的多个流量数据包;所述网络协议栈设置于linux内核中的Netfilter框架,所述linux内核设于所述处理器中。

所述处理器通过散列算法对所述多个流量数据包进行分类并统计各类所述流量数据包的流量值。

处理器采用Hash算法,根据多个数据包的源网络地址和目的地址中的关键值对所述多个流量数据包进行分类。关键值为源网络地址和目的地址中第25-32位对应的最小数字。把多个流量数据包分类为N类流量数据包(第一类流量数据包、第二类流量数据包,至到第N类流量数据包),分类完成后,统计每一类流量数据包的流量值。

所述处理器发送各类所述流量数据包的流量值给用户态程序,所述用户态程序设于所述处理器1中。所述linux内核与所述用户态程序采用NetLink通讯机制。

还包括向所述无线接入设备供电的电源模块4。电源模块4包括交直流转换装置或者直流-直流的转换装置。所述外围接口电路5包括Wi-Fi开关501、复位按钮502、指示灯503或RJ45网络接口504。所述RJ45网络接口至少包括一个WAN口及至少一个LAN口。

电源模块4通过交直流转换装置或者直流-直流转换装置得到+3.3V直流电源给无线接入设备供电。无线设备在正常工作情况下既能为所处的周边提供稳定的无线有线信号,同时可以为无线接入设备端进行流量过滤和流量统计功能。无线接入设备的Wi-Fi开关501可控制接入设备的无线开关,保证用户在夜晚睡觉时候的绿色环保无辐射,指示灯503可显示接入设备的工作状态,复位按钮502可恢复无线接入设备回到出厂设置,以备不时之需。

用户态(user mode)在计算机结构指两项类似的概念。在CPU的设计中,用户态指非特权状态。在此状态下,执行的代码被硬件限定,不能进行某些操作,比如写入其他进程的存储空间,以防止给操作系统带来安全隐患。在操作系统的设计中,用户态也类似,指非特权的执行状态。内核禁止此状态下的代码进行潜在危险的操作,比如写入系统配置文件、杀掉其他用户的进程、重启系统等。

内核态又叫核心态,核心态是操作系统内核所运行的模式,运行在该模式的代码,可以无限制地对系统存储、外部设备进行访问。

Netfilter是继2.0.x的IPfwadm、2.2.x的IPchains之后,新一代的Linux防火墙机制。Netfilter采用模块化设计,具有良好的可扩充性。其重要工具模块IPTables连接到Netfilter的架构中,并允许使用者对数据报进行过滤、地址转换、处理等操作。Netfilter提供了一个框架,将对网络代码的直接干涉降到最低,并允许用规定的接口将其他包处理代码以模块的形式添加到内核中,具有极强的灵活性。

钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。对每种类型的钩子由系统来维护一个钩子链,最近安装的钩子放在链的开始,而最先安装的钩子放在最后,也就是后加入的先获得控制权。要实现Win32的系统钩子,必须调用SDK中的API函数SetWindowsHookEx来安装这个钩子函数,这个函数的原型是HHOOK SetWindowsHookEx(int idHook,HOOKPROC lpfn,HINSTANCE

hMod,DWORD dwThreadId);,其中,第一个参数是钩子的类型;第二个参数是钩子函数的地址;第三个参数是包含钩子函数的模块句柄;第四个参数指定监视的线程。如果指定确定的线程,即为线程专用钩子;如果指定为空,即为全局钩子。其中,全局钩子函数必须包含在DLL(动态链接库)中,而线程专用钩子还可以包含在可执行文件中。得到控制权的钩子函数在完成对消息的处理后,如果想要该消息继续传递,那么它必须调用另外一个SDK中的API函数CallNextHookEx来传递它。钩子函数也可以通过直接返回TRUE来丢弃该消息,并阻止该消息的传递。

散列算法又叫哈希算法,哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。一般用于快速查找和加密算法。哈希表是根据设定的哈希函数H(key)和处理冲突方法将一组关键字映射到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。作为线性数据结构与表格和队列等相比,哈希表无疑是查找速度比较快的一种。通过将单向数学函数(有时称为“哈希算法”)应用到任意数量的数据所得到的固定大小的结果。如果输入数据中有变化,则哈希也会发生变化。哈希可用于许多操作,包括身份验证和数字签名。也称为“消息摘要”。简单解释:哈希(Hash)算法,即散列函数。它是一种单向密码体制,即它是一个从明文到密文的不可逆的映射,只有加密过程,没有解密过程。同时,哈希函数可以将任意长度的输入经过变化以后得到固定长度的输出。哈希函数的这种单向特征和输出数据长度固定的特征使得它可以生成消息或者数据。

一种具体的例子,如前述无线接入设备为路由器,该路由器与家用电器无线连接。该路由器包括用于获取数据包的无线通讯芯片、与所述无线通讯芯片耦接的主控芯片及与所述主控芯片耦接的存储模块和外围接口电路,

所述主控芯片内设网络协议栈,所述网络协议栈的钩子点上设有钩子函数,用于获取所述多个数据包中的多个流量数据包;所述网络协议栈设置于linux内核中的Netfilter框架,所述linux内核设于所述主控芯片中。

所述主控芯片通过散列算法对所述多个流量数据包进行分类并统计各类所述流量数据包的流量值。

主控芯片采用Hash算法,根据多个数据包的源网络地址和目的地址中的关键值对所述多个流量数据包进行分类。关键值为源网络地址和目的地址中第25-32位对应的最小数字。把多个流量数据包分类为N类流量数据包(第一类流量数据包、第二类流量数据包,至到第N类流量数据包),分类完成后,统计每一类流量数据包的流量值。

所述主控芯片发送各类所述流量数据包的流量值给用户态程序,所述用户态程序设于所述主控芯片中。所述linux内核与所述用户态程序采用NetLink通讯机制。

另外,如在本申请中使用的,术语“模块”、“装置”是指下面各项的全部:

(1)仅硬件的电路实施方式(诸如以仅模拟和/或数字电路设备的实施方式);

(2)电路和软件的组合,诸如:(i)控制电路的组合或(ii)控制电路/软件(包括数字信号控制电路)、软件和存储器的部分,其共同工作以引起诸如移动电话或服务器之类的设备执行各种功能;以及

(3)诸如微控制电路或微控制电路部分之类的电路,其需要用于操作的软件或固件,即使软件或固件并没有物理地呈现。

“单元”或“装置”的定义适用于所有在以上实施例中(包括在任何权利要求中)对该术语的使用。作为另一示例,术语“模块”也可以涵盖仅一个控制电路或控制电路部分以及它的附属的软件和/或固件的实施例方式。术语“装置”还可涵盖例如类集成电路、蜂窝网络设备或其他网络设备中的基带集成电路或应用控制电路集成电路。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的装置。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1