基于点对点网络的数据存储方法、装置、介质及终端设备与流程

文档序号:18357760发布日期:2019-08-06 23:22阅读:201来源:国知局
基于点对点网络的数据存储方法、装置、介质及终端设备与流程

本发明属于计算机技术领域,尤其涉及一种基于点对点网络的数据存储方法、装置、计算机可读存储介质及终端设备。



背景技术:

点对点(peer-to-peer,p2p)网络是一种主要由大量的对等节点组成的网络架构,不同节点之间关系对等,可以互相传输资源。在资源传输过程中,每个节点既会从点对点网络中其他拥有资源的节点,获取所需的资源,也会将已下载的资源,分发给点对点网络中每个需要该资源的节点,从而极大地提高了资源在网络中的传输效率。

在点对点网络中进行存储中,为了保证数据的安全性,需要增加数据的冗余度,常常会把同一个数据分发多份到点对点网络中,而作为存储空间消费者,一份数据多次反复传输会耗用其大量的带宽,造成对其带宽资源的浪费。



技术实现要素:

有鉴于此,本发明实施例提供了一种基于点对点网络的数据存储方法、装置、计算机可读存储介质及终端设备,以解决现有的办公应用程序操作比较繁琐,用户体验较差的问题。

本发明实施例的第一方面提供了一种基于点对点网络的数据存储方法,所述方法应用于包括两个以上节点的点对点网络中,所述方法包括:

源节点将待存储数据划分为各个数据分片,并确定各个数据分片的备份数目,所述源节点为所述点对点网络中的任意一个节点;

所述源节点在所述点对点网络中确定与第s个数据分片对应的第1级存储节点,并向所述第1级存储节点发送数据存储请求,所述数据存储请求中包括计数值和存储节点集合,所述计数值等于第s个数据分片的备份数目,所述存储节点集合为空,1≤s≤sn,sn为数据分片的数目;

所述第1级存储节点在接收到所述数据存储请求后,从所述源节点下载及存储第s个数据分片,将所述第1级存储节点的节点标识添加入所述存储节点集合中,并将所述计数值减去一个计数单元;

第n级存储节点在所述点对点网络中确定与第s个数据分片对应的第n+1级存储节点,并向所述第n+1级存储节点发送数据存储请求,n为正整数;

所述第n+1级存储节点在接收到所述数据存储请求后,从各个目标节点下载及存储第s个数据分片,将所述第n+1级存储节点的节点标识添加入所述存储节点集合中,并将所述计数值减去一个计数单元,直至所述计数值为0为止,所述目标节点为所述数据存储请求的存储节点集合中的各个节点标识分别所对应的节点。

本发明实施例的第二方面提供了一种数据存储装置,可以包括:

数据分片划分模块,用于将待存储数据划分为各个数据分片;

备份数目确定模块,用于确定各个数据分片的备份数目;

第一确定模块,用于在所述点对点网络中确定与第s个数据分片对应的第1级存储节点,并向所述第1级存储节点发送数据存储请求,所述数据存储请求中包括计数值和存储节点集合,所述计数值等于第s个数据分片的备份数目,所述存储节点集合为空,1≤s≤sn,sn为数据分片的数目;

第一处理模块,用于在接收到所述数据存储请求后,从所述源节点下载及存储第s个数据分片,将本地的节点标识添加入所述存储节点集合中,并将所述计数值减去一个计数单元;

第二确定模块,用于在所述点对点网络中确定与第s个数据分片对应的下一级存储节点,并向下一级存储节点发送数据存储请求;

第二处理模块,用于在接收到所述数据存储请求后,从各个目标节点下载及存储第s个数据分片,将本地的节点标识添加入所述存储节点集合中,并将所述计数值减去一个计数单元,所述目标节点为所述数据存储请求的存储节点集合中的各个节点标识分别所对应的节点。

本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现上述数据存储装置的功能。

本发明实施例的第四方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现上述数据存储装置的功能。

本发明实施例与现有技术相比存在的有益效果是:在本发明实施例中,源节点首先将待存储数据划分为各个数据分片,并确定各个数据分片的备份数目,然后在所述点对点网络中确定与第s个数据分片对应的第1级存储节点,并向所述第1级存储节点发送数据存储请求,所述数据存储请求中包括计数值和存储节点集合,所述计数值等于第s个数据分片的备份数目,所述存储节点集合为空。所述第1级存储节点在接收到所述数据存储请求后,首先从所述源节点下载及存储第s个数据分片,将自己的节点标识添加入所述存储节点集合中,并将所述计数值减去一个计数单元,然后在所述点对点网络中确定与第s个数据分片对应的第2级存储节点,并向所述第2级存储节点发送数据存储请求,所述第2级存储节点在接收到所述数据存储请求后,从各个目标节点(即所述数据存储请求的存储节点集合中的各个节点标识分别所对应的节点)下载及存储第s个数据分片,……,不断重复以上过程,直至所述计数值为0为止。通过这样的方式,作为存储消费者(也即所述源节点)只用发送一份数据到点对点网络中,网络中的其它节点自行进行数据分发且逐次增大并发数,从而达到快速分发的效果,减少了对其带宽资源的占用。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。

图1为本发明实施例中一种基于点对点网络的数据存储方法的一个实施例流程图;

图2为在点对点网络中确定与第s个数据分片对应的第1级存储节点的示意流程图;

图3为哈希环的示意图;

图4为点对点网络中的节点映射至哈希环上的示意图;

图5为在哈希环上查找第1级存储节点的示意图;

图6为本发明实施例中一种数据存储装置的一个实施例结构图;

图7为本发明实施例中一种终端设备的示意框图。

具体实施方式

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

请参阅图1,本发明实施例中一种基于点对点网络的数据存储方法的一个实施例可以包括:

步骤s101、源节点将待存储数据划分为各个数据分片,并确定各个数据分片的备份数目。

所述源节点为所述点对点网络中的任意一个节点。在实际使用过程中,若某一用户需要将其手机、平板、电脑等等终端设备(即所述源节点)中的数据存储到所述点对点网络中,可以在其终端设备上安装的特定应用程序中选定待存储数据,并点击确定按钮,以告知所述源节点进行数据存储操作。

所述源节点可以对所述待存储数据进行分片处理,即按照一定的规则,将一个数据集(即所述待存储数据)划分成多个相互独立、正交的数据子集(即各个数据分片),以便于分布式存储。

具体地,所述源节点可以首先根据下式计算数据分片的数目:

其中,databytes为所述待存储数据的字节数,maxshard为数据分片的最大字节数,其具体取值可以根据实际情况进行设置,例如,可以将其设置为1024、2048、4096或者其它取值,ceil为向上取整函数,sn为数据分片的数目。

然后,将所述待存储数据划分为满足以下条件的sn个数据分片:

其中,s为各个数据分片的序号,1≤s≤sn,shdbytess为第s个数据分片的字节数,max为求最大值函数,min为求最小值函数,thresh为预设的比例阈值,其具体取值可以根据实际情况进行设置,例如,可以将其设置为0.1、0.2、0.3或者其它取值。

在完成数据分片的划分之后,所述源节点可以为每个数据分片均分配一个分片标识,且各个数据分片的标识在整个点对点网络中均是唯一的,任意两个数据分片的分片标识均不相同。

对于这些数据分片而言,其在点对点网络中备份的数目越多,冗余度越大,当点对点网络中存储该数据分片的一个或多个存储节点出现故障时,仍有较多的其它的存储该数据分片的存储节点正常运行,则其数据的安全性也越高。但是,若这些数据分片在点对点网络中备份的数目过多,则会占用大量的网络存储资源,因此,需要对这两者进行权衡,选择合适的备份数目。

在本实施例中,可以根据用户的等级来确定其数据分片在点对点网络中的备份数目,将用户划分为普通用户、付费用户、vip用户等多个等级,每个等级均有与之对应的备份数目,且等级越高的用户,其数据分片在点对点网络中的备份数目也越多。

例如,可以设置普通用户的数据分片在点对点网络中的备份数目为3、付费用户的数据分片在点对点网络中的备份数目为5、vip用户的数据分片在点对点网络中的备份数目为10等等。

优选地,在本实施例中可以通过下式来计算各个数据分片的备份数目:

其中,nodesnum为所述点对点网络中的节点总数,basendnum为预设的基准节点数目,hsshardnum为根据历史记录统计得到的在所述点对点网络中存储的数据分片的总数,hsdmgsdnum为根据所述历史记录统计得到的在所述点对点网络中丢失或损毁的数据分片的总数,c为用户等级按照从高到低排列的序号,1≤c≤classnum,classnum为用户等级的总数,classcoefc为第c个用户等级的权重系数,等级越高,则对应的系数也越大,具体的系数取值可以根据实际情况进行设置,例如,可以设置classcoef1=0.001,classcoef2=0.0005,classcoef3=0.0003,……,依次类推,bkpnumc为第c个用户等级的数据分片在所述点对点网络中的备份数目。

