首页> 中国专利> 信息通信系统,信息通信方法,包括在信息通信系统中的节点装置以及记录信息处理程序的记录介质

信息通信系统,信息通信方法,包括在信息通信系统中的节点装置以及记录信息处理程序的记录介质

摘要

信息通信系统等等,其中整个通信网络的通信负荷已经减少。在包含经由通信网络相互连接的多个节点设备的参与的信息通信系统中,节点设备具有存储单元,其对于那些节点ID属于的每一个区域,存储一或多个特定的节点设备的IP地址以及与IP地址相联系的节点ID。在与作为发送接收的信息的源的节点设备(节点K)相联系的节点ID属于的存储单元的区域已经存储另一节点设备(节点A)的节点ID的情况下,如果从节点K到本地节点设备的HOP的数目小于从节点A到本地节点设备的HOP的数目,则节点ID被改变为存储的节点A的IP地址与节点ID,并且令存储单元存储作为发送信息的源的节点K的IP地址和标识信息。这样,此信息通信系统可以解决所述问题。

著录项

  • 公开/公告号CN101406006A

    专利类型发明专利

  • 公开/公告日2009-04-08

    原文格式PDF

  • 申请/专利权人 兄弟工业株式会社;

    申请/专利号CN200780010249.9

  • 发明设计人 松尾英辉;牛山建太郎;

    申请日2007-03-08

  • 分类号H04L12/56;

  • 代理机构上海市华诚律师事务所;

  • 代理人吴龙瑛

  • 地址 日本国爱知县

  • 入库时间 2023-12-17 21:40:45

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-10-08

    授权

    授权

  • 2009-06-03

    实质审查的生效

    实质审查的生效

  • 2009-04-08

    公开

    公开

说明书

技术领域

[0001]

本发明涉及一种包括通过网络相互连接的多个节点装置的对等网络(P2P)类型的信息通信系统,方法等等。

背景技术

[0002]

对等网络的技术近来已经被注意。关于对等网络类型的信息通信系统,在逻辑上使用分布散列表(以下简称DHT)构造的覆盖网络中,各节点装置不必然对所有的参与覆盖网络的节点装置识别连接信息(例如IP地址),而仅保有(记住)在参与的时候获得的一部分节点装置的连接信息,并且基于这样的连接信息作出数据查询等等。

[0003]

在这样的覆盖网络中,即使在节点装置的参与与撤回(分离)被经常重复的情况下,也应该适当地分布负荷。非专利文献1公开一种覆盖网络的技术,其中即使在节点装置的参与和撤回(分离)被经常重复的情况下也适当地分布负荷。

非专利文献1:“分布散列表的轻负荷分配方法”,电子学,信息和通信工程师学会

发明内容

本发明要解决的问题

[0004]

给出的节点装置将与参与覆盖网络的其它节点装置的连接信息登记(存储)到DHT的路由表上,并基于该登记的信息确定从其它节点装置接收的信息(消息)的传输目的地的节点装置。当连接到该路由表的连接信息与参与覆盖网络的其它节点装置通信时,该连接信息可以用登记其它节点装置的连接信息的形式累积或可以被改变。

[0005]

具体地说,节点装置与其它节点装置通信,并且基于其它节点装置的连接信息确定连接信息登记在路由表中的哪个位置。通常,在与另一节点装置通信的时候,在该另一节点装置的连接信息不登记在将登记节点装置的位置的情况下,这样通信的节点装置的连接信息被登记。

[0006]

另一方面,当其与另一节点装置通信时,在另一节点装置的连接信息被进一步地登记在应该登记节点信息的位置的情况下,(1)通信的节点装置的连接信息代替原先登记的具有其连接信息的节点装置,(2)原先登记的节点装置的连接信息可以保持不变,或(3)可能任意地判定与之通信的节点装置的连接信息是否被再次登记或原先登记的节点装置的连接信息是否保持不变。

[0007]

然而,一贯地,(1)在通信的节点装置的连接信息被再登记的情况下,与其它节点装置每一通信都改变路由表,在那里频繁地发生通信路由的改变。此外,(2)在原先登记的节点装置的连接信息保持不变的情况下,因为在最初阶段参与网络的节点装置以高概率被登记在其它节点装置的路由表中,所以参与网络的节点装置频繁地变为信息传送路由,并且重荷载(heavy burden)被加载在节点装置上。此外,(3)在随机地确定新的通信节点装置的连接信息被再次登记还是原先登记的节点装置的连接信息保持不变的情况下,因为没有特定的基础,所以以上(1)或者(2)的问题可能发生。

[0008]

考虑到以上问题作出本发明,并且本发明的目标是提供一种在具有通过通信网络相互连接的多个节点装置的对等网络类型的信息通信系统及其方法中,用于判定给定的节点装置是否改变另一登记(存储)的节点装置的连接信息的单元,以及一种用于减少整个通信网络的通信负荷的信息通信系统和方法。

用于解决问题的方法

[0009]

为解决以上问题,根据本发明的技术方案1,提供一种由通过通信网络相互连接的多个节点装置的参与形成的信息通信系统,其中包括在多个节点装置内的节点装置包括:

存储单元,用于对应于标识信息所属的各区域,存储指示一个以上特定的节点装置的节点信息以及对应于该节点信息的唯一标识信息;

信息接收单元,用于从其它的节点装置接收信息;

比较单元,用于在其它的节点装置的标识信息被存储在与信息接收单元接收的信息的发送源的节点装置对应的标识信息所属的存储单元的区域中的情况下,比较从发送源的节点装置到自身节点装置的通信负荷与从存储有标识信息的节点装置到自身节点装置的通信负荷,并判断通信负荷的大小;以及

存储信息改变单元,用于在比较单元判断从发送源的节点装置到自身节点装置的通信负荷小于从存储有标识信息的节点装置到自身节点装置的通信负荷的情况下,将发送源的节点装置的节点信息和标识信息存储在存储单元中,替代存储有标识信息的节点装置的节点信息和标识信息。

[0010]

根据这一点,在其它节点装置(例如节点A)的标识信息被进一步地存储在对应于接收的信息的发送源的节点装置(例如节点K)的标识信息属于的存储单元的区域(例如对应于IP地址的节点ID等等)中的情况下,在已经存储标识信息的节点装置(节点K)和节点装置(节点A)中间相对于自身节点装置具有小通信负荷(例如小HOP数(转发数)等等)的节点装置的节点信息(例如IP地址)和标识信息被存储在标识信息属于的区域中。

[0011]

因此,只有当其被改变为具有较小通信负荷的节点装置的信息时,出现通信路由的变化,借此使通信网络的通信负荷稳定。进一步地,当存储单元的信息被改变时,存储具有更进一步的较小通信负荷的节点装置的信息并建立与节点装置的通信。因此,减少了整个通信网络中的通信负荷并且进一步地使通信网络自身稳定。照此,根据以上信息通信系统,可以减少信息通信系统中的整个通信网络的通信负荷。

[0012]

为解决以上问题,根据本发明的技术方案2,提供一种在由通过通信网络相互连接的多个节点装置的参与形成的信息通信系统中的通信方法,包括:

包括在多个节点装置内的一个节点装置,对应于标识信息所属的各区域,存储指示一个以上特定的节点装置的节点信息以及对应于节点信息的唯一标识信息的步骤;

节点装置从其它节点装置接收信息的步骤;

在其它节点装置的标识信息被存储在与接收的信息的发送源的节点装置对应的标识信息所属的存储单元的区域中的情况下,节点装置比较从发送源的节点装置到自身节点装置的通信负荷与从存储有标识信息的节点装置到自身节点装置的通信负荷,并且判断通信负荷的大小的步骤;以及

在判断从发送源的节点装置到自身节点装置的通信负荷小于从存储有标识信息的节点装置到自身节点装置的通信负荷的情况下,节点装置存储发送源的节点装置的节点信息和标识信息,替代存储有标识信息的节点装置的节点信息和标识信息的步骤。

[0013]

为解决以上问题,根据技术方案3,提供一种包括在由通过通信网络相互连接的多个节点装置的参与形成的信息通信系统中的节点装置,包括:

存储单元,用于对应于标识信息所属的各区域,存储指示一个以上特定的节点装置的节点信息以及对应于该节点信息的唯一标识信息;

信息接收单元,用于从其它的节点装置接收信息;

比较单元,用于在其它的节点装置的标识信息被存储在与信息接收单元接收的信息的发送源的节点装置对应的标识信息所属的存储单元的区域中的情况下,比较从发送源的节点装置到自身节点装置的通信负荷与从存储有标识信息的节点装置到自身节点装置的通信负荷,并判断通信负荷的大小;以及

