基于RDMA的网络功能状态共享方法及系统


基于rdma的网络功能状态共享方法及系统
技术领域
1.本发明涉及计算机通信技术领域,尤其涉及一种基于rdma的网络功能状态共享方法及系统。


背景技术:



2.网络功能通过以软件或容器的形式部署在网络中的服务器上,对经过的网络流量进行处理,实现防火墙、入侵检测、深度包检测等功能,并通过集化部署提高并行处理能力。上述网络功能在处理流量时,需要流的上下文、流规则等状态信息来辅助处理,为此会利用状态共享系统进行其状态的持久化存储并将状态共享给集内的其他网络功能节点
3.现有的网络功能状态共享系统主要采用tcp协议栈或udp协议栈进行节点间的通信,其通信延迟受限于操作系统内核和硬件设备,难以满足随着网络流量的飞速增长而不断提升的网络功能处理任务需求,从而成为网络功能性能上的瓶颈。
4.针对上述因访问状态时的通信延迟而导致的网络功能性能出现瓶颈的问题,目前尚未出现有效的解决方案。


技术实现要素:



5.针对现有技术中的问题,本发明的目的是提出一种基于rdma的网络功能状态共享方法及系统,所述系统将嵌入到各个网络功能节点中,随着网络功能集一同部署,并利用rdma有效降低状态共享系统的各个节点间的通信延迟,提高吞吐量。
6.本发明的技术解决方案,包括:
7.一种基于rdma的网络功能状态共享方法,适用于基于rdma通信的网络功能节点中的第一网络功能节点,所述方法包括:
8.获取状态数据的状态名称;其中,所述状态数据包括:待存储的状态数据或欲获取的状态数据;
9.基于所述状态名称,访问哈希环中对应的哈希槽,以得到对应的节点地址,其中,所述哈希环用于维护状态名称的哈希值与节点地址之间的映射关系;
10.在所述状态数据为欲获取的状态数据的情况下,将所述状态名称发送至所述节点地址对应的第二网络功能节点,以使所述第二网络功能节点基于所述状态名称获取并返回所述状态数据;
11.在所述状态数据为待存储的状态数据的情况下,将所述待存储的状态数据发送至所述节点地址对应的第二网络功能节点,以使所述第二网络功能节点存储所述待存储的状态数据。
12.进一步地,所述基于所述状态名称,访问哈希环中的哈希槽,以得到对应的节点地址,包括:
13.计算所述状态名称的哈希值;
14.将所述哈希值作为哈希槽id,访问所述哈希环;
15.基于所述哈希环维护的《哈希槽id,节点地址》的映射关系,得到存储所述状态数据的节点地址。
16.进一步地,所述在所述状态数据为欲获取的状态数据的情况下,将所述状态名称发送至所述节点地址对应的第二网络功能节点,以使所述第二网络功能节点基于所述状态名称获取并返回所述状态数据,包括:
17.判断所述第二网络功能节点是否为第一网络功能节点;
18.在所述第二网络功能节点是第一网络功能节点的情况下,所述第一网络功能节点以所述状态名称为键值,在本地的哈希表中进行检索,得到所述状态数据;其中,所述哈希表维护状态名称、状态类型和状态数据之间的映射关系;
19.在所述第二网络功能节点不是第一网络功能节点的情况下,所述第二网络功能节点获取所述状态数据,且以所述读取指令中的状态名称为键值,在本地的哈希表中进行检索,得到并返回所述状态数据。
20.进一步地,所述第一网络功能节点以所述状态名称为键值,在本地的哈希表中进行检索,得到所述状态数据,包括:
21.计算所述状态名称的哈希值;
22.以所述哈希值作为所述哈希表的哈希id,得到所述状态数据在哈希表中的存储位置;其中,所述哈希表包括:哈希id字段、状态类型字段和状态数据字段;
23.判断存储位置中的当前数据是否为目标状态;
24.在所述当前数据是目标状态的情况下,将所述当前数据作为所述状态数据;
25.在所述当前数据不是目标状态的情况下,遍历所述存储位置对应的链表以寻目标状态,并获取所述目标状态的状态类型:
26.所述状态类型为固定大小的字符串类型时,返回所述状态数据字段中存储的状态数据;
27.所述状态类型为动态大小的字符串类型时,通过所述状态数据字段中存储的指针,获取并返回内存池中存储的状态数据。
28.进一步地,所述在所述第二网络功能节点不是第一网络功能节点的情况下,第二网络功能节点获取所述状态数据,包括:
29.通过状态名称检查所述第一网络功能节点的内存中是否有缓存过的所述状态数据;
30.在所述第一网络功能节点的内存中缓存过的所述状态名称对应的状态数据的情况下,使用内存中的所述状态数据;
31.在所述第一网络功能节点的内存中没有缓存过的所述状态名称对应的状态数据的情况下,通过rdma通信向所述第二网络功能节点发出的读取指令,以使所述第二网络功能节点基于所述读取指令,查询并返回所述状态数据。
32.进一步地,所述在所述状态数据为待存储的状态数据的情况下,将所述待存储的状态数据发送至所述节点地址对应的第二网络功能节点,以使所述第二网络功能节点存储所述待存储的状态数据,包括:
33.判断所述第二网络功能节点是否为第一网络功能节点;
34.在所述第二网络功能节点是第一网络功能节点的情况下,所述第一网络功能节点
以所述状态名称为键值进行状态数据的存储;
35.在所述第二网络功能节点不是第一网络功能节点的情况下,所述第二网络功能节点获取所述状态名称,且以所述读取指令中的状态名称为键值,进行所述状态数据的存储。
36.进一步地,所述第一网络功能节点以所述状态名称为键值进行状态数据的存储,包括:
37.计算所述状态名称的哈希值;
38.以所述哈希值作为所述哈希表的哈希id,获取所述状态数据在哈希表中的存储位置;其中,所述哈希表包括:哈希id字段、状态类型字段和状态数据字段;
39.若所述存储位置中的数据为空,且所述状态数据的数据类型为固定大小的字符串类型时,则在状态数据字段中进行状态数据的存储;
40.若所述存储位置中的数据为空,且所述状态数据的数据类型为动态大小的字符串类型时,调用内存池存储所述状态数据,并在相应地指针存储在状态数据字段中;
41.若所述存储位置中的数据不为空,且所述第一网络功能节点是目标状态,则基于所述状态数据对存储位置中的数据进行更新;
42.若所述存储位置中的数据不为空,所述第一网络功能节点不是目标状态,且所述对应的链表中未检索到所述状态名称时,则从内存池中获取新的内存作为一个新的链表节点,将该链表节点加入到链表中之后,进行状态数据的存储;
43.若所述存储位置中的数据不为空,所述第一网络功能节点不是目标状态,且所述第一网络功能节点对应的链表中检索到所述状态名称时,则基于所述状态数据对存储位置中的数据进行更新。
44.一种基于rdma的网络功能状态共享系统,由基于rdma通信的网络功能节点组成,每一网络功能节点包括:
45.指令模块,用于:
46.根据状态数据的状态名称与节点地址之间的映射关系,生成一哈希环;
47.获取状态数据的状态名称;其中,所述状态数据包括:待存储的状态数据或欲获取的状态数据;
48.基于所述状态名称,访问哈希环中对应的哈希槽,以得到对应的节点地址;
49.基于所述状态数据生成存储指令,或基于所述状态名称生成读取指令;
50.将所述存储指令或所述读取指令发送至所述节点地址对应的网络功能节点;
51.存储模块,用于:
52.生成一存储状态数据的哈希表,所述哈希表包括:哈希id字段、状态类型字段和状态数据字段;
53.基于所述存储指令或所述读取指令,并利用所述哈希表,得到状态共享结果。
54.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一所述方法。
55.一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一所述方法。
56.与现有技术相比,本发明提出的方法具有以下优点及效果:
57.本发明利用rdma协议传输操作指令,减少了内存拷贝次数,避免了内核的参与,因
此降低了状态操作的延迟,相应的提升了网络功能的处理能力。另外,通过添加指令模块来负责寻址,简化了使用者的操作复杂度,使其无需关系状态的具体存储位置。最后,通过一致性哈希的设计,提高了系统的可扩展性,使其能随着网络功能一同弹性伸缩
附图说明
58.图1本发明系统结构。
59.图2本发明的状态获取流程示意图。
60.图3本发明的状态存储流程示意图。
具体实施方式
61.下面将结合附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明特定实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
62.第一方面,本发明提供了一种基于rdma的网络功能状态共享系统,如图1所示,每一网络功能节点都包括指令模块和存储模块。指令模块是用来向网络功能提供对共享状态操作的接口,同时根据状态的名称对状态在集内的存储位置进行寻址,并负责当前节点和集内其他节点的rdma连接维护和指令传输。存储模块是用来负责状态的持久化存储,并处理指令层下发的操作,根据操作类型将状态写入到内存里或将内存里存储的状态返回。
63.具体来说,指令模块在初始化的过程中会初始化一块内存,用于生成一个固定大小的一致性哈希环,该哈希环由slot id(哈希槽的id)和owner(节点id)两个字段组成。当有新的节点与其建立连接的时候,会对新节点的ip地址进行哈希运算,将其映射到哈希环中,并将哈希环重新划分成不同区域,并更新每个区域的owner字段,同时会在内存中分配一份用于传输指令的缓冲区,并互相交换缓冲区的地址raddr和用于rdma远程操作的密钥rkey。存储模块在初始化的过程中会初始化一块内存用于存储状态的哈希表,哈希表中包括三个字段:用于记录状态名称的键字段key,用于给予状态对应的数据类型的类型字段type,以及用于记录状态对应数据的数据字段value,value字段采用了共用体数据结构以支持存储多种数据类型的数据和指针。同时存储模块还会初始化一个内存池,用于生成新节点解决哈希冲突,以及存储动态长度的字符串数据。
64.指令模块向网络功能提供了四种对状态的操作:get(key)用于网络功能获取一个状态名称对应的状态数据;set(key,value)用于网络功能存储或更新一个状态名称对应的状态数据,当状态名称重复时就会默认是用新的数据更新原有数据;add(key,value)用于对状态数据进行增减操作,主要用于网络功能中的流量计数器;delete(key)用于删除某个状态名称对应的状态数据。
65.综上所述,本发明网络功能状态共享系统嵌入到各个网络功能节点中,每一网络功能节点都包括指令模块和存储模块。该指令模块用于根据状态数据的状态名称与节点地址之间的映射关系,生成一哈希环;获取状态数据的状态名称;其中,状态数据包括:待存储的状态数据或欲获取的状态数据;基于状态名称,访问哈希环中对应的哈希槽,以得到对应
的节点地址;基于所述状态数据生成存储指令,或基于所述状态名称生成读取指令;将存储指令或读取指令发送至所述节点地址对应的网络功能节点。该存储模块,用于生成一存储状态数据的哈希表,所述哈希表包括:哈希id字段、状态类型字段和状态数据字段;基于存储指令或读取指令,并利用哈希表,得到状态共享结果。
66.第二方面,本发明提供了上述一种基于rdma的网络功能状态共享方法,所述方法包括:rdma连接维护与指令传输流程、寻址流程、哈希表操作流程和状态操作流程。其中,
67.rdma连接维护与指令传输流程,指令模块会在初始化的时候与集中的其他节点建立rc模式的rdma连接,并为每个连接初始化时分配一块用于传输指令的缓冲区,并互相交换双方缓冲区的地址以及用于rdma远程操作的密钥。之后当指令模块需要传输指令的时候,使用rdma write原语配合交换来的地址和密钥即可直接将指令写入到对方的缓冲区中,这个过程无需对方cpu参与。
68.寻址流程,首先指令模块使用一致性哈希算法维护一个哈希环,哈希环上包括固定数量的哈希槽,其次将集中的节点通过哈希算法映射到槽上,节点映射到的槽到下一个被其他节点映射到的槽之间的槽都归属于这个节点所有。之后指令模块接收到网络功能对具体状态的操作后,通过哈希函数计算状态名称对应的哈希值并获取到哈希值对应的槽以及其所属的节点。
69.哈希表操作流程,首先存储模块在初始化的时候会基于哈希函数在内存中构建了一个哈希表,将状态名称作为表的键(key),状态数据作为值(value),在存储可变大小的字符串时则为其单独开辟一块内存,并将其地址作为值存储在哈希表中。当存储模块存储时遇到哈希冲突的时候使用拉链法进行存储,将数据存储到新的内存中,并将其地址存储到冲突节点上。
70.状态操作流程:
71.a)首先指令模块使用寻址流程获取该状态的所属节点。
72.b)如果所属节点为自己则将指令传递给自己的存储模块;如果不是,则通过指令传输流程将指令传递给对应节点的指令模块,对应节点的指令模块再将指令传递给对应的存储模块。
73.c)存储模块根据指令执行对应的哈希表操作。
74.图2是本发明中的状态获取流程,首先网络功能会将所要获取的状态的名称作为键key,通过调用get(key)函数来调用本系统的指令模块。之后指令模块内部会先判断key的大小和类型是否符合系统中的规则,如果不符合则返回错误,如果符合则会将key进行哈希计算slot_id=hash(key,slot_seed)%slot_num,通过计算得到的slot_id访问哈希环的对应位置,之后通过owner字段就得到了该key的存储位置,其中,slot_seed表示哈希槽映射种子,slot_num表示哈希槽总数。
75.如果是本节点,指令模块就会调用存储模块进行数据读取,数据模块收到存储指令后,就又会进行一次哈希操作pos=hash(key,t_seed)%t_num,从而就得到了该状态数据在哈希表中的存储位置,之后会通过比较key字段和目标位置已有数据的key字段,判断该节点是否是目标状态,其中,t_seed表示哈希表种子,t_num表示哈希表容量。
76.如果不是本节点,就说明发生过哈希冲突,需要遍历该节点对应的链表以寻目标状态。如果到了就会检查其type字段,如果是固定大小的类型则直接返回value字段中
存储的数据,如果是动态大小的字符串类型则需要通过value字段中存储的指针访问内存池中存储的真实数据,并返回数据。如果指令模块发现存储位置不是本节点,指令模块则会通过与对应节点建立的rdma连接来发送对应的读取指令,会使用在建立连接时交换过的缓冲区地址raddr和远程操作密钥rkey接将指令通过rdma write-imm操作写入到对方的缓冲区中,同时如果开发者启用了缓存功能,指令模块在发送指令前会先调用存储模块检查是否有缓存过的数据,如果没有再发送指令到对应节点。对应节点的指令模块收到指令后,就会判断该指令对应的状态是否存储在本节点,如果是其就会按照上述存储在本节点的流程进行执行,并在拿到数据后通过rdma连接返回给原节点。
77.图3是本发明中的状态存储流程,首先网络功能会将所要存储的状态的名称作为键key,将要存储的数据作为值value,通过调用set(key,value)函数来调用本系统的指令模块。之后指令模块内部会先判断key和value的大小和类型是否符合系统中的规则,如果不符合则返回错误,如果符合则会将key进行哈希计算slot_id=hash(key,slot_seed)%slot_num,通过计算得到的slot_id访问哈希环的对应位置,之后通过owner字段就得到了该key的存储位置。如果是本节点,就会调用存储模块进行状态数据的存储,数据模块收到存储指令后,就又会进行一次哈希操作pos=hash(key,t_seed)%t_num,从而就得到了该状态数据在哈希表中的存储位置,如果没有数据存储,则只需要将数据存储在value字段中即可,同时如果数据类型是动态大小的字符串还需调用内存池获取空闲内存来存储,并将该内存的地址存储在value字段中。如果已经有数据存储会通过key字段判断该节点是否是目标状态,如果是则代表这是一次更新操作,直接将对应的value字段更新即可。如果不是目标状态,则说明该节点可能发声了哈希冲突,因此要遍历该节点对应的链表,如果在链表中到了目标状态,则也是直接将对应的value字段更新即可。如果没有到,则说明这是一次新的存储,则需要从内存池中获取一块新的内存作为一个新的节点,并将该节点加入到链表中,然后再进行数据的存储。如果指令模块发现其应存储的位置不是本节点,就会通过与对应节点建立的rdma连接来发送对应的存储指令,同时如果开发者启用了非阻塞存储,这里指令模块会直接返回,并在之后收到对应节点的回复后执行一个回调函数来处理执行结果,如果没有启用,则指令模块会一直等待对应节点的回复。对应节点的指令模块收到指令后,就会判断该指令对应的状态是否存储在本节点,如果是其就会按照上述存储在本节点的流程进行执行,并在存储完成数据后通过rdma连接告知原节点。
78.以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。