步骤s102、所述源节点在所述点对点网络中确定与第s个数据分片对应的第1级存储节点,并向所述第1级存储节点发送数据存储请求。

其中,1≤s≤sn。具体地,所述源节点可以通过如图2所示的过程在所述点对点网络中确定与第s个数据分片对应的第1级存储节点:

步骤s1021、使用预设的第一哈希函数计算第s个数据分片的哈希值。

在本实施例中,可以根据下式分别计算第s个数据分片的哈希值:

shardhashs=fshashfunc(shardids)

其中,shardids为第s个数据分片的分片标识,fshashfunc为所述第一哈希函数,shardhashs为第s个数据分片的哈希值。

所有的哈希函数都有如下一个基本特性:如果两个哈希值是不相同的(根据同一哈希函数),那么这两个哈希值的原始输入也是不相同的。这个特性使哈希函数具有确定性的结果。但另一方面,哈希函数的输入和输出不是唯一对应关系的,如果两个哈希值相同,两个输入值很可能是相同的,但也可能不同,这种情况称为“哈希碰撞”,这通常是两个不同的输入值,刻意计算出相同的输出值。但对于现有技术中常用的哈希函数而言,其发生碰撞的概率极低,几乎可以忽略不计,输入一些数据计算出哈希值,然后部分改变输入值,一个具有强混淆特性的哈希函数会产生一个完全不同的哈希值。本实施例中的第一哈希函数以及其它哈希函数可以包括但不限于md4、md5、sha1等任意一个现有技术中常用的哈希函数。

步骤s1022、将预设的哈希环上与第s个数据分片的哈希值对应的位置点确定目标位置点。

所述哈希环为由所述第一哈希函数的所有函数值按照从小到大的顺序顺时针或者逆时针依次连接所构成的圆环,即所述哈希环上的每个位置点均对应于所述第一哈希函数的一个函数值,若所述第一哈希函数的值域为[0,n],且以顺时针的顺序排列,则可构成如图3所示的哈希环。

步骤s1023、获取所述哈希环上的各个基准位置点。

其中,每个基准位置点均为与所述点对点网络中的一个节点对应的位置点。所述基准位置点的设置过程包括:

首先,获取所述点对点网络中的各个节点的身份标识。

某一节点的身份标识可以为该节点的国际移动设备身份码(internationalmobileequipmentidentity,imei),国际移动设备身份码是由15位数字组成的电子串号,它与每个终端设备一一对应,而且该码是全世界唯一的。每一个终端设备在组装完成后都将被赋予一个全球唯一的号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。

将获取到的各个节点的身份标识分别表示为:nodeid1、nodeid2、…、nodeidm、…、nodeidm,其中,m为各个节点的序号,1≤m≤nodesnum,nodeidm为第m个节点的身份标识。

然后,使用预设的第二哈希函数分别对所述点对点网络中的各个节点的身份标识进行哈希运算,得到各个节点的哈希值。

具体地,可以根据下式分别计算各个节点的哈希值:

nodehashm=sdhashfunc(nodeidm)

其中,sdhashfunc为所述第二哈希函数,且所述第二哈希函数的值域与所述第一哈希函数的值域一致,以此保证两者可以映射到同一个哈希环上,nodehashm为第m个节点的哈希值。

最后,将所述哈希环上与第m个节点的哈希值对应的位置点确定为与第m个节点对应的基准位置点。

图4所示为4个节点的哈希值分别映射至哈希环上的情形,nodehash1、nodehash2、nodehash3、nodehash4所对应的位置点即为各个基准位置点。

步骤s1024、从所述目标位置点开始顺时针或者逆时针查找所述基准位置点,并将查找到的第一个基准位置点所对应的节点确定为与第s个数据分片对应的第1级存储节点。

以图5为例,从第1个数据分片的哈希值shardhash1对应的目标位置点开始顺时针查找,找到的第一个基准位置点为nodehash2对应的位置点,则将所述点对点网络中的第2个节点确定为与第1个数据分片对应的第1级存储节点。

通过上述方法,可以确定出以下的存储对应关系:

若采用逆时针查找的方法,其具体过程与逆时针查找的过程类似,具体可参照上述过程,此处不再赘述。

在确定出所述第1级存储节点之后,所述源节点可以向所述第1级存储节点发送数据存储请求。所述数据存储请求中包括计数值和存储节点集合以及第s个数据分片的分片标识,在初始状态下,所述计数值等于第s个数据分片的备份数目,所述存储节点集合为空。

步骤s103、所述第1级存储节点在接收到所述数据存储请求后,从所述源节点下载及存储第s个数据分片,将所述第1级存储节点的节点标识添加入所述存储节点集合中,并将所述计数值减去一个计数单元。

将所述存储节点集合记为nodeset,将所述第1级存储节点的节点标识记为nodeid(1),将所述计数值记为count,则有:

nodeset=nodeset∪nodeid(1);

count=count-1。

步骤s104、第n级存储节点在所述点对点网络中确定与第s个数据分片对应的第n+1级存储节点,并向所述第n+1级存储节点发送数据存储请求。

n为正整数,初始状态下,设置n=1。

其中,第n级存储节点确定与第s个数据分片对应的第n+1级存储节点的过程与图2所示的过程类似,具体可参见前述内容,此处不再赘述。但需要注意的是,在这一过程中,需要将所述存储节点集合中的各个节点所对应的基准位置点从哈希环中剔除,否则,最终确定出的第n+1级存储节点仍会为所述存储节点集合中的节点。

步骤s105、所述第n+1级存储节点在接收到所述数据存储请求后,从各个目标节点下载及存储第s个数据分片,将所述第n+1级存储节点的节点标识添加入所述存储节点集合中,并将所述计数值减去一个计数单元。

所述目标节点为所述数据存储请求的存储节点集合中的各个节点标识分别所对应的节点。需要注意的是,所述第n+1级存储节点是采用并发下载的方式同时从各个目标节点下载第s个数据分片,以加快下载速度。

在下载及存储完成之后,将所述第n+1级存储节点的节点标识记为nodeid(n+1),则有:

nodeset=nodeset∪nodeid(n+1);

count=count-1。

步骤s106、判断所述计数值是否为0。

若所述计数值不为0,则说明数据分片的备份数目还未完成,此时继续执行步骤s107,若所述计数值为0,则说明数据分片的备份数目已经完成,此时执行步骤s108。

步骤s107、将n增加一个计数单元。

即执行:n=n+1,然后返回执行步骤s104及其后续步骤,直至所述计数值为0为止。

步骤s108、结束数据存储过程。

综上所述,在本发明实施例中,源节点首先将待存储数据划分为各个数据分片,并确定各个数据分片的备份数目,然后在所述点对点网络中确定与第s个数据分片对应的第1级存储节点,并向所述第1级存储节点发送数据存储请求,所述数据存储请求中包括计数值和存储节点集合,所述计数值等于第s个数据分片的备份数目,所述存储节点集合为空。所述第1级存储节点在接收到所述数据存储请求后,首先从所述源节点下载及存储第s个数据分片,将自己的节点标识添加入所述存储节点集合中,并将所述计数值减去一个计数单元,然后在所述点对点网络中确定与第s个数据分片对应的第2级存储节点,并向所述第2级存储节点发送数据存储请求,所述第2级存储节点在接收到所述数据存储请求后,从各个目标节点(即所述数据存储请求的存储节点集合中的各个节点标识分别所对应的节点)下载及存储第s个数据分片,……,不断重复以上过程,直至所述计数值为0为止。通过这样的方式,作为存储消费者(也即所述源节点)只用发送一份数据到点对点网络中,网络中的其它节点自行进行数据分发且逐次增大并发数,从而达到快速分发的效果,减少了对其带宽资源的占用。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

对应于上文实施例所述的一种基于点对点网络的数据存储方法,图6示出了本发明实施例提供的一种数据存储装置的一个实施例结构图。

本实施例中,一种数据存储装置可以包括:

数据分片划分模块601,用于将待存储数据划分为各个数据分片;

备份数目确定模块602,用于确定各个数据分片的备份数目;

第一确定模块603,用于在所述点对点网络中确定与第s个数据分片对应的第1级存储节点,并向所述第1级存储节点发送数据存储请求,所述数据存储请求中包括计数值和存储节点集合,所述计数值等于第s个数据分片的备份数目,所述存储节点集合为空,1≤s≤sn,sn为数据分片的数目;