存储信息改变单元,用于在比较单元判断从发送源的节点装置到自身节点装置的通信负荷小于从存储有标识信息的节点装置到自身节点装置的通信负荷的情况下,将发送源的节点装置的节点信息和标识信息存储在存储单元中,替代存储有标识信息的节点装置的节点信息和标识信息。

[0014]

根据这一点,因为该节点装置具有这样种类的单元,所以可以减少信息通信系统中的整个通信网络的通信负荷。

[0015]

为解决以上问题,根据技术方案4,提供有根据技术方案3的节点装置,其中存储单元对应其它的节点装置的节点信息存储有通信负荷信息。

[0016]

根据这一点,因为节点装置的存储单元与其它节点装置的节点信息一致地存储通信负荷信息,所以当在比较单元中比较通信负荷时,不必要再次获取通信负荷信息并且可以使得比较单元和存储信息改变单元迅速地起作用。

[0017]

为了解决以上问题,根据本发明技术方案5,提供根据技术方案3或4的节点装置,其中基于当其它的节点装置和自身节点装置通信时路由通过的网络连接装置的数目的值被用作通信负荷。

[0018]

根据这一点,比较单元使用基于在其它节点装置和自身节点装置之间通信过程中传递通过的网络连接设备的数目的值而起作用。由此可以判定是否基于清楚地限定的标准改变存储信息。此外,因为基于网络连接设备的数目的值是通过按照网络考虑节点装置之间距离而获得的。因此,具有按照网络的短距离的节点装置的信息被存储在DHT的路由表中,借此可以减少信息通信系统中的通信负荷。

[0019]

为了解决以上问题,根据本发明技术方案6,提供根据技术方案3到5的任何一个的节点装置,其中信息接收单元从信息发送源的节点装置接收通信负荷信息。

[0020]

根据这一点,不必要执行在比较单元中比较通信负荷过程中再次获得通信负荷信息的操作,因为通信负荷信息是从发送源节点装置接收的,即信息发送侧的节点装置同时发送通信负荷信息。相应地,当从其它节点装置接收信息时,可以迅速地操作比较单元和存储信息改变单元。

[0021]

为了解决以上问题,根据本发明技术方案7,提供根据技术方案3至6的任何一个的节点装置,进一步地包括:通信负荷信息发送单元,其在与其它的节点装置建立通信的初期阶段获取通信负荷信息,并且在向其它的节点装置发送该信息时,发送该通信负荷信息。

[0022]

根据这一点,因为节点装置具有这样的通信负荷信息发送单元,可以在不使得信息通信系统大而复杂的情况下获得从其它节点装置到自身节点装置的通信负荷信息。

[0023]

为了解决以上问题,根据本发明技术方案8,提供有根据技术方案7的节点装置,其中通信负荷信息发送单元在与其它的节点装置建立通信的初期阶段发送用于建立通信的信号,响应于该信号,接收包括与通信负荷信息对应的信号的信号,并且通过读取该信号获取通信负荷信息。

[0024]

根据这一点,从自其它节点装置(例如节点Z)至自身节点装置(例如节点B)的信号获得通信负荷的信息,并且由自身节点装置发送通信负荷信息至其它节点装置(节点Z),借此其它节点装置(节点Z)获得从自身节点装置(节点Z)到其它节点装置(节点B)的通信负荷信息。相应地,其实际上具有在执行通信过程中的通信负荷信息,因此节点装置(节点Z)发送信息至其它节点装置(节点B)。因此,其变为可能存储更适当的其它节点装置的节点信息和标识信息以减少信息通信系统中的通信负荷。

[0025]

为解决以上问题,根据本发明技术方案9,提供有根据技术方案7或8的节点装置,其中通信负荷信息发送单元在获取通信负荷信息的时候使用RAW套接字(RAW socket),并且在向其它的节点装置发送信息和通信负荷信息的时候使用普通的套接字。

[0026]

根据这一点,因为节点装置使用RAW套接作为获得通信负荷信息的接口并且使用普通的套接(正常的套接)作为用于发送信息和通信负荷信息的接口,可以实现节点装置中的通信负荷信息的获取。因为节点装置特别地照此具有通信负荷信息发送单元,所以在节点装置中通信负荷信息是可获得的且防止了信息通信系统大而复杂。

[0027]

为解决以上问题,根据本发明技术方案10,提供一种记录介质,其以计算机可读取的方式记录有信息处理程序,该信息处理程序使计算机作为技术方案3至9中任一项所述的节点装置发挥作用。

发明效果

[0028]

根据本发明,具有以上单元的每一个,特别是比较单元和存储信息改变单元的节点装置,可以减少信息通信系统中的整个通信网络上的信息负荷。

附图说明

[0029]

[图1]显示与本实施例相关的信息通信系统中的各节点装置连接状态的实例的图;

[图2]显示用DHT和路由表建立]D空间的实例的图;

[图3](A)是显示层1的表的实例的图,(B)是层2的表的实例,(C)是层3的表的实例,以及(D)是完成的路由表的实例;

[图4]显示节点装置1的示意配置的实例的图;

[图5](A)是由用于本实施例的节点Z保持的路由表的实例,以及(B)至(F)分别是显示对应于登记的节点装置以及新的节点装置的信息的实例;

[图6](A)是显示自身的节点装置以及另一节点装置的信息模式的实例,以及(B)是显示将要发送和接收的包的示意图;

[图7]显示在使用普通的TCP协议的情况下创建连接的方法的图;

[图8]显示在使用普通的TCP协议的情况下断开连接的方法的图;

[图9]显示在使用TCP协议的情况下测量TTL的方法的图;

[图10]显示在使用UDP协议的情况下测量TTL的方法的图;

[图11]显示节点装置1中的基本处理的流程图;

[图12]显示节点装置1中的消息的发送处理的流程图;

[图13]显示节点装置1中的消息的发送处理的流程图;

[图14]显示在另一节点装置1的表中的登记处理的流程图;

[图15]显示在节点装置1中从另一节点装置1的表删除处理的流程图;

[图16]显示在节点装置1参与通信网络以后建立DHT路由表的状态的图;

[图17](A)至(C)是显示由其它节点装置1存储的DHT路由表的图。

参考标号的说明

[0030]

1节点装置;

8网络;

9覆盖网络;

11控制单元;

12存储单元;

13缓冲存储器;

14解码器;

15图像处理单元;

16显示单元;

17音频处理单元;

18扬声器;

20通信单元;

21输入单元;

22总线;以及

S信息通信系统

具体实施方式

[0031]

以下,将引用附图说明本发明的实施例。在下面解释的实施例是本发明被用于使用DHT,IP地址作为节点信息,节点ID作为标识信息的信息通信系统的情况。根据本实施例,在信息通信系统中,节点装置判定在使用TTL(生存周期)作为通信负荷信息的DHT路由表中是否执行信息改变。这里,根据本发明的信息通信系统等等的发明不局限于如下所述的实施例,并且可以通过在本发明的发明构思的范围之内适当地修改来实践。

[0032]

[1.信息通信系统的构造等等]

首先,参考图1,说明信息通信系统的示意构造等等。

[0033]

图1是显示根据本实施例的信息通信系统中的各节点装置连接状态的实例的图。

[0034]

如图1中的下面的框101所示,例如因特网的网络(现实世界中的网络)8是由因特网交换机(IX)3,因特网服务提供者(ISP)4,数字用户线路(DSL)提供商(或其装置)5,入户光纤(FTTH)线路提供商(或其装置)6,以及通信线(例如电话线或光缆)7等等构成的。

[0035]

信息通信系统S具有通过这样的网络8相互连接的多个节点装置1a,1b,1c…1x,1y,1z…,该系统是对等网络类型的网络系统。作为显示节点装置的信息(本发明中的节点信息)的唯一的制造编号和IP(网络协议)地址被分配给节点1a,1b,1c…1x,1y,1z…中的每一个。这样的制造编号和IP地址在多个节点装置1当中不重叠。这里,有时候,为了方便起见,节点装置1a,1b,1c…1x,1y,1z…的任何一个称为节点装置1。

[0036]

[1.1DHT的概要]

接下来,说明使用与本实施例相关的分布散列表(以下简称“DHT”)的算法。

[0037]

在以上提及的信息通信系统S中,节点装置1在它们互相交换信息时应该互相知道作为节点信息的IP地址。

[0038]

例如,在互相共用内容的系统中,参与网络8的各节点装置1知道所有参与网络8的节点装置1的IP地址,是简单方法。然而,存储用于多至几万或数十万的所有的节点装置的大量IP地址是不实际的。此外,当任意的节点装置开启或关闭时,因为存储在各节点装置1中的该任意的节点装置的IP地址被频繁地更新,所以操作变得困难。

[0039]

于是,发明有这样的系统,节点装置1的一个单元仅记得(存储)在参与网络8的所有的节点装置1当中必需的最少的节点装置1的IP地址,并且在节点装置1当中相互传输信息以在不知道(不存储)IP地址的情况下传递信息至节点装置1。

[0040]

作为这样的系统的实例,如图1的上面的框100所示,通过使用DHT的算法构造覆盖网络9。也就是说,覆盖网络9意指构造通过利用现有网络8形成的虚拟连接的网络。

[0041]

在通过使用DHT的算法构造的覆盖网络9的前提下提供本实施例。分配给此覆盖网络9的节点装置1称为参与信息通信系统S(即参与覆盖网络9)的节点装置1。这里,当还没参与的节点装置1向已经参与的任意的节点装置1发送参与请求(以下也称为参与消息)时,完成进入信息通信系统S的参与。

[0042]

参与信息通信系统S的各节点装置1的节点ID(标识信息)对各节点装置提供唯一的号码。该号码必须是对于包括节点装置的最大操作号是足够的位号码。例如,当该号码是128位号码时,节点装置可以操作2^128=340×10^36个节点装置。

[0043]

更具体地说,各节点装置1的节点ID是通过用常用的散列函数(散列算法)对例如各节点装置的IP地址或制造编号的唯一值进行散列而获得的散列值,并且在没有偏差的情况下被分布并定位在一个ID空间中。如果IP地址或制造编号不同,则这样的用常用的散列函数获得(散列)的节点ID具有相同的值的可能性非常低。这里,因为散列函数为大家所熟知,所以其详细的说明从略。在本实施例中,通过利用常用的散列函数散列IP地址(全球的IP地址;节点信息)获得的值被用作节点ID(GUID(全球唯一标识符);标识信息)。

[0044]

[1.2路由表的建立]

接下来,参考图2解释建立用于DHT的路由表的方法的实例。图2是建立使用DHT的路由表的实例的图。

[0045]

因为对各节点装置1提供的节点ID是用常用的散列函数生成的,所以如图2(A)及2(C)所示,它们被认为是分散并位于同一个环状ID空间而没有多少偏差。该图具有8位节点ID,如图解的。在该图中,黑点指示节点ID,并且ID逆时针方向增加。

[0046]

首先,如图2(A)所示,ID空间被分成几个区域。尽管,实际上经常使用被分成约十六个的ID空间,但是为了易于说明,ID空间被分为相等的四部分,其中ID用8位位长的四进制数表示。然后节点装置1N的节点ID被设置为“1023”,并且解释建立此节点装置1N的路由表的实例。

[0047]

(路由选择级1)

当ID空间被分为相等的四部分时,其被分成具有不同的最高位的四区域,“0XXX”,“1XXX”,“2XXX”,以及“3XXX”(X是1至3的整数,以下与上述相似),其用四进制数表示。因为节点装置1N自身的节点ID是“1023”,所以节点装置1N位于该图的左下的区域“1XXX”。当节点装置1N向和从位于除自身的节点存在的区域(即区域“1XXX”)之外的区域的节点装置1发送和接收消息时,节点ID的IP地址被存储在表层1中。图3(A)是表层1的实例。在指示节点装置1N自身的第二列中,不必存储IP地址。

[0048]

(路由选择级2)

接下来,如图2(B)所示,在这样通过路由选择分为相等的四部分的区域当中,自身的节点存在的区域被进一步地分为相等的四区域“10XX”,“11XX”,“12XX”,“13XX”。于是以类似于上述的方式,当向存在于除自己存在的区域之外的区域的节点装置1发送消息以及从其接收消息时,节点ID的IP地址被存储在表层2中。图3(B)是表层2的实例。因为第一列指示节点装置1N自身,所以不必存储IP地址。

[0049]

(路由选择级3)

接下来,如图2(C)所示,在这样通过路由选择分为相等的四部分的区域当中,自身的节点存在的区域被进一步地分为相等的四区域“100X”,“101X”,“102X”,“103X”。于是,以类似于上述的方式,当向存在于除自己存在的区域之外的区域的节点装置1发送消息以及从其接收消息时,节点ID的IP地址被存储在表层1中。图3(C)是表层3的实例。因为第三列指示节点装置1N自身,所以不必要存储IP地址,并且第二列和第四列为空,因为没有节点装置存在于该区域。

[0050]

通过这样的方法,如图3(D)所示,路由表被建立直到层4从而覆盖所有的8位ID。当层增加之时表中的空白变得明显。

[0051]

照此,所有的节点装置1按照以上提及的方法分别建立并且保持建立的路由表。这样,节点装置1存储IP地址作为其它节点装置1的节点信息,节点ID作为标识信息,以及节点ID空间的区域作为标识信息属于的区域,换言之,各层和各列DHT互相一致。这里,对应于最靠近自身节点装置1N的节点ID的节点ID的节点装置称为根节点,如下所述(在图2(C)和3(D)中具有节点ID:1000的节点装置)。

[0052]

这里,响应于节点ID的位的数目判定层的数目并且响应于基数的数目判定图3(D)中的各层的关注位(attention digits)的数目。特别地,在16位十六进制数情况下,ID具有64位并且层16中的关注位的阿尔法数字的数目是0到f。在如下所述路由表的说明中,指示各层中的关注位数目的部分也简单地称为“列”或“列号”。

[0053]

[2.节点装置的构造等等]

接下来,参考图4,解释节点装置1的构造与功能。这里,各节点装置1的构造是相同的。图4是显示节点装置1的示意构造实例的图。

[0054]

如图4所示,构造各节点装置1是通过包括,作为由具有计算功能的CPU,用于工作的RAM,用于存储各种数据和程序的ROM,等等构造的计算机的控制单元11;由用于记忆(存储)内容数据,索引信息,以上提及的DHT,程序等等(以上提及的内容数据不存储在一些节点装置1中)的HD等等构造的存储单元12;用于暂时存储接收的内容数据等等的缓冲存储器13;用于解码(展开数据等等)包括在内容数据内的编码的视频数据(图像信息)和音频数据(音频信息)的解码器单元14;用于对这样解码的视频数据等等提供预定图形处理并且输出该数据作为视频信号的图像处理单元15;用于基于从图像处理单元15输出的视频信号显示图像的例如CRT或液晶显示器的显示单元16;用于使用数字/模拟(D/A)转换将这样解码的音频数据转换为模拟声频信号,用放大器放大这样转换的信号并且输出它的音频处理单元17;用于输出从音频处理单元17这样输出的作为声波的声频信号的扬声器18;用于经过网络8执行与其它节点装置1的信息的通信控制的通信单元20;以及输入单元21(例如键盘,鼠标,或操作面板),用于接收来自用户的指令并向控制单元11提供对应于该指令的指令信号,其中控制单元11,存储单元12,缓冲存储器13,解码器14,以及通信单元20经过总线22互相连接。

[0055]

当控制单元11中的CPU执行存储在存储单元12等等中的各种程序时,控制单元11整个地控制节点装置1。此外,控制单元11根据来自输入装置21的指令信号执行内容数据登记处理等等。节点装置1具有用于发送(传输)信息的节点装置以及用于根据执行的程序接收信息的节点装置等等的功能。

此外,节点装置1的控制单元11具有本发明的信息接收单元,比较单元,存储信息改变单元,以及通信负荷信息发送单元的功能。

[0056]

[3.信息通信系统的概要]

接下来,参考图5解释本实施例的信息通信系统S的概要。本实施例的信息通信系统S判定一个节点装置1是否改变使用TTL(生存周期)或HOP数作为通信负荷信息的DHT路由表中的其它节点装置1的信息。在信息被改变的情况下,其以整个通信网络的通信负荷降低的方式执行。以下,DHT路由表也简单地称为“表”。此外,其它节点装置的节点信息和标识信息的存储器也称为“登记”。

[0057]

一个节点装置1(节点Z)将,例如,如图5(A)所示的DHT路由表存储在存储单元12中。在DHT路由表中,作为指示一个以上指定的节点装置1(节点A到H)的节点信息的IP地址和端口号以及作为对应于节点信息的唯一标识信息的节点ID被与节点ID属于的各区域一致地存储。这里,在以下的实施例说明中,尽管有时候作为节点信息的端口号的说明从略,IP地址和端口号有规则地成对地存储在节点装置1中,并且IP地址和端口号与节点ID一致地存储在节点装置1中。通常,尽管在节点装置1中IP地址实质上作为节点信息存储,但是并不总是必须通过在各节点装置1中共用端口号来存储作为节点信息的端口号。

[0058]

根据本实施例,如由存储在图5(B)中的每一个区域中的信息的实例所示,在此表中,存储单元12与以上提及的IP地址或节点ID一致地存储HOP数值。与在图5(B)中一样,图5(C)显示存储的其它节点装置1(节点A)的信息,图5(D)显示通过接收消息等等获取的节点装置1(节点J)的信息,图5(E)显示通过接收消息等等获取的节点装置1(节点K)的信息,并且图5(F)显示通过接收消息等等获取的节点装置1(节点L)的信息。

[0059]

例如,在节点Z接收例如来自图5(D)所示的节点J的消息的信息的情况下,节点Z比较存储在节点J的节点ID[0331]属于的表区域(层1,各个层关注位X=0)中的节点J的HOP数(7)和节点A的HOP数(4),并且具有较小HOP数(在其它节点装置和自身节点装置之间通信的情况下,在整个通信网络上具有较轻的通信负荷)的节点装置的信息被存储。这里,因为节点A的HOP数比节点J的小,所以不存储节点J的信息而保持节点A的信息。

[0060]

另一方面,在节点Z接收例如来自图5(E)所示的节点K的消息的信息的情况下,节点Z比较存储在节点K的节点ID[0103]属于的表区域(层1,各个层关注位X=0)中的节点K的HOP数(2)和节点A的HOP数(4),并且较小的HOP数被存储。这里,节点K的HOP数小于节点A的,节点K的信息被存储代替节点A。

[0061]

这里,在节点Z接收例如来自图5(F)所示的节点L的消息的信息的情况下,节点L的信息被重新存储,因为其它节点装置不存储在节点L的节点ID[1002]属于的表区域(层3,各个层关注位X=0)中。

[0062]

[3.1在本实施例中信息通信系统的操作]

接下来,将参考图5到17说明本实施例的信息通信系统S的操作。

[0063][3.1.1.整个信息通信系统的操作]

以下,将参考图5到10解释本实施例的整个信息通信系统的操作。

[0064]

该系统是在一个节点装置1被称为节点Z并且节点Z保持由图5(A)所示的四位的四进制数构成的DHT路由表的前提下提供的。如此表和图5(3)的实例所示,节点Z存储IP地址(节点信息),节点ID(标识信息),以及各个层关注位X=0到3时的属于层1到4的任何一个区域的节点A到H的HOP数(通信负荷信息)。

[0065]

(改变表的模式)

节点装置1(节点Z)的控制单元11接收来自其它节点装置1的信息(例如图5(E)所示的节点装置1(节点K))。在其它节点装置1(节点A)的节点ID[0211]被存储在对应于作为接收信息的发送源的节点K的节点ID[0103]属于的存储单元中的表区域(层1,各个层关注位=0)中的情况下,控制单元11比较从作为发送源的节点K到自身节点装置1(节点Z)的HOP数与从存储节点ID的节点A到自身节点装置1(节点Z)的HOP数,从而判断HOP数的大小。

[0066]

在控制单元11判定从发送源节点K到自身节点装置1(节点Z)的HOP数小于从存储节点ID的节点A到自身节点装置1(节点Z)的HOP数的情况下(即在与各个节点装置通信的情况下整个通信网络上的通信负荷为小),控制单元11改变为存储节点ID的节点A的IP地址和节点ID,从而令存储单元12的DHT路由表存储发送源节点K的IP地址和节点ID。

[0067]

另一方面,在节点装置1(节点Z)的控制单元11从其它节点装置1(例如图5(D)所示的节点装置1(节点J))接收信息并且更进一步的其它节点装置1(节点A)的节点ID[0211]被存储在对应于发送源节点J的节点ID[0331]属于的存储单元12中的DHT路由表区域(层1,各个层关注位=0)中的情况下,控制单元11使用存储节点ID的节点A到自身节点装置1(节点Z)的HOP数比较从发送源节点J到自身节点装置1(节点Z)的HOP数,从而判断HOP数的大小。

[0068]

在控制单元11判定从发送源节点J到自身节点装置1(节点Z)的HOP数大于从存储节点ID的节点A到自身节点装置1(节点Z)的HOP数(即在与各个节点装置通信的情况下整个通信网络上的通信负荷为大)的情况下,控制单元11保持存储节点ID的节点A的IP地址和节点ID不改变。

[0069]

在控制单元11判定从信息发送源的节点装置1到自身节点装置1(节点Z)的HOP数与从存储节点ID的节点装置1(A)到自身节点装置1(Z)的HOP数相同的情况下,控制单元11可以保持存储节点ID的节点装置1(例如节点A)的IP地址和节点ID不改变或可以按一次预定次数的比率改变等等。

[0070]

(获取通信负荷信息的模式)

将参考图6到10说明节点装置1获取作为以上提及的通信负荷的信息的TTL的值或HOP数的模式。在本实施例中,作为节点装置1的信息接收单元的控制单元11从信息发送源的节点装置接收TTL的值或HOP数的信息。

[0071]

如图6(A)所示,自身节点装置1(例如节点Z)通过一个以上路由器与其它节点装置1(例如节点B)通信。在此通信过程中,由如图6(B)所示的IP报头(IP header)和IP数据形成的包被一般地发送和接收。如图6(B)所示,IP报头包括指示例如TTL(生存周期:存活时间)的通信负荷的信息。

[0072]

这里,TTL是指示包的有效周期的值并且是基于例如两个节点装置通过其互相通信的路由器的网络连接装置的数目的值。TTL用最高到255的整数值表示并且每当路由器等通过一次路由选择时该值减小一。当包的TTL变为0时,包在那时被丢弃,并且丢弃通知到达包发送源。TTL是为保护包免受由于设置误差造成的无限的循环而设置的功能。尽管TTL原先打算用秒指示包的使用期限,但是因为很难测量实际上经过的时间,所以结果是用路由器的路由选择频率表示有效周期。尽管发送源的计算机可以自由地设置TTL,但是当信息被发给网络上的远离的节点装置(除非铺设许多路由器否则不能被通信的节点装置)时,包应该在某种程度上设置有大值的TTL。否则,TTL在包到达目标节点装置以前变为0,并且包不能到达在对面的节点装置。从此TTL的设定值减去接收的包中的TTL值所得的值是HOP数(TTL设定值-TTL值=HOP数)。

[0073]

如上所述,TTL的信息包括在由节点装置1接收的包的IP报头中。然而,在处理TCP协议的普通的套接程序中,节点装置1不能在使用作为普通的接口的正常的套接通信的情况下读取TTL值。尽管可以使用作为其它接口的RAW套接读取TTL值,但是要求协议控制被整个地编程。此外,用此方法,程序员的工作量很大。因此,更好的是使用,仅对于如以下所示的通信,部分地使用RAW套接的方法。

[0074]

为了如图6(A)所示测量用于向其它节点装置1(例如节点B)发送的TTL,作为用于发送节点装置1(节点Z)的通信负荷信息的单元的控制单元11在建立通信时的初始阶段发送用于TTL测量的请求包,并且接收用于TTL测量的响应包。节点Z可以通过从响应包的信号读出TTL值来获取从其它节点装置1(节点B)到自身节点装置(节点Z)的TTL值。这里,TTL的初始值是预先确定的,例如,64,最高255,如上所述。

[0075]

这里,图7显示使用普通的TCP协议的连接建立方法。图8显示使用普通的TCP协议的断开方法。图9显示使用TCP协议的TTL测量方法。图10显示使用UDP协议的TTL测量方法。

[0076]

如图7所示,在普通的TCP协议中,首先,SYN包(用于建立通信的信号)被发给包括自身节点装置1(节点Z)的节点装置1(节点B)以与其它节点装置创建连接。收到SYN包后,节点B启动被动的打开处理以向节点Z发送接收确认(ACK)以及SYN包。收到ACK/SYN包后,节点Z向节点B发送接收确认(ACK)包以完成打开处理,然后原始的消息(信息)从节点Z发送到节点B。

[0077]

此外,如图8所示,在普通的TCP协议中,当完成从节点Z向节点B发送原始的消息(信息)时,与其它节点装置的连接被断开。因此,首先,自身节点装置1(节点Z)向自身节点装置1(节点Z)已经与之通信直到那时的节点装置(节点B)发送FIN包。收到FIN包后,节点B接收关闭请求并向节点Z发送接收确认(ACK)包。此外,节点B向节点Z发送FIN包。收到FIN包后,节点Z接收关闭请求并向节点B发送接收确认(ACK)包。

[0078]

这里,TTL值是包括在如图6(B)所示的包的IP头部内的信息(或信号),并且该TTL值不能被各个节点装置1在使用作为TCP套接编程中的普通的接口的正常的套接过程中辨别。因此,更好的是使用RAW套接作为用于获取TTL值的另一接口。

[0079]

与在使用图9所示的TCP协议的TTL测量方法中一样,自身节点装置1(节点Z)使用RAW套接发送SYN包到其它节点装置1(节点B)。收到SYN包的节点B发送ACK/SYN包到节点Z。节点Z可以通过使用RAW套接接收ACK/SYN包获取ACK/SYN包中的TTL。这样因为节点Z能够在与节点B创建连接以前获取TTL,节点Z发送RST包或FIN包代替如图7所示的确认包并且使用RAW套接完成通信。随后,节点Z读取对应于这样接收的ACK/SYN包中的TTL值的信号(包括对应于TTL值信息的信号的信号)以获取TTL值信息。此外,节点Z基于计算HOP数。然后节点Z向原始的消息添加这样从ACK/SYN包获取的HOP数信息并且使用正常的套接发送到节点B。图9中的随后的打开处理,消息发送处理,以及关闭处理类似于参考图7和8的说明。这样节点B可以获取从自身节点装置1(节点B)到作为其它节点装置1的节点Z的通信负荷信息(HOP数)。

[0080]

此外,如使用图10中的UDP协议的TTL测量方法所示,也可能是自身节点装置1(节点Z)组成由包头部和消息部分形成的UDP包并发送它到其它节点装置1(节点B)作为用于添加有UDP包头部的TTL测量的消息。在这时候,自身节点装置1发送使用RAW套接的UDP包。这样接收UDP包的节点B发送响应消息到节点Z。节点Z使用RAW套接接收响应消息以获取响应消息中的TTL。随后,节点Z向基于TTL值计算的HOP数信息添加原始的消息并使用正常的套接发送它到节点B。

相应地,节点B可以获取从自身节点装置1(节点B)到作为其它节点装置1的节点Z的通信负荷信息(HOP数)。

[0081]

根据本实施例,如图5(A)和5(C)所示,在给定节点装置1(节点Z)从其它节点装置1(例如节点A)接收信息并且在DHT路由表中存储节点装置的信息的情况下,这样接收的HOP数信息被与节点装置的IP地址,端口号,和节点ID一起存储作为通信负荷信息。

[0082]

[3.1.2.节点装置的操作]

接下来,在其它节点装置1(例如以上提及的节点A)的信息已经被存储在一个节点装置1(以上提及的节点Z)参与了信息通信系统S中的通信网络之后的DHT路由表中的区域中的情况下,将参考图11到15的流程图说明判断更进一步的信息是否被从属于相同区域的其它节点装置1(例如以上提及的节点J,节点K)接收并且重写这样接收的节点A的信息的处理。

[0083]

这里,使用这些流程图的说明包括节点Z在参与通信网络之后从其它节点装置接收响应消息(返回信息)的处理,并且基于响应消息发送源的节点装置的信息建立DHT路由表。在说明流程图以前,参考图16和17略述建立此DHT路由表的处理。

[0084]

(0)在参与之后建立DHT路由表的模式

如图16所示,当参与信息系统S中的通信网络时,节点Z向作为联系节点(已经知道IP地址的任意的节点装置)的节点B发送参与消息(箭头标记101)。然后节点B向节点Z发送作为返回信息的响应消息(箭头标记102)。接下来,节点B顺序地向登记在如图17(A)所示层1中的节点A,节点E,和节点C发送存在确认消息作为存在确认信息(箭头标记103,105,107)。然后,节点A发送响应消息到节点Z(箭头标记104),节点E发送响应消息到节点Z(箭头标记106),并且节点C发送响应消息到节点Z(箭头标记108)。这里,图17(A)到(C)中的层号左边的三角形标记意指存在确认消息被发给登记在该层中的节点装置,由双重的矩形圈出的节点装置意指参与消息被传送到该节点装置。

[0085]

然后节点B在这种情况下向节点Z,节点E的根节点传送参与消息(箭头标记109)。这里,存在确认消息的发送目的地是下一层2的信息被加到参与消息。接下来,节点E顺序地发送存在确认消息到登记在下一层2中的节点G,节点D,以及节点F(箭头标记110,112,114)。然后,节点G发送响应消息到节点Z(箭头标记111),节点D发送响应消息到节点Z(箭头标记113),并且节点F发送响应消息到节点Z(箭头标记115)。

[0086]

然后,节点E在这种情况下传送参与消息到节点Z,节点G的根节点(箭头标记116)。这里,存在确认消息的发送目的地是下一层3的信息被加到参与消息。接下来,节点G发送存在确认消息到登记在下一层3中的节点H(箭头标记117)。然后,节点H向节点Z发送响应消息(箭头标记118)。这里,因为节点G是节点Z的根节点并且没有更多的传送目的地,所以该处理完成。

[0087]

(1)节点装置的基本处理

回到流程图,参考图11解释节点装置1(节点Z)的基本处理。节点Z在参与通信网络之后根据图16所示的过程建立并且保持(存储)图5(A)所示的DHT路由表。

[0088]

当节点Z的控制单元11识别出自身节点装置被输入装置21等驱动时,节点Z的各种设置被初始化并且启动基本处理(启动)。本实施例的前提是节点Z保持当节点Z参与通信网络时节点Z首先与之通信的联系节点装置1(节点B)的IP地址和端口号。

[0089]

当基本处理开始时,控制单元11建立发送到联系节点(节点B)的参与消息包(步骤S1)。

[0090]

接下来,控制单元11相对于这样建立的参与消息包执行消息发送处理(步骤S2)。这里,随后参考图12说明消息发送处理。

[0091]

接下来,控制单元11判断电源是否被断开(步骤S3),判定电源未断开,因为电源通常不在紧接着电源开启之后断开(步骤S3;否),并且判断是否从其它节点装置1接收消息(信息)(步骤S4)。这次,因为至少从节点B接收响应消息,所以控制单元11判定从其它节点装置1(节点B)接收消息(步骤S4;是)并且执行消息接收处理(步骤S5)。这里,随后参考图13说明消息接收处理。

[0092]

接下来,控制单元11在表中登记接收的消息的发送源的节点装置1(节点B)(步骤S6)。对此表的登记处理随后参考图14说明。这次,节点B的信息被登记在层1以及节点Z的表中的各个层关注位X=2的区域中(参照图5(A))。

[0093]

接下来,控制单元11回到步骤S3。在电源未关闭(步骤S3;否)并且消息未接收(步骤S4;否)的情况下,控制单元11响应于来自输入单元21的输入执行其它处理(步骤S7)等并且回到步骤S3。节点Z的控制单元11响应于情况重复步骤S3到S6,或步骤S3,S4和S7的操作。在节点Z的电源关闭的情况下,控制单元11这样判断(步骤S3;是)并完成基本处理(结束)。

[0094]

(2)节点装置的消息发送处理

参考如上所述图12和图9,说明节点Z的消息发送处理。这里,当节点Z发送各种消息的信息时,节点Z在初始阶段使用RAW套接获取TTL值的信息,然后发送具有使用正常的套接添加的HOP数信息的信息。

[0095]

当以上提及的基本处理中的消息发送处理开始时(步骤S2),节点Z的控制单元11开始此消息发送处理(开始)。本实施例是在包括节点装置的IP地址作为内容以及消息的地址的包被建立的前提下。

[0096]

当消息发送处理开始时,控制单元11建立RAW套接(步骤S11)。接下来,控制单元11发送TTL测量请求包到消息编址的节点装置1并且判断该包是否可以被发送(步骤S12)。在节点Z发送该包到作为联系节点的节点B的情况下,一般地存在节点B,该包可以被发送,因此控制单元判断如此(步骤S12;是)。接下来,控制单元11判断TTL测量响应包是否可以从编址的节点装置接收(步骤S13)。

[0097]

在节点Z发送包到作为联系节点的节点B的情况下,一般地该响应包可以从存在的节点B接收,因此控制单元11判断如此(步骤S13;是)。接下来,控制单元11从响应包的IP报头读出TTL值的信息(步骤S14)。这里,TTL值假定为249并且TTL设定值是255。

