CN112565392A - 一种联盟链非全连接p2p网络的收敛方法及p2p节点 - Google Patents
一种联盟链非全连接p2p网络的收敛方法及p2p节点 Download PDFInfo
- Publication number
- CN112565392A CN112565392A CN202011386475.0A CN202011386475A CN112565392A CN 112565392 A CN112565392 A CN 112565392A CN 202011386475 A CN202011386475 A CN 202011386475A CN 112565392 A CN112565392 A CN 112565392A
- Authority
- CN
- China
- Prior art keywords
- message
- node
- neighbor table
- relay
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种联盟链非全连接P2P网络的收敛方法及P2P节点。源节点根据自身邻居表计算消息从自身至目标节点是否需要中继转发;源节点从零开始生成一个累加的序列号;源节点选择邻居表中所有节点作为中继节点,将其邻居表、序列号及目标节点放入消息体中,向中继节点广播消息;收到消息的节点如果非目标节点,则从自身邻居表中选择未发送过该消息的节点,将节点添加至该消息邻居表中,并向这些节点广播消息;如果是目标节点,则对源节点维护一个LRU,根据消息序列号进行过滤,不接收重复消息。本发明设计的这种收敛性较好的逐步逼近的收敛方法,可以自动生成合适的消息路由路径,且有部分节点宕机时也能保证可用性,冗余消息少,易扩展,可用性好。
Description
技术领域
本发明属于计算机系统领域,尤其涉及一种联盟链非全连接P2P网络的收敛方法及P2P节点。
背景技术
区块链通过点对点P2P(Peer-To-Peer)网络进行通信,P2P网络是一种分布式网络,网络中各节点之间不需要通过服务器进行中转,可以直接互相传输数据。一般情况下,区块链联盟链中各节点都是两两相互连通,构建全连接的P2P网络,但全连接的网络中一旦节点数量上升,网络复杂度大,难以部署。为简化网络复杂度,需要构建非全连接的P2P网络,非直接连接的节点之间通过其他节点进行数据中转,被选择作为数据中转的节点称为中继节点。
非全连接P2P网络中,消息的收敛方法是非常重要的,收敛方法的性能直接影响源节点到目标节点之间的数据传输,进而影响整个P2P网络的负载。因此一般来说,应该尽可能减少消息从源节点到目标节点传输过程中的转发次数,即计算最短路由。但是采用这种最短路径算法,为保证中继节点的可用性,将会导致大量探测报文,会极大加重网络负载。
发明内容
本发明的目的在于针对现有区块链技术的不足,提供一种联盟链非全连接P2P网络的收敛方法及P2P节点,可以让消息从源节点到目标节点快速收敛,且保证消息的可靠性。
为达到上述目的,本发明的技术方案具体是这样实现的:
根据本说明书的第一方面,提供一种联盟链非全连接P2P网络的收敛方法,该方法包括:
源节点根据自身邻居表计算消息从自身至目标节点是否需要中继转发;
源节点从零开始生成一个累加的序列号;
源节点选择邻居表中所有节点作为中继节点,并将其邻居表、序列号以及目标节点放入消息体中,向中继节点广播消息;
收到消息的节点根据消息体中内容判断该消息是否需要转发:
如果收到消息的节点非目标节点,则从自身邻居表中选择未发送过该消息的节点,将节点添加至该消息的邻居表中,并向这些节点广播消息;
如果收到消息的节点是目标节点,则对源节点维护一个LRU,根据消息序列号进行过滤,不接收重复消息。
进一步地,所述邻居表的建立方法为:
源节点与直接连接节点建立网络连接后,相互交换信息,根据散列函数生成唯一的身份标识符,将所有身份标识符加入邻居表中;
若一个消息的目标节点标识符不在邻居表中,则该消息需要发送至中继节点进行转发。
进一步地,所述邻居表建立后,通过定期发送心跳消息探测邻居表中的邻居节点是否失效,将失效的邻居节点从所述邻居表中删除。
进一步地,所述源节点生成的序列号是自增长的,具有唯一性,且序列号每增长S,会对序列号进行持久化,防止源节点宕机后序列号重复。
进一步地,所述消息体中包含源节点的邻居表、唯一序列号以及目标节点,源节点选择邻居表中所有节点作为中继节点,向其广播消息。
进一步地,所述中继节点在收到消息后,根据消息体中的目标节点判断该消息是否需要转发,若需要转发则从自身邻居表中选出未包含于消息体邻居表的节点,将消息向这些节点转发。
进一步地,如果收到消息的节点非目标节点,也可以先判断目标节点是否在自身邻居表中,若在则直接发送至目标节点,不再继续中转。
进一步地,所述LRU为一定长的键值对缓存,以消息序列号为键,按照接收顺序存储,存满后按照先进先出原则删除数据,节点需为所有非邻居节点各维护一个LRU。
根据本说明书的第二方面,提供一种P2P节点,该节点包括:
邻居表维护模块,用于维护自身邻居表;
消息序列号维护模块,用于生成唯一的自增长序列号,并定期进行持久化;
消息中继模块,与所述邻居表维护模块和消息序列号维护模块相连,用于生成,发送,接收中继消息;
其中,发送中继消息至目标节点时,消息中继模块先从邻居表维护模块获取邻居表,判断目标节点是否需要中继发送,若是,则从消息序列号维护模块获取中继消息序列号,选择邻居表中所有节点作为中继节点,并将邻居表、序列号以及目标节点放入消息体中,向中继节点广播消息;
接收中继消息时,消息中继模块从邻居表维护模块获取邻居表,从邻居表中选择该中继消息未到达过的节点,将这些节点添加至该消息的邻居表中,并向这些节点广播消息;
LRU维护模块,与所述邻居表维护模块和消息中继模块相连,用于对所有非邻居节点各维护一个LRU,保存来自各非邻居节点的最新的若干条中继消息序列号。
进一步地,所述消息中继模块接收到中继消息,判断消息的目标节点是自身时,则将该中继消息的序列号和源节点交给LRU维护模块,若LRU维护模块判断该中继消息是新消息则保存序列号至LRU,若非新消息则丢弃。
由上述的技术方案可见,本发明的这种联盟链非全连接P2P网络的收敛方法及P2P节点,通过源节点将所有邻居表中节点作为中继节点,中继节点尽可能减少发送冗余消息,采用逐步逼近的收敛方法,通过多次转发,让消息通过多条路由达到目标节点,保证消息可靠性,且目标节点只接受最先达到的消息,避免冗余消息的影响。
因此本发明设计的这种收敛性较好的逐步逼近的收敛方法,可以自动生成合适的消息路由路径,且有部分节点宕机时也能保证可用性,冗余消息少,易扩展,可用性好。
附图说明
图1是本发明的联盟链非全连接P2P网络的收敛方法流程图;
图2是本发明的P2P节点结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细说明,应当理解,此处描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种联盟链非全连接P2P网络的收敛方法。
参照图1,图1是本发明联盟链非全连接P2P网络的收敛方法流程图。
在本实施例中,源节点A将消息发送至目标节点C,节点A与C不是相邻节点,源节点A生成一个唯一序列号,将序列号、自身邻居表以及目标节点放入消息体中,将消息发送至邻居节点进行中转,节点B收到消息后,根据消息体中内容判断自身是否是目标节点,若非目标节点,则从自身邻居表中选择未发送过该消息的节点,将节点添加至该消息的邻居表中,并向这些节点广播消息,直到目标节点C收到消息。
步骤101,源节点根据自身邻居表计算消息从自身至目标节点是否需要中继转发;
步骤102,源节点从零开始生成一个累加的序列号;
步骤103,源节点选择邻居表中所有节点作为中继节点,并将其邻居表、序列号以及目标节点放入消息体中,向中继节点广播消息;
步骤104,收到消息的节点根据消息体中内容判断该消息是否需要转发:
如果收到消息的节点非目标节点,则从自身邻居表中选择未发送过该消息的节点,将节点添加至该消息的邻居表中,并向这些节点广播消息;
如果收到消息的节点是目标节点,则对源节点维护一个LRU,根据消息序列号进行过滤,不接收重复消息。
其中,步骤104中中继节点的转发规则,也可以先判断目标节点是否在自身邻居表中,若在则直接发送至目标节点,不再继续中转。
本发明提供一种P2P节点。
参照图2,图2是本发明P2P节点结构示意图。
在本实施例中,P2P节点结构包括:
邻居表维护模块201,用于维护自身邻居表;
消息序列号维护模块202,用于生成唯一的自增长的序列号,并定期进行持久化;
消息中继模块203,与所述邻居表维护模块和消息序列号维护模块相连,用于生成,发送,接收中继消息;
其中,发送中继消息至目标节点时,消息中继模块203先从邻居表维护模块201获取邻居表,判断目标节点是否需要中继发送,若是,则从消息序列号维护模块202获取中继消息序列号,选择邻居表中所有节点作为中继节点,并将邻居表、序列号以及目标节点放入消息体中,向中继节点广播消息;
接收中继消息时,消息中继模块203从邻居表维护模块201获取邻居表,从邻居表中选择该中继消息未到达过的节点,将这些节点添加至该消息的邻居表中,并向这些节点广播消息;
LRU维护模块204,与所述邻居表维护模块和消息中继模块相连,用于对所有非邻居节点各维护一个LRU,保存来自各非邻居节点的最新的若干条中继消息序列号。
其中,消息中继模块203接收到中继消息,判断消息的目标节点是自身时,则将该中继消息的序列号和源节点交给LRU维护模块204,若LRU维护模块204判断该中继消息是新消息则保存序列号至LRU,若非新消息则丢弃。
由上述实施例可见,本发明的这种联盟链非全连接P2P网络的收敛方法及P2P节点,通过源节点将所有邻居表中节点作为中继节点,中继节点尽可能减少发送冗余消息,采用逐步逼近的收敛方法,通过多次转发,让消息通过多条路由达到目标节点,保证消息可靠性,且目标节点只接受最先达到的消息,避免冗余消息的影响。
本发明设计的这种收敛性较好的逐步逼近的收敛方法,可以自动生成合适的消息路由路径,且有部分节点宕机时也能保证可用性,冗余消息少,易扩展,可用性好。
Claims (10)
1.一种联盟链非全连接P2P网络的收敛方法,其特征在于,该方法包括:
源节点根据自身邻居表计算消息从自身至目标节点是否需要中继转发;
源节点从零开始生成一个累加的序列号;
源节点选择邻居表中所有节点作为中继节点,并将其邻居表、序列号以及目标节点放入消息体中,向中继节点广播消息;
收到消息的节点根据消息体中内容判断该消息是否需要转发:
如果收到消息的节点非目标节点,则从自身邻居表中选择未发送过该消息的节点,将节点添加至该消息的邻居表中,并向这些节点广播消息;
如果收到消息的节点是目标节点,则对源节点维护一个LRU,根据消息序列号进行过滤,不接收重复消息。
2.根据权利要求1所述的联盟链非全连接P2P网络的收敛方法,其特征在于,所述邻居表的建立方法为:
源节点与直接连接节点建立网络连接后,相互交换信息,根据散列函数生成唯一的身份标识符,将所有身份标识符加入邻居表中;
若一个消息的目标节点标识符不在邻居表中,则该消息需要发送至中继节点进行转发。
3.根据权利要求2所述的联盟链非全连接P2P网络的收敛方法,其特征在于,所述邻居表建立后,通过定期发送心跳消息探测邻居表中的邻居节点是否失效,将失效的邻居节点从所述邻居表中删除。
4.根据权利要求1所述的联盟链非全连接P2P网络的收敛方法,其特征在于,所述源节点生成的序列号是自增长的,具有唯一性,且序列号每增长S,会对序列号进行持久化,防止源节点宕机后序列号重复。
5.根据权利要求1所述的联盟链非全连接P2P网络的收敛方法,其特征在于,所述消息体中包含源节点的邻居表、唯一序列号以及目标节点,源节点选择邻居表中所有节点作为中继节点,向其广播消息。
6.根据权利要求1所述的联盟链非全连接P2P网络的收敛方法,其特征在于,所述中继节点在收到消息后,根据消息体中的目标节点判断该消息是否需要转发,若需要转发则从自身邻居表中选出未包含于消息体邻居表的节点,将消息向这些节点转发。
7.根据权利要求1所述的联盟链非全连接P2P网络的收敛方法,其特征在于,如果收到消息的节点非目标节点,也可以先判断目标节点是否在自身邻居表中,若在则直接发送至目标节点,不再继续中转。
8.根据权利要求1所述的联盟链非全连接P2P网络的收敛方法,其特征在于,所述LRU为一定长的键值对缓存,以消息序列号为键,按照接收顺序存储,存满后按照先进先出原则删除数据,节点需为所有非邻居节点各维护一个LRU。
9.一种P2P节点,其特征在于,该节点包括:
邻居表维护模块,用于维护自身邻居表;
消息序列号维护模块,用于生成唯一的自增长序列号,并定期进行持久化;
消息中继模块,与所述邻居表维护模块和消息序列号维护模块相连,用于生成,发送,接收中继消息;
其中,发送中继消息至目标节点时,消息中继模块先从邻居表维护模块获取邻居表,判断目标节点是否需要中继发送,若是,则从消息序列号维护模块获取中继消息序列号,选择邻居表中所有节点作为中继节点,并将邻居表、序列号以及目标节点放入消息体中,向中继节点广播消息;
接收中继消息时,消息中继模块从邻居表维护模块获取邻居表,从邻居表中选择该中继消息未到达过的节点,将这些节点添加至该消息的邻居表中,并向这些节点广播消息;
LRU维护模块,与所述邻居表维护模块和消息中继模块相连,用于对所有非邻居节点各维护一个LRU,保存来自各非邻居节点的最新的若干条中继消息序列号。
10.根据权利要求9所述的P2P节点,其特征在于:所述消息中继模块接收到中继消息,判断消息的目标节点是自身时,则将该中继消息的序列号和源节点交给LRU维护模块,若LRU维护模块判断该中继消息是新消息则保存序列号至LRU,若非新消息则丢弃。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011386475.0A CN112565392B (zh) | 2020-12-01 | 2020-12-01 | 一种联盟链非全连接p2p网络的收敛方法及p2p节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011386475.0A CN112565392B (zh) | 2020-12-01 | 2020-12-01 | 一种联盟链非全连接p2p网络的收敛方法及p2p节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112565392A true CN112565392A (zh) | 2021-03-26 |
CN112565392B CN112565392B (zh) | 2023-04-07 |
Family
ID=75047090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011386475.0A Active CN112565392B (zh) | 2020-12-01 | 2020-12-01 | 一种联盟链非全连接p2p网络的收敛方法及p2p节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112565392B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113923155A (zh) * | 2021-12-06 | 2022-01-11 | 浙商银行股份有限公司 | 一种基于最短路径算法的联盟链通信方法及系统 |
CN114338699A (zh) * | 2021-11-18 | 2022-04-12 | 山大地纬软件股份有限公司 | 一种基于动态策略的区块链通信方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101299707A (zh) * | 2007-09-20 | 2008-11-05 | 上海寰创通信科技有限公司 | 一种路由扩散方法 |
CN109034480A (zh) * | 2018-07-31 | 2018-12-18 | 湘潭大学 | 一种基于智能合约的互联微网分布式优化调度方法 |
CN109413712A (zh) * | 2019-01-11 | 2019-03-01 | 湖南大学 | 基于dsr协议的快速路由构建方法 |
KR101992981B1 (ko) * | 2018-12-07 | 2019-06-25 | 한전케이디엔 주식회사 | IoT 허브와 블록체인을 활용한 IoT 플랫폼 시스템 |
CN110167099A (zh) * | 2019-05-22 | 2019-08-23 | 南京大学 | 一种适用于窄带条件的自组网路由方法及系统 |
US20190339688A1 (en) * | 2016-05-09 | 2019-11-07 | Strong Force Iot Portfolio 2016, Llc | Methods and systems for data collection, learning, and streaming of machine signals for analytics and maintenance using the industrial internet of things |
CN111401868A (zh) * | 2020-03-19 | 2020-07-10 | 南开大学 | 一种费用最小的区块链链下交易路由算法 |
CN111757413A (zh) * | 2020-06-12 | 2020-10-09 | 安凯(广州)微电子技术有限公司 | 无线Mesh网络中的广播与路由混合传输方法及系统 |
-
2020
- 2020-12-01 CN CN202011386475.0A patent/CN112565392B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101299707A (zh) * | 2007-09-20 | 2008-11-05 | 上海寰创通信科技有限公司 | 一种路由扩散方法 |
US20190339688A1 (en) * | 2016-05-09 | 2019-11-07 | Strong Force Iot Portfolio 2016, Llc | Methods and systems for data collection, learning, and streaming of machine signals for analytics and maintenance using the industrial internet of things |
CN109034480A (zh) * | 2018-07-31 | 2018-12-18 | 湘潭大学 | 一种基于智能合约的互联微网分布式优化调度方法 |
KR101992981B1 (ko) * | 2018-12-07 | 2019-06-25 | 한전케이디엔 주식회사 | IoT 허브와 블록체인을 활용한 IoT 플랫폼 시스템 |
CN109413712A (zh) * | 2019-01-11 | 2019-03-01 | 湖南大学 | 基于dsr协议的快速路由构建方法 |
CN110167099A (zh) * | 2019-05-22 | 2019-08-23 | 南京大学 | 一种适用于窄带条件的自组网路由方法及系统 |
CN111401868A (zh) * | 2020-03-19 | 2020-07-10 | 南开大学 | 一种费用最小的区块链链下交易路由算法 |
CN111757413A (zh) * | 2020-06-12 | 2020-10-09 | 安凯(广州)微电子技术有限公司 | 无线Mesh网络中的广播与路由混合传输方法及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114338699A (zh) * | 2021-11-18 | 2022-04-12 | 山大地纬软件股份有限公司 | 一种基于动态策略的区块链通信方法及系统 |
CN114338699B (zh) * | 2021-11-18 | 2024-01-30 | 山大地纬软件股份有限公司 | 一种基于动态策略的区块链通信方法及系统 |
CN113923155A (zh) * | 2021-12-06 | 2022-01-11 | 浙商银行股份有限公司 | 一种基于最短路径算法的联盟链通信方法及系统 |
CN113923155B (zh) * | 2021-12-06 | 2022-04-19 | 浙商银行股份有限公司 | 一种基于最短路径算法的联盟链通信方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112565392B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5095823B2 (ja) | トランスポート制御サーバ、ネットワークシステム及びトランスポート制御方法 | |
CN112565392B (zh) | 一种联盟链非全连接p2p网络的收敛方法及p2p节点 | |
US20110051738A1 (en) | Method, system and device for maintaining routes | |
US20050122955A1 (en) | Method and system for route selection and method for route reconstruction | |
CN115552861B (zh) | 生成转发表项的方法、发送报文的方法、网络设备及系统 | |
WO2009071008A1 (fr) | Procédé, équipement et système de mise à jour d'une table de routage après une défaillance de nœud dans un réseau peer-to-peer | |
JP2007535852A (ja) | 近隣キャッシュテーブル同期のための装置及び方法 | |
JP2009508410A (ja) | マルチデスティネーション・ルーティングを利用したピアツーピア・オーバーレイ通信の並列実行 | |
EP2560321A1 (en) | Ethernet multicast method and device | |
CN113923155B (zh) | 一种基于最短路径算法的联盟链通信方法及系统 | |
JPWO2013077090A1 (ja) | 通信装置およびアドホックネットワークシステム | |
CN110752997A (zh) | 一种数据包主动寻路的命名数据网络转发方法 | |
CN106326308A (zh) | 一种基于sdn的网内重复数据删除方法及系统 | |
CN108540386B (zh) | 一种防止业务流中断方法及装置 | |
US9504020B2 (en) | Method for exchanging information between communication terminals, and communication terminal | |
JP5441041B2 (ja) | メッセージ経路指定プラットフォーム | |
CN104811990B (zh) | 基于自适应双向路径重建的HR-WPAN Mesh网络高效路由修复方法 | |
Garcia-Luna-Aceves | A more scalable approach to content centric networking | |
Priya et al. | Information centric network for secure data transmission in DTN | |
Huang et al. | A bidirectional route repair method for wireless mobile ad hoc networks | |
CN106487682B (zh) | 一种Diameter信令网路由方法和装置 | |
JP5131127B2 (ja) | 経路制御装置、経路制御方法、経路制御プログラム及びノード | |
Gruber et al. | Ad hoc routing for cellular coverage extension | |
Dong et al. | A robust and lightweight name resolution approach for IoT data in ICN | |
CN105722172B (zh) | 无线链状网下的快速路由恢复方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |