树型广播系统,再连接处理方法,节点装置,节点处理程序,服务器装置,以及服务器处理程序转让专利

申请号 : CN200810174736.5

文献号 : CN101425916B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 柳原靖司

申请人 : 兄弟工业株式会社

摘要 :

具有节点装置层级并将广播装置定位在其顶部的树型广播系统,信息被从较高层级向较低层级顺序地传输,所述节点装置包括:用于接收从当前连接的较高层中的节点装置或从广播装置广播的连接目的地候选者信息的单元;用于从连接目的地候选者信息当中指定适合作为再连接目的地候选者的节点装置的单元;用于存储再连接目的地候选者的网络地址信息的单元;以及用于当与节点装置或广播装置的连接被释放且本位节点装置被重新再连接到另一节点装置时,选择存储在再连接目的地候选者存储器单元中的一个节点装置,作为再连接目的地,并且与它连接的单元。

权利要求 :

1.一种树型广播系统中的节点装置,其特征在于,该树型广播系统通过多个所述节点装置参与以组成多个层级,并且将广播装置定位在所述多个层级的顶部并使所述各节点装置通过通信手段以树型方式连接,从而由所述广播装置广播的信息从在较高层级的节点装置顺序地传输到在较低层级的节点装置,所述节点装置包含:连接目的地候选者信息接收单元,用于接收连接目的地候选者信息,该连接目的地候选者信息是从当前与本位节点装置相连接的更高的层次中的节点装置或者从所述广播装置广播的,其指示将是再连接目的地候选者的节点装置,并且至少包括将是再连接目的地候选者的节点装置的网络地址信息;

再连接目的地候选者指定单元,用于从接收到的连接目的地候选者信息中指示的节点装置当中指定适合于本位节点装置的属性信息的节点装置作为所述本位节点装置的再连接目的地候选者;

再连接目的地候选者存储器单元,用于至少存储作为被指定为再连接目的地候选者的节点装置的网络地址信息;以及连接处理单元,用于在本位节点装置与更高的层级中的节点装置或者广播装置的连接被释放并且本位节点装置被重新再连接到另一节点装置的情况下,执行从存储在所述再连接目的地候选者存储器单元中的节点装置当中选择一个节点装置作为再连接目的地并且基于作为该再连接目的地的节点装置的网络地址信息与该选中的节点装置连接的连接处理。

2.如权利要求1所述的节点装置,其特征在于,进一步地包含:

连接目的地候选者信息传输单元,用于当所述多个节点装置当中的节点装置连接在比本位节点装置低的层级的情况下,传输收到的连接目的地候选者信息到所述多个节点装置当中的该节点装置。

3.如权利要求1或2所述的节点装置,其特征在于,进一步地包含:

可容许数目判断单元,用于判断当前连接到本位节点装置的较低层的节点装置的数目是否达到可连接到本位节点装置的较低层级的节点装置的可容许的数目;以及连接目的地候选者信息存储单元,用于在判断较低层的节点装置的数目没有达到可容许的数目的情况下,将收到的连接目的地候选者信息存储预定时间段,以便随后将它传输到将要连接在较低层级中的所述多个节点装置当中的节点装置。

4.如权利要求1或2所述的节点装置,其特征在于,

所述连接目的地候选者信息包括指示将是所述再连接目的地候选者的节点装置的系统中的层级的信息,所述属性信息包括指示所述本位节点装置的系统中的层级的信息,并且所述再连接目的地候选者指定单元基于指示层级的信息,在收到的连接目的地候选者信息中指示的节点装置中,指定位于高于或与本位节点装置相同的层级的节点装置作为适用于本位节点装置属性信息的再连接目的地候选者。

5.如权利要求1或2所述的节点装置,其特征在于,

所述连接目的地候选者信息包括指示将是所述再连接目的地候选者的节点装置的系统中的通信方法的信息,所述属性信息包括指示所述本位节点装置系统的通信方法的信息,并且所述再连接目的地候选者指定单元在收到的连接目的地候选者信息中指示的节点装置中,基于指示所述通信方法的信息,指定适用于本位节点装置通信方法的节点装置作为适用于本位节点装置属性信息的再连接目的地候选者。

6.如权利要求1或2所述的节点装置,其特征在于,

所述连接目的地候选者信息指示将是再连接目的地候选者的多个节点装置,并且所述再连接目的地候选者指定单元随机地在收到的连接目的地候选者信息中指示的多个节点装置中,指定数目小于作为本位节点装置的再连接目的地候选者数目的适当数目的节点装置,作为再连接目的地候选者。

7.如权利要求1或2所述的节点装置,其特征在于,

所述再连接目的地候选者存储器单元除了将是所述再连接目的地候选者的指定的节点装置的网络地址信息之外,还存储将是所述再连接目的地候选者的指定的节点装置的节点装置属性信息,所述节点装置进一步地包含:更新信息接收单元,用于接收从当前与本位节点装置相连接的更高层的节点装置,或从所述广播装置广播的,并且包括具有通过在所述树型广播系统中再连接而改变的属性信息的节点装置的改变之后的属性信息的更新信息;以及属性信息更新单元,用于基于包括在所述更新信息内的属性信息,更新存储在所述再连接目的地候选者存储器单元中的属性信息。

8.如权利要求1或2所述的节点装置,其特征在于,

所述连接目的地候选者信息由管理所述树型广播系统中的节点装置的连接模式的服务器装置产生,并且被提供给所述广播装置,该节点装置进一步地包含:报告信息接收单元,用于接收发自连接到本位节点装置的较低层级的节点装置的,指示参与到所述树型广播系统中的报告或从所述树型广播系统退出的报告的报告信息;

报告信息存储单元,用于存储接收的报告信息;以及

报告信息发送单元,其在本位节点装置是作为代表向所述服务器装置发送所述报告信息的代表节点装置的情况下,向所述服务器装置发送每一预定时间段存储的报告信息,并且在本位节点装置不是所述代表节点装置的情况下,向与本位节点装置相连接的更高层的节点装置发送接收的报告信息。

9.一种管理树型广播系统中的节点装置的网络连接模式的服务器装置,其特征在于,所述树型广播系统由多个节点装置参与形成,并且其中所述多个节点装置形成多个层级,并且将广播装置定位在所述多个层级的顶部,并通过通信手段树型连接,并且由所述广播装置广播的信息从在较高层级的节点装置顺序地传输到在较低层级的节点装置,所述服务器装置包含:连接目的地候选者信息生成单元,用于基于指示所述连接模式的信息,生成连接目的地候选者信息,其指示将是所述树型广播系统中的节点装置的再连接目的地候选者的另一节点装置,并且其至少包括所述另一节点装置的网络地址信息;以及连接目的地候选者信息发送单元,用于向所述广播装置发送生成的连接目的地候选者信息以及指示所述连接目的地候选者信息的广播指令的广播指令信息。

10.如权利要求9所述的服务器装置,其特征在于,进一步地包含:

报告信息接收单元,用于接收指示关于节点装置参与到所述树型广播系统的参与报告或关于节点装置从所述树型广播系统退出的退出报告的报告信息;以及更新单元,用于基于所述报告信息更新指示所述树型广播系统中的节点装置的连接模式的信息。

11.一种由多个节点装置参与形成的树型广播系统,其中所述多个节点装置形成多个层级并将广播装置定位在所述多个层级的顶部并且所述多个节点装置通过通信手段以树型连接,由所述广播装置广播的信息从在较高层级的节点装置顺序地传输到在较低层级的节点装置,其特征在于,管理所述树型广播系统中的节点装置的连接模式的服务器装置包含:连接目的地候选者信息生成单元,用于基于指示所述连接模式的信息,生成连接目的地候选者信息,其指示将是所述树型广播系统中的节点装置的再连接目的地候选者的另一节点装置,并且其至少包括该另一节点装置的网络地址信息;以及连接目的地候选者信息发送单元,用于向所述广播装置发送生成的连接目的地候选者信息以及指示所述连接目的地候选者信息的广播指令的广播指令信息,所述节点装置包含:连接目的地候选者信息接收单元,用于接收从当前与本位的节点装置相连接的更高层的节点装置或从所述广播装置广播的连接目的地候选者信息;

再连接目的地候选者指定单元,用于在接收到的连接目的地候选者信息中指示的节点装置中,指定适用于本位节点装置的属性信息的节点装置,作为本位节点装置的再连接目的地候选者;

再连接目的地候选者存储器单元,用于至少存储作为指定的再连接目的地候选者的节点装置的网络地址信息;以及连接处理单元,用于在本位节点装置与较高层级中的节点装置或者所述广播装置的连接被释放并且本位节点装置被重新再连接到另一节点装置的情况下,实行连接处理,其中从它们的网络地址信息被存储在所述再连接目的地候选者存储器单元中的节点装置当中,选择单个节点装置作为再连接目的地,本位节点装置基于被选为所述再连接目的地的节点装置的网络地址信息被连接。

12.一种树型广播系统中的再连接处理方法,其特征在于,所述树型广播系统由多个节点装置的参与形成,并且其中所述多个节点装置形成多个层级,并且广播装置定位在所述多个层级的顶部,所述多个节点装置通过通信手段以树型连接,并且由所述广播装置广播的信息从在较高层级的节点装置顺序地传输到在较低层级的节点装置,服务器装置管理所述树型广播系统中的节点装置的连接模式,其中所述再连接处理方法包含:所述服务器装置基于指示所述连接模式的信息,生成连接目的地候选者信息的步骤,所述连接目的地候选者信息指示将是所述树型广播系统中的节点装置的再连接目的地候选者的另一节点装置,并且所述连接目的地候选者信息至少包括该另一节点装置的网络地址信息;以及所述服务器装置向所述广播装置发送生成的连接目的地候选者信息以及指示所述连接目的地候选者信息的广播指令的广播指令信息的步骤,节点装置接收从当前与本位节点装置相连接的高层中的节点装置或从所述广播装置广播的连接目的地候选者信息的步骤;

节点装置在接收到的连接目的地候选者信息中指示的节点装置中指定适用于本位节点装置的属性信息的节点装置,作为本位节点装置的再连接目的地候选者的步骤;

节点装置至少存储指定为所述再连接目的地候选者的节点装置的网络地址信息的步骤;以及