[0098]

接下来,控制单元11关闭RAW套接(步骤S15),并且从TTL设定值(255)中减去接收的响应包的TTL值(249),并且此值(6)被设置为HOP数(步骤S16)。控制单元11向建立的包添加自身节点装置的IP地址信息和计算的HOP数信息,用正常的套接发送该包到预定编址的节点装置1(节点B),并且回到原始的处理流程,到步骤3这里,当做消息发送处理被认为成功(返回/成功)。

[0099]

另一方面,在消息编址的节点装置1不存在,并且TTL测量请求包不能被发送(步骤S12;否),或者TTL测量响应包不能被接收(步骤S13;否)的情况下,控制单元11关闭RAW套接(步骤S18)并且回到原始的处理流程,步骤3,当做消息发送处理被认为失败(返回/失败)。

[0100]

根据这些处理,从节点Z接收消息的节点装置1(在这种情况下节点B)可以接收HOP数信息(以上提及的6),并且在发送消息的节点装置1的信息被登记在表中的情况下,HOP数信息可以被存储在一起。

[0101]

(3)节点装置的消息接收处理

参考如上所述图13和图9说明节点Z,节点B,节点E,节点G,与节点A的消息接收处理。

[0102]

(节点Z)

当以上提及的基本处理中的消息接收处理(步骤S5)开始时,节点Z的控制单元11开始此消息接收处理(开始)。这里,在首先接收来自节点B的响应消息的前提下作出说明。

[0103]

当消息接收处理开始时,控制单元11判断这样接收的消息是否是参与消息(步骤S21)。这里,因为接收的消息是响应消息,所以控制单元11判定接收的消息不是参与消息(步骤S21;否)。接下来,控制单元11判断接收的消息是否是存在确认消息(步骤S22)。

[0104]

这里,因为接收的消息是响应消息,所以控制单元11判定接收的消息不是存在确认消息(步骤S22;否)。接下来,控制单元11判断接收的消息是否是该响应消息(步骤S23)。这里,控制单元11判定接收的消息是响应消息(步骤S23;是)并回到最初的处理流程(返回)。

[0105]

(节点B)

另一方面,在联系节点B中,在从参与通信网络的节点Z接收参与消息的情况下的消息接收处理描述如下。节点B存储在图17(A)所示的表中。

[0106]

当节点B的控制单元11接收参与消息并且在以上提及的基本处理中的消息接收处理(步骤S5)开始时,控制单元11开始此消息接收处理(开始)。在步骤S21中,当节点B的控制单元11判定接收的消息是参与消息时(步骤S21;是),控制单元11判断参与消息是否包括指示层号的附加信息(步骤S24)。因为从参与通信网络的节点Z接收的参与消息包不包括附加信息,所以控制单元11判定参与消息不包括附加信息(步骤S24;否),并且确定表中的层号为1(步骤S25)。这里,可能有建立参与消息的节点装置(节点Z)添加设置层号为1的附加信息并且发送参与消息的模式。在这样的情况中,通过随后说明的步骤S40,代替步骤S24和S25,响应于附加信息确定层号1。

[0107]

接下来,控制单元11发送响应消息到作为参与消息发送源的节点Z(步骤S26)。在步骤S26中,执行如以下提及的步骤S32,S33,和S41的操作。然而,因为此时不存在参与发送源的节点装置1(节点Z)的可能性低,所以响应消息发送被认为成功并且控制单元11回到下一步S27。

[0108]

接下来,控制单元11确定表中的列号(各个层关注位X)为0(步骤S27),并且注意层1的区域,显示节点B的表的图17(A)中的关注位X=0。控制单元11判断这样确定的列号是否不大于整个表列号(步骤S28)。因为确定的列号0不大于整个表列号3(步骤S28;是),所以控制单元11判断落入关注[层号][列号]的节点装置是否是自身节点装置(步骤S29)。

[0109]

这里,因为落入关注[层号1][列号0]的节点装置不是如图17(A)所示的自身节点装置,所以控制单元11判断如此(步骤S29;否)。接下来,控制单元11判断其它节点装置的信息是否存储在关注[层号][列号]中(步骤S30)。

[0110]

这里,因为具有节点ID[0211]的节点装置存储在[层号1][列号0]中,所以控制单元11判断如此(步骤S30;是),建立包括作为参与消息发送源的节点Z的IP地址的存在确认消息,并且确定具有存储在[层号1][列号0]中的节点ID[0211]的节点装置(节点A)作为消息发送源(步骤S31)。接下来,相对于这样建立的存在确认消息对作为发送目的地的节点A执行消息发送处理(步骤S32)。此消息发送处理类似于使用图12如上所述的处理并且在这里消息发送处理被认为成功。

[0111]

接下来,控制单元11判断消息发送处理是否成功(步骤S33),并且在这种情况下,因为存在确认消息的发送处理成功,所以控制单元11判断如此(步骤S33;是)。接下来,控制单元11向列号0添加1以使列号成为1(步骤S34)并且回到步骤S28。

[0112]

接下来,通过步骤S28;是,步骤S29;否,步骤S30;是,步骤S31,步骤S32,以及步骤S33;是,控制单元11发送存在确认消息到具有存储在[层号1][列号1]中的节点ID[1221]节点装置(节点E),向列号1添加1以使列号成为2(步骤S34)并且回到步骤S28。

[0113]

接下来,通过步骤S28;是,控制单元11在步骤S29中判断区域[层号1][列号2]是自身节点装置(步骤S29;是),向列号2添加1以使列号成为3(步骤S34),并回到步骤S28。

[0114]

接下来,通过步骤S28;是,步骤S29;否,步骤S30;是,步骤S31,步骤S32,以及步骤S33;是,控制单元11发送存在确认消息到具有存储在[层号1][列号3]中的节点ID[3121]的节点装置(节点C),向列号3添加1以使列号成为4(步骤S34),并且回到步骤S28。

[0115]

在这里,控制单元11判断确定的列号是否小于整个表的列号(步骤S28),并且因为确定的列号4不小于整个表的列3(步骤S28;否),参与消息传输目的地(发送目的地)的节点装置被识别(步骤S35)。在这里,如参考图2解释的,因为最靠近作为参与节点装置的节点Z的节点ID[1013]的节点装置是具有节点ID[1221]的节点E,所以节点E被认为是参与消息的传输目的地。

[0116]

接下来,控制单元11判断自身节点装置是否是最靠近根节点的节点ID[1013]的节点装置,或者作为参与节点装置的节点Z(步骤S36)。如上所述,在这里,最靠近作为参与节点装置的节点Z的节点ID[1013]的节点装置是具有节点ID[1221]的节点E,并且自身节点装置不是根节点。因此,控制单元11判断如此(步骤S36;否),并且建立参与消息,其添加有向关注层号加1的层号信息作为附加信息(步骤S37)。在这里,关注层号是1并且控制单元11向参与消息添加具有对其添加的1的层号2的附加信息。

[0117]

接下来,控制单元11执行消息发送处理以相对于这样建立的参与消息传输目的节点E(步骤S38)。此消息发送处理类似于以上参考图12提及的处理,并且在这里消息发送处理被认为成功。

[0118]

接下来,控制单元11判断消息发送处理是否成功(步骤S39)。在这里因为存在确认消息的发送处理成功,所以控制单元11判断如此(步骤S33;是)并且回到最初的处理(返回)。

[0119]

(节点E)

接下来,在节点E中,从节点B传输参与消息,并且当接收消息时的消息接收处理描述如下。节点E预先存储图17(B)所示的表。

[0120]

当节点E的控制单元11接收参与消息并且在以上提及的基本处理中的消息接收处理开始(步骤S5)时,控制单元11开始此消息接收处理(开始)。在步骤S21中,节点E的控制单元11判定这样接收的消息是参与消息(步骤S21;是),然后判断参与消息是否包括指示层号的附加信息(步骤S24)。因为从参与节点B接收的参与消息包包括指示层号2的附加信息,所以控制单元11判定参与消息包括附加信息(步骤S24;是),并且响应于附加信息确定表中的层号为层号2(步骤S40)。

[0121]

接下来,控制单元11确定表中的列号(各个层关注位X)为0(步骤S27),并且注意层2的区域,图17(B)中的关注位X=0,指示节点E的表。控制单元11判断确定的列号是否小于整个表的列号(步骤S28)。因为确定的列号0小于整个表的列号3(步骤S28:是),所以控制单元11判断对应于关注[层号][列号]的节点装置是否是自身节点装置(步骤S29)。