技术特征:


1.一种基于rdma的网络功能状态共享方法,其特征在于,适用于基于rdma通信的网络功能节点中的第一网络功能节点,所述方法包括:获取状态数据的状态名称;其中,所述状态数据包括:待存储的状态数据或欲获取的状态数据;基于所述状态名称,访问哈希环中对应的哈希槽,以得到对应的节点地址,其中,所述哈希环用于维护状态名称的哈希值与节点地址之间的映射关系;在所述状态数据为欲获取的状态数据的情况下,将所述状态名称发送至所述节点地址对应的第二网络功能节点,以使所述第二网络功能节点基于所述状态名称获取并返回所述状态数据;在所述状态数据为待存储的状态数据的情况下,将所述待存储的状态数据发送至所述节点地址对应的第二网络功能节点,以使所述第二网络功能节点存储所述待存储的状态数据。2.如权利要求1所述的方法,其特征在于,所述基于所述状态名称,访问哈希环中的哈希槽,以得到对应的节点地址,包括:计算所述状态名称的哈希值;将所述哈希值作为哈希槽id,访问所述哈希环;基于所述哈希环维护的<哈希槽id,节点地址>的映射关系,得到存储所述状态数据的节点地址。3.如权利要求1所述的方法,其特征在于,所述在所述状态数据为欲获取的状态数据的情况下,将所述状态名称发送至所述节点地址对应的第二网络功能节点,以使所述第二网络功能节点基于所述状态名称获取并返回所述状态数据,包括:判断所述第二网络功能节点是否为第一网络功能节点;在所述第二网络功能节点是第一网络功能节点的情况下,所述第一网络功能节点以所述状态名称为键值,在本地的哈希表中进行检索,得到所述状态数据;其中,所述哈希表维护状态名称、状态类型和状态数据之间的映射关系;在所述第二网络功能节点不是第一网络功能节点的情况下,所述第二网络功能节点获取所述状态数据,且以所述读取指令中的状态名称为键值,在本地的哈希表中进行检索,得到并返回所述状态数据。4.如权利要求3所述的方法,其特征在于,所述第一网络功能节点以所述状态名称为键值,在本地的哈希表中进行检索,得到所述状态数据,包括:计算所述状态名称的哈希值;以所述哈希值作为所述哈希表的哈希id,得到所述状态数据在哈希表中的存储位置;其中,所述哈希表包括:哈希id字段、状态类型字段和状态数据字段;判断存储位置中的当前数据是否为目标状态;在所述当前数据是目标状态的情况下,将所述当前数据作为所述状态数据;在所述当前数据不是目标状态的情况下,遍历所述存储位置对应的链表以寻目标状态,并获取所述目标状态的状态类型:所述状态类型为固定大小的字符串类型时,返回所述状态数据字段中存储的状态数据;
所述状态类型为动态大小的字符串类型时,通过所述状态数据字段中存储的指针,获取并返回内存池中存储的状态数据。5.如权利要求3所述的方法,其特征在于,所述在所述第二网络功能节点不是第一网络功能节点的情况下,第二网络功能节点获取所述状态数据,包括:通过状态名称检查所述第一网络功能节点的内存中是否有缓存过的所述状态数据;在所述第一网络功能节点的内存中缓存过的所述状态名称对应的状态数据的情况下,使用内存中的所述状态数据;在所述第一网络功能节点的内存中没有缓存过的所述状态名称对应的状态数据的情况下,通过rdma通信向所述第二网络功能节点发出的读取指令,以使所述第二网络功能节点基于所述读取指令,查询并返回所述状态数据。6.如权利要求1所述的方法,其特征在于,所述在所述状态数据为待存储的状态数据的情况下,将所述待存储的状态数据发送至所述节点地址对应的第二网络功能节点,以使所述第二网络功能节点存储所述待存储的状态数据,包括:判断所述第二网络功能节点是否为第一网络功能节点;在所述第二网络功能节点是第一网络功能节点的情况下,所述第一网络功能节点以所述状态名称为键值进行状态数据的存储;在所述第二网络功能节点不是第一网络功能节点的情况下,所述第二网络功能节点获取所述状态名称,且以所述读取指令中的状态名称为键值,进行所述状态数据的存储。7.如权利要求6所述的方法,其特征在于,所述第一网络功能节点以所述状态名称为键值进行状态数据的存储,包括:计算所述状态名称的哈希值;以所述哈希值作为所述哈希表的哈希id,获取所述状态数据在哈希表中的存储位置;其中,所述哈希表包括:哈希id字段、状态类型字段和状态数据字段;若所述存储位置中的数据为空,且所述状态数据的数据类型为固定大小的字符串类型时,则在状态数据字段中进行状态数据的存储;若所述存储位置中的数据为空,且所述状态数据的数据类型为动态大小的字符串类型时,调用内存池存储所述状态数据,并在相应地指针存储在状态数据字段中;若所述存储位置中的数据不为空,且所述第一网络功能节点是目标状态,则基于所述状态数据对存储位置中的数据进行更新;若所述存储位置中的数据不为空,所述第一网络功能节点不是目标状态,且所述对应的链表中未检索到所述状态名称时,则从内存池中获取新的内存作为一个新的链表节点,将该链表节点加入到链表中之后,进行状态数据的存储;若所述存储位置中的数据不为空,所述第一网络功能节点不是目标状态,且所述第一网络功能节点对应的链表中检索到所述状态名称时,则基于所述状态数据对存储位置中的数据进行更新。8.一种基于rdma的网络功能状态共享系统,其特征在于,由基于rdma通信的网络功能节点组成,每一网络功能节点包括:指令模块,用于:根据状态数据的状态名称与节点地址之间的映射关系,生成一哈希环;
获取状态数据的状态名称;其中,所述状态数据包括:待存储的状态数据或欲获取的状态数据;基于所述状态名称,访问哈希环中对应的哈希槽,以得到对应的节点地址;基于所述状态数据生成存储指令,或基于所述状态名称生成读取指令;将所述存储指令或所述读取指令发送至所述节点地址对应的网络功能节点;存储模块,用于:生成一存储状态数据的哈希表,所述哈希表包括:哈希id字段、状态类型字段和状态数据字段;基于所述存储指令或所述读取指令,并利用所述哈希表,得到状态共享结果。9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行如权利要求1-7中任一所述方法。10.一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1-7中任一所述方法。

技术总结


本发明公开了一种基于RDMA的网络功能状态共享方法及系统。所述方法包括:获取状态数据的状态名称;其中,状态数据包括:待存储的状态数据或欲获取的状态数据;基于状态名称,访问哈希环中对应的哈希槽,以得到对应的节点地址;在状态数据为欲获取的状态数据的情况下,将状态名称发送至节点地址对应的第二网络功能节点,以使第二网络功能节点基于状态名称获取并返回状态数据;在状态数据为待存储的状态数据的情况下,将待存储的状态数据发送至节点地址对应的第二网络功能节点,以使第二网络功能节点存储待存储的状态数据。本发明有效降低状态共享系统的各个节点间的通信延迟,提高吞吐量。吐量。吐量。


技术研发人员:

杨威 畅晨铭 刘庆云

受保护的技术使用者:

中国科学院信息工程研究所

技术研发日:

2022.08.19

技术公布日:

2022/12/16

本文发布于:2024-09-24 07:24:25,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/37071.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:所述   状态   节点   数据
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议