第一处理模块604,用于在接收到所述数据存储请求后,从所述源节点下载及存储第s个数据分片,将本地的节点标识添加入所述存储节点集合中,并将所述计数值减去一个计数单元;

第二确定模块605,用于在所述点对点网络中确定与第s个数据分片对应的下一级存储节点,并向下一级存储节点发送数据存储请求;

第二处理模块606,用于在接收到所述数据存储请求后,从各个目标节点下载及存储第s个数据分片,将本地的节点标识添加入所述存储节点集合中,并将所述计数值减去一个计数单元,所述目标节点为所述数据存储请求的存储节点集合中的各个节点标识分别所对应的节点。

进一步地,所述备份数目确定模块具体用于根据下式计算各个数据分片的备份数目:

其中,nodesnum为所述点对点网络中的节点总数,basendnum为预设的基准节点数目,hsshardnum为根据历史记录统计得到的在所述点对点网络中存储的数据分片的总数,hsdmgsdnum为根据所述历史记录统计得到的在所述点对点网络中丢失或损毁的数据分片的总数,c为用户等级按照从高到低排列的序号,1≤c≤classnum,classnum为用户等级的总数,classcoefc为第c个用户等级的权重系数,bkpnumc为第c个用户等级的数据分片在所述点对点网络中的备份数目。

进一步地,所述第一确定模块可以包括:

分片哈希值计算单元,用于使用预设的第一哈希函数计算第s个数据分片的哈希值;

目标位置点确定单元,用于将预设的哈希环上与第s个数据分片的哈希值对应的位置点确定目标位置点,所述哈希环为由所述第一哈希函数的所有函数值按照从小到大的顺序顺时针或者逆时针依次连接所构成的圆环,即所述哈希环上的每个位置点均对应于所述第一哈希函数的一个函数值;

基准位置点获取单元,用于获取所述哈希环上的各个基准位置点,其中,每个基准位置点均为与所述点对点网络中的一个节点对应的位置点;

基准位置点查找单元,用于从所述目标位置点开始顺时针或者逆时针查找所述基准位置点,并将查找到的第一个基准位置点所对应的节点确定为与第s个数据分片对应的第1级存储节点。

进一步地,所述第一确定模块还可以包括:

身份标识获取单元,用于获取所述点对点网络中的各个节点的身份标识;

哈希运算单元,用于使用预设的第二哈希函数分别对所述点对点网络中的各个节点的身份标识进行哈希运算,得到各个节点的哈希值,所述第二哈希函数的值域与所述第一哈希函数的值域一致;

基准位置点确定单元,用于将所述哈希环上与第m个节点的哈希值对应的位置点确定为与第m个节点对应的基准位置点,1≤m≤nodesnum。

进一步地,所述数据分片划分模块可以包括:

分片数目计算单元,用于根据下式计算数据分片的数目:

其中,databytes为所述待存储数据的字节数,maxshard为数据分片的最大字节数,ceil为向上取整函数;

数据分片划分单元,用于将所述待存储数据划分为满足以下条件的sn个数据分片:

其中,shdbytess为第s个数据分片的字节数,max为求最大值函数,min为求最小值函数,thresh为预设的比例阈值。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置,模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

图7示出了本发明实施例提供的一种终端设备的示意框图,为了便于说明,仅示出了与本发明实施例相关的部分。

在本实施例中,所述终端设备7可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该终端设备7可包括:处理器70、存储器71以及存储在所述存储器71中并可在所述处理器70上运行的计算机可读指令72,例如执行上述的基于点对点网络的数据存储方法的计算机可读指令。所述处理器70执行所述计算机可读指令72时实现上述各装置实施例中各模块/单元的功能,例如图6所示模块601至606的功能。

示例性的,所述计算机可读指令72可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器71中,并由所述处理器70执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机可读指令72在所述终端设备7中的执行过程。

所述处理器70可以是中央处理单元(centralprocessingunit,cpu),还可以是其它通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器71可以是所述终端设备7的内部存储单元,例如终端设备7的硬盘或内存。所述存储器71也可以是所述终端设备7的外部存储设备,例如所述终端设备7上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器71还可以既包括所述终端设备7的内部存储单元也包括外部存储设备。所述存储器71用于存储所述计算机可读指令以及所述终端设备7所需的其它指令和数据。所述存储器71还可以用于暂时地存储已经输出或者将要输出的数据。

在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干计算机可读指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储计算机可读指令的介质。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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