[发明专利]一种基于数据同步的集群网络中主节点的确定方法有效
申请号: | 202210921949.X | 申请日: | 2022-08-02 |
公开(公告)号: | CN115002120B | 公开(公告)日: | 2022-10-25 |
发明(设计)人: | 王克飞;徐超;汤堃 | 申请(专利权)人: | 蒲惠智造科技股份有限公司 |
主分类号: | H04L67/10 | 分类号: | H04L67/10;H04L67/1095;H04L45/00 |
代理公司: | 杭州中港知识产权代理有限公司 33353 | 代理人: | 施建勇 |
地址: | 310000 浙江省杭*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 数据 同步 集群 网络 节点 确定 方法 | ||
1.一种基于数据同步的集群网络中主节点的确定方法,其特征在于,包括以下步骤:
步骤S1,每个节点评估自身的节点属性,并将每个节点属性乘以该节点属性对应的权重系数,生成该节点的权重值Wi;
步骤S2,对所有节点进行分群形成集群并确定每个集群中唯一的主节点;包括:
步骤S201,所有节点都会持续收到邻居节点所发出的 beacon封包,beacon封包的格式为:
beacon{NID||LNID||Seed||FlagEnergy||Energy||Wi||Timestamp};
其中,NID表示发送封包的节点的ID编号,且ID编号唯一不可重复;LNID表示发送封包的节点所在集群的主节点ID编号,如果发送该beacon封包的节点当前处于未分群的状态,则LNID为0;Seed表示一布林值,若 Seed 为 1 代表发送该beacon封包的节点评估自己有能力担任主节点,并推举自己成为主节点的候选者,若 Seed 为0 则代表发送该beacon封包的节点并未做出推举自己的动作,必须参加之后的主节点的确定流程;FlagEnergy 为一布林值,若为 1,代表发送该beacon封包的节点拥有持续电源供应,若为 0,则代表电源有线;Energy代表发送该beacon封包的节点的剩余能源量;Wi表示发送该beacon封包的节点的权重值,预设值为 0;Timestamp为发出beacon封包的时间戳记;
步骤S202,令Seed为1的节点为潜在主节点;潜在主节点周围的邻居节点收到Seed为1的beacon封包后,发送JOIN封包表示加入该潜在主节点所开创的集群的意愿,JOIN 封包格式如下:
JOIN{NID||LNID||session_key(Nonce||Timestamp||KeyWPA)||HMACsession_key(NID||KeyWPA||Secret||Timestamp)||Timestamp};
Nonce 为随机值;KeyWPA为注册过程中得到的网络密匙;HMACsession_key表示消息验证码;Nonce、KeyWPA、Timestamp和HMACsession_key均通过邻居节点和潜在主节点共有的会话密钥加密后附在 JOIN封包中;
若某一节点收到多于一个 Seed 值为 1 的beacon封包后,该节点将选择信号强度较强者发送 JOIN 封包;
步骤S203,潜在主节点使用邻居节点和潜在主节点共有的会话密钥取得被加密的Nonce值,然后向该邻居节点发送GRANT封包以代表同意邻居节点的加入;GRANT 封包格式如下:
GRANT{LNID||session_keyi,SeedLeader(Nonce||Timestamp)||Timestamp};
Nonce和Timestamp均被邻居节点和潜在主节点共有的会话密钥session_key加密;
同样握有会话密钥session_key的邻居节点收到后解开取得 Nonce,若Nonce与当初发送的值一样,代表此潜在主节点为合法节点,邻居节点更改自身的LNID为潜在主节点的ID编号,宣告已加入某一具有主节点的集群;
步骤S204,若两个潜在主节点彼此在通讯范围之内,两个潜在主节点互相朝对方发送CONFLICT封包;否则,进行下一步骤;
CONFLICT封包格式如下:
CONFLICT{NID||Wi||HMACsession_key(NID||Di||Timestamp)||Timestamp};
HMACsession_key是哈希运算消息认证码;将NID、Wi、Timestamp用发送方与接收方共有的Diffie-Hellman密钥作 HMAC杂凑;
当双方收到 CONFLICT封包后,比对封包中的权重值Wi和自己的权重值Wi,若自己的权重值Wi较高,则发出KEEP 封包表示欲保持潜在主节点的地位,若权重值Wi相同则以ID较小者维持潜在主节点地位;KEEP 封包格式如下:
KEEP(NID|| HMACsession_key(NID|| Timestamp)||Timestamp);
将NID、Timestamp用发送方与接收方共有的Diffie-Hellman密钥作HMAC杂凑;
若在CONFLICT封包的比较程序结果出来之前,已经先有普通节点加入权重值Wi较小的潜在主节点,则在CONFLICT封包的比较程序中落败的潜在主节点必须发送CANCEL封包告知已加入的节点,令其恢复到未分群状态,CANCEL封包格式如下:
CANCEL(NID|| HMACsession_key(NID|| Timestamp)||Timestamp);
将NID、Timestamp用发送方与接收方共有的Diffie-Hellman密钥作HMAC杂凑;
步骤S205,若某一集群中的节点,同时被其他集群中的节点所记录或者感应,则该节点为网关节点;网关节点,将发送GW封包给邻近集群中的主节点;GW封包格式如下:
GW(NID||LNID||HMACsession_key(NID||LNID||Timestamp)||Timestamp);
LNID 代表该节点所能感应到其它集群的主节点集合;将NID、LNID 用发送方与接收方共有的Diffie-Hellman密钥作HMAC杂凑;
步骤S206,重复执行步骤S201~步骤S205,直到所有节点成为集群的主节点或者成员节点,此时,所有节点的beacon封包中LNID 均不为0,分群程序结束;
步骤S3,主节点离线后的重新确定,包括:
步骤S301,任意节点,发现集群主节点离线后,成为源节点,并向其传输范围内的邻居节点发送带有源节点权重值的提案消息;
步骤S302,收到提案消息的邻居节点,首先验证当前的主节点是否在线:当主节点不在线,则执行步骤S303;否则,邻居节点回复源节点停止提案流程;
步骤S303,邻居节点,对于收到的第一个提案消息,将该提案消息的发送者认定为该邻居节点的父节点;然后将提案消息发送给除父节点之外的传输范围内的所有邻居节点;
步骤S304,重复步骤S303建立树状的节点传送结构,提案消息被传送到所有节点;
步骤S305,收到提案消息的节点,比较自身的节点权重值和提案消息中的源节点权重值的大小:如果提案消息中的源节点权重值不小于自身的节点权重值,则收到提案消息的节点向其父节点发送Reply_ok消息;否则发送含有的自身节点权重值的Reply_deny消息;
步骤S306,如果源节点有收到Reply_deny消息,进行检索并找出最大权重值以及该最大权重值所在节点,向最大权重值所在节点发送授权消息;否则,最大权重值所在节点为源节点;
步骤S307,最大权重值所在节点,向其传输范围内的邻居节点发送终局提案消息;
步骤S308,如果最大权重值所在节点收到的Reply_ok消息的总数大于集群中节点总数的一半,则宣布自己为主节点,向集群中的所有其它节点发送协调消息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于蒲惠智造科技股份有限公司,未经蒲惠智造科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210921949.X/1.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置