[0122]

在这里,因为对应于关注[层号2][列号0]的节点装置不是如图17(3)所示自身的节点,所以控制单元11判断如此(步骤S29;否),然后判断其它节点装置的信息是否存储在关注[层号][列号]中(步骤S30)。

[0123]

在这里,因为具有节点ID[1023]的节点装置存储在[层号2][列号0]中,所以控制单元11判断如此(步骤S30;是)。然后控制单元11建立包括作为参与消息发送源的节点Z的IP地址的存在确认消息,并且确定消息发送源为具有存储在[层号2][列号0]中的节点ID[1023]的节点装置(节点G)(步骤S31)。接下来,相对于这样建立的存在确认消息执行向发送目的节点G的消息发送处理(步骤S32)。此消息发送处理类似于以上参考图12提及的处理,并且,在这里,被认为成功。

[0124]

接下来,控制单元11判断消息发送处理是否成功(步骤S33),并且在这里,存在确认消息发送处理成功,控制单元11判断如此(步骤S33;是)。接下来,控制单元11向列号0的值添加1以使列号成为1(步骤S34)并且回到步骤S28。

[0125]

接下来,控制单元11通过步骤S28;否,步骤S29;否,步骤S30;是,步骤S31,步骤S32,以及步骤S33;是,发送存在确认消息到具有存储在[层号2][列号1]中的节点ID[1120]的节点装置(节点D),添加1到列号1的值以使列号成为2(步骤S34),并且回到步骤S28。

[0126]

接下来,控制单元11通过步骤S28;是,在步骤S29中判定[层号2][列号2]的区域是自身节点装置(步骤S29;是),向列号值2添加1以使列号成为3(步骤S34),并回到步骤S28。

[0127]

接下来,控制单元11通过步骤S28;是,步骤S29;否,步骤S30;是,步骤S31,步骤S32,以及步骤S33;是,发送存在确认消息到具有存储在[层号2][列号3]中的节点ID[1323]的节点装置(节点F),向列号值3添加1以使列号成为4(步骤S34),并且回到步骤S28。

[0128]

在这里,控制单元11判断确定的列号是否小于整个表的列号(步骤S28)。因为确定的列号4不小于整个表的列号3(步骤S28;否),所以控制单元11识别参与消息传输目的地(发送目的地)的节点装置(步骤S35)。在这时候,因为最靠近作为参与节点装置的节点Z的节点ID[1013]的节点装置是具有节点ID[1023]的节点G,控制单元11识别节点G作为参与消息传输目的地。

[0129]

接下来,控制单元11判断自身节点装置是否是最靠近作为根节点的节点Z的节点ID[1013]或者参与节点装置的节点装置(步骤S36)。如上所述,在这里,因为最靠近作为参与节点装置的节点Z的节点ID[1013]的节点装置是具有节点ID[1023]的节点G并且自身节点装置不是根节点,所以控制单元11判断如此(步骤S36;否),并且建立参与消息,其添加有向关注层号加1的层号信息,作为附加信息(步骤S37)。在这里,关注层号是2并且控制单元11向参与消息添加添加了1的层号3的附加信息。

[0130]

接下来,控制单元11执行消息发送处理以相对于这样建立的参与消息传输目的节点G(步骤S38)。此消息发送处理类似于以上参考图12提及的的处理,并且在这里消息发送处理被认为成功。

[0131]

接下来,控制单元11判断消息发送处理是否成功(步骤S39),并且,在这里,因为存在确认消息发送处理成功,所以控制单元11判断如此(步骤S33;是),并且回到最初的处理的流程(返回)。

[0132]

在这里,在步骤S32中消息发送处理失败(图12中的<返回/失败>)的情况下,在步骤S33中控制单元11判定消息发送处理不成功(步骤S33;否),从表删除对应的IP地址等等(步骤S41),并且回到下一步S34。类似地,在步骤S38中消息发送处理以失败结束的情况下,在步骤S39中控制单元11判定消息发送处理不成功(步骤S39;否),从表删除对应的IP地址等等(步骤S42),并且回到步骤S35,在那里传输目的地被再次识别。

[0133]

(节点G)

接下来,在节点G中,从节点E传输参与消息,并且当接收消息时的消息接收处理描述如下。节点G被认为存储图17(C)所示的表。

[0134]

当节点G的控制单元11接收参与消息并且在以上提及的基本处理中的消息接收处理开始(步骤S5)时,控制单元11开始此消息接收处理(开始)。在步骤S21中,节点G的控制单元11判定这样接收的消息是参与消息(步骤S21:是),然后判断参与消息是否包括指示层号的附加信息(步骤S24)。因为从参与节点E接收的参与消息包中包括指示层号3的附加信息,所以控制单元11判定参与消息包括附加信息(步骤S34:是),并且响应于附加信息确定表中的层号为层号3(步骤S40)。

[0135]

接下来,控制单元11确定表中的列号(各个层关注位X)为0(步骤S37),并且注意层3的区域,图17(C)中的关注位X=0,指示节点G的表。控制单元11判断确定的列号是否小于整个表的列号(步骤S28)。因为确定的列号0小于整个表的列号3(步骤S28:是),所以控制单元11判断对应于关注[层号][列号]的节点装置是否是自身节点装置(步骤S29)。

[0136]

在这里,因为对应于关注[层号3][列号0]的节点装置不是如图17(C)所示自身节点装置,所以控制单元11判断如此(步骤S29;否),然后判断其它节点装置的信息是否存储在关注[层号][列号]中(步骤S30)。

[0137]

在这里,因为其它节点装置不存储在[层号3][列号0]中,所以控制单元11判断如此(步骤S30;否),跳过此区域,向列号值0添加1以使列号成为1(步骤S34),并且回到步骤S28。

[0138]

接下来,控制单元11通过步骤S28;是,步骤S29;否,以及步骤30;否,并且因为其它节点装置不存储在[层号3][列号1]中,所以跳过此区域,向列号值1添加1以使列号成为2(步骤S34),并且回到步骤S28。

[0139]

接下来,控制单元11通过步骤S28;是,在步骤S29中判定[层号2][列号2]的区域是自身节点装置(步骤S29;是),向列号值2添加1以使列号成为3(步骤S34),并回到步骤S28。

[0140]

接下来,控制单元11通过步骤S28;是,步骤S29;否,步骤S30;是,步骤S31,步骤S32,以及步骤S33;是,发送存在确认消息到具有存储在[层号2][列号3]中的节点ID[1032]的节点装置(节点H),向列号值3添加1以使列号成为4(步骤S34),并且回到步骤S28。

[0141]

在这里,控制单元11判断的列号是否小于整个表的列号(步骤S28),并且因为判断的列号4不小于整个表的列号3(步骤S28;否),所以控制单元11识别参与消息传输目的地(发送目的地)的节点装置(步骤S35)。在这时候,因为最靠近作为参与节点装置的节点Z的节点ID[1013]的节点装置是具有节点ID[1023]的自身节点装置(节点G),所以控制单元11识别节点G作为参与消息传输目的地。

[0142]

接下来,控制单元11判断自身节点装置是否是最靠近作为根节点的节点Z的节点ID[1013]的节点装置或者参与节点装置(步骤S36)。如上所述,在这里,因为自身节点装置(节点G)是根节点,所以控制单元11判断如此(步骤S36;是),并且回到最初的处理的流程(返回)。

[0143]

这样,用于建立作为参与节点装置的节点Z的DHT路由表的存在确认消息发送处理以及参与消息传输处理完成了。

[0144]

(节点A)

同时,当节点A接收发自联系节点B的存在确认消息时的消息接收处理描述如下。

[0145]

当节点A的控制单元11接收存在确认消息并且在以上提及的基本处理中的消息接收处理开始(步骤S5)时,控制单元11开始此消息接收处理(开始)。在这里,在从节点B接收存在确认消息的前提下给予说明。

[0146]

当消息接收处理开始时,控制单元11判断这样接收的消息是否是参与消息(步骤S21)。在这里,因为接收的消息是存在确认消息,所以控制单元11判定接收的消息不是参与消息(步骤S21;否),然后判断接收的消息是否是存在确认消息(步骤S22)。

[0147]

控制单元11判定接收的消息是存在确认消息(步骤S22;是),获得作为被加到存在确认消息的参与消息发送源的节点Z的IP地址,并且建立发送到节点Z的响应消息(步骤S43)。接下来,相对于这样建立的响应消息执行向发送目的地节点Z的消息发送处理(步骤S44)。此消息发送处理类似于以上参考图12提及的处理并且被认为成功。

[0148]

接下来,控制单元11判断消息发送处理是否成功(步骤S45),并且因为存在确认消息发送处理成功,所以控制单元11判断如此(步骤S45;是),并且回到最初的处理的流程(返回)。

[0149]

在这里,在步骤S44中消息发送处理以失败结束的情况下(图12中的<返回/失败>),在步骤S45中控制单元11判定消息发送处理不成功(步骤S45;否),从表删除对应的IP地址等(步骤S46),并且回到最初的处理的流程(返回)。

[0150]

此外,在由节点装置1接收的消息不是参与消息,存在确认消息,以及响应消息的任一的情况下,控制单元11判断为步骤S21;否,步骤S22;否,以及步骤S23;否,对于接收其它消息的情况执行该处理(步骤S47),并且回到最初处理的流程(返回)。

[0151]

(4)在节点装置中的表中登记新的节点装置的处理

将参考如上所述图14和图5说明节点Z中的新的节点装置的登记处理。在这里,假定节点Z从节点J随后从节点K和节点L接收消息,解释新的节点装置的登记处理。

[0152]

当以上提及的基本处理中的新的节点装置的登记处理开始时(步骤S6),节点Z的控制单元11开始此表登记处理(开始)。在这里,说明是基于消息是从节点J接收的假定。

[0153]

当表登记处理开始时,控制单元11从接收的消息,获取各个信息,特别地,例如作为发送源节点装置的节点J的IP地址和HOP数的信息(步骤S51)。接下来,控制单元11从获取的IP地址识别将要登记在表中的区域(步骤S52)。因为节点J是如图5(D)所示节点ID[0331],所以将要登记的区域是层1,各个层关注位X=0。

[0154]

接下来,控制单元11判断各个层关注位X=0时,此层1的区域是否为空(步骤S53)。在这里,因为节点A的信息登记在如图5(A)所示区域中,控制单元11判断该区域不是空白(步骤S53;否),并且判断登记在该区域中的节点A的HOP数是否大于消息发送源节点J的HOP数(步骤S54)。在这里,因为节点A的HOP数(4)不大于节点J的HOP数(7),所以控制单元11判断如此(步骤S54;否),并且回到最初处理的流程(返回)。

[0155]

接下来,在节点Z从节点K接收消息的假定下作出以下说明。当以上提及的基本处理中的新的节点装置的登记处理开始时(步骤S6),节点Z的控制单元11开始该表的登记处理(开始)。

[0156]

当表登记处理开始时,控制单元11从接收的消息,获取作为发送源节点装置的节点K的各个信息,特别地,例如IP地址和HOP数的信息(步骤S51)。接下来,控制单元11从获取的IP地址识别将要登记在表中的区域(步骤S52)。节点K,因为节点ID是如图5(E)所示0103,所以图5(A)中各个层关注位X=0时,将要登记的区域是层1。

[0157]

接下来,控制单元11判断各个层关注位X=0时,此层1的区域是否为空(步骤S53)。在这里,因为节点A的信息登记在如图5(A)所示区域中,控制单元11判定该区域不是空白(步骤S53;否),并且判定登记在该区域中的节点A的HOP数是否大于消息发送源节点K的HOP数(步骤S54)。在这时候,因为节点A的HOP数(4)大于节点K的HOP数(2),控制单元11判断如此(步骤S54;是),删除登记的节点A的信息,登记消息发送源节点K的信息,并且回到最初处理的流程(返回)。

[0158]

接下来,在节点Z从节点L的节点装置1接收消息的假定下作出以下说明。当以上提及的基本处理中的新的节点装置的登记处理开始时(步骤S6),控制单元11开始该表登记处理(开始)。

[0159]

当表登记处理开始时,控制单元11从接收的消息,获取作为发送源节点装置的节点L的各个信息,特别地,例如IP地址和HOP数的信息(步骤S51)。接下来,控制单元11从获取的IP地址识别将要登记在表中的区域(步骤S52)。节点ID在图5(A)中节点L是层3,各个层关注位X=0。

[0160]

接下来,控制单元11判断各个层关注位X=0时,此层3的区域是否为空(步骤S53)。在这里,因为没有东西登记在该区域中并且该区域如图5(A)所示为空,所以控制单元11判定该区域为空(步骤S53;是),登记消息发送源节点L的信息(步骤S56),并且回到最初处理的流程(返回)。

[0161]

(5)从节点装置中的表删除其它节点装置的处理

参考图15解释从节点装置1中的表删除其它节点装置的处理。在这里,此处理是在节点装置1在以上提及的步骤S41,S42,S46,和S55中删除节点信息的情况下。在以下说明中,节点Z删除登记在表中的节点A的信息。

[0162]

当从表删除节点A的处理开始时(步骤S55),节点Z的控制单元11开始此处理(开始)。

[0163]

当从表删除的处理开始时,控制单元11从将要删除的节点A的IP地址(112.***.***.***)计算节点ID[0211]并且识别[层号1][列号1]的表区域(步骤S61)。接下来,控制单元11判断将要删除的节点装置(节点A)是否是登记在表中的节点装置(步骤S62)。在这里,因为将要删除的节点装置(节点A)是登记在表中的节点装置,所以控制单元11判断如此(步骤S62;是),删除例如节点A的IP地址,端口号,HOP数,等信息(步骤S63),并且回到最初处理的流程(返回)。在这里,在步骤S62中,在控制装置11判定将要删除的节点装置1不是登记在表中的节点装置(步骤S62;否)的情况下,控制单元11回到最初处理的流程而不执行删除处理(返回)。

[0164]

[4.修改的模式]

在以上提及的每一个实施例中,节点装置1存储DHT路由表并且登记的其它节点装置的信息是否改变被确定。然而,其不局限于此实施例。节点装置1相对于标识信息所属的每一区域可以存储指示具有一个以上存储单元的指定的节点装置1的节点信息以及对应于该节点信息的唯一标识信息。

[0165]

在以上提及的每一个实施例中,尽管在解释说明中,在本发明中TTL值和HOP数(按照网络的距离)被用作通信负荷信息,但是通信负荷信息不局限于此。作为通信负荷信息,可以使用RTT(包互逆延迟时间),通信传输速度,有效带宽,通信网络的运行率,节点装置的通信运行率等等。在本发明中,自身节点装置和其它节点装置之间的通信给于的关于整个通信网络的通信负荷的影响度参数可以用作通信负荷信息以致降低通信系统中的整个通信网络的通信负荷。

[0166]

在以上提及的实施例中,确定当消息被接收作为信息时是否改变登记在表中的信息。然而,接收信息不局限于消息的接收。例如,如图7中的节点Z接收ACK/SYN包,从其它节点装置接收包。在确认合作者的节点装置的存在的情况下,比较单元和存储器信息改变单元在信息被接收时可以起作用。

[0167]

在以上提及的实施例中,使用RAW套接以致当发送信息时一起发送通信负荷信息,并且当接收信息时可以获取对发送源节点装置的通信负荷信息。然而,获取通信负荷信息的方法不局限于此,并且可以向其它节点装置询问通信负荷信息以获取通信负荷信息。此外,尽管在本实施例中存储单元12与DHT路由表一起存储通信负荷信息,但是该构造不局限于此。在比较单元中出现需要的情况下,每次可以从其它节点装置获取通信负荷信息。

[0168]

当忽略参与消息发送处理失败的情况的时候说明图13的步骤S26。

然而,在发送处理如图12所示以失败结束的情况下,可以再次发送参与消息到存储的其它节点装置或者向服务器装置等等询问例如服务器装置的联系节点的信息。

[0169]

尽管,在以上提及的实施例中,在建立通信的初始阶段中通过使用RAW套接作为接口获取TTL值信息,节点装置之间互相获取通信负荷信息的方法不局限于此模式。可以用其它方法获取通信负荷信息。

[0170]

当本实施例的节点装置1参与信息通信系统S时,各个节点装置和整个系统的动作不局限于参考图16和17解释的模式。参与的节点装置1可以用其他的各种方法获取其它节点装置的节点信息等并建立表。

[0171]

此外,对应于以上提及的节点装置1的各个动作的程序被存储在例如软磁盘或者硬盘的信息记录介质中,或者通过例如因特网的网络获取并记录并且该程序被读出以执行,从而令微计算机具有与各个实施例相关的控制单元11的作用。

[0172]

在2006年3月30日提交的日本专利申请(No.2006-95557),包括说明书,权利要求,附图和摘要的所有内容,通过引用被全部结合在本文中。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号