在本位节点装置与较高层级中的节点装置或所述广播装置的连接被释放且本位节点装置被重新再连接到另一节点装置的情况下,实行连接处理的步骤,其中在网络地址信息被存储的节点装置中选择单个节点装置作为再连接目的地,且该本位节点装置基于被选为所述再连接目的地的节点装置的网络地址信息被连接。

说明书 :

树型广播系统,再连接处理方法,节点装置,节点处理程序,

服务器装置,以及服务器处理程序

技术领域

[0001] 本发明涉及包括可通过网络相互通信的多个节点装置的对等(P2P)型通信系统。

背景技术

[0002] 作为这种系统,已知一种所谓的应用层多点传送(ALM)技术,中继传递内容流,其内容数据的广播(传递)路由在应用层中管理。在此ALM中,从内容数据文件生成的包在节点装置之间被实时中继,从而将内容数据从广播站(广播装置)向任意的节点装置广播(多点传送)传送。
[0003] 在由接收流(来自较上层的节点装置的内容流)品质退化或者较上层(上游)节点装置的退出(分离)引起的再连接到新的较上层节点装置的情况下,参与在这样的ALM下形成的拓扑结构的节点装置采用请求管理拓扑结构的连接目的地引入服务器,从而获取连接目的地候选者的网络地址信息,并借此重新连接的方法,或者,节点装置自发地使用各节点装置互相交换并存储的连接目的地候选者的网络地址信息,重新连接的方法。情况经常是使用上述方法的任一。
[0004] 通过前一方法,因为可以从连接目的地引入服务器实时收集的全部拓扑结构信息引入合适的连接目的地候选者,所以有可能使用该连接目的地候选者实行稳固的连接处理。然而,因为在大量节点装置参与拓扑结构的情况下,连接目的地引入服务器上加载的负荷增加,所以有系统在整体上趋向不稳定的问题。
[0005] 通过后一方法,因为是使用各节点装置与邻近节点装置交换的网络地址信息执行再连接的,所以负荷不加载在用于获取连接目的地候选者的连接目的地引入服务器上。然而,因为很难从整个拓扑结构选择合适的连接目的地候选者,所以很可能对连接目的地候选者的节点装置的试连接不是必要的试连接。
[0006] 此外,专利文献1公开了连接目的地引入服务器相对于各个节点装置的属性信息管理预定数目的连接目的地候选者,并且期望参与拓扑结构并具有本位的属性信息以请求连接目的地引入服务器获取连接目的地候选者的节点装置。由此方法,节点装置使用从连接目的地引入服务器响应于连接目的地候选者获取请求而获取的连接目的地候选者的网络地址信息,请求用于连接节点装置被连接,并且该连接是在该待连接节点装置允许连接的情况下建立的。根据此方法,不在连接目的地引入服务器中选择合适的连接目的地候选者,而是待连接节点装置在详细地判断请求连接的节点装置的情况之后,响应是否允许连接。因此,可减少与用于连接目的地引入服务器为选择合适的候选者的处理相关的负荷。
[0007] [专利文献1]2006-319466号日本未经审查的专利公布

发明内容

[0008] 同时,在专利文献1公开的方法中待连接节点装置拒绝连接的情况下,再次试验连接处理并且整个系统中的拓扑结构不能是必然稳定的。因为,例如,连接处理需要很多时间,所以拓扑结构被分割,并且内容流不提供给较下层节点装置的时段变长。
[0009] 考虑到以上问题而提供本发明。本发明的目标是提供树型广播系统,再连接处理方法,节点装置,节点处理程序,服务器装置,以及服务器处理程序,其能够提供具有等于从连接目的地引入服务器中获得的连接目的地候选者的最优性的候选者,并且使拓扑结构稳定,而减少管理拓扑结构的连接目的地引入服务器中的负载。
[0010] 为解决以上问题,根据权利要求1中描述的发明,在通过多个节点装置的参与形成的树型广播系统中,配备有节点装置构成多个层级,而将广播装置定位在多个层级的顶部,并且以树型通过通信单元连接节点装置,借此由广播装置广播的信息从在较高层级的节点装置顺序地传输到在较低层级的节点装置,所述节点装置包括:
[0011] 连接目的地候选者信息接收单元,用于接收从当前与本位节点装置相连接的较高层中的节点装置或者从广播装置广播的指示将是再连接目的地候选者的节点装置,并且至少包括将是再连接目的地候选者的节点装置的网络地址信息的连接目的地候选者信息;
[0012] 再连接目的地候选者指定单元,用于从这样接收的连接目的地候选者信息中指示的节点装置当中,指定适合于本位节点装置的属性信息的节点装置,作为用于本位节点装置的再连接目的地候选者;
[0013] 再连接目的地候选者存储单元,用于至少存储作为这样指定的再连接目的地候选者的节点装置的网络地址信息;以及
[0014] 连接处理单元,用于实行连接处理,其是从存储在再连接目的地候选者存储单元中的节点装置当中,选择一个节点装置作为再连接目的地,并且在本位节点装置与较高层级中的节点装置或者广播装置的连接被释放并且本位节点装置被重新再连接到另一节点装置的情况下,基于作为再连接目的地的节点装置的网络地址信息,与该个节点装置连接。
[0015] 根据本发明,可限制由将要再连接的节点装置向管理拓扑结构的连接目的地引入服务器的查询。相应地,可向每个节点提供伴有等于从连接目的地引入服务器中获得的连接目的地候选者的最优性的候选者,从而减少施加于连接目的地引入服务器的负载,使拓扑结构稳定。
[0016] 根据本发明,可以减少由作为再连接的节点装置向管理拓扑结构的连接目的地引入服务器的查询。因此,有可能提供具有等于从连接目的地引入服务器中获得的连接目的地候选者的最优性的候选者,并且使拓扑结构稳定,从而减少连接目的地引入服务器上的负载(抑制载荷集中)。

附图说明

[0017] 图1是显示根据本实施例的树型广播系统中各节点装置连接状态的实例的图;
[0018] 图2是显示其中节点N12参与树型广播系统S的状态的示意图;
[0019] 图3是显示其中连接目的地候选者包被从上游向下游广播的状态的图;
[0020] 图4是显示连接目的地候选者包P的结构的实例的图;
[0021] 图5是显示其中连接目的地候选者包P在下游连接可能节点N14中被存储预定时间段的状态的图;
[0022] 图6是显示其中节点属性更新包PA被从上游向下游广播的状态的图;
[0023] 图7是显示广播站10的示意配置实例的图;
[0024] 图8是显示连接目的地引入服务器20的示意配置实例的图;
[0025] 图9是显示节点Nn的示意配置实例的图;
[0026] 图10是显示在连接候选者管理表中记录的连接目的地候选者信息的实例的图;
[0027] 图11是显示指定以使再连接候选者在拓扑结构中以垂直方向散布的实例的图;
[0028] 图12是由节点Nn中的CPU304执行的处理的流程图;
[0029] 图13是由节点Nn中的CPU304执行的处理的流程图;
[0030] 图14是由节点Nn中的CPU304执行的处理的流程图;
[0031] 图15是由节点Nn中的CPU304执行的处理的流程图;
[0032] 图16是由节点Nn中的CPU304执行的处理的流程图;
[0033] 图17是由广播站10中的CPU104执行的处理的流程图;
[0034] 图18是由广播站10中的CPU104执行的处理的流程图;
[0035] 图19是由连接目的地引入服务器20中的CPU204执行的处理的流程图;
[0036] 图20是显示拓扑结构中的关注节点邻近的节点组的图。

具体实施方式

[0037] 以下,将基于附图说明本发明的实施例。附图中各个参考标号的指定如下:
[0038] 8:网络;
[0039] 9:覆盖网络;
[0040] 10:广播站;
[0041] 20:连接目的地引入服务器;
[0042] 101,201,301a:主电源;
[0043] 301b:辅助电源
[0044] 102,202,302:主存储器单元;
[0045] 103,203,303:硬盘单元;
[0046] 104,204,304:CPU;
[0047] 105,205,305:网络接口;
[0048] 106,206,306:外围单元控制芯片;
[0049] 107,207,307:视频芯片;
[0050] 108,308:音频芯片;
[0051] 109,208,309:键盘;
[0052] 110,209,310:鼠标;
[0053] 111,210,311:显示器;
[0054] 112,312:内置扬声器;
[0055] 113,211,313:系统总线;
[0056] 114,212,314;路由器;
[0057] Nn:节点;以及
[0058] S:树型广播系统。
[0059] 以下,将参照图1及其它图说明本发明的实施例。
[0060] [1.树型广播系统的结构等等]
[0061] 首先,参考图1及其它图,将解释根据本发明实施例的树型广播系统的示意结构和功能。
[0062] 图1是显示根据本实施例的树型广播系统中的各个节点装置连接状态的实例的图。
[0063] 如图1中的下部框架101所示,因特网等等的网络(现实世界中的通信网络)8由因特网交换机(IX)3,因特网服务提供者(ISP)4a和4b,数字用户线路(DSL)提供者(或其装置)5a和5b,光纤到家(FTTH)线路提供者(或其装置)6,和通信线路(例如电话线或者光缆)7等等构成。在这里,在图1的实例的网络(通信网络)8中,适当地插入(未显示)用于传输数据(包)的路由器。
[0064] 在这样的网络8中,多个节点装置(以下简称“节点”)Nn(n=1,2,3...的任何一个)被连接。此外,各个节点Nn固有的节点ID分配给节点Nn。
[0065] 根据本实施例的树型广播系统S是通过多个节点Nn的任意节点的参与形成(构造)的对等型网络系统,如图1的上框架100所示。在这里,图1的上框架100所示的网络9是包括通过利用现有网络8形成的虚拟连接的覆盖网络9(逻辑网络)。
[0066] 在这样的树型广播系统S中,参与系统S(拓扑结构)的多个节点形成多个层次而将广播站定位在系统中的顶部,并且该多个节点以树型通过网络被连接。然后,从广播站10被广播(例如通过流传递方法广播)的内容数据(例如图像数据和音频数据)从较高层(以下简称“上游”)中的节点Nn向较低层(以下简称“下游”)中的节点Nn顺序地传输(ALM(应用层多点传送))。
[0067] 此外,通过连接目的地引入服务器20管理树型广播系统S中形成的拓扑结构。连接目的地引入服务器20按照来自节点Nn的连接目的地引入请求,向节点Nn引入上游节点(以下简称″上游节点″),其是树型广播系统S中的连接目的地。
[0068] 图2是显示节点N12参与树型广播系统S的状态的示意图。
[0069] 在图2的实例中,(1)在节点N12参与树型广播系统S(换句话说,参与拓扑结构)的情况下,首先节点N12向连接目的地引入服务器20发送上游节点引入请求消息。
[0070] (2)连接目的地引入服务器20从内部管理的拓扑结构管理信息寻找可连接到下游侧的节点Nn(以下简称“下游连接可能节点”,其中在下游侧直接地连接的节点的数目未达到连接可容许的数目),并且向节点N12返回包括多于1个的上游节点候选者的网络地址信息(例如IP(网络协议)地址和端口号)的上游节点候选者引入消息(引入连接可能节点)。
[0071] (3)接下来,节点N12从自连接目的地引入服务器20获取的上游节点候选者中选择一个,例如节点N2,并且发送连接请求消息到节点N2。
[0072] (4)接下来,节点N2添加节点N12的信息到内部管理的节点管理表,并且返回连接允许响应消息到节点N12。
[0073] (5)接下来,节点N12发送流启动请求消息到节点N2。
[0074] (6)最后,节点N2准备用于装置内部流中继的对象并且开始向节点N12的流动。
[0075] 这样,节点N12参与到树型广播系统S就完成了。
[0076] 另一方面,在节点N12从树型广播系统2退出(分离)的情况下,节点N12向作为流提供者的上游节点N2发送流停止请求消息以及断开请求消息。响应于此,节点N2丢弃流中继对象从而停止向节点N12的流动,同时从节点管理表删除节点N12的信息从而终止与节点N2的连接。
[0077] 在节点Nn存在于退出的节点Nn的下游侧之中的情况下,这样的下游节点Nn(以下简称“下游节点”)通过如下所述方法a)或者方法b)恢复广播路由。
[0078] a)通过超时方法的再现
[0079] 来自上游节点Nn的流的状态被时时监控,并且当流的提供被暂停预定时间(自持(self-sustaining)再连接事件的发生)时,与上游节点Nn的连接的状态被丢弃并且新的上游节点Nn被再连接。
[0080] b)通过事件通知方法的再现
[0081] 当上游节点Nn从树型广播系统S退出时,向紧接下面的下游节点Nn报告退出事件。当下游节点Nn从上游节点Nn收到该退出事件(自持的再连接事件的发生)时,与上游节点Nn的连接的状态被丢弃并且新的上游节点Nn被再连接。
[0082] 此外,参与树型广播系统S的各节点Nn监控从上游节点Nn接收流的状态,并且当其变为具有低于预定接收质量的质量(自持的再连接事件的发生)时,上游节点Nn被转换为与新的上游节点Nn再连接。作为接收质量的评价标准,可以使用对于过去预定时段的平均包率和包丢失率。
[0083] 在这里,在本实施例中,指示将是以上提及的下游节点Nn的再连接目的地候选者的多个上游节点Nn的连接目的地候选者信息,作为连接目的地候选者包(被包括在该包内)被广播(传递),并且从上游向下游节点Nn顺序地传输(ALM)。换句话说,连接目的地候选者包通过与内容数据的传递路由相同的路由被传递。
[0084] 图3是显示其中连接目的地候选者包从上游向下游被广播的状态的图。
[0085] 相应地,连接目的地候选者包P(以ALM多点传送的传递路由)被分配遍及参与拓扑结构的全部节点Nn。在这里,在图中,号码(No.1到No.8)指示传递顺序。
[0086] 此外,如图3所示,广播站10从连接目的地引入服务器20,周期性地获取包括例如以上提及的连接目的地候选者信息的信息块(块)C。换句话说,连接目的地引入服务器20从拓扑结构管理信息选取多个最新的允许连接的候选者的断片,并且生成连接目的地候选者信息,并且发送包括此的信息块C到广播站10。然后,广播站10将包括在这样获取的信息块C中的连接目的地候选者信息,划分为多个片,并且以连接目的地候选者包P,广播这样划分的连接目的地候选者信息的每一个。
[0087] 例如,广播站10利用时间获取包括下一连接目的地候选者信息的信息块C,以便以恒定的发送速度(例如128kbps)慢慢地广播连接目的地候选者包P。
[0088] 图4是显示连接目的地候选者包P的结构的实例的图。
[0089] 如图4所示,连接目的地候选者包P的报头部分包括IP报头,UDP(用户数据报协议)报头和应用层报头;有效负荷部分存储连接目的地候选者信息。
[0090] 存储在有效负荷部分中的连接目的地候选者信息包括通过候选者的号码(图4的实例中的候选者1,2,3...)与再连接目的地候选者相关的信息(连接目的地候选者信息)。此外,与每个候选者相关的连接目的地候选者信息包括全局IP地址,局部(私有的)IP地址,NAT(网络地址翻译)遍历属性(traversal attribute)(与系统S中的NAT遍历通信方法相关的信息(提示)的实例),下游连接的数目,以及层级值(指示系统S中的层级的信息的实例)等等。在这里,全局IP地址和局部IP地址分别有端口号(未显示)。此外,NAT遍历属性,下游连接的数目以及层级值是属性信息的实例。
[0091] 固有的全局IP地址并不总是分配给每个节点Nn,存在仅对其分配局部IP地址的情况。在这种情况下,已知的NAT(网络地址翻译)技术用来连接节点Nn与网络8。在这样的NAT中,兼容NAT的路由器相互转换局部IP地址和全局IP地址,使网络8可以从仅对其分配局部IP地址的节点Nn被透明地连接。然而,在这样的NAT中,兼容NAT的路由器侧内部(即LAN(局域网)侧的网络)的节点Nn不能被从兼容NAT的路由器的外部(即WAN(广域网)侧的网络)直接地连接。也就是说,存在不能从兼容NAT的路由器外部的节点Nn向兼容NAT的路由器内部的节点Nn启动对话的问题。作为用于解决此问题的通信方法,有遍历的NAT的技术,例如“UPnP(通用的即插即用)”以及“UDP(用户数据报协议)冲孔”。包括在连接目的地候选者信息内并且与每个候选者相关的NAT遍历属性,指示处理仅被分配有局部IP地址的节点Nn(将是再连接目的地候选者的节点Nn)的遍历的NAT的技术。
[0092] 此外,下游连接的数目指示与将是再连接目的地候选者的节点Nn的下游直接地连接的下游节点Nn的数目。例如在图3中,节点N2的下游连接的数目是二:节点N5与节点N12。
[0093] 此外,层级值指示将是再连接目的地候选者的节点Nn位于拓扑结构中的哪层。例如在图3中,从顶层的广播站10开始,层次越往下,层级值增加,并且节点N1和节点N2的层级值是“1”。
[0094] 另一方面,报头部分中的应用层报头包括传递号(广播号)和传递节点的数目(广播节点的数目)。传递号是相对于每一信息块C统一的号码。相应地,相同的传递号被加到形成信息块C的多个连接目的地候选者包P。此外,传递节点的数目指示从以这次的传递号广播的连接目的地候选者包P内包括的连接目的地候选者信息中,提取了多少再连接目的地候选者的断片。
[0095] 虽然这样广播的连接目的地候选者包P在系统S中从上游向下游顺序地传输,但是在下游连接的数目具有余量的下游连接可能节点Nn中仅存储(保持)预定时间段。
[0096] 图5是显示连接目的地候选者包P在下游连接可能节点N14中存储预定时间段的状态的图。
[0097] 在图5的实例中,从广播站10顺序地广播的连接目的地候选者包P(No.1到No.6)存储在下游连接可能节点N14中。在此存储时段期间,在新的节点N15开始作为直接的下游节点被连接的情况下,如图5所示,下游连接可能节点N14将预先存储的连接目的地候选者包P发送到下游节点N15。因此,可将预先广播的连接目的地候选者包P立即发送到参与新的拓扑结构的节点Nn,或者在同一个拓扑结构中改变连接目的地的节点Nn。
[0098] 然后,收到连接目的地候选者包P的节点Nn在由连接目的地候选者包P内包括的连接目的地候选者信息指示的将是再连接目的地候选者的节点Nn中间,识别匹配本位(自身own)的属性信息的节点Nn,作为本位的再连接目的地候选者,并且存储与节点Nn候选者相关的连接目的地候选者信息(至少网络地址信息)(记录在(随后描述的)连接候选者管理表中)。在这里,关于由连接目的地候选者信息指示的,将是再连接目的地候选者的节点Nn是否匹配本位的属性信息的判断,稍后详细地描述。
[0099] 同时,在各节点Nn当发生自发的再连接事件时,释放与本位节点装置当前与其连接的上游节点Nn,或者广播站10的连接并与另一上游节点Nn重新再连接的情况下,各节点Nn在存储以上提及的连接目的地候选者信息的节点Nn中间,选择单个节点Nn(即新的上游节点)作为再连接目的地,执行再连接处理,并且再连接到新的上游节点Nn。
[0100] 这样被再连接的节点Nn(在同一个拓扑结构之内改变连接目的地的节点Nn)或者新参与拓扑结构的节点Nn向连接目的地引入服务器20发送指示参与拓扑结构的报告(对新的参与的报告或者对通过再连接参与的报告)的参与报告消息。最好是,满足指定项的节点Nn(以下,称为“代表节点”)代表向连接目的地引入服务器20发送参与报告消息。也就是说,希望报告参与报告的节点Nn发送参与报告消息到直接地与自己(本位的节点装置)相连接的上游节点Nn,并且收到该参与报告消息的上游节点Nn中继(传输)该参与报告消息到在更上游的上游节点Nn。然后位于例如重数的预定值(例如10)的层次中的,满足指定项的代表节点Nn重复中继直到它收到参与报告消息。然后,收到参与报告消息后,代表节点Nn存储该消息并且等待直到下一报告时间来临,然后发送参与报告消息到连接目的地引入服务器20。
[0101] 用与其类似的方式,在从拓扑结构退出的节点Nn向连接目的地引入服务器20发送指示从拓扑结构退出的(通知退出报告)的退出报告消息的情况下,最好是,适用于指定项的代表节点Nn代表地发送该退出报告消息到连接目的地引入服务器20。
[0102] 在这里,参与报告消息包括例如本位的网络地址信息,本位的NAT遍历属性,以及连接的上游节点Nn的网络地址信息的信息。
[0103] 这样,参与或者退出报告消息由代表节点Nn统一发给连接目的地引入服务器20,从而减少对连接目的地引入服务器20的通信量。
[0104] 在各节点Nn周期地向连接目的地引入服务器20发送指示本位节点装置的生或死状态(例如通电或者断电)的生或死的报告消息的情况下,它可以被如此构造使代表节点Nn与参与或退出报告消息类似的,代表处理生或死的报告消息。
[0105] 此外,收到例如发自通过再连接的节点Nn的参与报告消息的连接目的地引入服务器20当收到参与报告消息时,可以检测再连接的节点Nn的属性信息是否改变。假如节点Nn的属性信息改变,为使得任意的节点Nn知道该属性信息改变,连接目的地引入服务器20生成节点属性更新包,其存储更新信息,该更新信息包括其中属性信息改变的节点Nn的网络地址信息,以及改变之后的属性信息,并且连接目的地引入服务器20发送此节点属性更新包到广播站10,然后广播站10在拓扑结构上广播该节点属性更新包。
[0106] 图6是显示从上游向下游广播节点属性更新包PA的状态的图。
[0107] 这样,收到节点属性更新包PA的节点Nn检查对应的节点Nn是否记录在本位的再连接候选者管理表中,并且在它是被记录的情况下,对应节点Nn的属性信息替换为包括在节点属性更新包PA中的属性信息。相应地,对于各节点Nn存储(高速缓存)的上游节点Nn候选者的属性信息的改变,有可能调节在相对短的延迟时间之内。
[0108] [1-2.广播站10的结构等等]
[0109] 接下来,参考图7描述广播站10的结构与功能。
[0110] 图7是显示广播站10示意结构的实例的图。
[0111] 如图7所示,广播站10包括主电源101,主存储器单元102,硬盘单元103,CPU104,网络接口105,外围单元控制芯片106,视频芯片107,音频源芯片108,键盘109,鼠标110,显示器111,内置扬声器112等等。同时,主电源101,主存储器单元102,硬盘单元103,CPU104,网络接口105,外围单元控制芯片106,视频芯片107,以及音频源芯片108通过系统总线113相互连接。此外,广播站10通过路由器114连接至网络8。
[0112] 主存储器单元102包括RAM,ROM等类似部件和存储操作系统,流控制程序,屏幕控制程序,拓扑结构控制程序,解码器(程序)等。主存储器单元102存储节点管理表,并且该节点管理表记录有与广播站10相连接的下游节点Nn的信息(例如IP地址,端口号等等)。此外,主存储器单元102具有缓冲存储器(例如环形缓冲)。
[0113] 此外,广播内容数据和信息块C记录在硬盘单元103中。
[0114] CPU104根据存储在主存储器单元102中的各种程序(即通过执行程序)来实行广播处理。例如,存储在硬盘单元103中的内容数据被包化并且广播(流动)到记录在节点管理表中的下游节点Nn。此外,CPU104执行广播指令消息(广播指令信息)的接收处理,所述广播指令消息指示广播包括周期性地发自连接目的地引入服务器20的连接目的地候选者信息的信息块C的指令,并且CPU104执行将信息块C存储入主存储器单元102的存储处理。
[0115] 然后,CPU104执行广播处理,其中,例如,这样存储的信息块C被周期性地读出并且包括在此内的连接目的地候选者信息被分成多个断片,并且连接目的地候选者包P被广播到记录在节点管理表中的下游节点Nn。
[0116] 在这里,单个连接目的地候选者包P中的,将是再连接目的地候选者的节点Nn的数目可以任意地设置。例如,假如单个连接目的地候选者包P中将是再连接目的地候选者的节点Nn的数目被设置为3,并且在单个信息块C中将是再连接目的地候选者的节点Nn的数目是24,则连接目的地候选者信息如图3所示被分成8片,并且它们被以各连接目的地候选者包P(No.1到No.8)广播。
[0117] 此外,CPU104执行对发自连接目的地引入服务器20的节点属性更新包PA的接收处理以及向下游节点Nn广播节点属性更新包PA的广播处理。
[0118] 作为这样的广播站10,除专用的广播服务器之外,任一节点Nn可以适用。
[0119] [1-3.连接目的地引入服务器20的结构等等]
[0120] 接下来,参考图8,解释连接目的地引入服务器20的结构与功能。
[0121] 图8是显示连接目的地引入服务器20的示意结构实例的图。
[0122] 如图8所示,连接目的地引入服务器20包括主电源201,主存储器单元202,硬盘单元203,作为连接目的地候选者信息生成单元,连接目的地候选者信息发送单元,报告信息接收单元,以及更新单元的实例的CPU204,网络接口205,外围单元控制芯片206,视频芯片207,键盘208,鼠标209,显示器210等等。此外,主电源201,主存储器单元202,硬盘单元203,CPU204,网络接口205,外围单元控制芯片206,以及视频芯片207通过系统总线211相互连接。此外,连接目的地引入服务器20通过路由器212连接至网络8。
[0123] 主存储器单元202包括RAM,ROM等类似不仅,存储服务器处理程序,例如操作系统,广播站管理程序,拓扑结构管理程序,连接目的地引入程序,以及运行管理程序。
[0124] 此外,硬盘单元203配备有广播站管理数据库以及拓扑结构数据库。各广播站10的位置信息(例如IP地址,端口号等等)被与广播信道信息(例如信道编号)对应地记录在广播站管理数据库中。此外,拓扑结构管理信息(指示连接模式的信息的实例)被记录在拓扑结构数据库中。拓扑结构管理信息存在于每一广播信道中并对应广播信道信息。拓扑结构管理信息包括参与拓扑结构的各节点Nn的网络地址信息(例如IP地址和端口号),NAT遍历属性,下游连接的数目,指示当前连接的下游节点的信息(例如节点ID),可容许连接的下游节点的数目(例如2),传输容量,以及层级值。在这里,传输容量意指,例如,节点Nn的CPU处理速度(GHz)和网络8中的有效带宽(例如数据传输速度(bps))。
[0125] 根据存储在主存储器单元202中的各种程序,CPU204响应于来自期望新参与拓扑结构的节点Nn的连接目的地引入请求,从以上提及的拓扑结构管理信息中搜寻下游连接可能节点Nn。然后,主存储器单元202执行引入这样搜寻到的一或多个上游节点候选者作为连接目的地的引入处理。
[0126] 此外,CPU204例如周期性地,执行发送处理,其中基于拓扑结构管理信息选取多个最新的下游连接可能节点Nn作为再连接目的地候选者,以上提及的连接目的地候选者信息被生成,并且包括此的信息块C和指示广播连接目的地候选者信息的指令的广播指令消息被发给广播站10。将是可以包括在单个信息块C中的再连接目的地候选者的节点Nn的数目可以任意地设置。在这里,在最新的下游连接可能节点Nn的数目大于可以包括在单个信息块C中的节点Nn的数目的情况下,优先权被给予,例如,具有更大的传输能力的节点Nn以及具有较小下游连接数目的节点Nn,并且它们被指定作为将是再连接目的地候选者的节点Nn。
[0127] 此外,在参与报告消息,退出报告消息,或者,生或死的报告消息被从节点Nn接收的情况下,CPU204基于该消息执行更新拓扑结构管理信息的更新处理。
[0128] 此外,如上所述,CPU204执行检测处理,检测再连接的节点Nn的属性信息是否改变(例如下游连接以及层级值的改变)。然后在节点Nn属性信息改变的情况下,CPU204生成节点属性更新包PA,其中更新信息包括具有改变的属性信息的节点Nn的网络地址信息以及改变之后的属性信息,并且发送此到广播站10。
[0129] [1-4.节点Nn的结构等等]
[0130] 接下来,参考图9,解释节点Nn的结构与功能。
[0131] 图9是显示节点Nn的示意结构实例的图。
[0132] 如图9所示,节点Nn包括主电源301a,辅助电源301b,作为再连接目的地候选者存储单元,连接目的地候选者存储单元,以及报告信息存储单元的例子的主存储器单元302,硬盘单元303,作为连接目的地候选者信息接收单元,再连接目的地候选者指定单元,连接处理单元,连接目的地候选者信息传输单元,容许数目判断单元,更新信息接收单元,属性信息更新单元,报告信息接收单元,以及报告信息发送单元的例子的CPU304,网络接口305,外围单元控制芯片306,视频芯片307,音频源芯片308,键盘309,鼠标310,显示器
311,以及内置扬声器312等等通过系统总线313相互连接。此外,节点Nn通过路由器314连接至网络8。
[0133] 同时,PC,STB(机顶盒),或TV接收器等等可应用为节点Nn。
[0134] 主存储器单元302包括RAM,ROM等类似不仅,并存储操作系统,屏幕控制程序,流控制程序,拓扑结构控制程序,以及例如解码器的节点处理程序。
[0135] 此外,主存储器单元302具有缓冲存储器(例如环形缓冲),用于暂时存储接收的内容数据。此外,主存储器单元302存储节点管理表以及连接候选者管理表。在节点管理表中,记录了连接到本位节点装置的下游节点的信息(IP地址,端口号,等等)。在连接候选者管理表中,记录了连接目的地候选者信息等等,其与由通过随后描述的再连接指定处理,从包括在连接目的地候选者包P内的连接目的地候选者信息中指定的再连接目的地候选者相关的。
[0136] 图10是记录在连接候选者管理表中的连接目的地候选者信息的实例。
[0137] 在图10的实例中,在连接候选者管理表中,对于通过再连接指定处理指定的每一再连接候选者,互相对应地记录全局IP地址,局部IP地址,NAT遍历属性,下游连接的数目,和层级值,还有作为这些信息的高速缓存时间(以下简单地称为“记录时间”)的日期与时间。由于此,记录与记录时间对应,所以可以判断记录的信息的新旧。
[0138] 在这里,在如图10所示的NAT遍历属性中,“TCP客户端”是指在与对应的再连接候选者节点相连接的路由器不对应于UPnP和UDP冲孔不能被执行的情况下的NAT遍历属性。在这样的节点被作为上游节点连接的情况下,连接是以上游节点使用已经建立的中继服务器被TCP连接到本位节点装置的等待端口的方式建立的。此外,在图10所示的NAT遍历属性中,“UPnP+TCP”采用UPnP作为NAT遍历技术且用于与网络8连接的兼容NAT的路由器具有仅中继基于TCP的包的功能。另一方面,“UPnP+UDP”采用UPnP作为NAT遍历技术并且用于与网络8连接的兼容NAT的路由器具有仅中继基于UDP的包的功能。
[0139] 此外,主存储器单元302存储属性信息,其包括本位节点装置的NAT遍历属性,下游连接的数目,以及层级值(例如从连接目的地引入服务器20或上游节点获取)。
[0140] 在这里,在代表节点Nn的主存储器单元302中,具有用于统一消息的存储器区域,其用于暂时存储从下游节点Nn接收的参与报告消息,退出报告消息,或者生或死的报告消息。此外在对于下游连接的数目具有剩余容量的下游连接可能节点Nn的主存储器单元302中,具有用于存储连接目的地候选者包的存储器区域,其暂时存储从上游节点Nn接收的连接目的地候选者包P。
[0141] 此外,根据存储在主存储器单元302中的各种程序,CPU304执行参与树型广播系统S(与某一广播信道相关的拓扑结构)的参与处理,并且在参与之后,CPU304缓存从广播站10或上游节点Nn广播并且通过网络接口305接收的内容数据(内容流)的包以实行再现处理。
[0142] 在这里,在以上参与处理中,对连接目的地引入服务器20作出连接目的地引入请求,并且通过与从连接目的地引入服务器20引入的上游节点Nn连接(建立对话)作出流启动请求。此外,在再现处理中,存储在缓冲存储器中的接收的内容数据(例如视频数据以及音频数据)被读出并且由解码器解码。然后,这样解码的视频数据(图像信息)通过视频芯片307被输出在显示器311上,并且这样解码的音频数据(音频信息)通过音频源芯片308被从内置扬声器312(或未显示的外部扬声器)输出。
[0143] 此外,在下游节点Nn连接至本位节点装置的情况下,执行传输处理,向下游节点Nn传输(中继内容流)存储在缓冲存储器中的各个内容数据的包。
[0144] 此外,CPU304执行再连接指定处理,在包括在从广播站10或上游节点Nn广播的,通过网络接口305接收的连接目的地候选者包P内的连接目的地候选者信息中指示的多个节点Nn中指定匹配本位节点装置属性信息的节点Nn作为本位节点装置的再连接目的地候选者。然后与这样指定的节点Nn相关的连接目的地候选者信息被记录在连接候选者管理表中。
[0145] 例如,CPU304参考连接目的地候选者包P中的应用层报头的传递节点的数目,以该传递节点的数目,从连接目的地候选者信息中,选取再连接目的地候选者。在这时候,CPU304从这样选取的再连接目的地候选者中,检查属性信息的适当性,并且排除不适合于本位节点装置的属性信息的节点Nn。
[0146] 例如,在连接目的地候选者信息中指示的节点Nn中间,CPU304基于(比较)NAT遍历属性中指示的节点Nn的NAT遍历属性,与本位节点装置的连接目的地候选者信息,排除不可应用于本位的NAT遍历属性的节点Nn,作为不可应用于本位节点装置属性信息的再连接目的地候选者。这是因为除非满足NAT遍历的适当性,否则很难产生对等的连接(建立连接)。
[0147] 此外,例如,在连接目的地候选者信息中指示的节点Nn中间,CPU304基于(比较)层级值中指示的节点Nn的层级值和本位节点装置的连接目的地候选者信息,排除位于比本位节点装置低的层次,也就是说,具有比本位节点装置大的层级值的层的节点Nn作为再连接目的地候选者,不适用于本位的属性信息。这是因为,在具有比本位节点装置大的层级值的节点Nn被设置作为可指定的主体的情况下,有可能指定可以从本位节点装置跟随到下游的下游节点Nn,并且假如这样的下游节点Nn被认为是上游节点Nn并被连接,则存在传递路由被循环的问题。
[0148] 在这里,可以如此构成使检查NAT遍历属性的适当性和层级值的适当性之一。然而,更好的是指定同时满足NAT遍历属性的适当性和层级值的适当性的节点Nn作为再连接候选者。此外,可以基于除NAT遍历属性和层级值外的其它属性信息的适当性来检查。
[0149] 同时,由连接目的地引入服务器20选取的将是再连接目的地候选者的节点Nn的连接目的地候选者信息被同等地传递到参与拓扑结构的所有的节点Nn。然而,在连接目的地候选者信息中指示的指定的再连接目的地候选者是由许多节点Nn唯一指定的并且多个再连接同时发生的情况下,将发生连接请求被集中到这样指定的节点Nn。为了避免发生这样的情况,所希望的是当各节点Nn从包括在连接目的地候选者包P内的连接目的地候选者信息中指定再连接目的地候选者时,分散拓扑结构中的再连接候选者。有特定的实例,由单个连接目的地候选者包P指定的再连接目的地候选者的数目被限制(由传递节点的数目限制)并且可能性(随机性)被引入此再连接指定处理。
[0150] 图11是显示指定使再连接候选者在拓扑结构中以垂直方向散布的实例的图。在收到连接目的地候选者包P的节点Nn检查如上所述的层级值的适当性的情况下,它仅指定具有比自己更高的层级的再连接目的地候选者。因此,这样指定的再连接目的地候选者在拓扑结构中不在垂直方向偏离,如图11中的“再连接候选者拓扑结构中的位置关系”所示。
[0151] 同时,在接收的连接目的地候选者包P被暂时存储在缓冲存储器中并且下游节点Nn连接至本位节点装置的情况下,CPU304执行向下游节点Nn传输这样存储在缓冲存储器中的连接目的地候选者包P的传输处理。在这时候,CPU304执行判断处理,判断当前连接到本位节点装置的下游节点Nn的数目是否达到本位节点装置的可容许连接的数目,在判断CPU304没有达到可容许连接的数目的情况下,CPU304从以上缓冲存储器传输连接目的地候选者包P到主存储器单元302中的用于存储连接目的地候选者包的存储区并且存储预定时间段,以便随后传输该连接目的地候选者包P到直接地连接到下游的节点Nn。然后,在如图5所示的存储时段期间新的节点Nn被连接作为下游节点的情况下,CPU304执行为下游节点Nn传输这样存储的连接目的地候选者包P的传输处理。相应地,新参与拓扑结构的节点Nn可以立即获取连接目的地候选者信息。
[0152] 然后,在当发生自发的再连接事件时,在与当前与本位节点装置连接的上游节点Nn或者广播站10的连接被释放并且重新再连接到另一上游节点Nn的情况下,CPU304在记录在连接候选者管理表中的节点Nn中间,选择一个节点Nn作为再连接目的地(例如随机地选择,或者通过给具有最靠近当前时间的记录时间的节点Nn以优先权来选择),并且执行再连接处理,基于这样选择作为再连接目的地的上游节点Nn的网络地址信息,连接它到上游节点Nn。根据如图2所示(3)到(6)的过程执行这样的再连接处理。
[0153] 此外,CPU304执行删除处理,以恒定的间隔删除与连接候选者管理表中的记录时间相比过去的某一时段的(过时的)的连接目的地候选者信息。相应地,在连接候选者管理表中总是保留新鲜的连接目的地候选者信息,并且在节点Nn在再连接处理中利用连接候选者管理表中的连接目的地候选者信息的方面,可以减少连接失败的可能性。
[0154] 此外,CPU304执行判断处理,判断本位节点装置是否是发送报告信息到连接目的地引入服务器20的,作为代表的代表节点Nn。该判断是本位节点装置是否满足指定项(例如,本位节点装置是否位于多数预定值(例如10)的层)。在本位节点装置是代表节点Nn的情况下,当来自直接地连接到本位节点装置的下游节点Nn的参与报告消息(包括通过再连接的参与),退出报告消息,或者生或死的报告消息被接收时,CPU304在主存储器单元302中的用于统一消息的存储区中暂时存储报告消息(参与报告消息,退出报告消息,或生或死的报告消息),并且在每一预定时段向连接目的地引入服务器20发送这样存储的报告消息。在这时候,与本位节点装置相关的以上报告消息也发送到连接目的地引入服务器20。
[0155] 另一方面,在本位节点装置不是代表节点Nn的情况下,当来自直接地连接到本位节点装置的下游节点Nn的参与报告消息,退出报告消息,或者生或死的报告消息被接收时,CPU304执行发送处理,发送(传输)这样接收的报告消息到直接地与本位节点装置相连接的上面的节点Nn。在这时候,与本位节点装置相关的报告消息也发送到上面的节点Nn。
[0156] 此外,CPU304执行更新处理,基于包括在从广播站10或者上游节点Nn广播的,通过网络接口305接收的节点属性更新包PA中的更新信息内的改变之后的属性信息,更新记录在连接候选者管理表中的属性信息。例如,在改变之后的下游连接的数目或者层级值包括在更新信息中的情况下,记录在连接候选者管理表中的下游连接的数目或者层级值替换为包括在以上提及的更新信息内的下游连接的数目或者层级值。
[0157] [2.树型广播系统的运行]
[0158] 接下来,解释与本实施例相关的树型广播系统S的运行。
[0159] (节点Nn的处理)
[0160] 首先,参考图12到16,解释节点Nn中的CPU304的处理。
[0161] 图12到16是显示由节点Nn中的CPU304执行的处理的流程图。
[0162] 图12的处理通过例如打开主电源301a和辅助电源301b激活节点Nn开始。当处理开始时,在步骤S1中,节点Nn中的各种类型的程序被初始化,并且,用于各种循环处理的定时器在发生超时事件时启动。
[0163] 在步骤S2,判断是否通过键盘309或者鼠标310请求参与,或者是否发生以上提及的自发的再连接事件。然后在用户请求参与或者发生自发的再连接事件的情况下(步骤S2:是),该处理走到步骤S3。在用户不请求参与或者没有发生自发的再连接事件的情况下(步骤S2:否),该处理走到步骤S13。
[0164] 在步骤S3,判断有效的节点Nn的连接目的地候选者信息是否被记录在以上提及的连接候选者管理表中。然后,在有效的节点Nn的连接目的地候选者信息被记录的情况下(步骤S3:是),该处理走到步骤S4。在有效的节点Nn的连接目的地候选者信息未记录的情况下(步骤S3:否),该处理走到步骤S12。
[0165] 在步骤S4中,例如随机地选择连接候选者管理表中更上一级的上游节点Nn作为再连接目的地,并且获取该上游节点Nn的网络地址信息。
[0166] 在步骤S5,与这样选择的上游节点Nn连接的连接处理(新的连接处理或者再连接处理)启动,并且首先对于该上游节点Nn执行NAT遍历处理(从路由器的WAN侧网络向LAN侧网络传递包的处理)。
[0167] 在步骤S6,连接请求消息被发给这样选择的上游节点Nn。在随后描述的步骤S26中从上游节点Nn收到响应于此连接请求消息的连接拒绝响应消息的情况下,在使用连接候选者管理表的定时器T2被激活的情况下,再次重复以上步骤S3到S6的处理,并且连接请求消息被发给记录在连接候选者管理表中的另一上游节点Nn。
[0168] 在步骤S7,判断使用连接候选者管理表的定时器T2是否被激活。在使用连接候选者管理表的定时器T2被激活的情况下(步骤S7:是),该处理走到步骤S9。在使用连接候选者管理表的定时器T2未激活的情况下(步骤S7:否),该处理走到步骤S8以激活该定时器T2然后走到步骤S9。在这里,使用连接候选者管理表的定时器T2的用途是使用连接候选者管理表为连接处理提供上限时间。
[0169] 在步骤S9,判断节点Nn的主电源301a是否关闭。在主电源301a关闭的情况下(步骤S9:是),该处理走到步骤S10。在主电源301a未关闭的情况下(步骤S9:否),该处理回到步骤S2。
[0170] 在步骤S10,当主电源301a变为关闭时,各种程序结束,并且用于各种循环处理的定时器停止。然后辅助电源301b关闭(步骤S11),并且该处理结束。
[0171] 在步骤S12,上游节点引入请求消息被发给连接目的地引入服务器20。
[0172] 在步骤S13,判断是否发生使用连接候选者管理表的定时器T2的超时事件。在发生定时器T2的超时事件的情况下(步骤S13:是),该处理走到步骤S14。在没有发生定时器T2的超时事件的情况下(步骤S14:否),该处理走到步骤S16。
[0173] 在步骤S14,使用连接候选者管理表的定时器T2停止。
[0174] 在步骤S15,上游节点引入请求消息被发给连接目的地引入服务器20。换句话说,当连接至上游节点Nn,优先权被给予将被使用的连接候选者管理表时,并且在经过某时段之后(在发生定时器T2的超时事件之后),连接目的地引入服务器20被使用(步骤S28)。
[0175] 在步骤S16,判断是否从连接目的地引入服务器20收到上游节点候选者引入消息。在收到上游节点候选者引入消息的情况下(步骤S16:是),该处理走到步骤S17。在未收到上游节点候选者引入消息的情况下(步骤S16:否),该处理走到图13所示的步骤S19。上游节点候选者引入消息包括由连接目的地引入服务器20搜索的上游节点Nn(或者有时候广播站10)的网络地址信息。
[0176] 在步骤S17,对于这样收到的上游节点候选者引入消息中指示的上游节点Nn执行NAT遍历处理。
[0177] 在步骤S18,连接请求消息被发给这样在上游节点候选者引入消息中指示的上游节点Nn。
[0178] 在图13所示的步骤S19,判断是否从上游节点Nn收到连接允许响应消息。在收到连接允许响应消息的情况下(步骤S19:是),该处理走到步骤S20。在未收到连接允许响应消息的情况下(步骤S19:否),该处理走到步骤S26。
[0179] 在步骤S20,判断使用连接候选者管理表的定时器T2是否被激活。在使用连接候选者管理表的定时器T2被激活的情况下(步骤S20:是),定时器T2停止(步骤S21),并且该处理走到步骤S22。在使用连接候选者管理表的定时器T2未激活的情况下(步骤S20:否),该处理走到步骤S22。
[0180] 在步骤S22,流启动请求消息被发给发送连接允许响应消息的上游节点Nn。相应地,本位节点装置参与拓扑结构。
[0181] 在步骤S23,判断本位节点装置是否是统一消息的代表节点。例如,参照本位节点装置的层级值从而判断其是否位于多数的预定值(例如10)的层次中。在本位节点装置是代表节点(步骤S23:是)的情况下,该处理走到步骤S24。在本位节点装置不是代表节点的情况下(步骤S23:否),该处理走到步骤S25。
[0182] 在步骤S24,本位节点装置拓扑结构参与报告消息被存储在用于统一消息的存储区中。
[0183] 在步骤S25,本位节点装置拓扑结构参与报告消息被发给与本位节点装置相连接的上游节点Nn。
[0184] 在步骤S26,判断是否从上游节点Nn收到连接拒绝响应消息。在收到连接拒绝响应消息的情况下(步骤S26:是),该处理走到步骤S27。在未收到连接拒绝响应消息的情况下(步骤S26:否),该处理走到步骤S29。
[0185] 在步骤S27,判断使用连接候选者管理表的定时器T2是否被激活。在使用连接候选者管理表的定时器T2被激活的情况下(步骤S27:是),该处理回到图12所示的步骤S3。在使用连接候选者管理表的定时器T2未激活的情况下(步骤S27:否),该处理走到步骤S28。
[0186] 在步骤S28,上游节点引入请求消息被发给连接目的地引入服务器20。
[0187] 在步骤S29,判断是否从另一节点Nn收到连接请求消息。在收到连接请求消息的情况下(步骤S29:是),该处理走到步骤S30。在未收到连接请求消息的情况下(步骤S29:否),该处理走到图14所示的步骤S36。
[0188] 在步骤S30,判断连接到本位节点装置的下游节点Nn的数目是否达到本位节点装置的可容许的连接数目。在下游节点Nn的数目达到本位节点装置的可容许的连接数目的情况下(步骤S30:是),该处理走到步骤S31。在下游节点Nn的数目没有达到本位节点装置的可容许的连接数目的情况下(步骤S30:否),该处理走到步骤S32。
[0189] 在步骤S31,连接拒绝响应消息被发给发送连接请求消息的节点Nn。
[0190] 在步骤S32,发送连接请求消息的节点Nn的信息被另外记录在节点管理表中。
[0191] 在步骤S33,连接允许响应消息被发给发送连接请求消息的节点Nn。
[0192] 相应地,发送连接请求消息的节点Nn变为连接到本位节点装置的新的下游节点Nn。
[0193] 在步骤S34,判断连接目的地候选者包P是否被存储在用于存储连接目的地候选者包的存储区中。在连接目的地候选者包P被存储的情况下(步骤S34:是),该处理走到步骤S35。在连接目的地候选者包P未存储的情况下(步骤S34:否),该处理回到图12所示的步骤S9。
[0194] 在步骤S35,这样存储的所有的连接目的地候选者包P被发给新连接的下游节点Nn。
[0195] 接下来,在图14所示的步骤S36,判断是否从下游节点Nn收到流启动请求消息。在收到流启动请求消息的情况下(步骤S36:是),该处理走到步骤S37。在未收到流启动请求消息的情况下(步骤S36:否),该处理走到步骤S38。
[0196] 在步骤S37,内容数据包的传输(中继)相对于发送流启动请求消息的下游节点Nn启动(启动流)。
[0197] 在步骤S38,判断是否从上游节点Nn收到内容数据包。在收到内容数据包的情况下(步骤S38:是),该处理走到步骤S39。在未收到内容数据包的情况下(步骤S38:否),该处理走到步骤S43。
[0198] 在步骤S39,例如在主存储器单元302中管理的接收质量信息被更新。例如,CPU304计算过去一年的平均包速率,平均包损失率,包到达波动,等等作为接收质量信息并更新在过去计算并且存储的接收质量信息。
[0199] 在步骤S40,判断下游节点Nn是否连接至本位节点装置。在下游节点Nn连接至本位节点装置的情况下(步骤S40:是),这样收到的内容数据包被传输(中继)到下游节点Nn(步骤S41),然后走到步骤S42。在下游节点Nn未连接到本位节点装置的情况下(步骤S40:否),该处理走到步骤S42。
[0200] 在步骤S42,内容数据被再现。也就是说,这样收到并且存储在缓冲存储器中的内容数据被读出并且通过显示器311,内置扬声器312等等再现。
[0201] 在步骤S43,判断是否从下游节点Nn收到流停止请求消息。在收到流停止请求消息的情况下(步骤S43:是),该处理走到步骤S44。在未收到流停止请求消息的情况下(步骤S43:否),该处理走到步骤S45。
[0202] 在步骤S44,停止向下游节点Nn传输内容数据包(流动被停止)。
[0203] 在步骤S45,判断是否从下游节点Nn收到连接释放请求消息。在收到连接释放请求消息的情况下(步骤S45:是),该处理走到步骤S46。在未收到连接释放请求消息的情况下(步骤S45:否),该处理走到图15所示的步骤S47。
[0204] 在步骤S46,从节点管理表上删掉发送连接释放请求消息的下游节点Nn的信息。
[0205] 接下来,在图15所示的步骤S47,判断是否由用户通过键盘309或者鼠标310作出退出请求。在由用户作出退出请求的情况下(步骤S47:是),该处理走到步骤S48。在未由用户作出退出请求的情况下(步骤S47:否),该处理走到步骤S53。
[0206] 在步骤S48,流停止请求消息被发给上游节点Nn。
[0207] 在步骤S49,连接释放请求消息被发给上游节点Nn。相应地,本位节点装置从拓扑结构退出。
[0208] 在步骤S50,判断本位节点装置是否是统一消息的代表节点。在本位节点装置是代表节点的情况下(步骤S50:是),该处理走到步骤S51。在本位节点装置不是代表节点的情况下(步骤S50:否),该处理走到步骤S52。
[0209] 在步骤S51,自己节点装置拓扑结构退出报告消息被存储在用于统一消息的存储区中。
[0210] 在步骤S52,本位节点装置退出报告消息被发给连接到本位节点装置的上游节点Nn。
[0211] 在步骤S53,判断是否从下游节点Nn收到参与报告消息或者退出报告消息。在收到参与报告消息或者退出报告消息的情况下(步骤S53:是),该处理走到步骤S54。在未收到参与报告消息和退出报告消息的情况下(步骤S53:否),该处理走到步骤S57。
[0212] 在步骤S54,判断本位节点装置是否是统一消息的代表节点。在本位节点装置是代表节点的情况下(步骤S54:是),该处理走到步骤S55。在本位节点装置不是代表节点的情况下(步骤S54:否),该处理走到步骤S56。
[0213] 在步骤S55,这样收到的参与报告消息或者退出报告消息被存储在用于统一消息的存储区中。
[0214] 在步骤S56,这样收到的参与报告消息或者退出报告消息被传输到连接到本位节点装置的上游节点Nn。
[0215] 在步骤S57,判断本位节点装置是否是统一消息的代表节点。在本位节点装置是代表节点的情况下(步骤S57:是),该处理走到步骤S58。在本位节点装置不是代表节点的情况下(步骤S57:否),该处理走到步骤S60。
[0216] 在步骤S58,判断是否是存储在用于统一消息的存储区中的消息的报告时机(报告时间)。在它是消息的报告时机的情况下(步骤S58:是),该处理走到步骤S59。在它不是消息的报告时机的情况下(步骤S58:否),该处理回到图12所示的步骤S9。
[0217] 在步骤S59,存储在用于统一消息的存储区中的所有的消息被发给连接目的地引入服务器20。以上报告时机设置为使存储在用于统一消息的存储区中的消息被,例如,一分钟发送一次。
[0218] 在图16所示的步骤S60,判断流中继质量是否低于基于以上提及的接收质量信息的阈值。在流中继质量低于阈值的情况下(步骤S60:是),该处理走到步骤S61。在流中继质量不低于阈值的情况下(步骤S60:否),该处理走到步骤S67。
[0219] 在步骤S61,流停止请求消息被发给上游节点Nn。
[0220] 在步骤S62,连接释放请求消息被发给上游节点Nn。
[0221] 在步骤S63,判断本位节点装置是否是统一消息的代表节点。在本位节点装置是代表节点的情况下(步骤S63:是),该处理走到步骤S64。在本位节点装置不是代表节点的情况下(步骤S63:否),该处理走到步骤S65。
[0222] 在步骤S64,本位节点装置的拓扑结构退出报告消息被存储在用于统一消息的存储区中。
[0223] 在步骤S65,本位节点装置的拓扑结构退出报告消息被发给连接到本位节点装置的上游节点Nn。
[0224] 在步骤S66,发生自发的再连接事件并且该自发的再连接事件标志被设置为1。相应地,判断在步骤S2发生自发的再连接事件。
[0225] 在步骤S67,判断是否从上游节点Nn收到连接目的地候选者包P。在收到连接目的地候选者包P的情况下(步骤S67:是),该处理走到步骤S68。在未收到连接目的地候选者包P的情况下(步骤S67:否),该处理走到步骤S74。
[0226] 在步骤S68,判断将要记录(高速缓存)在连接候选者管理表中的连接目的地候选者信息是否包括在收到的连接目的地候选者包P中。例如,如上所述,在适用于本位节点装置的属性信息的节点Nn在包括在连接目的地候选者包P内的连接目的地候选者信息中被指示的情况下,判断将要记录的连接目的地候选者信息被包括。然后,在将要记录(高速缓存)在连接候选者管理表中的连接目的地候选者信息包括在连接目的地候选者包P中的情况下(步骤S68:是),该处理走到步骤S69。在将要记录(高速缓存)在连接候选者管理表中的连接目的地候选者信息不包括在连接目的地候选者包P中的情况下(步骤S68:否),该处理走到步骤S70。
[0227] 在步骤S69,指定本位节点装置的再连接目的地候选者,并且在那个点(记录时间)的连接目的地候选者信息和时间被另外记录在连接候选者管理表中。
[0228] 在步骤S70,判断下游节点Nn是否连接至本位节点装置。在下游节点Nn连接至本位节点装置的情况下(步骤S70:是),这样收到的连接目的地候选者包P被传输(中继)到下游节点Nn(步骤S71),然后走到步骤S72。在下游节点Nn未连接到本位节点装置的情况下(步骤S70:否),该处理走到步骤S72。
[0229] 在步骤S72,判断连接到本位节点装置的下游节点Nn的数目是否达到本位节点装置的可容许的连接数目。在下游节点Nn的数目达到本位节点装置的可容许的连接数目的情况下(步骤S72:是),该处理回到图12所示的步骤S9。在下游节点Nn的数目没有达到本位节点装置的可容许的连接数目(容量剩余)的情况下(步骤S72:否),该处理走到步骤S73。
[0230] 在步骤S73,这样收到的连接目的地候选者包P被存储在用于存储连接目的地候选者包的存储区中。
[0231] 在步骤S74,判断是否从上游节点Nn收到节点属性更新包PA。在收到节点属性更新包PA的情况下(步骤S74:是),该处理走到步骤S75。在未收到节点属性更新包PA的情况下(步骤S74:否),该处理走到步骤S79。
[0232] 在步骤S75,判断将要更新的属性信息是否包括在这样收到的节点属性更新包PA中。在将要更新的属性信息被包括的情况下(步骤S75:是),该处理走到步骤S76。在将要更新的属性信息未包括的情况下(步骤S75:否),该处理走到步骤S77。
[0233] 在步骤S76,记录在连接候选者管理表中的属性信息,基于包括在节点属性更新包PA中的更新信息内的,改变之后的属性信息,被更新。
[0234] 在步骤S77,判断下游节点Nn是否连接至本位节点装置。在下游节点Nn连接至本位节点装置的情况下(步骤S77:是),这样收到的节点属性更新包PA被传输(中继)到下游节点Nn(步骤S78),并且该处理回到步骤S9。在下游节点Nn未连接到本位节点装置的情况下(步骤S77:否),该处理回到图12所示的步骤S9。
[0235] 在步骤S79,判断是否发生在初始时间激活的定时器的超时事件。在发生定时器的超时事件的情况下(步骤S79:是),该处理走到步骤S80。在定时器的超时事件没有发生的情况下(步骤S79:否),该处理回到图12所示的步骤S9。
[0236] 在步骤S80,判断存储在用于存储连接目的地候选者包的存储区中的连接目的地候选者包P的存储时间是否经过预定时间段。在存储时间经过预定时间段的情况下(步骤S80:是),该处理走到步骤S81。在存储时间没有经过预定时间段的情况下(步骤S80:否),该处理走到步骤S82。
[0237] 在步骤S81,存储在用于存储连接目的地候选者包的存储区中的连接目的地候选者信息被删除。
[0238] 在步骤S82,判断经过预定时间段的连接目的地候选者信息是否被记录在连接候选者管理表中。在它被记录在连接候选者管理表中的情况下(步骤S82:是),该处理走到步骤S83。在它未记录在连接候选者管理表中的情况下(步骤S82:否),该处理回到图12所示的步骤S9。
[0239] 在步骤S83,经过预定时间段的(即,旧的)连接目的地候选者信息被从连接候选者管理表上删掉。
[0240] (广播站10的处理)
[0241] 接下来,参考图17和18,解释广播站10中的CPU104的处理。
[0242] 图17和18是显示由广播站10中的CPU104执行的处理的流程图。
[0243] 图17中的处理开始于通过打开主电源101激活广播站10。当该处理开始时,在步骤S101,初始化广播站10中的各种类型的程序,并且用于各种当超时事件发生时执行的循环处理的定时器被激活。在这里,广播站的记录请求消息(包括广播站10的位置信息等等)当处理开始时被发给连接目的地引入服务器20。
[0244] 在步骤S102,判断是否由广播操作员请求广播启动或停止。在请求广播启动或停止的情况下,该处理走到步骤S103。在未请求广播启动或停止的情况下,该处理走到步骤S106。
[0245] 在步骤S103,响应于广播开始请求或者停止请求,开始或停止内容数据包的生成处理。当内容数据包生成处理开始时,记录在硬盘单元103中的内容数据被访问以读出,与系统定时器同步产生内容数据包,并且该包被存储在缓冲存储器中。另一方面,当内容数据包生成处理被停止时,为读出记录在硬盘单元103中的内容数据的访问被停止并且缓冲存储器被清除。
[0246] 在步骤S104,判断广播站的主电源101是否关闭。在主电源101关闭的情况下(步骤S104:是),该处理走到步骤S105。在主电源101未关闭的情况下(步骤S104:否),该处理回到步骤S102。
[0247] 在步骤S105,当主电源101变为关闭时,各种程序结束,然后用于各种循环处理的定时器停止,并且该处理结束。在这里,当该处理结束时,广播站的删除请求消息(包括广播站10的位置信息,等等)被发给连接目的地引入服务器20。
[0248] 在步骤S106,判断是否从下游节点Nn收到连接请求消息。在收到连接请求消息的情况下(步骤S106:是),该处理走到步骤S107。在未收到连接请求消息的情况下(步骤S106:否),该处理走到步骤S109。
[0249] 在步骤S107,下游节点Nn的信息(例如IP地址和端口号)被另外记录在节点管理表中。
[0250] 在步骤S108,连接允许响应消息被发给下游节点Nn。
[0251] 在步骤S109,判断是否从下游节点Nn收到连接释放请求消息。在收到连接释放请求消息的情况下(步骤S109:是),该处理走到步骤S110。在未收到连接释放请求消息的情况下(步骤S109:否),该处理走到步骤S111。
[0252] 在步骤S110,下游节点Nn的信息(例如IP地址和端口号)被从节点管理表上删掉。
[0253] 在步骤S111,判断是否从下游节点Nn收到流启动请求消息。在收到流启动请求消息的情况下(步骤S111:是),该处理走到步骤S112。在未收到流启动请求消息的情况下(步骤S111:否),该处理走到步骤S113。
[0254] 在步骤S112,对下游节点Nn的内容流广播开始(流开始)。
[0255] 在步骤S113,判断是否从下游节点Nn收到流停止请求消息。在收到流停止请求消息的情况下(步骤S113:是),该处理走到步骤S114。在未收到流停止请求消息的情况下(步骤S113:否),该处理走到图18所示的步骤S115。
[0256] 在步骤S114,对下游节点Nn的内容流广播被停止(流被停止)。
[0257] 接下来在图18所示的步骤S115,判断是否收到来自连接目的地引入服务器20的连接目的地候选者信息的信息块C和指示连接目的地候选者信息的广播指令的广播指令消息。在收到连接目的地候选者信息的信息块C等等的情况下(步骤S115:是),该处理走到步骤S116。在未收到连接目如果地候选者信息的信息块C等等的情况下(步骤S115:否),该处理走到步骤S117。
[0258] 在步骤S116,这样收到的信息块C被存储在主存储器单元102的预定存储区中。
[0259] 在步骤S117,判断在初始化的时候激活的定时器的超时事件是否发生。在发生定时器的超时事件的情况下(步骤S117:是),该处理走到步骤S118。在定时器的超时事件没有发生的情况下(步骤S117:否),该处理回到步骤S104。
[0260] 在步骤S118,判断存储的信息块C是否为空,换言之,信息块C是否被存储在以上提及的主存储器单元102的存储区中。在信息块C为空的情况下(步骤S118:是),该处理回到图17所示的步骤S104。在信息块C不是空白的情况下(步骤S118:否),该处理走到步骤S119。
[0261] 在步骤S119,从这样存储的信息块C产生包括连接目的地候选者信息的连接目的地候选者包P。
[0262] 在步骤S120,这样产生的连接目的地候选者包P被发送(广播)到下游节点Nn。
[0263] 在步骤S121,判断是否从连接目的地引入服务器20收到节点属性更新包PA。在收到节点属性更新包PA的情况下(步骤S121:是),该处理走到步骤S122。在未收到节点属性更新包PA的情况下(步骤S121:否),该处理回到图17所示的步骤S104。
[0264] 在步骤S122,这样收到的节点属性更新包PA被发送(广播)到下游节点Nn。
[0265] (连接目的地引入服务器20的处理)
[0266] 接下来,参考图19,解释连接目的地引入服务器20中的CPU204的处理。
[0267] 图19是显示由连接目显示地引入服务器20中的CPU204执行的处理的流程图。
[0268] 图19中的处理开始于通过打开主电源201激活连接目的地引入服务器20。当该处理开始时,在步骤S201,连接目的地引入服务器20中的各种类型的程序被初始化,并且当超时事件发生时激活用于各种循环处理的定时器。
[0269] 在步骤S202,判断是否从广播站10收到记录请求消息或者删除请求消息。在收到记录请求消息或者删除请求消息的情况下(步骤S202:是),该处理走到步骤S203。在未收到记录请求消息和删除请求消息的情况下(步骤S202:否),该处理走到步骤S207。
[0270] 在步骤S203,位置信息包括在记录请求消息中,其对应于所述广播信道信息被记录在所述广播站管理数据库中。或者位置信息包括在删除请求消息内的,去被从广播站管理数据库上删掉。
[0271] 在步骤S204,记录在位置信息中的对应于广播站10的广播信道信息被记录在拓扑结构数据库中。或者广播信道信息被从拓扑结构数据库上删掉。
[0272] 在步骤S205,判断连接目的地引入服务器20的主电源201是否关闭。在主电源201关闭的情况下(步骤S205:是),该处理走到步骤S206。在主电源201未关闭的情况下(步骤S205:否),该处理回到步骤S202。
[0273] 在步骤S206,当主电源201变为关闭时,各种程序结束,借此用于各种循环处理的定时器停止。然后该处理结束。
[0274] 在步骤S207,判断是否从节点Nn收到上游节点引入请求消息。在收到上游节点引入请求消息的情况下(步骤S207:是),该处理走到步骤S208。在未收到上游节点引入请求消息的情况下(步骤S207:否),该处理走到步骤S210。
[0275] 在步骤S208,从拓扑结构数据库搜索上游节点Nn的候选者,并且获取搜索到的一或多个上游节点Nn的候选者的网络地址信息和属性信息。
[0276] 在步骤S209,包括这样获取的上游节点Nn的网络地址信息和属性信息的上游节点候选者引入消息被返回到发送上游节点引入请求消息的节点Nn。
[0277] 在步骤S210,判断是否从节点Nn收到参与报告消息或者退出报告消息。在收到参与报告消息或者退出报告消息的情况下(步骤S210:是),该处理走到步骤S211。在未收到参与报告消息和退出报告消息的情况下(步骤S210:否),该处理走到步骤S213。
[0278] 在步骤S211,响应于参与报告消息或者退出报告消息更新记录在拓扑结构数据库中的拓扑结构管理信息。相应地,反映了拓扑结构不稳定。
[0279] 在步骤S212,计算拓扑结构中每小时连接频率。
[0280] 在步骤S213,判断在初始化的时候激活的定时器的超时事件是否发生(也就是说,连接目的地候选者的广播开始)。在定时器超时事件发生的情况下(步骤S213:是),该处理走到步骤S214。在没有发生定时器的超时事件的情况下(步骤S213:否),该处理走到步骤S216。
[0281] 在步骤S214,基于记录在拓扑结构数据库中的拓扑结构管理信息,最新的下游可连接节点Nn的多个断片被选取作为将是再连接目的地候选者的节点Nn,并且产生包括连接目的地候选者信息的信息块C。
[0282] 在步骤S215,指示这样产生的信息块C和连接目的地候选者信息的广播指令的广播指令消息被发送到广播站10。
[0283] 在步骤S216,判断记录在拓扑结构数据库中的拓扑结构管理信息中的节点Nn的属性信息是否改变。在节点Nn的属性信息改变的情况下(步骤S216:是),该处理走到步骤S217。在节点Nn的属性信息没有改变的情况下(步骤S216:否),该处理回到步骤S205。
[0284] 在步骤S217,存储包括属性信息改变的节点Nn的网络地址信息和改变之后的属性信息的更新信息的节点属性更新包PA被产生。
[0285] 在步骤S218,这样产生的节点属性更新包PA被发给广播站10。
[0286] 如上面解释的,根据以上提及的实施例,包括来自广播站10的连接目的地候选者信息的连接目的地候选者包P在拓扑结构中从上游节点Nn向下游节点Nn广播,收到连接目的地候选者包P的各节点Nn在包括在此内的连接目的地候选者信息中指示的多个节点Nn中间,指定适用于本位的属性信息的节点Nn作为本位的再连接目的地候选者,并存储与这样指定的节点Nn相关的连接目的地候选者信息。然后,在各节点Nn当自发的再连接事件发生时,释放当前与本身连接的上游节点Nn或者广播站10之间的连接,重新再连接到另一上游节点Nn的情况下,各节点Nn在以上提及的指定的再连接目的地候选者中选择一个节点Nn作为再连接目的地,并且再连接作为这样选择的再连接目的地的上游节点Nn。根据这样的结构,可限制向管理拓扑结构的连接目的地引入服务器20查询将要再连接的上游节点Nn。因此,可提供具有等于从连接目的地引入服务器20中获得的连接目的地候选者的最优性的候选者,也减少连接目的地引入服务器20的载荷(限制载荷集中),以便可以稳定拓扑结构。
[0287] 此外,在由连接目的地候选者信息指示的多个节点Nn中间,具有比本位节点装置的更小的层级值(即在较高层中)或者相同的层级值的节点Nn被指定作为用于适用于本位节点装置属性信息的节点Nn的再连接目的地候选者。根据这样的结构,可防止传递路由循环。
[0288] 此外,在由连接目的地候选者信息指示的多个节点Nn中间,适用于本位节点装置的NAT横贯属性的节点Nn被指定作为用于适用于本位节点装置属性信息的节点Nn的再连接目的地候选者。根据此结构,可防止通信建立失败。此外,因为再连接目的地的NAT横贯属性被记录在连接候选者管理表中,所以有可能省略用于试图与记录在连接候选者管理表中的节点Nn创建连接的一些处理时间且减少直到连接建立的时间。
[0289] 此外,在由单个连接目的地候选者包P中的连接目的地候选者信息指示的多个节点Nn中间,更小数目的节点Nn被随机地指定作为再连接目的地候选者。根据这样的结构,有可能限制从单个连接目的地候选者包指定的再连接目的地候选者的数目并且分散再连接候选者。
[0290] 此外,在节点Nn属性信息由于再连接而改变的情况下,存储包括改变之后的属性信息的更新信息的节点属性更新包PA被从上游节点Nn向拓扑结构的下游节点Nn广播,并且收到节点属性更新包PA的节点Nn检查对应节点Nn是否被记录在本位的再连接候选者管理表中。在它被记录的情况下,对应节点Nn的属性信息被替换为包括节点属性更新包PA的属性信息。根据这样的结构,有可能修正在相对短的延迟时间之内并且提供等于连接目的地引入服务器20的优质的再连接目的地候选者。
[0291] 此外,在下游节点连接的数目没有达到可容许的连接数目的情况下,各节点Nn在用于存储连接目的地候选者包的存储区中存储连接目的地候选者包P预定时间段。在此存储时段期间,新的节点Nn连接为下游节点的情况下,各节点Nn向下游节点Nn传输这样存储的连接目的地候选者包P。根据这样的结构,新参与拓扑结构的节点Nn也可立即获得连接目的地候选者信息。
[0292] 此外,因为参与或者退出报告消息被代表节点Nn一次全部地收集并且发送到连接目的地引入服务器20,所以有可能减少对连接目的地引入服务器20的通信量。
[0293] 这样,可减少为保证拓扑结构的可缩放性所必需的,用于服务器的设备投资。
[0294] 在这里,在以上提及的实施例中,当给定节点Nn从连接目的地候选者包P中指定再连接目的地候选者时,在层级值小于或者等于本位节点装置的条件下,传递路由被防止循环。然而,当各节点Nn预先存储邻近节点组时可以选择具有比本位节点装置的大的层级值的节点。
[0295] 图20是显示在拓扑结构中相对于关注节点N13的邻近节点组的图。在图20的实例中,关注节点N13存储与作为离开作为下游方向和上游方向的中心的本位1跳跃(节点)的邻近节点的节点N12,N17和N18相关的信息,并且关注节点N13位于第n层。在这种情况下,因为关注节点N13知道从连接到节点N13的直接的下游节点下游的一个跳跃存在邻近节点,所以当从连接目的地候选者包P中指定再连接目的地候选者时,节点N13首先指定低于第n+1层的再连接目的地候选者,然后从这样指定的候选者中排除下游方向邻近节点N17和N18。因此,有可能缓和用于从连接目的地候选者包9指定(选择)再连接目的地候选者的条件,指定更多的再连接候选者并且在再连接候选者管理表中记录它们。在这里,为了知道邻近节点的存在,各节点Nn以限制的节点Nn中继(传输)频率向周围的节点Nn发送用于通告本位节点装置的存在的通告包。