一种实现覆盖网互联的方法、系统和装置的制作方法

文档序号:7661269阅读:157来源:国知局

专利名称::一种实现覆盖网互联的方法、系统和装置的制作方法
技术领域
:本发明涉及网络通信技术,特别涉及一种实现覆盖网互联的方法、系统和装置。
背景技术
:对等网络(P2P)是近年来备受IT界关注的一种网络,与客户端/服务器(C/S)和浏览器/月良务器(B/S)结构的网络相比,P2P网络最显著的特点是不存在中心结点。现有的P2P网络的文件共享系统都存在不可控的缺点,即,无法推测文件共享系统所占用的资源,也无法预测在文件系统中进行查找所需要的时间,以及无法预测文件系统需求的带宽。为了解决文件共享系统不可控的缺点,业界提出了一种可扩展的重叠网络,这种网络主要以分布式哈希表(DHT)为基础进行网络的配置。后来又演化出了DHT算法的演进算法,例如,Chord算法、内容可定位网络(CAN)算法、Pastry算法、Skipnet算法和Tapestry算法等。基于DHT算法及DHT演进算法的DHT网络都是独立的自我控制和自我共享的网络,然而一个DHT网络中的结点无法获取其他DHT网络平台上的资源,因此DHT网络之间无法实现互联和资源共享,因此就造成了资源的浪费和共享效率的低下。从商用的角度来说,DHT服务提供商(DSP)部署的网络一般会受到区域的限制,但随着应用全球化进程的发展,实现DHT网络之间的互联是最经济、最合适的方式。从技术的角度来说,openDHT网络为用户终端提供通用的接口,用户终端可以使用简单的put和get来存储或获取键值对,而DHT最基本的组织和查找方式是基于键值路由(KBR),现有的结构化P2P网络都使用KBR路由方式,因此DHT网络之间的互联在技术上是可行的。对等点对点供应商(P4)对DHT网络的互联进行了探索,图1为现有技术中P4网络的结构示意图。如图1所示,DSP向用户终端提供服务时,首先将DHT代理服务器的IP地址发送给所有的用户终端。一个DHT网络中的用户终端可以通过DHT代理服务器获取其他DHT网络中的资源。用户终端Al和用户终端A2属于第一DHT网络,用户终端Bl和用户终端B2属于第二DHT网络,如果用户终端A1要获取用户终端B2上的信息,用户终端Al首先向第一DHT代理服务器发送请求,第一DHT代理服务器通过第二DHT代理服务器将该请求发送给用户终端B2。用户终端B2接收到该请求后可以将信息通过第二DHT代理服务器和第一DHT代理服务器发送给用户终端Al,因此可以实现第一DHT网络和第二DHT网络的通信。P4能够实现DHT网络之间的互联,但会存在如下问题第一、在互联的组织上,P4提出了以树状结构进行广播的方式,通过DHT代理服务器进行信息的中转,但这种结构会加重DHT代理服务器的负担。会出现DHT网络中DHT代理服务器负担过重,而其他服务器负担较轻的问题,无法保证网络中结点的负载均衡,从而会出现因为DHT代理服务器的负担过重而出现的宕机现象,造成DHT网络的不稳定。第二、每个DSP都要架设一个或多个DHT代理服务器,使用域名服务器(DNS)将用户终端的路由请求重定向到架设的服务器上,因此需要修改用户终端的信息,因此会造成系统成本的提高。第三、当新的DHT网络加入互联时,需要更新所有的DHT代理服务器,增加新的成员信息,因此维护系统所需的工作量较大。第四、不同的DSP可能架设多个DHT代理服务器,需要部署DHT代理服务器和用户终端以使用户体验不受影响。例如,建立DHT代理服务器和用户终端之间的对应关系,用户终端通过为其服务的DHT代理服务器与其他DHT网络中的用户终端或服务器进行通信,这些操作无疑会增加系统的复杂度。可见,现有技术中,实现DHT网络互联的技术方案无法保证网络中结点的负载均衡。
发明内容本发明的实施例提供一种实现覆盖网互联的方法,通过使用该方法可以保证结点的负载均衡。本发明的实施例提供一种实现覆盖网互联的装置,通过使用该装置可以保证结点的负载均衡。本发明的实施例提供一种实现覆盖网互联的系统,通过使用该系统可以保证结点的负载均衡。为了实现上述发明目的,本发明的实施例提供一种实现覆盖网互联的方法,该方法包括以下步骤第一覆盖网中的第一结点在第二覆盖网中选择与自身唯一对应的第二结点作为兄弟结点;所述第一结点接收路由请求,当确定所述路由请求的目的网络为所述第二覆盖网时,根据所述路由请求查找所述第二结点的信息,根据所述第二结点的信息,将所述路由请求发送给所述第二结点;当判定所述第二结点不是目的结点时,将所述路由请求发送给目的结点。本发明实施例提供了一种实现覆盖网互联的装置,该装置包括第一结点,用于在第二覆盖网中选择与自身唯一对应的第二结点作为兄弟结点,接收路由请求,当确定所述路由请求的目的网络为所述第二覆盖网时,根据所述路由请求查找所述第二结点的信息,根据所述第二结点的信息,将所述路由请求发送给所述第二结点;所述第二结点,用于接收所述第一结点发送的路由请求,当确定自身不是目的结点时,将所述路由请求发送给目的结点。本发明实施例提供了一种实现覆盖网互联的系统,该系统包括用户终端,用于向第一覆盖网中的第一结点发送路由请求;所述第一结点,用于在第二覆盖网中选择与自身唯一对应的第二结点作为兄弟结点,接收路由请求,当确定所述路由请求的目的网络为所述第二覆盖网时,根据所述路由请求查找所述第二结点的信息,根据所述第二结点的信息,将所述路由请求发送给所述第二结点;所述第二结点,用于接收所述第一结点发送的路由请求,当确定自身不是目的结点时,将所述路由请求发送给目的结点。通过本发明的技术方案,第一覆盖网中的第一结点在第二覆盖网中选择第二结点作为兄弟结点,该第二结点在第一覆盖网中只对应第一结点,保证了第一结点到第二覆盖网的路由路径是唯一的,不会出现第二结点需要接收第一覆盖网中多个结点发起的路由请求的情况,也不会出现第一结点将路由请求发送到第二覆盖网中多个结点的情况。只要用户终端发起的路由请求分布是均匀的,每个结点接收到路由请求,将该路由请求发送到目的结点的路由路径都是不相同的,因此保证了结点的负载是均衡的,减小了单点故障的几率,提高了覆盖网的稳定性。与现有技术相比,在本发明实施例中不包括在覆盖网之间进行信息转发的代理服务器,因此降低了了系统成本,减少了维护系统所需的工作量,降低了系统的复杂度。图1为现有技术中P4网络的结构示意图;图2为本发明实施例的实现兄弟结点选择的结构示意图;图3为本发明实施例的实现覆盖网互联的方法的流程示意图;图3a为图3所示实施例中实现兄弟结点全相联的结构示意图;图4为本发明实施例的实现覆盖网互联的系统的结构示意图;图4a为图4中结点AA和结点DD的内部结构示意图。为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。在本发明实施例中,第一覆盖网中的第一结点首先在第二覆盖网中选择第二结点作为兄弟结点,所述第二结点唯一对应所述第一结点;第一结点接收路由请求,当确定所述路由请求的目的网络为所述第二覆盖网时,将所述路由请求发送给所述第二覆盖网中的第二结点。要实现第一覆盖网和第二覆盖网的互联,第一覆盖网中的结点需要在第二覆盖网中选择兄弟结点。例如,第一覆盖网中的第一结点首先需要在第二覆盖网中选择第二结点作为兄弟结点,然后第一结点将发往第二覆盖网的路由请求发送到第二结点,这里所述的第一结点和第二结点分别为结点A和结点B,第一覆盖网和第二覆盖网分别为CANXX和CANYY。在下面的实施例中介绍如何选择兄弟结点。图2为本发明实施例的实现兄弟结点选择的结构示意图。图2中示出了两个网络CANXX和CANYY。其中,CANXX包括结点B、结点C和结点D,CANYY包括结点A。结点A在CANXX中的兄弟结点是指结点A需要路由到CANXX时经过的入口结点。结点A根据DHT算法,或DHT算法的演进算法在CANXX中选4奪兄弟结点,可以保i正选择到的兄弟结点唯一对应结点A,保证结点A到CANXX的路由的唯一性。下面具体介绍结点A才艮据DHT算法,或DHT算法的演进算法在CANXX中选择兄弟结点的过程首先,需要先为结点A和CANXX中的一个结点分配相同的本地结点标识(LNodeID),在本实施例中,预先为结点A和结点D分配相同的LNodeID。然后,结点A在CANXX中任意选择一个结点,将自己的LNodeID发送给该结点。例如,结点A将自己的LNodeID发送给结点B,结点B接收到该LNodeID后,首先将该LNodeID与自己的LNodeID进行比较。因为预先为两者分配的LNodeID不相同,所以结点B将该LNodeID作为key在CANXX中路由,如果结点D接收到该LNodeID,经比较后发现该LNodeID与自己的LNodeID相同,则结点D就是结点A在CANXX中的兄弟结点。当结点D确定自己为结点A的兄弟结点后,结点A和结点D会将对方的信息记录在自己的全局路由表(GRT)中。因为CAN算法为DHT算法的演进算法,所以根据CAN算法选择兄弟结点,也能够保证两个不同的CAN网络中,有且仅有一对结点的LNodeID是相同的,因此能够保证路由的唯一性,所以结点A在CANXX网络中的兄弟结点是唯一的。此外需要说明的是,结点D是结点A在CANXX中的兄弟结点,那么结点A不一定是结点D在CANYY中的兄弟结点,所以兄弟结点之间的关系可以是单向的。因此可以看出,一个覆盖网中的结点在另外一个覆盖网中的兄弟结点是唯一的,每个DLCN网络中的兄弟结点都是单向、确定、且唯一的。至此,结束对如何选择兄弟结点的方法的介绍。在选择好兄弟结点之后,就可以实现覆盖网之间的互联,在下面的实施例中介绍实现覆盖网互联的方法。图3为本发明实施例的实现覆盖网互联的方法的流程示意图。在本实施例中包含3个覆盖网,分别为包含结点AA、结点BB和结点CC的CANA,包含结点DD、结点EE和结点FF的CANB,以及包含结点GG、结点HH和结点II的CANC。如图3所示,该方法包括如下步骤步骤310:为覆盖网及覆盖网中的结点命名。步骤320:CANA中的结点AA在CANB中选择结点DD作为兄弟结点,该结点DDp舉一^f应结点AA。步骤330:覆盖网中的每个结点维护各自的GRT。步骤340:结点AA接收用户终端发起的路由请求。步骤350:结点AA判断接收到的路由请求是否为远程路由请求,如果是则执行步骤351;否则,执行步骤352。步骤351:当该路由请求的目的网络为CANB时,将该路由请求发送纟合结点DD。步骤352:按照本地路由请求进行处理,结束本流程。步骤360:结点DD根据接收到的路由请求判断自己是不是目的结点,当不是目的结点时,执行步骤361;否则执行步骤362。步骤361:结点DD将该路由请求发送给目的结点。步骤362:结束本流程。上述步骤310~步骤362的具体操作为在步骤310中为覆盖网及覆盖网中的结点命名的方法具体为DLCN在初始化时为每个覆盖网设置一个全局唯一的名称,例如,CANA、CANB和CANC。当用户终端需要访问指定的key时,只需在key之前加上覆盖网的名称,即可以访问该网络中的key。为覆盖网中的每个结点设置一个全局唯一的全局结点标识(GNodeID)=覆盖网名标识(NetworklD)十本地结点标识(LNodeID)。在不同的覆盖网中,不同结点的LNodeID可以是相同的,但因为不同覆盖网的NetworklD是不同的,所以DLCN中不同覆盖网中的结点的GNodeID是唯一的。预先为结点AA、结点DD和结点GG分配相同的LNodeID。在步骤320中结点AA可以采用全相联的方式或者DHT相联的方式在CANB中选择兄弟结点全相联方式CANA中的结点AA分别根据图2所示实施例中选择兄弟结点的方法,直接选择CANB中的结点DD和CANC中的结点GG作为兄弟结点。但结点DD在CANA中的兄弟结点却不一定是结点AA,所以一个结点在另外一个覆盖网络中的兄弟结点有可能是单向的。DHT相联方式结点AA要选择CANB中的结点DD作为自己的兄弟结点,可以首先根据图2所示实施例中选择兄弟结点的方法,选择CANC中的结点GG作为自己在CANC中的兄弟结点。结点GG根据图2所示实施例中选择兄弟结点的方法,选择CANB中的结点DD作为自己在CANB中的兄弟结点,那么结点DD即为结点AA在CANB中的兄弟结点。在步骤330中,在全相连和DHT方式下,结点AA需要对GRT进^f亍维护,具体方法为在全相联方式下CANA中的结点AA的GRT中至少记录有CANB中的结点DD和CANC中GG的信息,还可以将结点DD和结点GG的兄弟结点作为自己的兄弟结点,并将结点DD和结点GG的兄弟结点的信息记录在自己的GRT中,将自己的GRT信息更新至自己的邻居结点中。结点DD和结点GG的信息可以包括结点DD和结点GG对方的GNodeID,以及结点DD和结点GG对方的IP地址,对方兄弟结点的信息。在DHT相联的方式下结点AA和结点GG分别在自己的GRT中记录对方的信息。结点GG和结点DD分别在自己的GRT中记录对方的信息。这样,结点AA就可以通过结点GG找到它在CANB中的兄弟结点DD。在全相联和DHT相连的方式下,结点对GRT进行维护的方法是不同的,将在后面的内容中介绍结点如何在这两种方式下对GRT进行维护。步骤340中在路由请求中携带目的结点的信息,可以包括目的结点所在网络的NetworkID和目的结点的LNodeID。步骤350中结点AA接收用户终端的路由请求,该路由请求可以是put请求或者get请求。通过路由请求中Gkey的长度或标志位判断该^各由请求是否为远程路由请求,如果Gkey的标志位所置的信息代表该路由请求为远程路由请求,或者Gkey的长度为目的结点的IP地址的长度加上目的网络名称的长度,那么就表示该路由请求为远程路由请求。其中,实现该路由请求判断的过程如下结点AA接收客户端请求,判断该请求是否为本地路由请求,如杲是本地路由请求,则将请求在本地进行路由。如果该请求为远程;洛由请求,则查找结点AA在目标网络中兄弟结点的IP地址,并将该路由请求发送给该兄弟结点。步骤351:结点AA将路由请求发送给结点DD的方法可以为在全相联的方式下如果路由请求中携带的NetworkID为CANB的NetworkID时,结点AA确定该路由请求的目的网络为CANB。然后结点AA根据步骤330中维护的GRT表中的兄弟结点DD的IP地址,将路由请求发送给结点DD。在DHT相联的方式下结点AA在自己的GRT中查找到兄弟结点GG的IP地址,将路由请求发送给结点GG。结点GG接收到该路由请求后,在自己的GRT中查找到兄弟结点DD的IP地址,将该路由请求发送给结点DD。步骤352:如果判断该路由请求为本地路由请求,结点AA会按照现有技术中的CAN算法将路由请求路由到目的结点。步骤360中结点DD判断自己不是目的结点的方法为在全相联和DHT相联的方式下,结点DD将从接收到的路由请求中获取的LNodeID与自己的LNodeID相比较,如果两者不同则表示自己不是目的结点。步骤361中结点DD像处理本地请求一样将该路由请求发送给CANB中目的结点,即将该路由请求发送给LNodeID与^各由请求中携带的LNodeID相同的结点。其中,基于CAN算法将该路由请求发送给目的结点,该方法与现有技术中的相应处理方法相同,属于本领域技术人员公知的技术,这里就不做重复介绍。需要指出的是,步骤310~步骤330的操作并不是在每次实现覆盖网互联时都是需要的操作,只要在覆盖网之间首次进行互联通信时,或有新的覆盖网要加入时才需要执行步骤310~步骤330的操作。在本实施例中,可以看出,全相联方式为结点AA直接选择CANB中的结点DD作为兄弟结点,且将结点DD的兄弟结点作为自己的兄弟结点,将结点DD及其兄弟结点的信息记录在自己的GRT中。当接收到来自用户终端的路由请求,且判定该路由请求的目的网络为CANB时,在自己的GRT中查找结点DD的IP地址,将路由请求发送给结点DD。DHT相连方式为结点AA首先选择CANC中的结点GG作为在CANC中的兄弟结点,然后结点GG在CANB中选择结点DD作为自己在CANB中的兄弟结点,那么结点DD即为结点AA在CANB中的兄弟结点。当结点AA接收到来自用户的路由请求,且判定该路由请求的目的网络为CANB时,在自己的GRT中查找到结点GG的IP地址,根据该IP地址将路由请求发送给结点GG,结点GG在自己的GRT中查找到结点DD的IP地址j艮据该IP地址将该3各由请求发送给结点DD。由上述描述可知,在本实施例中,如果接收用户终端发起路由请求的结点不同,即使目的结点相同,到达目的结点的if各经也可能不同。例如,如果接收路由请求的结点是结点BB,而不是结点AA,那么该路由路经将会是结点BB-〉结点EE-〉结点JJ,而不是结点AA-〉结点DD-〉结点JJ。还有结点AA在CANB中的兄弟结点为结点DD,但结点DD在CANA中的兄弟结点不一定是结点AA。相比于现有技术中通过DHT代理服务器进行中转的方法,在本发明实施例中可以通过不同的路由路径到达目的结点,从任意一个结点出发的互联路由都是不同的,只要用户终端选择的接入DLCN网络的结点不同,就能够保证结点的负载均衡,防止单点故障,提高覆盖网的稳定性。此外,不需要使用专门的DHT代理服务器,因而可以降低系统的成本,减少系统维护的复杂度,解决了因部署DHT代理服务器和用户终端而影响用户体验的问题。在本发明的实施例中,不改变原有系统的拓朴结构,只是在原有的key之前加上覆盖网的名称作为前缀,在网络中进行路由,因此提供了简单的扩展方法,可以与原来的系统较好地兼容。至此,结束对图3所示实现覆盖网互联的方法的介绍。在接下来的实施中介绍在全相联方式下,当覆盖网络加入或退出时,如何进行GRT维护的方法。图3a为图3所示实施例中实现兄弟结点全相联的结构示意图。所谓全相联方式是指,每个结点与自己所在的DLCN中的所有兄弟结点直接进行通信。将接收到远程路由请求只需要一跳(hop)就能发送到目的覆盖网络,到达目的覆盖网的算法的复杂度为O(1)。例如,如图3a所示,如果结点DD需要将路由请求发送给CANF中的兄弟结点FF,那么结点DD只需根据路由请求中的目的结点的GNodeID,在GRT中查找到兄弟结点FF的地址,将该路由请求发送给结点FF。在这种全相联的方式下,每个结点除了要维护自己所在覆盖网中的本地路由表(LRT)夕卜,还要维护一个GRT。在一个结点的GRT中存放着该结点的所有兄弟结点的GNodeID和IP地址信息。当接收到一个远程路由请求时,根据GNodeID查找到其兄弟结点的IP地址,根据该IP地址将路由请求发送到该兄弟结点。当有新的CAN网络加入或退出时,结点需要对其GRT进行更新,以保证该GRT中记录的信息的正确性。当有新的CAN网络加入互联时,结点需要维护它自己的GRT,例如,结点DD维护其GRT的方法如下结点DD需要根据DHT算法,或根据DHT算法的演化算法,在CANG中选择结点GG作为兄弟结点,并将结点GG的信息加入到自己的GRT中。在加入结点GG的信息之前,结点DD的GRT如表1所示<table>tableseeoriginaldocumentpage17</column></row><table>表1从表l中可以看出,结点DD有5个兄弟结点,分别为结点AA、结点BB、结点CC、结点EE和结点FF。表1的第一列为结点DD的兄弟结点的NetworkID,第二列为结点DD的兄弟结点的LNodeID,最后一列是结点DD的兄弟结点的IP地址。如果CANG要加入该DLCN,首先为结点GG分配G作为NetworkID,GG作为LNodeID,然后为该结点GG分配IP地址。结点DD将结点GG的信息记录在自己的GRT中,将结点GG的兄弟结点作为自己的兄弟结点,将结点GG的兄弟结点的信息记录在自己的GRT中,然后结点DD再将自己的信息更新至所有兄弟结点及邻居结点的GRT中。同样,结点GG也可以通过访问结点DD的GRT(如表1所示),获取结点DD的兄弟结点的信息,并将这些兄弟结点作为自己的兄弟结点,将表1中的信息加入到自己的GRT中,然后结点GG将自己的信息更新到所有的兄弟结点的GRT中,还可以将自己的信息更新至所在的CANG中的邻居结点中的GRT中。当有新的覆盖网络加入时,实现GRT更新的过程如下如果有新的覆盖网要加入到DLCN中,结点DD首先找到在该覆盖网中的兄弟结点GG,并初始化GRT。然后结点DD将GG的兄弟结点更新至自己的GRT中,并获取GG的兄弟结点的GRT。遍历GG的兄弟结点的所有兄弟结点,并将这些结点作为自己的兄弟结点。最后,结点DD将自己的信息更新至GG的兄弟结点的所有兄弟结点,并通知自己的邻居结点更新GRT。从上述描迷可以看出,当结点DD在维护自己的GRT的过程中将兄弟结点GG的兄弟结点作为自己的兄弟结点,但实际上结点GG的兄弟结点不一定是自己的兄弟结点,所以结点DD和其他结点需要定期修正自己的GRT,以确保GRT的正确性和高效性。结点DD修正自己的GRT的方法为结点DD根据图2所示实施例中描述的选择兄弟结点的方法验证自己GRT中的兄弟结点是否为真正的兄弟结点,若不是则删除该兄弟结点的信息当有覆盖网络要退出系统时,结点维护其GRT的方法如下假如结点CANG要退出DLCN,那么结点GG向所有兄弟结点,以及该结点GG在CANG中的邻居结点发送退出消息。接收到该消息的所有兄弟结点和邻居结点删除结点GG在自己GRT中的信息。该信息可以包括结点GG的NetworkID、LNodeID和IP地址。此外,所有结点GG的兄弟结点向自己的兄弟结点和邻居结点发送结点GG的退出消息,接收到结点GG退出的消息的结点删除结点GG在自己GRT中的信息。从图3a所示的实施例中可以看出,远程路由请求只需lhop即可到达目的覆盖网,采用该方式进行远程路由的复杂度与现有技术中基于CAN算法实现本地路由的复杂度相同,都为0(D*A^),所以采用这种全相联的方式可以提高通信的效率。但是覆盖网中的每个结点需要维护所有兄弟结点的信息,当有网络要加入或退出DLCN时,所有结点的GRT都需要更新,当DLCN中覆盖网的数量较大时,这种全相联的方式并不是一种高效的连接方式。至此,完成对图3a所示实现兄弟结点全相联的方法的介绍。为了解决全相联方式带来的问题,在下面的实施例中介绍在DHT相联的方式下,当覆盖网络加入或退出时,如何进行GRT维护的方法。采用DHT相连的方式只需维护一部分兄弟结点的信息,根据DHT算法,或DHT算法的演进算法来决定要维护的兄弟结点的信息。其中,DHT算法的演进算法包括CAN算法、Chord算法、Pastry算法和SkipNet算法。结点在DHT相联方式下维护的GRT中的信息与全相联方式下维护的GRT信息相同。当网络加入互联时,网络中的每个结点加入到一个兄弟结点链上,例如,CANG要与CAND互联时,CANG可以先实现与CANC的互联,CANC再实现与CAND的互联,即可实现CANG与CAND的DHT相联。具体做法为CANG覆盖网内的结点GG将CANC网内的结点CC作为兄弟结点,并将对方的信息记录在自己的GRT中,结点CC将CAND网内的结点DD作为兄弟结点,将对方的信息记录在自己的GRT中。在实现互联时,结点GG即可通过结点CC实现与结点DD的互联。当网络CANG要退出互联时,网络中的结点GG会通过广播的形式通知兄弟链上的兄弟结点要退出DLCN,具体做法是结点GG向所有兄弟结点和邻居结点发送退出消息,结点GG的所有兄弟结点和邻居结点删除结点GG在自己GRT中的信息,结点GG的所有兄弟结点将结点GG退出的消息发送给自己的兄弟结点和邻居结点,接收到结点GG的退出消息的结点删除结点GG在自己GRT中的消息。DLCN中,本地网络是要加入或退出的结点所属的网络,远程网络是指要加入或退出结点所属网络以外的网络。关于结点的加入和退出当有新的结点要加入时,在对本地网络进行更新后,例如,对本地网络中的邻居结点的信息进行更新后,邻居结点将新结点的信息记录在自己的GRT中。新结点至少访问自己的一个邻居结点,将邻居结点的GRT加入到自己的GRT当中。当结点要退出时,在本地网络中可以根据DHT算法或DHT的演进算法,例如,根据CAN算法对该结点,及该结点的邻居结点进行处理,该方法与现有技术中的相应方法相同,这里就不做赘述。远程网络中的结点采取鴕鸟政策进行处理,即只有当远程网络中的结点访问到该结点失效时,才对自己的GRT进行修正,同时找一个新的兄弟结点来代替退出的结点。同样在DHT相连的模式下,同样需要对GRT进行定期维护,让每个结点定期更新自己的GRT,以确保GRT中所存的信息的正确性。对GRT进行更新的方法为采用图2所示实施例选择兄弟结点的方法,如果需要更新的结点没有响应,可以访问该结点的邻居结点,从邻居结点上获取所要更新的结点的信息,再对该结点的信息进行更新。在DHT相连的方式下,相连的复杂度为LogM+Ni1/D,M为DLCN网络中覆盖网的个数。至此,结束对实现兄弟结点DHT相连的方法的介绍。在上面的实施例中分别介绍了如何选择兄弟结点、实现覆盖网互联,以及在全相联方式和DHT方式下维护GRT的方法,在接下来的实施例中介绍实现覆盖网互联的系统。图4为本发明实施例的实现覆盖网互联的系统的结构示意图。如图4所示,该系统包括用户终端、第一覆盖网、第二覆盖网和第三覆盖网。其中,第一覆盖网包括结点AA、结点BB和结点CC,第二覆盖网包括结点DD、结点EE和结点FF,第三覆盖网中包括结点GG、结点HH和结点II。上述这些结点都是执行服务功能的实体,可以是但不限定于服务器。第一覆盖网中的第一结点分别需要在第二覆盖网和第三覆盖网中选择第二结点和第三结点作为兄弟结点。例如在本实施例中,结点AA选择第二覆盖网中的结点DD作为兄弟结点,选择第三覆盖网中的结点GG作为兄弟结点。需要指出的是,DHT算法,或DHT算法的演化算法保证了结点AA唯一对应第二覆盖网中的结点DD,结点AA唯一对应第三覆盖网中的结点GG。用户终端,用于向结点AA发起路由请求。结点AA,用于根据DHT算法,或根据DHT算法的演化算法,在第二覆盖网和第三覆盖网中分别选择结点DD和GG作为兄弟结点,结点DD和结点GG唯一对应结点AA,接收用户终端发送的路由请求,当确定该路由请求的目的网络为第二覆盖网时,将接收到的路由请求发送给结点DD。结点DD,用于接收结点AA发送的路由请求。如果结点DD不是用户终端发起的路由请求的目的结点,在该实施例中还进一步包括结点JJ,结点JJ被定义为目的结点。结点DD将接收到的路由请求路由到目的结点JJ。/人图4中可以看出,结点BB、结点EE和结点HH,以及结点CC、结点FF和结点II之间的连接关系和功能与上述结点AA和结点DD之间的连接关系和功能相同,关于它们之间如何实现通信,这里就不做重复介绍。需要指出的是,实现覆盖网互联的系统中至少包括两个覆盖网,在本实施例中第一覆盖网和第二覆盖网、第一覆盖网和第三覆盖网、以及第二覆盖网和第三覆盖网都可以组成基本的系统。在本实施例中,三个覆盖网都是基于CAN算法的CAN网络,例如,第一覆盖网为CANA、第二覆盖网为CANB、第三覆盖网为CANC,该系统也被称为分布式互联CAN网络(DLCN)。其他基于DHT算法,或DHT演进算法的覆盖网也在本发明的保护范围之内,例如,第一覆盖网可以为CAN网络,第二覆盖网可以为Pastry覆盖网,第三覆盖网可以为Tapestry覆盖网等。至此,结束对图4所示实现覆盖网互联的系统的介绍。基于图4所示的系统,下面以结点AA和结点DD为例介绍上述覆盖网中结点的内部结构。图4a为图4中结点AA和结点DD的内部结构示意图。如图4a所示,结点AA和结点DD组成了实现覆盖网互联的装置。预先分别为结点AA和结点DD配置NetworkID和LNodeID,且结点AA和结点DD的LNodeID相等。结点AA包括第一接收发送模块、第一判断模块和第一GRT管理模块,结点DD包括第二接收发送模块、第二判断模块和第二GRT管理模块。其中,第一接收发送模块接收用户终端发起的路由请求,将该路由请求发送给第一判断模块,通过CANB中的任意一个结点将结点AA的LNodeID发送给第二接收发送模块。第一判断模块接收第一接收发送模块发送的路由请求,从该路由请求中解析出NetworkID,当所述从该^各由请求中解析出的NetworkID与所述结点DD的NetworkID相同时,判定所述路由请求的目的网络为CANB,根据该NetworkID查找到结点DD的地址,根据结点DD的地址将路由请求发送给第二接收发送模块。第二接收发送模块接收第一接收发送模块发送的结点AA的LNodeID和用户终端的路由请求,并转发给第二判断模块。第二判断模块接收结点AA的LNodeID和路由请求,将结点AA的LNodeID与结点DD的LNodeID进行比4交,当两者相同时确定结点DD为结点AA的兄弟结点。第一GRT管理模块可以用于存储和管理结点DD和结点GG等的信息,存储和管理结点AA的其他兄弟结点和邻居结点的信息。第二GRT管理模块可以用于存储和管理管理结点AA和结点GG等的信息,还可以用于存储和管理结点DD的其他兄弟结点和邻居结点的信息。在图4中,如果结点DD不是用户终端发起的路由请求的目的结点,结点JJ为目的结点,那么第一判断模块进一步从路由请求中解析出LNodeID,将该LNodeID通过所述第二接收发送模块发送给所述第二判断模块。第二判断模块进一步用于接收该LNodeID,当判定所该LNodeID与结点DD的LNodeID不相匹配时,将接收到的路由请求通过所述第二接收发送模块发送给目的结点JJ。目的结点JJ接收第二接收发送模块发送的路由请求。至此,结束对图4a所示覆盖网中结点的内部结构的介绍。从本发明的实施例可以看出,本发明的实施例主要以DHT的演进算法之一CAN算法为例介绍了实现覆盖网互联的方法、系统和装置。对于其他基于DHT算法,或DHT算法的演进算法的覆盖网实现互联的方法和系统也在本发明的保护范围之内。该方案不仅适用于基于DHT的结构化P2P网络,对于其他与P2P网络具有相似的底层路由机制和结点组织方式的网络,例如,eMule和美国电信(BT)网络,只要对它们的结点进行升级,使得网络中的结点具有建立和维护兄弟结点的能力,也可以使用本发明的技术方案在覆盖网之间实现互联通信。在DLCN网络中,每个结点组建和维护的GRT都是独一无二的,从任何一个结点出发到达目的结点的互联路由都不同,所以只要用户终端选择的接入网络的结点不是同一个,即可以实现结点的负载均衡,减少因结点的负载过大造成的宕机现象,提高覆盖网的稳定性。在本发明的实施例中没有专门的结点作为门(gate)结点,所以即使某条线路出现故障,可以选择其它路由路径进行工作。由于本发明实施例采用可扩展的命名方式,即不改变每个CAN的自有路由和GNodeID的命名方式,各个子网中也可以存在相同的key,因为每个覆盖网中的结点的NetworkID是不同的。对于客户端来说,不需要做任何修改即可实现覆盖网的互联。此外,本发明实施例不使用代理服务器,因此减小了系统成本,降低了系统的复杂性。综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。权利要求1、一种实现覆盖网互联的方法,其特征在于,包括第一覆盖网中的第一结点在第二覆盖网中选择与自身唯一对应的第二结点作为兄弟结点;所述第一结点接收路由请求,当确定所述路由请求的目的网络为所述第二覆盖网时,根据所述路由请求查找所述第二结点的信息,根据所述第二结点的信息,将所述路由请求发送给所述第二结点;当判定所述第二结点不是目的结点时,将所述路由请求发送给目的结点。2、根据权利要求1所述的方法,其特征在于,所述第一覆盖网中的第一结点在第二覆盖网中选择与自身唯一对应的第二结点作为兄弟结点包括所述第一覆盖网中的第一结点根据分布式哈希表DHT算法,或根据DHT算法的演化算法,在第二覆盖网中选择第二结点作为兄弟结点。3、根据权利要求2所述的方法,其特征在于,进一步包括为所述第一结点和第二结点分配相同的本地结点标识LNodeID;所述第一覆盖网中的第一结点根据DHT算法,或根据DHT算法的演化算法,在第二覆盖网中选择第二结点作为兄弟结点的方法为所述第一结点将自己LNodeID发送给所述第二覆盖网中任意一个结点,接收到所述LNodeID的结点将接收到的LNodeID路由到第二结点;当第二结点确定所述第一结点的LNodeID与自己的LNodeID相同时,确定自己为所述第一结点的兄弟结点。4、根据权利要求1所述的方法,其特征在于,确定所述路由请求的目的网络为所述第二覆盖网的方法包括如果所述路由请求中携带的NetworkID与所述第二覆盖网的NetworkID相同,确定所述路由请求的目的网络为所述第二覆盖网。5、根据权利要求4所述的方法,其特征在于,进一步包括所述第一结点将所述第二结点的NetworkID、LNodeID和IP地址记录在自己的全局路由表(GRT)中;根据所述路由请求查找所述第二结点的信息,根据所述第二结点的信息,将所述路由请求发送给所述第二结点包括根据所述路由请求携带的NetworkID在所述GRT标中查找所述第二结点的IP地址,根据所述IP地址将所述路由请求发送给所述第二结点。6、根据权利要求1所述的方法,其特征在于,所述第一覆盖网中的第一结点在第二覆盖网中选择与自身唯一对应的第二结点作为兄弟结点包括所述第一覆盖网中的第一结点根据分布式哈希表DHT算法,或根据DHT算法的演化算法,在第三覆盖网中选择第三结点作为兄弟结点;所述第三覆盖网中的第三结点根据分布式哈希表DHT算法,或根据DHT算法的演化算法,在第二覆盖网中选择第二结点作为兄弟结点。7、根据权利要求6所述的方法,其特征在于,进一步包括所述第一结点将所述第三结点的NetworkID、LNodeID和IP地址记录在自己的GRT中,所述第三结点将所述第二结点的NetworkID、LNodeID和IP地址记录在自己的GRT中;根据所述路由请求查找所述第二结点的信息,根据所述第二结点的信息,将所述路由请求发送给所述第二结点包括所述第一结点在自己的GRT表中查找所述第三结点的IP地址,才艮据所述第三结点的IP地址,将所述路由请求发送给所述第三结点;所述第三结点根据所述路由请求携带的NetworkID在自己的GRT中查找所述第二结点的IP地址,根据所述IP地址将所述路由请求发送给所述第二结点。8、根据权利5所述的方法,其特征在于,进一步包括所述第一结点将所述第二结点的兄弟结点作为自己的兄弟结点,并将所述第二结点的兄弟结点的NetworkID、LNodeID和IP地址记录在自己的GRT中;所述第一结点将自身的NetworkID、LNodeID和IP地址更新至自己的邻居结点中。9、根据权利要求l所述的方法,其特征在于,判定所述第二结点不是目的结点的方法包括判断所述路由请求携带的LNodeID与所述第二结点的LNodeID是否相同,如果不等,则判定所述第二结点不是目的结点。10、根据权利要求1或9所述的方法,其特征在于,将所述路由请求发送给目的结点的方法包括将所述路由请求在所述第二覆盖网中路由,目的结点接收所述路由请求;其中,所述目的结点的LNodeID与所述路由请求中的LNodeID相同。11、根据权利要求1所述的方法,其特征在于,所述第一覆盖网和第二覆盖网为基于DHT算法,或DHT算法的演进算法的覆盖网。12、一种实现覆盖网互联的装置,其特征在于,该装置包括第一结点,用于在第二覆盖网中选择与自身唯一对应的第二结点作为兄弟结点,接收路由请求,当确定所述路由请求的目的网络为所述第二覆盖网时,根据所述路由请求查找所述第二结点的信息,根据所述第二结点的信息,将所述路由请求发送给所述第二结点;所述第二结点,用于接收所述第一结点发送的路由请求,当确定自身不是目的结点时,将所述路由请求发送给目的结点。13、根据权利要求12所述的装置,其特征在于,所述第一结点中预先配置有LNodeID,第二结点中预先配置有LNodeID和NetworkID;所述第一结点包括第一接收发送模块,用于接收路由请求,将所述路由请求发送给第一判断模块,通过所述第二覆盖网中的任意一个结点将所述第一结点的LNodeID发送给所述第二结点;所述第一判断模块,用于接收所述路由请求,从所述路由请求中解析出NetworkID,当所述从路由请求中解析出的NetworkID与所述第二结点的NetworkID相同时,判定所述路由请求的目的网络为所述第二覆盖网时,根据所述NetworkID查找到第二结点的IP地址,根据所述第二结点的IP地址将路由请求通过第一接收发送模块发送给第二结点。14、根据权利要求13所述的装置,其特征在于,所述第二结点包括第二接收发送模块,用于接收所述第一结点的LNodeID和所述第一接收发送模块发送的路由请求,并转发给所述第二判断模块;所述第二判断模块,用于将所述第一结点的LNodeID与自所述第二结点的LNodeID进行比较,当两者相同时确定自己为所述第一结点的兄弟结点。15、根据权利要求13或14所述的装置,其特征在于,所述第一结点进一步包括第一GRT管理模块,所述第二结点进一步包括第二GRT管理模块;所述第一GRT管理模块,用于保存所述第一结点和第二结点的信息;所述第二GRT管理模块,用于保存所述第一结点和第二结点的信息。16、一种实现覆盖网互联的系统,其特征在于,该系统包括用户终端,用于向第一覆盖网中的第一结点发送路由请求;所述第一结点,用于在第二覆盖网中选择与自身唯一对应的第二结点作为兄弟结点,接收路由请求,当确定所述路由请求的目的网络为所述第二覆盖网时,根据所述路由请求查找所述第二结点的信息,根据所述第二结点的信息,将所述路由请求发送给所述第二结点;所述第二结点,用于接收所述第一结点发送的路由请求,当确定自身不是目的结点时,将所述路由请求发送给目的结点。17、根据权利要求16所述的系统,其特征在于,所述第一结点中预先配置有LNodeID,第二结点中预先配置有LNodeID和NetworkID;所述第一结点包括第一接收发送模块,用于接收路由请求,将所述路由请求发送给第一判断模块,通过所述第二覆盖网中的任意一个结点将所述第一结点的LNodeID发送给所述第二结点;所述第一判断模块,用于接收所述路由请求,从所述路由请求中解析出NetworkID,当所述/人i各由请求中解析出的NetworkID与所述第二结点的NetworkID相同时,判定所述路由请求的目的网络为所述第二覆盖网时,根据所述NetworkID查找到第二结点的IP地址,根据所述第二结点的IP地址将路由请求通过第一接收发送模块发送给第二结点。18、根据权利要求17所述的系统,其特征在于,所述第二结点包括第二接收发送模块,用于接收所述第一结点的LNodeID和所述第一接收发送模块发送的路由请求,并转发给所述第二判断模块;所述第二判断模块,用于将所述第一结点的LNodeID与自所述第二结点的LNodeID进行比较,当两者相同时确定自己为所述第一结点的兄弟结点。全文摘要本发明提供一种实现覆盖网互联的方法,该方法包括以下步骤第一覆盖网中的第一结点在第二覆盖网中选择与自身唯一对应的第二结点作为兄弟结点;所述第一结点接收路由请求,当确定所述路由请求的目的网络为所述第二覆盖网时,根据所述路由请求查找所述第二结点的信息,根据所述第二结点的信息,将所述路由请求发送给所述第二结点;当判定所述第二结点不是目的结点时,将所述路由请求发送给目的结点。通过本发明的技术方案可以看出,只要用户终端发起的请求分布是均匀的,每个结点接收到路由请求,并将该路由请求发送到目的结点的路由路径都是不相同的,因此保证了结点的负载是均衡的,减小了单点故障的几率,提高了覆盖网的稳定性。文档编号H04L12/56GK101399739SQ200710151590公开日2009年4月1日申请日期2007年9月28日优先权日2007年9月28日发明者何均宏,张晰毅,邓倩妮申请人:华为技术有限公司;上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1