网络拓扑构成方法及节点 【技术领域】
本发明,涉及新加入节点加入到由多个节点构成的环型网络时的网络拓扑构成方法。另外,本发明,还涉及构成由多个节点构成的环型网络的节点和新加入到该环型网络的节点。
背景技术
参照图1~图5说明现有的网络拓扑构成方法(Gnutella使用的方法),具体地说,说明节点105新加入到包含节点101至104的网络的动作。
1.如图1所示,节点105在构成网络的多个节点101至104中与已知IP地址或URL(Universal Resource Language)的节点101之间确立连接。
2.如图2所示,节点105对节点101通过广播发送包含节点105地IP地址的Ping消息。
3.如图3所示,节点101把包含节点101的IP地址的Pong消息返发到节点105,同时把包含节点105的IP地址的Ping消息转发到节点102至104。
4.如图4所示,各节点102至104把包含各自的IP地址的Pong消息返发到节点105。
重复进行以上的步骤,这样,节点105就能够取得Ping消息的TTL(TimeTo Live)字段所指定的范围内的节点的IP地址。
5.如图5所示,节点105,参照被包含在接收到的Pong消息中的IP地址,与构成网络的节点101至104的各自确立连接。
这样一来,节点105就能够新加入到由节点101至104构成的网络中。
如上上述,在现有的网络拓扑构成方法中,被构成为了:新加入节点105利用Ping消息和Pong消息,随机加入到网络。
但是,在现有的网络拓扑构成方法中,存在有这样的问题:新加入节点105很难即刻掌握所参加的网络中的各节点间的位置关系,另外,为取得关于构成该网络的各节点的网络拓扑构成信息要花费时间。
在现有的网络拓扑构成方法中,存在有这样的问题:由于存在构成网络的各节点间的多个链路,所以在发生节点的故障或节点脱离该网络等的情况下,在邻接节点之间要进行多次用来更新包含有关上述链路的信息的网络拓扑构成信息的消息交换,由此,网络负荷增大,更新各节点内的网络拓扑构成信息要花费时间。
【专利文献1】特开2003-289302号公报
【专利文献2】特开平10-65664号公报
【发明内容】
因此,本发明是鉴于上述的问题而形成的,其目的是提供一种网络拓扑构成方法和节点,其特征在于:新加入节点用规定的算法参加到网络中,由此,新加入节点就可以即刻掌握相应网络中的各节点间的位置关系,而且相应网络中的节点的故障或脱离等的发生,也只影响该网络的局部的部分。
本发明的第一特征,是构成环型网络的节点,其特征在于:具备:管理部,其管理由本节点的识别信息生成的该本节点的散列值和由邻接节点的识别信息生成的该邻接节点的散列值;和计算部,其根据从新加入环型网络的新加入节点的识别信息生成的该新加入节点的散列值及上述本节点的散列值和上述邻接节点的散列值,计算该环型网络内的新加入节点的插入位置。
在本发明的第一特征中,还可以被构成为:具备:从新加入节点取得新加入节点的散列值的取得部、和对该新加入节点通知上述环型网络中的上述新加入节点的插入位置的通知部。
在本发明的第一特征中,上述计算部,也可以比较上述新加入节点的散列值与上述本节点的散列值和邻接节点的散列值,然后计算出该新加入节点的插入位置,使其在上述环型网络中各节点按散列值的顺序排列。
按照这样的发明,由于在上述环型网络中各节点按散列值的顺序排列起来构成网络拓扑,所以,即使是新加入节点也可以即刻掌握网络中的各节点间的位置关系。
另外,按照这样的发明,由于构成相应网络的各节点仅管理有关邻接节点的信息即可,所以,能够解决为取得关于构成相应网络的各节点的网络拓扑构成信息要花费时间的问题。
在本发明的第一特征中,上述管理部,管理从构成相应网络的全部节点的识别信息生成的该全部节点的散列值,上述计算部,根据上述新加入节点的散列值和上述全部节点的散列值,也可以计算该环型网络内的该新加入节点的插入位置。
在本发明的第一特征中,上述通知部,也可以将通知上述新加入节点的插入位置的节点,限定为上述新加入节点和上述邻接节点。
按照这样的发明,即使发生了节点的故障或节点脱离相应的网络等的情况下,也无需在邻接节点间多次进行用来更新包含有关上述链路的信息的网络拓扑构成信息的消息交换,从而能够减轻网络负荷,并能够解决各节点中的网络拓扑构成信息的更新中花费时间的问题。
本发明的第二特征,是新加入由多个节点构成的环型网络的节点,其特征在于:具备:发送部,其对构成上述环型网络的任意节点发送从本节点的识别信息生成的该本节点的散列值;和连接确立部,其根据从上述任意节点通知的上述环型网络中的本节点的插入位置,在与相应的节点间确立连接。
本发明的第三特征,是由多个节点构成的环型网络中的网络拓扑构成方法,其特征在于:根据从新加入上述环型网络的新加入节点的识别信息生成的该新加入节点的散列值和从构成上述环型网络的节点的识别信息生成的该节点的散列值,计算该环型网络内的新加入节点的插入位置。
如上说明过的,按照本发明,能够提供网络拓扑构成方法和节点,其特征在于:新加入节点用规定的算法参加到网络中,由此,新加入节点就可以即刻掌握相应网络中的各节点间的位置关系,而且,相应网络中的节点的故障或脱离等的发生,只影响相应网络的局部的部分。
【附图说明】
图1是现有技术中节点105确立与节点101间连接的动作的示图。
图2是现有技术中节点105对节点101发送Ping消息的动作的示图。
图3是现有技术中节点101对节点105发送Pong消息同时对各节点102至104发送Ping消息的动作的示图。
图4是现有技术中节点102至104对节点105发送Pong消息的动作的示图。
图5是现有技术中节点101与节点102至104之间确立连接的动作的示图。
图6是本发明的第一实施方式的新加入节点105新加入到环型网络前的状态的示图。
图7是本发明的第一实施方式的新加入节点105新加到入环型网络后的状态的示图。
图8是本发明的第一实施方式的新加入节点105的功能框图。
图9是本发明的第一实施方式的构成环型网络的节点101的功能框图。
图10是本发明的第一实施方式中新加入节点105新加入到环型网络时的新加入节点105的动作的流程图。
图11是本发明的第一实施方式中新加入节点105新加入到环型网络前后的新加入节点105的分布式散列表的变化的说明图。
图12是本发明的第一实施方式中新加入节点105新加入到环型网络时的节点101的动作的流程图。
图13是本发明的第一实施方式中新加入节点105新加入环型网络时节点101计算新加入节点105的插入位置的动作的流程图。
图14是本发明的第一实施方式中新加入节点105新加入到环型网络前后的节点101的分布式散列表的变化的说明图。
图15是本发明的第二实施方式的新加入节点105和节点101的分布式散列表的一例的示图。
图16是本发明的第二实施方式中新加入节点105新加入到环型网络时的节点101的动作的流程图。
图17是本发明的第二实施方式中新加入节点105新加入到环型网络前后的节点101的分布式散列表的变化的说明图。
【具体实施方式】
<本发明的第一实施方式>
以下参照图6至图15说明本发明的第一实施方式。本实施方式中,如图6所示,说明新加入节点105新加入到由多个节点101至103等构成的环型网络的例子。在本实施方式中,如图7所示,假定新加入节点105是在相应的环型网络中要被插入在节点101与节点102之间的节点。
在本实施方式中,如图6和图7所示,节点101的散列值是“Ni”,节点102的散列值是“Ni+1”,节点103的散列值是“Ni-1”,节点105的散列值是“N”。另外,假定节点101、102、103、105的散列值是分别由节点101、102、103、105的识别信息(例如,UUID(Universal Unique Identifier)等)来生成。
首先,参照图8,说明新加入节点105的功能。如图8所示,新加入节点105,具备有:分布式散列表(DHT:Distributed Hash Tabke)100a、网络加入处理部100b和网络拓扑构成信息发送接收部100c。
分布式散列表100a,管理由本节点105的识别信息生成的本节点105的散列值“N”和由邻接节点的识别信息生成的该邻接节点的散列值。
具体地说,如图8所示,分布式散列表100a,存储将“节点位置”、“散列值”、“节点地址”相关联起来的记录。
“节点位置”,表示各节点的位置。即,“节点位置=本身”,表示本节点105的位置;“节点位置=前”,表示本节点105之前的位置;“节点位置=后”表示本节点105之后的位置。
这里,在环型网络中,被构成为:各节点按散列值的顺序排列。因此,例如,多数的情况下,被配置在紧靠本节点前的位置的节点,拥有小于本节点的散列值的散列值,而配置在紧靠本节点之后的位置的节点,拥有大于本节点的散列值的散列值(具有最小散列值或最大散列值的节点例外)。另外,在环型网络中,也可被排列成:被配置紧靠在本节点之前的位置的节点,拥有大于本节点的散列值的散列值,而被配置在紧靠本节点之后的位置的节点,拥有小于本节点的散列值的散列值。
“散列值”,表示在各“节点位置”上被配置的节点的散列值;“节点地址”表示在各“节点位置”上被配置的节点的节点地址(例如IP地址或URL)。
在图8的例子中,由于新加入节点105还未参加到环型网络内,所以,对全部的应于“节点位置”的“散列值”和“节点地址”都是本节点105的(“散列值=N”和“节点地址=ADDRESS-N”)。
网络加入处理部100b,用于进行当新加入到环型网络中时所必要的处理。
具体地说,网络加入处理部100b,在新加入到环型网络时,从分布式散列表100a中提取出本节点105的散列值和节点地址,并生成包含相应的本节点105的散列值和节点地址的网络拓扑构成信息。
另外,网络加入处理部100b,指示网络拓扑构成信息发送接收部100c,向已知节点地址的任意节点(例如节点101)发送所生成的网络拓扑构成信息。
另外,网络加入处理部100b,根据从发送了网络拓扑构成信息的任意节点(例如节点101)所通知的环型网络中的本节点105的插入位置,在与相应的节点之间确立连接,同时,根据该本节点105的插入位置,更新分布式散列表100a。
网络拓扑构成信息发送接收部100c,根据来自网络加入处理部100b的指示,对任意节点(例如节点101)发送网络拓扑构成信息。
另外,网络拓扑构成信息发送接收部100c,接收包含从任意节点(例如节点101)通知的环型网络内的本节点105的插入位置的网络拓扑构成信息。
另外,最好新加入节点105,被构成为具备后述的节点101的功能(参照图9)。
然后,参照图9,说明构成环型网络的节点的功能。另外,节点101至节点103的功能基本相同,故此,以下,说明节点101的功能。
如图9所示,节点101,具备:分布式散列表100a、新加入节点接受部100d、和网络拓扑构成信息发送接收部100c。
分布式散列表100a,管理由本节点101的识别信息生成的本节点101的散列值“Ni”和由邻接节点的识别信息生成的该邻接节点的散列值。
具体地说,如图9所示,分布式散列表100a,存储将“节点位置”、“散列值”、“节点地址”相关联起来的记录。
图9的例子,表示新加入节点105参加前的状态的分布式散列表100a,所以,分布式散列表100a,管理将“节点位置=前”、“散列值=Ni-1(节点103的散列值)”、和“节点地址ADDRESS-Ni-1(节点103的节点地址)”相关联起来的记录,和将“节点位置=本身”、“散列值=Ni(节点101的散列值)”、和“节点地址ADDRESS-Ni(节点101的节点地址)”相关联起来的记录以及将“节点位置=后”、“散列值=Ni+1(节点102的散列值)”、和“节点地址ADDRESS-Ni+1(节点102的节点地址)”相关联起来的记录。
新加入节点接受部100d,用于进行当新加入节点105新加入到环型网络时所必要的处理。
具体地说,新加入节点接受部100d,根据新加入环型网络的新加入节点105的散列值“N”、本节点101的散列值“Ni”和邻接节点102及103的散列值“Ni+1”及“Ni-1”,来计算该环型网络内的该新加入节点105的插入位置。
这里,新加入节点接受部100d,比较新加入节点105的散列值“N”、本节点101的散列值“Ni”和邻接节点102及103的散列值“Ni+1”及“Ni-1”,计算出新加入节点105的插入位置,以使其在环型网络内各节点按散列值按顺序排列。
在图7的例子中,散列值的大小,按各节点101、105、102、103的散列值“Ni”、“N”、“Ni+1”、“Ni-1”的顺序增大。
另外,新加入节点接受部100d,对于具有相同大小的散列值的节点的配置,可以按任意的基准来决定。
另外,新加入节点接受部100d,被构成为:经网络拓扑构成信息发送接收部100c,取得新加入节点的散列值和节点地址。
另外,新加入节点接受部100d,根据环型网络内的新加入节点105的插入位置,更新分布式散列表100a,同时,生成用来通知该新加入节点105的插入位置的网络拓扑构成信息,并指示网络拓扑构成信息发送接收部100c,发送到新加入节点105和邻接节点102、103。另外,这种网络拓扑构成信息,既可以被构成为包含新加入节点105的插入位置,又可以被构成为包含反映新加入节点105的插入位置的分布式散列表100a。
网络拓扑构成信息发送接收部100c,根据来自新加入节点接受部100d的指示,把网络拓扑构成信息发送到新加入节点105和邻接节点102、103。
网络拓扑构成信息发送接收部100c,接收包含从新加入节点105通知的新加入节点105的散列值和节点地址的网络拓扑构成信息。
参照图10至图14,说明本实施方式的网络拓扑构成方法的动作。具体地说,如图6和图7所示,说明新加入节点105新加入包含节点101至103的环型网络时的动作。
首先,参照图10和图11,说明这种情况下的新加入节点105的动作。
如图10所示,在步骤1001,新加入节点105的网络加入处理部100b,从分布式散列表100a中提取出本节点105的散列值“N”和节点地址“ADDRESS-N”,并生成包含所提取出来的散列值“N”和节点地址“ADDRESS-N”的网络拓扑构成信息。
在步骤1002,新加入节点105的网络拓扑构成信息发送接收部100c,根据来自网络加入处理部100b的指示,把上述的网络拓扑构成信息发送到节点101。
在步骤1003,网络拓扑构成信息发送接收部100c,从节点101接收包含环型网络内的新加入节点105的插入位置(本实施方式中,在节点101和节点102之间)的网络拓扑构成信息。
在步骤1004,如图11所示,网络加入处理部100b,根据接收到的网络拓扑构成信息,更新分布式散列表100a,同时,在与相应节点(节点101和节点102)之间确立新的连接。
然后,参照图12至图14,说明这种情况下的节点101的动作。
如图12所示,在步骤2001,节点101的新加入节点接受部100d,经网络拓扑构成信息发送接收部100c,从新加入节点105,接收包含该新加入节点105的散列值和节点地址的网络拓扑构成信息。
在步骤2002,新加入节点接受部100d,从分布式散列表100a提取出本节点101的散列值和邻接节点102、103的散列值。
在步骤2003,新加入节点接受部100d,根据接收到的新加入节点105的散列值、所提取出来的本节点101和邻接节点102、103的散列值,计算出环型网络内的新加入节点105的插入位置。
参照图13,说明在步骤2003中计算新加入节点105的插入位置的算法的一例。
这里,节点101的新加入节点接受部100d,被构成为:对是应把新加入节点105的插入位置插入到节点101和节点102之间,或是应把新加入节点105的插入位置插入到节点101和节点103之间进行判定,除此之外的情况下,将被判定为新加入节点105的插入位置不清楚。
另外,在图13的例子中,在环型网络内,各节点的散列值,假定是按顺时针方向增大。
在步骤A,本算法,比较新加入节点105的散列值“N”与本节点101的散列值“Ni”。
在新加入节点105的散列值“N”,大于本节点101的散列值“Ni”的情况下,在步骤B,本算法,对于是否满足“最小散列值=Ni”、“最大散列值=Ni-1”和“N>Ni-1”等三个条件进行判定。
满足步骤B中的三个条件的情况下,在步骤K,本算法,决定为新加入节点105的插入位置是在节点101和节点103之间。
另一方面,如果是不满足步骤B中的三个条件的场合,则在步骤C,本算法,对于是否满足“最小散列值=Ni+1”、“最大散列值=Ni”和“N>Ni”等三个条件进行判定。
在满足步骤C中的三个条件的情况下,在步骤F,本算法,决定为新加入节点105的插入位置是在节点101和节点102之间。
另一方面,如果是不满足步骤C中的三个条件的场合,则在步骤D,本算法判定是否满足条件“Ni<N<Ni+1”。
在满足步骤D中的条件的情况下,在步骤F,本算法决定为新加入节点105的插入位置是在节点101和节点102之间。
另一方面,如果是不满足步骤D中的条件的场合,则在步骤E,本算法决定为新加入节点105的插入位置不清楚。即,本算法决定为新加入节点105的插入位置不是在节点101和节点102之间以及节点101和节点103之间。
另外,在新加入节点105的散列值“N”不大于本节点101的散列值“Ni”的情况下,在步骤G,本算法判定是否满足“最小散列值=Ni+1”、“最大散列值=Ni”和“N<Ni+1”三个条件。
在满足步骤G中的条件的情况下,在步骤F,本算法决定为新加入节点105的插入位置是在节点101和节点102之间。
另一方面,如果是不满足步骤G中的三个条件的场合,则在步骤H,本算法判定是否满足“最小散列值=Ni”、“最大散列值=Ni-1”和“N<Ni”三个条件。
满足步骤H中的三个条件的情况下,在步骤K,本算法决定为新加入节点105的插入位置是在节点101和节点103之间。
另一方面,如果是不满足步骤H中的三个条件的场合,则在步骤I,本算法判定是否满足条件“Ni-1<N<Ni”。
在满足步骤I中的条件的情况下,在步骤K,本算法决定为新加入节点105的插入位置是在节点101和节点103之间。
另一方面,如果是不满足步骤I中的条件的场合,则在步骤J,本算法决定为新加入节点105的插入位置不清楚。即,本算法决定为新加入节点105的插入位置不是在节点101和节点102之间以及节点101和节点103之间。
另外,本发明,在环型网络中,对于各节点的散列值按逆时针方向增大的情况也适用。
这里,返回到图12的流程图,在步骤2004,新加入节点接受部100d,对是否决定了新加入节点105的插入位置进行判定。
在决定了新加入节点105的插入位置的场合,在步骤2005,新加入节点接受部100d,根据新加入节点105的插入位置,像图14所示那样来更新分布式散列表100a。
在步骤2006,新加入节点接受部100d,经网络拓扑构成信息发送接收部100c,把包含更新后的分布式散列表100a的内容的网络拓扑构成信息,发送到新加入节点105和邻接节点102、103。
另一方面,在新加入节点105的插入位置不清楚的情况下,在步骤2007,新加入节点接受部100d,经网络拓扑构成信息发送接收部100c,把来自新加入节点105的网络拓扑构成信息,转发到邻接节点(节点102或节点103)。
接收到这种网络拓扑构成信息的邻接节点,与节点101一样,通过进行步骤2001至步骤2007的动作,来决定环型网络内的新加入节点105的插入位置。
按照本实施方式的网络拓扑构成方法,因为在环型网络中是按各节点的散列值的顺序排列来构成网络拓扑,所以,即使是新加入节点105,也能够即刻掌握网络中的各节点间的位置关系。
另外,按照本实施方式的网络拓扑构成方法,由于构成环型网络的各节点仅管理有关邻接节点的信息,所以能够解决为取得对各节点的网络拓扑构成信息所花费时间的问题。
另外,按照本实施方式的网络拓扑构成方法,即使在发生了节点的故障或节点脱离相应的网络等的情况下,也无需在邻接节点间进行多次信息交换来更新包含上述有关链路的信息的网络拓扑构成信息,而能减轻网络负荷,并且能够解决在各节点中的网络拓扑构成信息的更新中所花费时间的问题。
<本发明的第二实施方式>
在本发明的第二实施方式中,被构成为:新加入节点105和节点101的分布式散列表100a,管理由构成环型网络的全部节点的识别信息生成的全部节点的散列值。
具体地说,如图15所示,分布式散列表100a,管理对应于从表示拥有最小的散列值的节点的“节点位置”的“1”至表示拥有最大的散列值节点的“节点位置”的“n”的各“节点位置”的“散列值”和“节点地址”。
即,分布式散列表100a,管理表示构成环型网络的全部节点的连接形态的网络拓扑构成信息。
另外,本实施方式的节点101的新加入节点接受部100d,根据新加入节点105的散列值“N”和全部节点的散列值,来计算相应的环型网络中的新加入节点105的插入位置。结果,与上述第一实施方式的节点101的情况不同,本实施方式的节点101,一定能够计算出相应的环型网络中的新加入节点105的插入位置。
参照图16和图17,来说明本实施方式的节点101的动作。
如图16所示,在步骤3001,节点101的新加入节点接受部100d,经网络拓扑构成信息发送接收部100c,从新加入节点105,接收包含该新加入节点105的散列值和节点地址的网络拓扑构成信息。
在步骤3002,新加入节点接受部100d,从分布式散列表100a,提取出全部节点的散列值。
在步骤3003,新加入节点接受部100d,根据新加入节点105的散列值、提取出来的全部节点的散列值,计算环型网络内的新加入节点105的插入位置。
在步骤3004,新加入节点接受部100d,根据新加入节点105的插入位置,像图17所示那样来更新分布式散列表100a。
在步骤3005,新加入节点接受部100d,经网络拓扑构成信息发送接收部100c,将包含更新后的分布式散列表100a的内容的网络拓扑构成信息发送到新加入节点105和邻接节点102、103。
(变更例)
另外,本发明,不限定于上述的实施方式,也可以被构成为:代替节点101,新加入节点105计算相应的环型网络内的该新加入节点105的插入位置。
这种情况下,被构成为:节点101,替代包含环型网络内的新加入节点105的插入位置的网络拓扑构成信息,而是把包含当前的分布式散列表100a的内容的网络拓扑构成信息,发送到该新加入节点105,该新加入节点105,根据接收到的网络拓扑构成信息,来计算相应环型网络内的新加入节点105的插入位置。
对该技术领域的内行人员来说,会很容易地联想到其他的优点和变形。因此,本发明并不局限于上述的详细说明和代表性的实施方式。在不背离本发明宗旨的范围内,可以相应地生成各种变形方案,但是均被函盖在本发明的权利要求及其等价的范围之内。