CN102148847A - 基于reload的客户端接入对等网络的方法和*** - Google Patents
基于reload的客户端接入对等网络的方法和*** Download PDFInfo
- Publication number
- CN102148847A CN102148847A CN2010101163987A CN201010116398A CN102148847A CN 102148847 A CN102148847 A CN 102148847A CN 2010101163987 A CN2010101163987 A CN 2010101163987A CN 201010116398 A CN201010116398 A CN 201010116398A CN 102148847 A CN102148847 A CN 102148847A
- Authority
- CN
- China
- Prior art keywords
- client
- node
- access
- peer
- access node
- 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
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2854—Wide area networks, e.g. public data networks
- H04L12/2856—Access arrangements, e.g. Internet access
- H04L12/2858—Access network architectures
- H04L12/2861—Point-to-multipoint connection from the data network to the subscribers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/122—Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
-
- 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
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/1085—Resource delivery mechanisms involving dynamic management of active down- or uploading connections
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于资源定位和发现协议(RELOAD)的客户端接入对等网络的方法和***,客户端通过多个接入节点接入对等网络,客户端向多个目标节点发送上行消息时,可以分别选择不同的接入节点进行转发;多个源节点向客户端发送下行消息时,可以分别选择不同的接入节点进行转发,如此可以分担接入节点的工作负担,从而避免了只能通过单一接入节点进行上下行消息转发而产生的性能瓶颈问题。
Description
技术领域
本发明涉及分布式通信网络领域,特别是指一种基于RELOAD的客户端接入对等网络的方法和***。
背景技术
对等网络(P2P,Peer to Peer)是一种分布式网络,网络的参与者共享他们所拥有的资源和服务。通常这些资源和服务的共享包括:信息的共享与交换、计算资源(如CPU)和存储资源(如缓存和磁盘空间)的共享等,这些共享资源和服务能被网络中的任意对等节点(Peer)访问。对等网络中的每个参与者既是资源和服务提供者(server),也是资源和服务获取者(client)。
RELOAD(Resource Locate And Discovery)是IETF P2P SIP(SessionInitiation Protocol)工作组定义的一种对等网络的资源定位和发现协议。
在对等网络中为每个节点分配一个唯一标识、节点ID;RELOAD客户端(简称客户端),是采用RELOAD协议的对等网络中的一种没有路由和数据存储责任的特殊节点,但其他功能与对等节点相同,也就是说它可以从对等网络中访问数据、也可以向对等网络存储数据。但是,RELOAD只支持通过一个对等节点接入对等网络,这样,当客户端与对等网络之间的消息交互量大时,所有消息都必须经过这个唯一的接入节点,从而导致这个接入节点出现性能瓶颈问题。所以,RELOAD中需要一种支持多节点接入的实现方法。
图1所示为现有技术中RELOAD客户端接入对等网络的示意图,该(RELOAD)对等网络由对等节点A、B、C、D、E组成,客户端通过对等节点E接入对等网络。
在对等网络中由对等算法根据两个对等节点的节点ID可以确定出负责节点,如图1中根据节点ID,确定对等节点A是对等节点B的最近后继节点时,那么称对等节点A是对等节点B的负责节点。在图1中,假设由对等算法确定出对等节点E为客户端的负责节点。在现有技术中,客户端的负责节点即是接入节点。
假设客户端欲向对等网络中的某些节点(如C、D)发送上行消息,采用现有技术的实现流程如图2所示,具体包括如下步骤:
步骤201:客户端向接入节点E发送上行消息1,目标节点是C;
步骤202:接入节点E根据对等算法,通过对等网络将上行消息1转发给对等节点C;
步骤203:对等节点C根据对等算法,通过对等网络向接入节点E返回上行消息1的响应;
步骤204:接入节点E将响应转发给客户端;
步骤205:客户端向接入节点E发送上行消息2,目标节点是D;
步骤206:接入节点E根据对等算法,通过对等网络将上行消息2转发给对等节点D;
步骤207:对等节点D根据对等算法,通过对等网络向接入节点E返回上行消息2的响应;
步骤208:接入节点E将响应转发给客户端。
也就是说,客户端发给任何对等节点的所有上行消息都必须经过唯一的接入节点E进行转发,因此节点E的负担较重,存在性能瓶颈问题。
假设对等网络中的某些节点(如C、D)欲向客户端发送下行消息,采用现有技术的实现流程如图3所示,具体包括如下步骤:
步骤301~302:源节点C首先确定客户端的节点ID,然后根据对等算法,通过对等网络向接入节点E发送下行消息1,目标节点是客户端;
步骤303:接入节点E将下行消息1根据节点ID转发给客户端;
步骤304:客户端返回下行消息1的响应给接入节点E;
步骤305:接入节点E根据对等算法,通过对等网络向源节点C返回响应;
步骤306~307:源节点D首先确定客户端的节点ID,然后根据对等算法,通过对等网络向接入节点E发送下行消息2,目标节点是客户端;
步骤308:接入节点E将该下行消息2根据节点ID转发给客户端;
步骤309:客户端返回下行消息2的响应给接入节点E;
步骤310:接入节点E根据对等算法,通过对等网络向源节点D返回响应。
也就是说,任何对等节点发给客户端的所有下行消息,都必须通过唯一的接入节点E进行转发,因此节点E的负担较重,存在性能瓶颈问题。
发明内容
有鉴于此,本发明的主要目的在于提供一种基于RELOAD的客户端接入对等网络的方法和***,能够解决客户端通过单个对等节点接入RELOAD对等网络时产生的接入节点的性能瓶颈问题。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种基于资源定位和发现协议(RELOAD)的客户端接入对等网络的方法,该方法包括:
客户端从候选接入节点列表中根据预定的策略选取多个接入节点,并通过所述多个接入节点接入对等网络;
客户端与对等网络通过所述多个接入节点进行上下行消息的交互。
所述预定的策略为随机、就近、均匀分散、和指定策略中的一种或几种。
所述客户端通过所述多个接入节点接入对等网络,具体为:
所述客户端分别向所述多个接入节点发送建立连接请求;
接收到所述建立连接请求的所述多个接入节点,分别将所述客户端的连接信息存储在自身的客户表中,并向所述客户端返回建立连接响应;
客户端依据所述建立连接响应,将所述多个接入节点的连接信息存储在自身的接入表中;
所述连接信息至少包括:客户端或接入节点的节点ID、IP地址和端口号。
所述客户端通过所述多个接入节点接入对等网络后,该方法进一步包括:
客户端根据预定的策略从自身的接入表中选择一个接入节点,并通过该接入节点向自身的负责节点发送存储所述接入表的请求;
根据所述请求,负责节点将所述接入表作为数据资源进行存储,并通过所述接入节点向客户端返回存储响应;
该方法还包括:将所述客户端的节点ID作为所述数据资源的资源ID;或者依据客户端的节点ID、或客户端名称生成所述资源ID。
所述上行消息的交互,具体为:
所述客户端根据预定的策略从自身的接入表中选择至少一个接入节点,并按照一对一、或一对多的原则通过所述接入节点向目标节点发送上行消息;
所述目标节点接收到所述上行消息后,通过向自身转发上行消息的所述接入节点向客户端返回上行消息的响应。
所述下行消息的交互,具体为:
对等网络中的源节点根据所述客户端的节点ID或者所述客户端对应的所述资源ID,按照对等算法向所述负责节点发送所述接入表的获取请求;
所述源节点根据预定的策略,从所述负责节点返回的所述接入表中选择一个接入节点,并依据所述接入节点的连接信息将下行消息发给所述接入节点;
所述接入节点查询自身的客户表,获取所述客户端的连接信息,并依据所述连接信息将所述下行消息转发给所述客户端;
所述客户端接收到下行消息后,通过所述接入节点向所述源节点发送下行消息的响应。
所述下行消息的交互,具体为:
对等网络中的源节点根据所述客户端的节点ID或者所述客户端对应的所述资源ID,按照对等算法向所述负责节点发送获取一个接入节点的请求;
根据所述请求,所述负责节点根据预定的策略从自身存储的所述接入表中选择一个接入节点,并将所述接入节点的连接信息返回给所述源节点;
所述源节点依据所述连接信息将下行消息发送给所述接入节点,所述接入节点查询自身的客户表,获取所述客户端的连接信息,并依据所述连接信息将所述下行消息转发给所述客户端;
所述客户端接收到下行消息后,通过所述接入节点向所述源节点发送下行消息的响应。
所述下行消息的交互,具体为:
对等网络中的源节点根据所述客户端的节点ID或者所述客户端对应的所述资源ID,按照对等算法向所述负责节点发送下行消息;
所述负责节点根据预定的策略从自身存储的所述接入表中选择一个接入节点,并依据所述接入节点的连接信息将所述下行消息转发给所述接入节点;
所述接入节点查询自身的客户表,获取所述客户端的连接信息,并依据所述连接信息将所述下行消息转发给所述客户端;
所述客户端接收到下行消息后,通过所述接入节点和负责节点向所述源节点发送下行消息的响应。
所述客户端存储的接入表、所述接入节点存储的客户表和所述负责节点存储的所述接入表统称为接入信息;
该方法进一步包括:对所述接入信息进行维护。
所述客户端与所述接入节点正常断链时,对所述接入信息进行维护,具体为:
除去断链的所述接入节点,所述客户端根据预定的策略从自身的接入表中选择一个接入节点,并通过所述接入节点向所述负责节点发送从接入表中删除所述断链的接入节点的请求;负责节点根据所述请求,从自身存储的所述接入表中删除所述断链的接入节点的连接信息;
所述断链的接入节点根据所述客户端发送的断链通知消息,从自身的客户表中删除所述客户端的连接信息;
所述客户端从自身的接入表中删除所述断链的接入节点的连接信息。
客户端与接入节点异常断链时,对所述接入信息进行维护,具体为:
检测到与所述客户端断链时,断链的所述接入节点从自身的客户表中删除所述客户端的连接信息,并向所述负责节点发送从接入表中删除自身的请求;
所述负责节点根据所述请求,从自身存储的接入表中删除所述断链的接入节点的连接信息;
检测到与接入节点断链时,所述客户端从自身的接入表中删除所述断链的接入节点的连接信息。
所述接入节点与所述客户端正常断链时,对所述接入信息进行维护,具体为:
断链的所述接入节点从自身的客户表中删除所述客户端的连接信息;
接收到所述断链的接入节点发送的断链通知消息后,所述客户端根据预定的策略,除去所述断链的接入节点,从自身的接入表中选择一个接入节点,并通过选择的接入节点向负责节点发送从接入表中删除所述断链的接入节点的请求;所述负责节点根据所述请求,从自身的接入表中删除所述断链的接入节点的连接信息;
接收到所述断链的接入节点发送的断链通知消息后,所述客户端从自身的接入表中删除断链的接入节点的连接信息。
所述接入节点与所述客户端异常断链时,对所述接入信息进行维护,具体为:
检测到与接入节点断链时,所述客户端从自身的接入表中删除所述断链的接入节点的连接信息;
所述客户端根据预定的策略,除去所述断链的接入节点,从自身的接入表中选择一个接入节点,并通过选择的接入节点向负责节点发送从接入表中删除所述断链的接入节点的请求;所述负责节点根据所述请求,从自身的接入表中删除所述断链的接入节点的连接信息;
接收到客户端的断链通知消息后,所述断链的接入节点从自身的客户表中删除客户端的连接信息。
所述预定的策略为轮流、随机、就近、按负荷和按消息类别策略中的一种或几种。
本发明还提供了一种基于RELOAD的客户端接入对等网络的***,该***包括:客户端和接入节点,
所述客户端,用于从候选接入节点列表中根据预定的策略选取多个接入节点,并通过所述多个接入节点接入对等网络;还用于通过所述多个接入节点与对等网络进行上下行消息的交互;
所述接入节点,用于供所述客户端接入对等网络,还用于供客户单与对等网络进行上下行消息的交互。
该***进一步包括:源节点和目标节点;
所述源节点,用于通过所述接入节点向所述客户端发送下行消息;
所述目标节点,用于接收所述客户端通过所述接入节点发送的上行消息。
该***进一步包括负责节点,用于存储并维护所述客户端的接入表,还用于协助所述源节点选择所述接入节点向所述客户端转发下行消息。
所述客户端,进一步用于将所述接入节点的连接信息存储在自身的接入表中,并进行维护;
所述接入节点,进一步用于将所述客户端的连接信息存储在自身的客户表中,并进行维护。
本发明基于RELOAD的客户端接入对等网络的方案,客户端通过多个接入节点接入对等网络,客户端向多个目标节点发送上行消息时,可以分别选择不同的接入节点进行转发;多个源节点向客户端发送下行消息时,可以分别选择不同的接入节点进行转发,如此可以分担接入节点的工作负担,从而避免了只能通过单一接入节点进行上下行消息转发而产生的性能瓶颈问题。
附图说明
图1为现有技术中客户端接入对等网络的示意图;
图2为现有技术中客户端向对等节点发送上行消息的流程示意图;
图3为现有技术中对等节点向客户端发送下行消息的流程示意图;
图4a为本发明基于RELOAD的客户端接入对等网络的方法流程示意图;
图4b为本发明中客户端接入对等网络的示意图;
图5为本发明客户端加入对等网络的流程示意图;
图6为客户端与接入节点正常断链时接入信息的维护流程示意图;
图7为客户端与接入节点异常断链时接入信息的维护流程示意图;
图8为接入节点与客户端正常断链时接入信息的维护流程示意图;
图9为接入节点与客户端异常断链时接入信息的维护流程示意图;
图10为客户端向对等节点发送上行消息的流程示意图;
图11为对等节点向客户端发送下行消息实施例一的流程示意图;
图12为对等节点向客户端发送下行消息实施例二的流程示意图;
图13为对等节点向客户端发送下行消息实施例三的流程示意图;
图14为本发明基于RELOAD的客户端接入对等网络的***结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
本发明基于RELOAD的客户端接入对等网络的核心思想是:客户端通过对等节点接入对等网络,将该对等节点称为接入节点,客户端将接入节点的连接信息存储在自身的接入表(该接入表可以是路由表、连接表或者专门定义的用于存储接入节点连接信息的存储单元)中,接入节点将客户端的连接信息存储在自身的客户表(该客户表可以是路由表、连接表或者专门定义的用于存储客户端连接信息的存储单元)中;客户端的接入表作为数据资源,存储在客户端的负责节点中。将上述客户端的接入表、接入节点的客户表、以及负责节点的接入表统称为接入信息。由客户端、接入节点和负责节点共同维护存储于对等网络中的接入信息;然后客户端与对等网络之间通过接入节点进行上下行消息交互。
上述连接信息至少包括节点ID、节点的IP和节点的端口号,根据连接信息可以向该节点发送消息,建立连接等。
本发明基于RELOAD的客户端接入对等网络的方法流程如图4a所示,包括:
步骤401,客户端从候选接入节点列表中根据预定的策略选取多个接入节点,并通过多个接入节点接入对等网络。
步骤402,客户端与对等网络通过多个接入节点进行上下行消息的交互。
首先通过具体的实施例来说明本发明中客户端接入对等网络的方式,如图4b所示,该对等网络采用RELOAD协议来实现,由对等节点A、B、C、D、E组成,客户端通过对等节点A和B接入对等网络,则对等节点A和B为接入节点;假设由对等算法根据节点ID关系确定得到对等节点E为客户端的负责节点。由此可见,本发明实现了接入节点与负责节点的逻辑分离,即接入节点可以是客户端的负责节点,也可以是客户端的非负责节点,由此降低了负责节点的负担。
为了实现客户端与对等节点之间的上下行消息交互,首先,客户端必须加入对等网络;同时,由于对等网络具有动态性,经常会发生对等网络中的部分对等节点发生异常或退出的情况,从而导致客户端与接入节点之间的链路发生正常或异常断链。为了保证客户端与对等节点之间消息的正常交互,必须考虑在各种断链情况下如何维护对等网络中存储的接入信息。
下面基于图4所示的接入方式对本发明的技术方案进行详细的说明。
图5所示为客户端加入对等网络的流程示意图:在该实施例中为了实现客户端与对等节点(C、D)之间的上下行消息交互,客户端首先需要加入对等网络,并与接入节点(A、B)建立连接,同时将客户端的接入表存储在其负责节点(E)上。这样,客户端才可以与网络中的对等节点C、D顺利进行消息交互。如图5所示,该流程包括:
步骤501:客户端获取候选接入节点列表,并根据预定的策略(可以是随机、就近、均匀分散、和指定等策略中的一种或几种)从候选接入节点列表中选择对等节点A和B作为接入节点;其中,客户端可从对等网络中的配置服务器获取候选接入节点列表,当然也可以从其他能够提供候选接入节点列表的节点中获取、如网管等。所述的候选接入节点必须是对等网络中性能稳定的对等节点。
步骤502:客户端向接入节点A发送建立连接请求。
步骤503~504:接入节点A将客户端的连接信息存储在自身的客户表中,然后向客户端返回建立连接响应。
步骤505:客户端将接入节点A的连接信息存储在自身的接入表中;如此,客户端完成通过接入节点A接入对等网络的流程。
步骤506~步骤509为客户端通过接入节点B加入对等网络的流程,具体实现与步骤502~505相同,此处不再赘述。
在该实施例中描述了客户端通过两个接入节点A和B接入对等网络的情况,在实际的应用中,客户端还可以通过多于两个的接入节点接入对等网络。
步骤510~512:客户端根据预定的策略(可以是轮流、随机、就近、按负荷和按消息类别等策略中的一种或几种)从自身的接入表中选择其中一个接入节点(该实施例中为接入节点A,当然也可以是接入节点B),然后通过接入节点A向自身的负责节点(该实施例中为对等节点E)发出存储接入表的请求。
步骤513~515:负责节点E存储接入表后,通过接入节点A向客户端返回响应。接入表是作为数据资源存储在负责节点中的,同时需要在负责节点中对该资源进行标识,具体的:可以将客户端的节点ID作为资源ID,也可以依据客户端的节点ID、或者客户端名称、或者其他标识通过哈希算法、字符编码等方式生成所述资源ID。
由此可见,上述客户端通过多个接入节点接入对等网络时,客户端分别向这多个接入节点发送建立连接请求;接收到建立连接请求的这多个接入节点,分别将客户端的连接信息存储在自身的客户表中,并向客户端返回建立连接响应;客户端依据建立连接响应,将这多个接入节点的连接信息存储在自身的接入表中。
图6所示为客户端与接入节点正常断链时接入信息的维护流程,当客户端主动与接入节点A断链时,需要维护存储在客户端、接入节点、负责节点上的相关接入信息,具体流程如图6所示:
步骤601~603:在接入表中,除去断链的接入节点A,客户端根据预定的策略(可以是轮流、随机、就近、按负荷和按消息类别等策略中的一种或几种)从剩余的接入节点中选择其中一个接入节点(该实施例中为接入节点B,如果还存在其他接入节点、如G、H等,也可以选择G或H),然后通过接入节点B向负责节点E发出从接入表中删除接入节点A的请求。
步骤604~606:负责节点E收到删除请求后,从自身存储的接入表中删除接入节点A,然后通过接入节点B向客户端返回删除响应。
步骤607:客户端向接入节点A发出断链通知消息。
步骤608:接入节点A收到断链通知消息后从自身的客户表中删除客户端的连接信息。
步骤609:客户端从自身的接入表中删除接入节点A的连接信息。
在该流程中,步骤601~606为负责节点中接入表的维护流程;步骤607~608为接入节点中客户表的维护;步骤609为客户端中接入表的维护。这三个流程是相互独立的,执行顺序部分先后。
图7所示为客户端与接入节点异常断链时接入信息的维护流程,当客户端与接入节点A发生异常断链时(该实施例中为客户端发生故障),需要维护存储在客户端、接入节点、负责节点上的相关接入信息,具体流程如图7所示:
步骤701~703:接入节点A检测到客户端与自身断链后(根据RELOAD定义,长时间没有收到对方的保活消息即认为断链),首先从自身的客户表中删除客户端的连接信息,然后根据对等算法向客户端的负责节点E发出从接入表中删除接入节点A的请求。
步骤704~705:负责节点E根据删除请求,从自身存储的接入表中删除接入节点A(即删除其连接信息),然后向接入节点A返回删除响应。
步骤706~707,客户端检测到与接入节点A断链时,从自身的接入表中删除接入节点A的连接信息。
其中,步骤701~705为接入节点中客户表和负责节点中接入表的维护流程;步骤706~707为客户端中接入表的维护流程,两个流程是相互独立的,执行顺序部分先后。
图8所示为接入节点与客户端正常断链时接入信息的维护流程,当接入节点A主动与客户端断链时,需要维护存储在客户端、接入节点、负责节点上的相关接入信息,并增加新的接入节点,具体流程如图8所示:
步骤801:接入节点A从自身的客户表中删除客户端的连接信息。
步骤802,接入节点A向客户端发出断链通知消息。
步骤803:客户端收到断链通知消息后,从自身的接入表中删除节点A的连接信息;同时在自身的接入表中,除去断链的接入节点A,根据预定的策略(可以是轮流、随机、就近、按负荷和按消息类别等策略中的一种或几种)从剩余的接入节点中选择其中一个接入节点(该实施例中为接入节点B,如果还存在其他接入节点、如G、H等,也可以选择G或H)。
步骤804~805,客户端通过接入节点B向负责节点E发出从接入表中删除接入节点A的请求;
步骤806~808:负责节点E收到删除请求后,从自身存储的接入表中删除接入节点A(即删除其连接信息),然后通过接入节点B向客户端返回删除响应。
步骤809:客户端根据策略增加新的接入节点。增加新的接入节点的流程与图5的流程相同,此处不再赘述。
步骤801为接入节点中客户表的维护流程;步骤802~808为客户端中接入表和负责节点中接入表的维护流程,两者是相互独立的,执行顺序不分先后。
图9所示为接入节点与客户端异常断链时接入信息的维护流程,当接入节点A与客户端发生断链时(该实施例为接入节点A发生故障),需要维护存储在客户端、接入节点、负责节点上的相关接入信息,并增加新的接入节点,具体流程如图9所示:
步骤901~902:客户端检测到与接入节点A断链后(根据RELOAD定义,长时间没有收到对方的保活消息即认为断链),从自身的接入表中删除接入节点A的连接信息。
步骤903~905:客户端检测到与接入节点A断链后,在接入表中,除去断链的接入节点A,客户端根据预定的策略(可以是轮流、随机、就近、按负荷和按消息类别等策略中的一种或几种)从剩余的接入节点中选择其中一个接入节点(该实施例中为接入节点B,如果还存在其他接入节点、如G、H等,也可以选择G或H),然后通过接入节点B向负责节点E发出从接入表中删除接入节点A的请求。
步骤906~908:负责节点E从自身存储的接入表中删除接入节点A(即删除其连接信息),然后通过接入节点B向客户端返回删除响应。
步骤909~910,接入节点检测到与客户端断链后,从自身的客户表中删除客户端的连接信息。
步骤911:客户端根据策略增加新的接入节点。增加新的接入节点的流程与图5的流程相同,此处不再赘述。
其中,步骤901~902为客户端中接入表的维护流程;步骤903~608为负责节点中接入表的维护;步骤909~910为接入节点中客户表的维护。这三个流程是相互独立的,执行顺序部分先后。
图10所示为客户端向对等节点发送上行消息的流程,基于对接入信息的存储和维护,客户端就可以向网络中任意对等节点(该实施例中为对等节点C和D)发送上行消息,具体流程如图10所示:
步骤1001~1002:客户端根据预定的策略(可以是轮流、随机、就近、按负荷和按消息类别等策略中的一种或几种)从自身的接入表中选择一个接入节点(如接入节点A),然后向接入节点A发送上行消息1,目标是对等节点C(目标节点C);
步骤1003:接入节点A根据对等算法,通过对等网络向目标节点C转发上行消息1;
步骤1004~1005:目标节点C通过接入节点A向客户端返回上行消息1的响应;
步骤1006~1010为客户端通过接入节点B向目标节点D发送上行消息2的流程,与步骤1001~1005相同,此处不再赘述。
在实际的应用中,存在多个目标节点时,客户端会同时选择多个接入节点向多个目标节点发送上行消息,以分担接入节点的负担,其中,接入节点与目标节点可以是一对一的关系,也可以是一对多的关系、即客户端可以通过一个接入节点向一个或多个目标节点发送上行消息。当然,根据需要也可以只选择一个接入节点来发送上行消息。
在上述流程中,客户端向多个目标节点发送上行消息时,可以分别选择不同的接入节点进行转发,从而避免了只能通过单一接入节点进行转发而产生的性能瓶颈问题。
图11所示为对等节点向客户端发送下行消息实施例一的流程,基于对接入信息的存储和维护,任意对等节点(该实施例中为对等节点C、D,称为源节点)就可以向客户端发送下行消息。下行消息的发送可以有三种方式,图11所示为方式一:源节点向客户端的负责节点查询到接入表,然后按照预定的策略从中选择一个接入节点,作为向客户端发送下行消息的转发节点,具体流程如图11所示:
步骤1101~1103:源节点C向客户端发送下行消息1时,首先根据客户端的节点ID或者对应的资源ID,按照对等算法确定该客户端的负责节点的节点ID,然后依据节点ID向负责节点发送接入表的获取请求;负责节点依据获取请求向源节点C返回接入表。
步骤1104~1105:源节点C根据预定的策略(可以是轮流、随机、就近、按负荷和按消息类别等策略中的一种或几种)从接入表中选择一个接入节点(如接入节点A),根据接入节点A的连接信息向接入节点A发送下行消息1,该下行消息1中含有客户端的节点ID,表示目标节点为客户端。
步骤1106~1107:接入节点A根据客户端的节点ID从自身的客户表查询出客户端的连接信息,然后利用该连接信息向客户端转发下行消息1。
步骤1108~1109:客户端通过接入节点A及对等网络,向源节点C返回下行消息1的响应。
步骤1110~步骤1118为源节点D通过接入节点B向客户端发送下行消息2的流程,与步骤1101~步骤1109相同,此处不再赘述。
图12所示为对等节点向客户端发送下行消息实施例二的流程,对等节点(该实施例中为对等节点C、D、即源节点)向客户端发送下行消息的方式二:源节点根据对等算法向负责节点请求获取一个接入节点,负责节点根据预定的策略(可以是轮流、随机、就近、按负荷和按消息类别等策略中的一种或几种)从接入表中选择一个接入节点返回给源节点,然后源节点通过该接入节点向客户端发送下行消息,具体流程如图12所示:
步骤1201~1202:源节点C向客户端发送下行消息1时,首先根据客户端的节点ID或者对应的资源ID,按照对等算法确定该客户端的负责节点的节点ID,然后依据节点ID向负责节点发送获取一个接入节点的请求。
步骤1203~1204:负责节点E根据预定的策略(可以是轮流、随机、就近、按负荷和按消息类别等策略中的一种或几种)从自身存储的接入表中选择一个接入节点(如接入节点A),并将其连接信息返回给源节点C。
步骤1205:源节点C根据接入节点A的连接信息,通过网络向接入节点A发送下行消息1,该下行消息1中含有客户端的节点ID,表示目标节点为客户端。
步骤1206~1207:接入节点A根据客户端的节点ID从自身的客户表查询出客户端的连接信息,然后利用该连接信息向客户端转发下行消息1。
步骤1208~1209:客户端接收到下行消息1后,通过接入节点A及对等网络,向源节点C返回下行消息1的响应。
步骤1210~1218为源节点D通过接入节点B向客户端发送下行消息2的流程,与步骤1201~1209相同,此处不再赘述。
图13为对等节点向客户端发送下行消息实施例三的流程,对等节点(该实施例中为节点C、D、即源节点)向客户端发送下行消息的方式三:源节点根据对等算法把下行消息发给负责节点,然后由负责节点从接入表中选择一个接入节点,通过该接入节点向客户端转发该下行消息,具体流程如图13所示:
步骤1301~1302:源节点C向客户端发送下行消息1时,首先根据客户端的节点ID或者对应的资源ID,按照对等算法确定该客户端的负责节点的节点ID,然后依据节点ID向负责节点发送下行消息1,该下行消息1中含有客户端的节点ID,表示目标节点为客户端。
步骤1303~1304:负责节点E根据预定的策略(可以是轮流、随机、就近、按负荷和按消息类别等策略中的一种或几种)从自身存储的接入表中选择一个接入节点(如接入节点A),然后依据接入节点A的连接信息通过网络向接入节点A转发下行消息1,该下行消息1中含有客户端的节点ID,表示目标节点为客户端。
步骤1305~1306:接入节点A根据客户端的节点ID从自身的客户表查询出该客户端的连接信息,然后利用该连接信息向客户端转发下行消息1。
步骤1307~1309:客户端通过接入节点A、负责节点E及对等网络,向源节点C返回下行消息1的响应。
步骤1310~1318为源节点D通过负责节点E,接入节点B向客户端发送下行消息2的流程,与步骤1301~1309相同,此处不再赘述。
同图11、图12和图13的流程可以看出,多个源节点向客户端发送下行消息时,可以分别选择不同的接入节点进行转发,从而避免了只能通过单一接入节点进行转发而产生的性能瓶颈问题。
为了实现上述方法,本发明提供了一种基于RELOAD的客户端接入对等网络的***,如图14所示该***包括:客户端10和接入节点20,
客户端10,用于从候选接入节点列表中根据预定的策略选取多个接入节点20,并通过多个接入节点20接入对等网络;还用于通过多个接入节点20与对等网络进行上下行消息的交互;
接入节点20,用于供客户端10接入对等网络,还用于供客户端10与对等网络进行上下行消息的交互。
该***进一步包括源节点30和目标节点40;
源节点30,用于通过接入节点20向客户端10发送下行消息;
目标节点40,用于接收客户端10通过接入节点20发送的上行消息。
该***进一步包括负责节点50,用于存储并维护客户端的接入表,还用于协助源节点30选择接入节点20向客户端转发下行消息。
客户端10,进一步用于将接入节点的连接信息存储在自身的接入表中,并进行维护;
接入节点20,进一步用于将客户端的连接信息存储在自身的客户表中,并进行维护。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (18)
1.一种基于资源定位和发现协议(RELOAD)的客户端接入对等网络的方法,其特征在于,该方法包括:
客户端从候选接入节点列表中根据预定的策略选取多个接入节点,并通过所述多个接入节点接入对等网络;
客户端与对等网络通过所述多个接入节点进行上下行消息的交互。
2.根据权利要求1所述基于RELOAD的客户端接入对等网络的方法,其特征在于,
所述预定的策略为随机、就近、均匀分散、和指定策略中的一种或几种。
3.根据权利要求1所述基于RELOAD的客户端接入对等网络的方法,其特征在于,所述客户端通过所述多个接入节点接入对等网络,具体为:
所述客户端分别向所述多个接入节点发送建立连接请求;
接收到所述建立连接请求的所述多个接入节点,分别将所述客户端的连接信息存储在自身的客户表中,并向所述客户端返回建立连接响应;
客户端依据所述建立连接响应,将所述多个接入节点的连接信息存储在自身的接入表中;
所述连接信息至少包括:客户端或接入节点的节点ID、IP地址和端口号。
4.根据权利要求3所述基于RELOAD的客户端接入对等网络的方法,其特征在于,所述客户端通过所述多个接入节点接入对等网络后,该方法进一步包括:
客户端根据预定的策略从自身的接入表中选择一个接入节点,并通过该接入节点向自身的负责节点发送存储所述接入表的请求;
根据所述请求,负责节点将所述接入表作为数据资源进行存储,并通过所述接入节点向客户端返回存储响应;
该方法还包括:将所述客户端的节点ID作为所述数据资源的资源ID;或者依据客户端的节点ID、或客户端名称生成所述资源ID。
5.根据权利要求4所述基于RELOAD的客户端接入对等网络的方法,其特征在于,所述上行消息的交互,具体为:
所述客户端根据预定的策略从自身的接入表中选择至少一个接入节点,并按照一对一、或一对多的原则通过所述接入节点向目标节点发送上行消息;
所述目标节点接收到所述上行消息后,通过向自身转发上行消息的所述接入节点向客户端返回上行消息的响应。
6.根据权利要求4所述基于RELOAD的客户端接入对等网络的方法,其特征在于,所述下行消息的交互,具体为:
对等网络中的源节点根据所述客户端的节点ID或者所述客户端对应的所述资源ID,按照对等算法向所述负责节点发送所述接入表的获取请求;
所述源节点根据预定的策略,从所述负责节点返回的所述接入表中选择一个接入节点,并依据所述接入节点的连接信息将下行消息发给所述接入节点;
所述接入节点查询自身的客户表,获取所述客户端的连接信息,并依据所述连接信息将所述下行消息转发给所述客户端;
所述客户端接收到下行消息后,通过所述接入节点向所述源节点发送下行消息的响应。
7.根据权利要求4所述基于RELOAD的客户端接入对等网络的方法,其特征在于,所述下行消息的交互,具体为:
对等网络中的源节点根据所述客户端的节点ID或者所述客户端对应的所述资源ID,按照对等算法向所述负责节点发送获取一个接入节点的请求;
根据所述请求,所述负责节点根据预定的策略从自身存储的所述接入表中选择一个接入节点,并将所述接入节点的连接信息返回给所述源节点;
所述源节点依据所述连接信息将下行消息发送给所述接入节点,所述接入节点查询自身的客户表,获取所述客户端的连接信息,并依据所述连接信息将所述下行消息转发给所述客户端;
所述客户端接收到下行消息后,通过所述接入节点向所述源节点发送下行消息的响应。
8.根据权利要求4所述基于RELOAD的客户端接入对等网络的方法,其特征在于,所述下行消息的交互,具体为:
对等网络中的源节点根据所述客户端的节点ID或者所述客户端对应的所述资源ID,按照对等算法向所述负责节点发送下行消息;
所述负责节点根据预定的策略从自身存储的所述接入表中选择一个接入节点,并依据所述接入节点的连接信息将所述下行消息转发给所述接入节点;
所述接入节点查询自身的客户表,获取所述客户端的连接信息,并依据所述连接信息将所述下行消息转发给所述客户端;
所述客户端接收到下行消息后,通过所述接入节点和负责节点向所述源节点发送下行消息的响应。
9.根据权利要求4所述基于RELOAD的客户端接入对等网络的方法,其特征在于,所述客户端存储的接入表、所述接入节点存储的客户表和所述负责节点存储的所述接入表统称为接入信息;
该方法进一步包括:对所述接入信息进行维护。
10.根据权利要求9所述基于RELOAD的客户端接入对等网络的方法,其特征在于,所述客户端与所述接入节点正常断链时,对所述接入信息进行维护,具体为:
除去断链的所述接入节点,所述客户端根据预定的策略从自身的接入表中选择一个接入节点,并通过所述接入节点向所述负责节点发送从接入表中删除所述断链的接入节点的请求;负责节点根据所述请求,从自身存储的所述接入表中删除所述断链的接入节点的连接信息;
所述断链的接入节点根据所述客户端发送的断链通知消息,从自身的客户表中删除所述客户端的连接信息;
所述客户端从自身的接入表中删除所述断链的接入节点的连接信息。
11.根据权利要求9所述基于RELOAD的客户端接入对等网络的方法,其特征在于,客户端与接入节点异常断链时,对所述接入信息进行维护,具体为:
检测到与所述客户端断链时,断链的所述接入节点从自身的客户表中删除所述客户端的连接信息,并向所述负责节点发送从接入表中删除自身的请求;
所述负责节点根据所述请求,从自身存储的接入表中删除所述断链的接入节点的连接信息;
检测到与接入节点断链时,所述客户端从自身的接入表中删除所述断链的接入节点的连接信息。
12.根据权利要求9所述基于RELOAD的客户端接入对等网络的方法,其特征在于,所述接入节点与所述客户端正常断链时,对所述接入信息进行维护,具体为:
断链的所述接入节点从自身的客户表中删除所述客户端的连接信息;
接收到所述断链的接入节点发送的断链通知消息后,所述客户端根据预定的策略,除去所述断链的接入节点,从自身的接入表中选择一个接入节点,并通过选择的接入节点向负责节点发送从接入表中删除所述断链的接入节点的请求;所述负责节点根据所述请求,从自身的接入表中删除所述断链的接入节点的连接信息;
接收到所述断链的接入节点发送的断链通知消息后,所述客户端从自身的接入表中删除断链的接入节点的连接信息。
13.根据权利要求9所述基于RELOAD的客户端接入对等网络的方法,其特征在于,所述接入节点与所述客户端异常断链时,对所述接入信息进行维护,具体为:
检测到与接入节点断链时,所述客户端从自身的接入表中删除所述断链的接入节点的连接信息;
所述客户端根据预定的策略,除去所述断链的接入节点,从自身的接入表中选择一个接入节点,并通过选择的接入节点向负责节点发送从接入表中删除所述断链的接入节点的请求;所述负责节点根据所述请求,从自身的接入表中删除所述断链的接入节点的连接信息;
接收到客户端的断链通知消息后,所述断链的接入节点从自身的客户表中删除客户端的连接信息。
14.根据权利要求4、5、6、7、8、10、12或13所述基于RELOAD的客户端接入对等网络的方法,其特征在于,
所述预定的策略为轮流、随机、就近、按负荷和按消息类别策略中的一种或几种。
15.一种基于RELOAD的客户端接入对等网络的***,其特征在于,该***包括:客户端和接入节点,
所述客户端,用于从候选接入节点列表中根据预定的策略选取多个接入节点,并通过所述多个接入节点接入对等网络;还用于通过所述多个接入节点与对等网络进行上下行消息的交互;
所述接入节点,用于供所述客户端接入对等网络,还用于供客户单与对等网络进行上下行消息的交互。
16.根据权利要求15所述基于RELOAD的客户端接入对等网络的***,其特征在于,该***进一步包括:源节点和目标节点;
所述源节点,用于通过所述接入节点向所述客户端发送下行消息;
所述目标节点,用于接收所述客户端通过所述接入节点发送的上行消息。
17.根据权利要求16所述基于RELOAD的客户端接入对等网络的***,其特征在于,该***进一步包括负责节点,用于存储并维护所述客户端的接入表,还用于协助所述源节点选择所述接入节点向所述客户端转发下行消息。
18.根据权利要求15所述基于RELOAD的客户端接入对等网络的***,其特征在于,所述客户端,进一步用于将所述接入节点的连接信息存储在自身的接入表中,并进行维护;
所述接入节点,进一步用于将所述客户端的连接信息存储在自身的客户表中,并进行维护。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010116398.7A CN102148847B (zh) | 2010-02-10 | 2010-02-10 | 基于reload的客户端接入对等网络的方法和*** |
PCT/CN2011/070738 WO2011097997A1 (zh) | 2010-02-10 | 2011-01-28 | 基于reload的客户端接入对等网络的方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010116398.7A CN102148847B (zh) | 2010-02-10 | 2010-02-10 | 基于reload的客户端接入对等网络的方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102148847A true CN102148847A (zh) | 2011-08-10 |
CN102148847B CN102148847B (zh) | 2016-04-13 |
Family
ID=44367261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010116398.7A Active CN102148847B (zh) | 2010-02-10 | 2010-02-10 | 基于reload的客户端接入对等网络的方法和*** |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102148847B (zh) |
WO (1) | WO2011097997A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111464664A (zh) * | 2020-06-19 | 2020-07-28 | 深圳市乙辰科技股份有限公司 | 多接入设备的交互式访问***、方法、装置和接入设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1549499A (zh) * | 2003-05-07 | 2004-11-24 | 中兴通讯股份有限公司 | 一种基于snmp协议的代理网管的实现方法 |
CN101261261A (zh) * | 2008-04-08 | 2008-09-10 | 杭州电子科技大学 | 基于ZigBee无线技术的水环境监测*** |
EP2148493A1 (en) * | 2008-07-24 | 2010-01-27 | Nokia Siemens Networks OY | P2P overlay network for administrative services in a digital network |
CN101989918A (zh) * | 2009-08-04 | 2011-03-23 | 中兴通讯股份有限公司 | 对等网络管理***及其实现管理的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101170572A (zh) * | 2006-10-23 | 2008-04-30 | 日电(中国)有限公司 | 基于p2p sip技术实现的多媒体网络通信*** |
CN101060455B (zh) * | 2007-06-13 | 2012-07-18 | 中兴通讯股份有限公司 | 一种p2p网络应用方法 |
-
2010
- 2010-02-10 CN CN201010116398.7A patent/CN102148847B/zh active Active
-
2011
- 2011-01-28 WO PCT/CN2011/070738 patent/WO2011097997A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1549499A (zh) * | 2003-05-07 | 2004-11-24 | 中兴通讯股份有限公司 | 一种基于snmp协议的代理网管的实现方法 |
CN101261261A (zh) * | 2008-04-08 | 2008-09-10 | 杭州电子科技大学 | 基于ZigBee无线技术的水环境监测*** |
EP2148493A1 (en) * | 2008-07-24 | 2010-01-27 | Nokia Siemens Networks OY | P2P overlay network for administrative services in a digital network |
CN101989918A (zh) * | 2009-08-04 | 2011-03-23 | 中兴通讯股份有限公司 | 对等网络管理***及其实现管理的方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111464664A (zh) * | 2020-06-19 | 2020-07-28 | 深圳市乙辰科技股份有限公司 | 多接入设备的交互式访问***、方法、装置和接入设备 |
CN111464664B (zh) * | 2020-06-19 | 2021-02-19 | 深圳市乙辰科技股份有限公司 | 多接入设备的交互式访问***、方法、装置和接入设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2011097997A1 (zh) | 2011-08-18 |
CN102148847B (zh) | 2016-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111935315B (zh) | 区块同步方法及装置 | |
Ramanathan et al. | Finding good peers in peer-to-peer networks | |
JP4951717B2 (ja) | バックアップリソースを選択する方法、システム | |
JP5381998B2 (ja) | クラスタ制御システム、クラスタ制御方法、及びプログラム | |
US20100290347A1 (en) | Method, device and system for diagnosing whether nodes are abnormal in p2p network | |
EP1436957B1 (en) | Network location management system | |
US20130254415A1 (en) | Routing requests over a network | |
JP2009543447A5 (zh) | ||
CA2629230A1 (en) | Optimizing communication using scaleable peer groups | |
CN103475566A (zh) | 一种实时消息交换平台及分布式集群组建方法 | |
CN102447624A (zh) | 在服务器集群上实现负载均衡的方法、节点服务器及集群 | |
CN112055048B (zh) | 一种面向高吞吐率分布式账本的p2p网络通信方法和*** | |
CN111935314B (zh) | 区块链***、消息传输方法及装置 | |
JP2011521573A (ja) | オーバレイネットワークにおける分散ハッシュテーブルの維持 | |
CN102035861A (zh) | 一种单跳分布式哈希表叠加网络的负载均衡方法和*** | |
CN107689878A (zh) | 基于命名调度的tcp长连接负载均衡*** | |
CN101425958A (zh) | 一种p2p叠加网中请求应答方法、装置和*** | |
US7720008B2 (en) | Method for determining a leading subscriber in a network | |
CN109495526A (zh) | 一种报文发送方法、装置、***、电子设备及存储介质 | |
US8837323B2 (en) | Method for transmitting a message, network node and network | |
CN102148847B (zh) | 基于reload的客户端接入对等网络的方法和*** | |
Chae et al. | Fast discovery scheme using DHT-like overlay network for a large-scale DDS | |
CN102413038B (zh) | 一种路由下一跳不可达的处理方法及*** | |
CN108093147B (zh) | 一种分布式多级调度方法和设备 | |
KR100872170B1 (ko) | P2p 네트워크 다중 라우팅 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |