JP4840329B2 - ツリー型放送システム、再接続処理方法、ノード装置、ノード処理プログラム、サーバ装置、及びサーバ処理プログラム - Google Patents

ツリー型放送システム、再接続処理方法、ノード装置、ノード処理プログラム、サーバ装置、及びサーバ処理プログラム Download PDF

Info

Publication number
JP4840329B2
JP4840329B2 JP2007285973A JP2007285973A JP4840329B2 JP 4840329 B2 JP4840329 B2 JP 4840329B2 JP 2007285973 A JP2007285973 A JP 2007285973A JP 2007285973 A JP2007285973 A JP 2007285973A JP 4840329 B2 JP4840329 B2 JP 4840329B2
Authority
JP
Japan
Prior art keywords
node
information
node device
destination candidate
connection
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.)
Expired - Fee Related
Application number
JP2007285973A
Other languages
English (en)
Other versions
JP2009117944A (ja
Inventor
靖司 柳原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2007285973A priority Critical patent/JP4840329B2/ja
Priority to US12/285,994 priority patent/US8059669B2/en
Priority to AT08253492T priority patent/ATE522995T1/de
Priority to EP20080253492 priority patent/EP2061184B1/en
Priority to CN2008101747365A priority patent/CN101425916B/zh
Publication of JP2009117944A publication Critical patent/JP2009117944A/ja
Application granted granted Critical
Publication of JP4840329B2 publication Critical patent/JP4840329B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1854Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/185Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1046Joining mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1048Departure or maintenance mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Small-Scale Networks (AREA)

Description

本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア(Peer to Peer(P2P))型の通信システムの技術分野に関する。
この種のシステムにおいて、アプリケーション層でコンテンツデータの放送(配信)経路を管理しながらコンテンツストリームの中継配信を行うALM(Application Layer Multicast)という技術が知られている。このALM技術では、コンテンツデータのファイルから生成されたパケットをノード装置間でリアルタイムに中継することにより、放送局(放送装置)から放送されたコンテンツデータを任意のノード装置へ配信(マルチチャスト)することができる。
このようなALM技術の下で形成されたトポロジーに参加中のノード装置が、受信ストリーム(上位階層のノード装置からのコンテンツストリーム)の品質劣化や上位階層(上流)のノード装置の脱退(離脱)を契機として、新しい上位階層のノード装置へ再接続する場合、トポロジーを管理する接続先紹介サーバに要求して接続先の候補のネットワークアドレス情報を取得しこれを使用して再接続するか、或いは各ノード装置が近隣のノード装置との間で交換し蓄積している接続先の候補のネットワークアドレス情報を使用して自律的に再接続するか、のどちらか一方の方式を使う事例が多い。
前者の場合は、接続先紹介サーバによりリアルタイムに収集されるトポロジー情報全体の中から最適な接続先の候補を紹介することが可能であるため、当該接続先の候補を使用し確実な接続処理を実施することができる一方、多数のノード装置がトポロジーに参加している場合には接続先紹介サーバにかかる負荷が高くなり、システム全体として不安定になりやすいという課題がある。
後者の場合は、各ノード装置が近隣のノード装置との間で交換したネットワークアドレス情を用いて再接続を行うため、接続先の候補を得るために接続先紹介サーバに負荷をかけないで済む一方、トポロジー全体から最適な接続先の候補を選択することが困難であるため、接続先の候補となるノード装置に対して接続を試みても失敗して再試行が必要になる可能性が高い。
また、特許文献1には、接続先紹介サーバにてノード装置の属性情報毎に所定数の接続先の候補を管理しておき、トポロジーへの参加を希望するノード装置が、自己の属性情報を伴って接続先紹介サーバに対して接続先候補取得要求を行う方式が開示されている。この方式では、ノード装置は、上記接続先候補取得要求により接続先紹介サーバから取得した接続先の候補のネットワークアドレス情報を用いて被接続ノード装置に対して接続要求を行い、当該被接続ノード装置が接続を許可した場合に接続が確立されるようになっている。この方式によれば、接続先紹介サーバにおいて最適な接続先の候補を選択するのではなく、被接続ノード装置が、接続要求を行ったノード装置の諸条件を詳しく判定してから接続可否を応答するため、接続先紹介サーバが最適な候補を選択するための処理に関わる負荷を減らすことが可能とされている。
特開2006−319466号公報
しかしながら、特許文献1に開示された方式では、被接続ノード装置から接続を拒否された場合には、接続処理を再試行しなければならず、システム全体でみたときに必ずしもトポロジーを安定させることができない。例えば、接続処理に時間を要するとトポロジーが分断され、下位階層のノード装置にコンテンツストリームが供給されない時間が長くなるためである。
そこで、本発明は、以上の問題等に鑑みてなされたものであり、トポロジーを管理する接続先紹介サーバに与える負荷を低減させながらも、接続先紹介サーバから得られる接続先の候補と同等の最適性を伴った候補を各ノード装置に提供することを可能とし、トポロジーを安定させることが可能なツリー型放送システム、再接続処理方法、ノード装置、ノード処理プログラム、サーバ装置、及びサーバ処理プログラムを提供することを課題とする。
上記課題を解決するために、請求項1に記載の発明は、複数のノード装置の参加により形成されたツリー型放送システムであり、当該複数のノード装置が放送装置を最上位として複数の階層を形成しつつ通信手段を介してツリー状に接続され、前記放送装置により放送された情報が、上位階層のノード装置から下位階層のノード装置に順次転送されるようにしたツリー型放送システムにおける前記ノード装置であって、現在自己が接続している上位階層のノード装置又は前記放送装置から放送されてきた、再接続先の候補となるべきノード装置を示しそのノード装置の少なくともネットワークアドレス情報を含む接続先候補情報を受信する接続先候補情報受信手段と、前記受信された接続先候補情報に示されるノード装置のうち、自己の属性情報に適合するノード装置を自己の再接続先の候補として特定する再接続先候補特定手段と、前記特定された再接続先の候補となるノード装置の少なくともネットワークアドレス情報を記憶する再接続先候補記憶手段と、現在自己が接続している上位階層のノード装置又は前記放送装置との間の当該接続を解除し新たに別のノード装置に再接続する場合には、前記ネットワークアドレス情報が前記再接続先候補記憶手段に記憶されているノード装置のうち、一つのノード装置を再接続先として選定し、当該選定した再接続先となるノード装置の前記ネットワークアドレス情報に基づき当該ノード装置に接続するための接続処理を行う接続処理手段と、を備えることを特徴とする。
この発明によれば、トポロジーを管理する接続先紹介サーバに対して再接続となるノード装置の問い合わせを抑えることができ、したがって、当該接続先紹介サーバに与える負荷を低減(負荷集中を抑制)させながらも、接続先紹介サーバから得られる接続先の候補と同等の最適性を伴った候補を各ノード装置に提供することができ、トポロジーを安定させることが可能となる。
請求項2に記載の発明は、請求項1に記載のノード装置において、自己の下位階層にノード装置が接続されている場合には、当該ノード装置に前記受信された接続先候補情報を転送する接続先候補情報転送手段を備えることを特徴とする。
請求項3に記載の発明は、請求項1又は2に記載のノード装置において、現在自己に接続されている下位階層のノード装置の数が、自己の下位階層に接続可能なノード装置の許容数に達しているか否かを判別する許容数判別手段と、前記下位階層のノード装置の数が前記許容数に達していないと判別された場合には、その後に下位階層として接続されるノード装置に対して転送するために、前記受信された接続先候補情報を所定時間蓄積する接続先候補情報蓄積手段と、を備えることを特徴とする。
この発明によれば、接続先候補情報の蓄積期間中に新たに下位階層として接続されたノード装置に対して即座に接続先候補情報を得ることができる。
請求項4に記載の発明は、請求項1乃至3の何れか一項に記載のノード装置において、前記接続先候補情報には、前記再接続先の候補となるべきノード装置の当該システムにおける階層レベルを示す情報が含まれ、前記属性情報には、自己の当該システムにおける階層レベルを示す情報が含まれており、前記再接続先候補特定手段は、前記階層レベルを示す情報に基づいて、前記受信された接続先候補情報に示されるノード装置のうち、自己と同じ階層又は上位階層に位置するノード装置を、自己の属性情報に適合する再接続先の候補として特定することを特徴とする。
この発明によれば、配信経路が循環することを回避することができる。
請求項5に記載の発明は、請求項1乃至4の何れか一項に記載のノード装置において、前記接続先候補情報には、前記再接続先の候補となるべきノード装置の当該システムにおける通信方式を示す情報が含まれ、前記属性情報には、自己の当該システムにおける通信方式を示す情報が含まれており、前記再接続先候補特定手段は、前記通信方式を示す情報に基づいて、前記受信された接続先候補情報に示されるノード装置のうち、自己の通信方式と適合するノード装置を、自己の属性情報に適合する再接続先の候補として特定することを特徴とする。
この発明によれば、通信を確立することができないことを回避することができる。
請求項6に記載の発明は、請求項1乃至5の何れか一項に記載のノード装置において、前記接続先候補情報には、再接続先の候補となるべきノード装置が複数示されており、前記再接続先候補特定手段は、前記受信された接続先候補情報に示される複数のノード装置のうち、前記受信された接続先候補情報に示される複数のノード装置数より少ない数のノード装置を自己の再接続先の候補としてランダムに特定することを特徴とする。
この発明によれば、特定される再接続先の候補数を抑制し、再接続の候補の散逸化を図ることができる。
請求項7に記載の発明は、請求項1乃至6の何れか一項に記載のノード装置において、前記再接続先候補記憶手段は、前記特定された再接続先の候補となるノード装置のネットワークアドレス情報に加えて当該ノード装置の属性情報を記憶し、現在自己が接続している上位階層のノード装置又は前記放送装置から放送されてきた更新情報であって、前記ツリー型放送システムにおける再接続により属性情報が変更されたノード装置の当該変更後の属性情報を含む更新情報を受信する更新情報受信手段と、前記更新情報に含まれる属性情報に基づいて、前記再接続先候補記憶手段に記憶されている属性情報を更新する属性情報更新手段と、を更に備えることを特徴とする。
この発明によれば、ノード装置が記憶している再接続の候補の属性情報の変更は、比較的短い遅延時間の中で補正することができ、接続先紹介サーバが提供する場合と同等の良質な再接続先の候補を提供することができる。
請求項8に記載の発明は、前記接続先候補情報は、前記ツリー型放送システムにおけるノード装置の接続態様を管理するサーバ装置により生成され、前記放送装置に提供されるものであって、請求項1乃至7の何れか一項に記載のノード装置は、自己の下位階層に接続されているノード装置から送信されてきた、前記ツリー型放送システムへの参加報告又は前記ツリー型放送システムからの脱退報告を示す報告情報を受信する報告情報受信手段と、前記受信された報告情報を蓄積する報告情報蓄積手段と、自己が前記サーバ装置に代表して前記報告情報を送信する代表ノード装置である場合には、所定期間毎に前記蓄積された報告情報を当該サーバ装置に送信し、自己が前記代表ノード装置でない場合には、前記受信された報告情報を自己が接続している上位階層のノード装置に送信する報告情報送信手段と、を備えることを特徴とする。
この発明によれば、接続先紹介サーバに対する通信量を削減することができる。
請求項9に記載のノード処理プログラムは、コンピュータを、請求項1乃至8の何れか一項に記載のノード装置として機能させることを特徴とする。
請求項10に記載の発明は、複数のノード装置の参加により形成されたツリー型放送システムであり、当該複数のノード装置が放送装置を最上位として複数の階層を形成しつつ通信手段を介してツリー状に接続され、前記放送装置により放送された情報が、上位階層のノード装置から下位階層のノード装置に順次転送されるようにしたツリー型放送システムにおける前記ノード装置の接続態様を管理するサーバ装置であって、前記接続態様を示す情報に基づいて、前記ツリー型放送システムにおけるノード装置の再接続先の候補となるべき他のノード装置を示しそのノード装置の少なくともネットワークアドレス情報を含む接続先候補情報を生成する接続先候補情報生成手段と、前記生成された接続先候補情報と、当該接続先候補情報の放送指令を示す放送指令情報を前記放送装置に送信する接続先候補情報送信手段と、を備えることを特徴とする。
この発明によれば、ツリー型放送システムに参加している全てのノード装置に対して、放送装置から上記接続先候補情報をより効率良く配信することができる。
請求項11に記載の発明は、請求項10に記載のサーバ装置において、何れかの前記ノード装置から送信されてきた、前記ツリー型放送システムへの参加報告又は前記ツリー型放送システムからの脱退報告を示す報告情報を受信する報告情報受信手段と、前記報告情報に基づいて前記ツリー型放送システムにおけるノード装置の接続態様を示す情報を更新する更新手段と、を備えることを特徴とする。
請求項12に記載のサーバ処理プログラムの発明は、コンピュータを、請求項10又は11に記載のサーバ装置として機能させることを特徴とする。
請求項13に記載の発明は、複数のノード装置の参加により形成されたツリー型放送システムであり、当該複数のノード装置が放送装置を最上位として複数の階層を形成しつつ通信手段を介してツリー状に接続され、前記放送装置により放送された情報が、上位階層のノード装置から下位階層のノード装置に順次転送されるようにしたツリー型放送システムであって、当該ツリー型放送システムにおける前記ノード装置の接続態様を管理するサーバ装置は、前記接続態様を示す情報に基づいて、前記ツリー型放送システムにおけるノード装置の再接続先の候補となるべき他のノード装置を示しそのノード装置の少なくともネットワークアドレス情報を含む接続先候補情報を生成する接続先候補情報生成手段と、前記生成された接続先候補情報と、当該接続先候補情報の放送指令を示す放送指令情報を前記放送装置に送信する接続先候補情報送信手段と、を備え、前記ノード装置は、現在自己が接続している上位階層のノード装置又は前記放送装置から放送されてきた前記接続先候補情報を受信する接続先候補情報受信手段と、前記受信された接続先候補情報に示されるノード装置のうち、自己の属性情報に適合するノード装置を自己の再接続先の候補として特定する再接続先候補特定手段と、前記特定された再接続先の候補となるノード装置の少なくともネットワークアドレス情報を記憶する再接続先候補記憶手段と、現在自己が接続している上位階層のノード装置又は前記放送装置との間の当該接続を解除し新たに別のノード装置に再接続する場合には、前記ネットワークアドレス情報が前記再接続先候補記憶手段に記憶されているノード装置のうち、一つのノード装置を再接続先として選定し、当該選定した再接続先となるノード装置の前記ネットワークアドレス情報に基づき当該ノード装置に接続するための接続処理を行う接続処理手段と、を備えることを特徴とする。
請求項14に記載の発明は、複数のノード装置の参加により形成されたツリー型放送システムであり、当該複数のノード装置が放送装置を最上位として複数の階層を形成しつつ通信手段を介してツリー状に接続され、前記放送装置により放送された情報が、上位階層のノード装置から下位階層のノード装置に順次転送されるようにしたツリー型放送システムにおける再接続処理方法であって、当該ツリー型放送システムにおける前記ノード装置の接続態様を管理するサーバ装置は、前記接続態様を示す情報に基づいて、前記ツリー型放送システムにおけるノード装置の再接続先の候補となるべき他のノード装置を示しそのノード装置の少なくともネットワークアドレス情報を含む接続先候補情報を生成する工程と、前記生成された接続先候補情報と、当該接続先候補情報の放送指令を示す放送指令情報を前記放送装置に送信する工程と、を備え、前記ノード装置は、現在自己が接続している上位階層のノード装置又は前記放送装置から放送されてきた前記接続先候補情報を受信する工程と、前記受信された接続先候補情報に示されるノード装置のうち、自己の属性情報に適合するノード装置を自己の再接続先の候補として特定する工程と、前記特定された再接続先の候補となるノード装置の少なくともネットワークアドレス情報を記憶する工程と、現在自己が接続している上位階層のノード装置又は前記放送装置との間の当該接続を解除し新たに別のノード装置に再接続する場合には、前記ネットワークアドレス情報が前記記憶されているノード装置のうち、一つのノード装置を再接続先として選定し、当該選定した再接続先となるノード装置の前記ネットワークアドレス情報に基づき当該ノード装置に接続するための接続処理を行う接続処理工程と、を備えることを特徴とする。
本発明によれば、トポロジーを管理する接続先紹介サーバに対して再接続となるノード装置の問い合わせを抑えることができ、したがって、当該接続先紹介サーバに与える負荷を低減(負荷集中を抑制)させながらも、接続先紹介サーバから得られる接続先の候補と同等の最適性を伴った候補を各ノード装置に提供することができ、トポロジーを安定させることが可能となる。
以下、本発明の最良の実施形態を図面に基づいて説明する。
1.ツリー型放送システムの構成等
始めに、図1等を参照して、本発明の一実施形態に係るツリー型放送システム全体の概要構成及び機能について説明する。
図1は、本実施形態に係るツリー型放送システムにおける各ノード装置の接続態様の一例を示す図である。
図1の下部枠101内に示すように、IX(Internet eXchange)3、ISP(Internet Service Provider)4a,4b、DSL(Digital Subscriber Line)回線事業者(の装置)5a,5b、FTTH(Fiber To The Home)回線事業者(の装置)6、及び通信回線(例えば、電話回線や光ケーブル等)7等によって、インターネット等のネットワーク(現実世界の通信ネットワーク)8が構築されている。なお、図1の例におけるネットワーク(通信ネットワーク)8には、データ(パケット)を転送するためのルータが、適宜挿入されているが図示を省略している。
このようなネットワーク8には、複数のノード装置(以下、「ノード」という)Nn(n=1,2,3・・・の何れか)が接続されている。また、各ノードNnには、固有のノードIDが割り当てられている。
そして、本実施形態に係るツリー型放送システムSは、これらのノードNnのうち、図1の上部枠100内に示すように、何れか複数のノードNnの参加により形成(構成)されるピアツーピア方式のネットワークシステムとなっている。なお、図1の上部枠100内に示すネットワーク9は、既存のネットワーク8を用いて形成された仮想的なリンクを構成するオーバーレイネットワーク9(論理的なネットワーク)である。
このようなツリー型放送システムSにおいては、該システムSに参加(トポロジーに参加)している複数のノードNnが放送局10を最上位として複数の階層を形成しつつネットワーク8を介してツリー状に接続され、当該放送局10から放送(例えばストリームミング配信方式で放送)されたコンテンツデータ(例えば、映像データ及び音声データ等)が、上位階層(以下、「上流」という)のノードNnから下位階層(以下、「下流」という)のノードNnに順次転送(ALM(Application Layer Multicast))されるようになっている。
また、ツリー型放送システムSにおいて形成されたトポロジーは、接続先紹介サーバ20により管理されている。そして、接続先紹介サーバ20は、ノードNnからの接続先紹介要求に応じて当該ノードNnに対してツリー型放送システムSにおける接続先となる上流のノード(以下、「上流ノード」という)Nnを紹介するようになっている。
図2は、ノードN12がツリー型放送システムSへの参加する際の様子を示した概念図である。
図2の例において、ノードN12がツリー型放送システムSに参加(言い換えれば、トポロジーに参加)する場合、先ず、当該ノードN12は、接続先紹介サーバ20へ上流ノード紹介要求メッセージを送信する(1)。接続先紹介サーバ20は、内部で管理しているトポロジー管理情報の中から下流側に接続が可能な(下流側に直接接続されたノード数が接続許容数に達していない)ノード(以下、「下流接続可能ノード」という)Nnを検索し、1以上の上流ノード候補のネットワークアドレス情報(例えば、IP(Internet Protocol)アドレス及びポート番号)等を含む上流ノード候補紹介メッセージをノードN12へ返信(接続可能ノード紹介)する(2)。次に、ノードN12は、接続先紹介サーバ20から取得した上流ノード候補の中から一つの例えばノードN2を選択し、当該ノードN2へ接続要求メッセージを送信する(3)。次に、ノードN2は、内部で管理しているノード管理テーブルにノードN12の情報を追加し、ノードN12へ接続許可応答メッセージを返信する(4)。次に、ノードN12は、ノードN2へストリーム開始要求メッセージを送信する(5)。最後に、ノードN2は、装置内部にストリーム中継用のオブジェクトを準備し、ノードN12に対してストリーミングを開始する(6)。こうして、ツリー型放送システムSへのノードN12の参加が完了する。
一方、ノードN12がツリー型放送システムSから脱退(離脱)する場合、当該ノードN12は、ストリーム供給元である上流ノードN2に対してストリーム停止要求メッセージと接続解除要求メッセージを送信する。これに応じて、ノードN2は、ストリーム中継用オブジェクトを破棄することでノードN12に対するストリーミングを停止し、同時にノード管理テーブルからノードN12の情報を削除することでノードN2との接続関係を断ち切る。
このとき、脱退するノードNnの下流側にノードNnが存在していた場合、当該下流のノード(以下、「下流ノード」という)Nnは、例えば、以下のa)、b)のいずれかの方法で放送経路の復元を行うことになる。
a)タイムアウト方式による再生
上流ノードNnからのストリーミング状態を常時監視しておき、一定時間、ストリーム供給が途絶したこと(自律的再接続事象の発生)を契機として、当該上流ノードNnとの接続状態を破棄して新たな上流ノードNnに再接続する。
b)イベント通知方式による再生
上流ノードNnがツリー型放送システムSから脱退する際、直下の下流ノードNnに向けて脱退イベントを通知する。下流ノードNnが上流ノードNnからの脱退イベントを受信する(自律的再接続事象の発生)と、上流ノードNnとの接続状態を破棄して新たな上流ノードNnに再接続する。
また、ツリー型放送システムSに参加している各ノードNnは、上流ノードNnからのストリーム受信状態を監視し、一定の受信品質未満となったら(自律的再接続事象の発生)、上流ノードNnを切り替え、新たな上流ノードNnに再接続するようになっている。なお、受信品質の評価基準としては、過去一定期間における平均パケットレートおよびパケット損失率を用いることができる。
ここで、本実施形態においては、上記下流ノードNnの再接続先の候補となるべき複数の上流ノードNnを示す接続先候補情報は接続先候補パケットとして(当該パケットに含まれて)放送局10から放送(配信)され上流から下流のノードNnに順次転送(ALM)されるようになっている。つまり、コンテンツデータの配信経路と同じ経路で接続先候補パケットが配信される。
図3は、接続先候補パケットが上流から下流に向けて放送される様子を示す図である。
これにより、接続先候補パケットPは、トポロジー参加中(ALMのマルチキャストの配信経路上)の全てのノードNnに行き渡るようになっている。なお、図中、ナンバー数字(No.1〜No.8)は、配信順序を示している。
また、放送局10は、図3に示すように、上記接続先候補情報を含むチャンク(かたまり)Cを接続先紹介サーバ20から例えば定期的に取得するようになっている。つまり、接続先紹介サーバ20は、トポロジー管理情報の中から最新の接続可能候補を複数個抽出して接続先候補情報を生成し、これを含むチャンクCを放送局10へ定期的に送信する。そして、放送局10は、取得したチャンクCに含まれる接続先候補情報を複数に分割し、分割した各接続先候補情報を接続先候補パケットPで放送する。
なお、放送局10は、例えば、次の接続先候補情報を含むチャンクCを取得するまでの時間を利用して、一定の送信速度(例えば、128kbps)でゆっくりと接続先候補パケットPを放送することになる。
図4は、接続先候補パケットPの構成の一例を示す図である。
図4に示すように、接続先候補パケットPのヘッダ部は、IPヘッダ、UDP(User Datagram Protocol)ヘッダ、及び応用層ヘッダを含んで構成されており、ペイロード部には、接続先候補情報が格納されるようになっている。
ペイロード部に格納される接続先候補情報には、再接続先の候補に関する情報(接続先候補情報)が当該候補の数分(図4の例では、候補1,2,3・・・)含まれている。また、各候補に関する接続先候補情報には、グローバルIPアドレス、ローカル(プライベート)IPアドレス、NAT(Network Address Translation)越え属性(当該システムSにおけるNAT越えの通信方式に関する情報(ヒント)の一例)、下流接続本数、及び階層レベル値(当該システムSにおける階層レベルを示す情報の一例)等が含まれる。なお、グローバルIPアドレス及びローカルIPアドレスには、図示しないが夫々ポート番号が付加される。また、NAT越え属性、下流接続本数、及び階層レベル値は、属性情報の一例である。
ここで、各ノードNnには必ずしも固有のグローバルIPアドレスが割り当てられているとは限らず、ローカルIPアドレスしか割り当てられていない場合もある。この場合、当該ノードNnがネットワーク8に接続するために公知のNAT(Network Address Translation)という技術が用いられる。このようなNATにおいては、NAT対応ルータが、ローカルIPアドレスとグローバルIPアドレスを相互に変換することにより、ローカルIPアドレスしか割り当てられていないノードNnから、透過的にネットワーク8に接続できるようになっている。しかし、このようなNATにおいては、NAT対応ルータの外側(つまり、WAN(Wide Area Network)側のネットワーク)からNAT対応ルータ内側(つまり、LAN(Local Area Network)側のネットワーク)のノードNnにダイレクトに接続できない、つまり、NAT対応ルータの外側のノードNnからNAT対応ルータ内側のノードNnにセッションを開始できないという問題がある。この問題を解決する通信方式として、UPnP(Universal Plug and Play)」や「UDP(User Datagram Protocol ) hole punching」などのNAT越えの技術があるが、各候補に関する接続先候補情報に含まれるNAT越え属性は、ローカルIPアドレスしか割り当てられていないノードNn(再接続先の候補となるべきノードNn)に対するNAT越えの技術を示している。
また、下流接続本数は、再接続先の候補となるべきノードNnの下流に直接接続されている下流ノードNnの数を示している。例えば、図3の例において、ノードN2の下流接続本数は、ノードN5とノードN12の2つである。
また、階層レベル値は、再接続先の候補となるべきノードNnがトポロジーにおいてどの階層に位置するかを示している。例えば、図3の例において、最上位である放送局10から下流にいくほど階層レベル値が上がっていくようになっており、ノードN1及びノードN2の階層レベル値は「1」である。
一方、ヘッダ部における応用層ヘッダには、配信番号(放送番号)及び配信ノード数(放送ノード数)が含まれている。配信番号は、チャンクC毎に統一された番号である。従って、一つのチャンクCを構成する複数の接続先候補パケットPには同じ配信番号が付与される。また、配信ノード数は、今回の配信番号で放送された接続先候補パケットPに含まれる接続先候補情報の中から何個分の再接続先の候補を抽出するかを示している。
上記のように放送された接続先候補パケットPは、当該システムSにおける上流から下流に向かって順次転送されていくことになるが、下流接続本数に余力のある下流接続可能ノードNnにおいて所定時間だけ蓄積(保持)される。
図5は、接続先候補パケットPが下流接続可能ノードN14において所定時間蓄積される様子を示す図である。
図5の例では、放送局10から順次放送された接続先候補パケットP(No.1〜No.6)が下流接続可能ノードN14において蓄積されている。この蓄積期間中に、図5に示すように、新たなノードN15が直属下流ノードとして接続してきた場合に、下流接続可能ノードN14は、先に蓄積していた接続先候補パケットPを当該下流ノードN15に送信することになる。これにより、新たにトポロジーに参加したノードNn、或いは同一トポロジー内で接続先を変更したノードNnに対してもそれ以前に放送された接続先候補パケットPを直ちに送信することができる。
そして、接続先候補パケットPを受信したノードNnは、当該接続先候補パケットPに含まれる接続先候補情報に示される再接続先の候補となるべきノードNnのうち、自己の属性情報に適合するノードNnを自己の再接続先の候補として特定し、そのノードNnに候補に関する接続先候補情報(少なくともネットワークアドレス情報)を記憶(接続候補管理テーブル(後述)に登録)する。なお、接続先候補情報に示される再接続先の候補となるべきノードNnが、自己の属性情報に適合するか否かの判断の詳細については後述する。
ところで、各ノードNnは、自律的再接続事象の発生を契機として現在自己が接続している上流ノードNn又は放送局10との間の当該接続を解除し新たに別の上流ノードNnに再接続する場合には、上記接続先候補情報が記憶されているノードNnのうち、一つのノード(つまり、新たな上流ノード)Nnを再接続先として選定し再接続処理を行って当該新たな上流ノードNnに再接続することになる。
こうして再接続したノードNn(同一トポロジー内で接続先を変更したノードNn)、或いは新たにトポロジーに参加したノードNnは、当該トポロジーへの参加報告(新規の参加の報告、又は再接続による参加の報告)を示す参加報告メッセージを接続先紹介サーバ20に対して送信(参加報告)することになるが、当該参加報告メッセージの接続先紹介サーバ20への送信は、特定条件に合致するノード(以下、これを「代表ノード」という)Nnが代表して行うようにすることが望ましい。即ち、参加報告を通知したいノードNnは、自己(自ノード)が直接接続している上流ノードNnに対して参加報告メッセージを送信し、当該参加報告メッセージを受信した上流ノードNnが参加報告メッセージをさらに上流の上流ノードNnへ中継(転送)する。そして、特定条件に合致する、例えば所定値(例えば10)の倍数の階層に位置する代表ノードNnが参加報告メッセージを受信するまで当該中継を繰り返し、代表ノードNnが参加報告メッセージを受信したときにこれを蓄積し次の報告時間が到来するまで待ってから当該参加報告メッセージを接続先紹介サーバ20に送信する。
同様に、上記トポロジーから脱退するノードNnが、当該トポロジーからの脱退報告を示す脱退報告メッセージを接続先紹介サーバ20に対して送信(脱退報告の通知)する場合にも、当該脱退報告メッセージの接続先紹介サーバ20への送信は、特定条件に合致する代表ノードNnが代表して行うようにすることが望ましい。
なお、参加報告メッセージには、自己のネットワークアドレス情報、自己のNAT越え属性、及び接続した上流ノードNnのネットワークアドレス情報)等の情報が含まれる。
このように参加又は脱退報告メッセージを代表ノードNnにより一つに取り纏めて接続先紹介サーバ20に送信することで、接続先紹介サーバ20に対する通信量を削減することができる。
なお、各ノードNnにおいて自己の生死(例えば、電源オン又はオフ)状態を示す生死報告メッセージを定期的に接続先紹介サーバ20へ送信している場合には、当該生死報告メッセージについても参加又は脱退報告メッセージと同様に代表ノードNnが代表して行うように構成しても良い。
また、再接続によりノードNnから送信された例えば参加報告メッセージを受信した接続先紹介サーバ20は、当該参加報告メッセージの受信を契機として、当該再接続したノードNnの属性情報の変更(変化)の有無を検知することができる。仮に、ノードNnの属性情報が変更されていた(変更有)場合には、接続先紹介サーバ20は、属性情報が変更されたことを任意のノードNnへ周知させるために、属性情報が変更されたノードNnのネットワークアドレス情報及び変更後の属性情報を含む更新情報が格納されたノード属性更新パケットを生成、これを放送局10に送信し、放送局10は当該ノード属性更新パケットをトポロジー上で放送することになる。
図6は、ノード属性更新パケットPAが上流から下流に向けて放送される様子を示す図である。
こうして、ノード属性更新パケットPAを受信したノードNnでは、自己の再接続候補管理テーブル内に該当するノードNnが登録されているか否かを検査し、登録されている場合には該当するノードNnの属性情報を、ノード属性更新パケットPAを含まれる属性情報に置き換える。これにより、各ノードNnが記憶(キャッシュ)している上流ノードNnの候補の属性情報の変更は、比較的短い遅延時間の中で補正することが可能となる。
1−2.放送局10の構成等
次に、図7を参照して、放送局10の構成及び機能について説明する。
図7は、放送局10の概要構成例を示す図である。
放送局10は、図7に示すように、主電源101、主記憶装置102、ハードディスク装置103、CPU104、ネットワークインタフェース105、周辺機器制御チップ106、ビデオチップ107、音源チップ108、キーボード109、マウス110、ディスプレイ111、及び内蔵スピーカ112等を備えて構成されている。また、主電源101、主記憶装置102、ハードディスク装置103、CPU104、ネットワークインタフェース105、周辺機器制御チップ106、ビデオチップ107、及び音源チップ108は、システムバス113を介して相互に接続されている。また、放送局10は、ルータ114を介してネットワーク8に接続される。
主記憶装置102は、RAM及びROM等を備えて構成されており、オペレーティングシステム、ストリーム制御プログラム、画面制御プログラム、トポロジー制御プログラム、及びデコーダ(プログラム)等が記憶されている。また、主記憶装置102は、ノード管理テーブルを記憶しており、該ノード管理テーブルには、放送局10に接続された下流ノードNnの情報(例えば、IPアドレス及びポート番号等)が登録される。また、主記憶装置102は、バッファメモリ(例えば、リングバッファ)を有する。
また、ハードディスク装置103には、放送用コンテンツデータ及びチャンクCが記録されている。
CPU104は、主記憶装置102に記憶された各種プログラムにしたがって(つまり、プログラムの実行により)、例えばハードディスク装置103に記録されたコンテンツデータをパケット化し、ノード管理テーブルに登録された下流ノードNnに対して放送(ストリーム配信)する放送処理を行う。また、CPU104は、接続先紹介サーバ20から例えば定期的に送信されてきた、接続先候補情報を含むチャンクC及び当該接続先候補情報の放送指令を示す放送指令メッセージ(放送指令情報)の受信処理、及び当該チャンクCの主記憶装置102への記憶処理を行う。
そして、CPU104は、例えば定期的に上記記憶されたチャンクCを読み出し、これに含まれる接続先候補情報を複数に分割し、分割した各接続先候補情報を含む接続先候補パケットPをノード管理テーブルに登録された下流ノードNnに対して放送する放送処理を行うようになっている。
ここで、一つの接続先候補パケットPにおける再接続先の候補となるべきノードNnの数は任意に設定可能である。例えば、一つの接続先候補パケットPにおける再接続先の候補となるべきノードNnの数が3個に設定されており、一つのチャンクCにおける再接続先の候補となるべきノードNnの数が24個であるとすると、図3に示すように、接続先候補情報は8つに分割され、各接続先候補パケットP(No.1〜No.8)で放送されることになる。
更に、CPU104は、接続先紹介サーバ20から送信されてきたノード属性更新パケットPAの受信処理、及び当該ノード属性更新パケットPAを上記下流ノードNnに対して放送する放送処理を行うようになっている。
なお、このような放送局10として、専用の放送サーバの他、何れかのノードNnが適用されても良い。
1−3.接続先紹介サーバ20の構成等
次に、図8を参照して、接続先紹介サーバ20の構成及び機能について説明する。
図8は、接続先紹介サーバ20の概要構成例を示す図である。
接続先紹介サーバ20は、図8に示すように、主電源201、主記憶装置202、ハードディスク装置203、接続先候補情報生成手段、接続先候補情報送信手段、報告情報受信手段、及び更新手段の一例としてのCPU204、ネットワークインタフェース205、周辺機器制御チップ206、ビデオチップ207、キーボード208、マウス209、及びディスプレイ210等を備えて構成されている。また、主電源201、主記憶装置202、ハードディスク装置203、CPU204、ネットワークインタフェース205、周辺機器制御チップ206、及びビデオチップ207は、システムバス211を介して相互に接続されている。また、接続先紹介サーバ20は、ルータ212を介してネットワーク8に接続される。
主記憶装置202は、RAM及びROM等を備えて構成されており、オペレーティングシステム、放送局管理プログラム、トポロジー管理プログラム、接続先紹介プログラム、及び運用管理プログラム等のサーバ処理プログラムが記憶されている。
また、ハードディスク装置203には、放送局管理データベース及びトポロジーデータベースが構築されている。放送局管理データベースには、各放送局10の所在情報(例えば、IPアドレス及びポート番号等)が放送チャンネル情報(例えばチャンネル番号)に対応付けられて登録される。また、トポロジーデータベースには、トポロジー管理情報(接続態様を示す情報の一例)が登録されている。かかるトポロジー管理情報は、放送チャンネル毎に存在し、放送チャンル情報に対応付けられている。そして、トポロジー管理情報には、トポロジーに参加している各ノードNnのネットワークアドレス情報(例えばIPアドレス及びポート番号)、NAT越え属性、下流接続本数、現在接続されている下流ノードを示す情報(例えば、ノードID)、下流ノードの接続許容数(例えば、2)、転送能力、及び階層レベル値等の情報が含まれている。ここで、転送能力とは、例えば、ノードNnのCPUの処理速度(GHz)やネットワーク8における有効帯域(例えば、データ転送速度(bps))のことをいう。
CPU204は、主記憶装置202に記憶された各種プログラムにしたがって、例えば新たにトポロジーへ参加希望するノードNnからの接続先紹介要求に応じて上記トポロジー管理情報から下流接続可能ノードNnを検索し、検索された1以上の上流ノードの候補を接続先として紹介する紹介処理を行う。
また、CPU204は、例えば定期的に、トポロジー管理情報に基づいて最新の下流接続可能ノードNnを再接続先の候補となるべきノードNnとして複数個抽出して、上述した接続先候補情報を生成し、これを含むチャンクC、及び当該接続先候補情報の放送指令を示す放送指令メッセージを放送局10に送信する送信処理を行うようになっている。一つのチャンクCに含める再接続先の候補となるべきノードNnの数は任意に設定可能である。なお、最新の下流接続可能ノードNnが、一つのチャンクCに含めるノードNnの数よりも多い場合には、例えば転送能力がより高いノードNnや下流接続本数がより少ないノードNn等が優先されて再接続先の候補となるべきノードNnとして特定される。
また、ノードNnからの参加報告メッセージ、脱退報告メッセージ、又は生死報告メッセージが受信された場合、CPU204は、当該メッセージに基づいてトポロジー管理情報を更新する更新処理を行うようになっている。
また、上述したように、CPU204は、再接続したノードNnの属性情報の変更(例えば、下流接続本数や階層レベル値の変更)の有無を検知する検知処理を行う。そして、当該ノードNnの属性情報が変更されていた場合、CPU204は、属性情報が変更されたノードNnのネットワークアドレス情報及び変更後の属性情報を含む更新情報が格納されたノード属性更新パケットPAを生成、これを放送局10に送信する送信処理を行うようになっている。
1−4.ノードNnの構成等
次に、図9を参照して、ノードNnの構成及び機能について説明する。
図9は、ノードNnの概要構成例を示す図である。
ノードNnは、図9に示すように、主電源301a、補助電源301b、再接続先候補記憶手段、接続先候補情報蓄積手段及び報告情報蓄積手段の一例としての主記憶装置302、ハードディスク装置303、接続先候補情報受信手段、再接続先候補特定手段、接続処理手段、接続先候補情報転送手段、許容数判別手段、更新情報受信手段、属性情報更新手段、報告情報受信手段、及び報告情報送信手段の一例としてのCPU304、ネットワークインタフェース305、周辺機器制御チップ306、ビデオチップ307、音源チップ308、キーボード309、マウス310、ディスプレイ311、及び内蔵スピーカ312等を備えて構成されている。また、補助電源301b、主記憶装置302、ハードディスク装置303、CPU304、ネットワークインタフェース305、周辺機器制御チップ306、ビデオチップ307、及び音源チップ308は、システムバス313を介して相互に接続されている。また、ノードNnは、ルータ314を介してネットワーク8に接続される。
なお、ノードNnとしては、PC、STB(Set Top Box)、或いは、TV受信機等を適用可能である。
主記憶装置302は、RAM及びROM等を備えて構成されており、オペレーティングシステム、画面制御プログラム、ストリーム制御プログラム、トポロジー制御プログラム、及びデコーダ等のノード処理プログラムが記憶されている。
また、主記憶装置302には、受信したコンテンツデータを一時的に蓄積するためのバッファメモリ(例えば、リングバッファ)を有する。また、主記憶装置302は、ノード管理テーブル及び接続候補管理テーブルを記憶している。ノード管理テーブルには、自ノードに接続されている下流ノードの情報(IPアドレス及びポート番号等)が登録される。また、接続候補管理テーブルには、接続先候補パケットPに含まれる接続先候補情報から、後述する再接続特定処理により特定された再接続先の候補に関する接続先候補情報等が登録される。
図10は、接続候補管理テーブルに登録された接続先候補情報の一例を示す図である。
図10に示す例では、接続候補管理テーブルには、再接続特定処理により特定された再接続の候補毎に、グローバルIPアドレス、ローカルIPアドレス、NAT越え属性、下流接続本数、及び階層レベル値、更にはこれらの情報のキャッシュ時刻としての登録年月日時刻(以下、単に、「登録時刻」という)が対応付けられて登録されている。この登録時刻を対応付けて登録することで登録された情報の新しさを判断することができる。
なお、図10に示すNAT越え属性において、「TCP Client」は、該当する再接続の候補ノードが接続されているルータがUPnPに対応していない、かつUDP Hole Punchingが実施不可能な場合に付与されるNAT越え属性である。このようなノードを上流ノードとして接続する場合には、設置済みの中継サーバなどを使って上流ノードから自ノードの待機ポートに対してTCP接続をするかたちで接続を確立させる。また、図10に示すNAT越え属性において「UPnP+TCP」は、NAT越えの技術としてUPnPを採用しており、且つネットワーク8に接続するためのNAT対応ルータがTCPに基づくパケットのみを中継する機能を有していることを示している。一方、「UPnP+UDP」は、NAT越えの技術としてUPnPを採用しており、且つネットワーク8に接続するためのNAT対応ルータがUDPに基づくパケットのみを中継する機能を有していることを示している。
また、主記憶装置30には、自ノードのNAT越え属性、下流接続本数、及び階層レベル値(例えば、接続先紹介サーバ20又は上流ノードから取得)を含む属性情報が記憶されている。
なお、代表ノードNnの主記憶装置302には、下流ノードNnから受信した参加報告メッセージ、脱退報告メッセージ、又は生死報告メッセージを一時的に蓄積するためのメッセージ取り纏め用記憶領域が確保される。また、下流接続本数に余力のある下流接続可能ノードNnの主記憶装置302には、上流ノードNnから受信した接続先候補パケットPを一時的に蓄積するための接続先候補パケット蓄積用記憶領域が確保される。
CPU304は、主記憶装置302に記憶された各種プログラムにしたがって、ツリー型放送システムS(ある放送チャンネルに係るトポロジー)に参加するための参加処理を実行し、参加後に放送局10又は上流ノードNnから放送されネットワークインタフェース305を介して受信されたコンテンツデータのパケット(コンテンツストリーム)をバッファリングさせつつ再生処理を行う。
ここで、上記参加処理では、接続先紹介サーバ20に対して接続先紹介要求がなされ、接続先紹介サーバ20から紹介された上流ノードNnに接続(セッション確立)してストリーム開始要求がなされる。また、上記再生処理では、受信されバッファメモリに蓄積されたコンテンツデータ(例えば、ビデオデータ及びオーディオデータ)が読み出されデコーダによりデコードされる。そして、デコードされたビデオデータ(映像情報)がビデオチップ307を通じてディスプレイ311に出力され、デコードされたオーディオデータ(音声情報)が音源チップ308を通じて内蔵スピーカ312(又は図示しない外部スピーカ)から出力される。
また、自ノードに下流ノードNnが接続されている場合、CPU304は、バッファメモリに蓄積されたコンテンツデータの各パケットを下流ノードNnに転送(コンテンツストリームの中継)する転送処理を行う。
また、CPU304は、放送局10又は上流ノードNnから放送されネットワークインタフェース305を介して受信された接続先候補パケットPに含まれる接続先候補情報に示される複数のノードNnうち、自ノードの属性情報に適合するノードNnを自ノードの再接続先の候補として特定する再接続特定処理を行い、特定したノードNnに関する接続先候補情報を接続候補管理テーブルに登録する。
例えば、CPU304は、接続先候補パケットPにおける応用層ヘッダにおける配信ノード数を参照し、当該配信ノード数分の再接続先の候補を当該接続先候補情報から抽出する。このとき、CPU304は、属性情報の適合性を検査し、自ノードの属性情報に適合しないノードNnを、抽出した再接続先の候補から除外する。
例えば、CPU304は、自ノードのNAT越え属性と接続先候補情報に示されるノードNnのNAT越え属性に基づいて(比較して)、接続先候補情報に示されるノードNnのうち、自己のNAT越え属性と適合しないノードNnを、自ノードの属性情報に適合しない再接続先の候補として除外する。これは、NAT越えの適合性が合わない限りピアツーピアのコネクションを生成する(接続を確立する)ことが困難という問題が生じるからである。
また、例えば、CPU304は、自ノードの階層レベル値と接続先候補情報に示されるノードNnの階層レベル値に基づいて(比較して)、接続先候補情報に示されるノードNnのうち、自ノードより下位階層に位置するノードNn、つまり、階層レベル値が自ノードより大きいノードNnを、自己の属性情報に適合しない再接続先の候補として除外する。これは、自ノードの階層レベル値よりも大きいノードNnを特定可能対象とした場合、自ノードから下流へたどれる下流ノードNnを特定する可能性があり、仮にこのような下流ノードNnを上流ノードNnとみなして接続した場合には配信経路が循環するという問題が生じるからである。
なお、NAT越え属性の適合性と階層レベル値の適合性の何れか一方で検査するように構成しても構わないが、NAT越え属性の適合性と階層レベル値の適合性の双方を満たしているノードNnが再接続の候補として特定されることが望ましい。また、NAT越え属性や階層レベル値の他の属性情報に基づき適合性を検査するように構成しても良い。
ところで、接続先紹介サーバ20により抽出された再接続先の候補となるべきノードNnの接続先候補情報は、当該トポロジーに参加した全てのノードNnに対して等しく配信されるが、接続先候補情報に示される特定の再接続先の候補のみが多くのノードNnにより特定されると、再接続が同時多発的に発生した場合に、上記特定されたノードNnに対して接続要求が集中するという事態が生じる。このような事態を回避するため、各ノードNnが接続先候補パケットPに含まれる接続先候補情報から再接続先の候補を特定する際には、トポロジー内での再接続の候補が散逸化されることが望ましい。例えば、一つの接続先候補パケットPから特定される再接続先の候補数を抑制(上述した配信ノード数により抑制)すると共に、この再接続特定処理に対して蓋然性(ランダムさ)を導入するような処理方法を導入することが具体例としてあげられる。
図11は、トポロジー内での再接続の候補が垂直方向に散逸化するように特定される例を示す図である。接続先候補パケットPを受信したノードNnは、上述したように階層レベル値の適合性を検査する場合、自己の階層レベル値以上の再接続先の候補のみを特定することになるので、当該特定される再接続先の候補は、図11における「再接続の候補のトポロジーにおける位置関係」に示すように、当該トポロジーの垂直方向において偏らなくなる。
ところで、受信された接続先候補パケットPはバッファメモリに一時的に蓄積されるが、自ノードに下流ノードNnが接続されている場合、CPU304は、バッファメモリに蓄積された接続先候補パケットPを下流ノードNnに転送する転送処理を行う。このとき、CPU304は、現在自ノードに接続されている下流ノードNnの数が、自ノードの接続許容数に達しているか否かを判別する判別処理を行う。CPU304は、接続許容数に達していないと判別した場合には、その後に下流に直接接続されるノードNnに対して接続先候補パケットPを転送するために、当該接続先候補パケットPを上記バッファメモリから主記憶装置302における接続先候補パケット蓄積用記憶領域に移して所定時間蓄積させる。そして、この蓄積期間中に、図5に示すように、新たなノードNnが下流ノードとして接続してきた場合には、CPU304は、上記蓄積していた接続先候補パケットPを当該下流ノードNnに転送する転送処理を行う。これにより、新たにトポロジーに参加したノードNnも即座に接続先候補情報を得ることが可能となる。
そして、CPU304は、自律的再接続事象の発生を契機として現在自己が接続している上流ノードNn又は放送局10との間の当該接続を解除し新たに別の上流ノードNnに再接続する場合には、上記接続候補管理テーブルに登録されているノードNnのうち、一つのノードNnを再接続先として選定(例えば、ランダムに選定、或いは、登録時刻が現在に最も近いノードNnを優先して選定)し、当該選定した再接続先となる上流ノードNnのネットワークアドレス情報に基づき当該上流ノードNnに接続するための再接続処理を行う。かかる再接続処理は、例えば、図2に示す(3)〜(6)の手順で行われる。
また、CPU304は、定期的な間隔で上記接続候補管理テーブルにおける登録時刻を参照して、過去一定期間より前の古い(陳腐化した)接続先候補情報を削除する削除処理を行う。これにより、接続候補管理テーブルには常に新鮮な接続先候補情報のみが保持されるようになり、ノードNnが再接続処理の一環で接続候補管理テーブルにおける接続先候補情報を利用する局面において接続失敗となる確率を低く抑えることができる。
また、CPU304は、自ノードが接続先紹介サーバ20に代表して報告情報を送信する代表ノードNnであるか否かを判別する判別処理を行う。当該判別は、例えば、自ノードが特定条件に合致するか否か(例えば自ノードが所定値(例えば10)の倍数の階層に位置するか否か)により行われる。自ノードが代表ノードNnである場合において、自ノードに直接接続されている下流ノードNnからの参加(再接続による参加も含む)報告メッセージ、脱退報告メッセージ、又は生死報告メッセージが受信されたとき、CPU304は、当該報告メッセージ(参加報告メッセージ、脱退報告メッセージ、又は生死報告メッセージ)を主記憶装置302におけるメッセージ取り纏め用記憶領域に一時的に蓄積させ、所定期間毎に当該蓄積された報告メッセージを接続先紹介サーバ20に送信する送信処理を行う。このとき、自ノードに係る上記報告メッセージも接続先紹介サーバ20に送信される。
一方、自ノードが代表ノードNnでない場合において、自ノードに直接接続されている下流ノードNnからの参加報告メッセージ、脱退報告メッセージ、又は生死報告メッセージが受信されたとき、当該受信された上記報告メッセージを自ノードが直接接続している上位ノードNnに送信(転送)する送信処理を行う。このとき、自ノードに係る上記報告メッセージも上位ノードNnに送信される。
また、放送局10又は上流ノードNnから放送されネットワークインタフェース305を介して受信されたノード属性更新パケットPAにおける更新情報に含まれる変更後の属性情報に基づいて、接続候補管理テーブルに登録されている属性情報を更新する更新処理を行う。例えば、更新情報に変更後の下流接続本数又は階層レベル値が含まれている場合には、接続候補管理テーブルに登録されている下流接続本数又は階層レベル値が、上記更新情報に含まれる下流接続本数又は階層レベル値に置き換えられる。
2.ツリー型放送システムSの動作
次に、本実施形態に係るツリー型放送システムSの動作について説明する。
(ノードNnの処理)
先ず、図12乃至図16を参照して、ノードNnにおけるCPU304の処理について説明する。
図12乃至図16は、ノードNnにおけるCPU304により実行される処理を示すフローチャートである。
図12の処理は、例えば主電源301a及び補助電源301bのオンによりノードNnが起動することにより開始される。当該処理が開始されると、ステップS1では、ノードNnにおける各種プログラムが初期化され、タイムアウト事象を契機に実行される種々の周期処理向けのタイマが起動される。
ステップS2では、キーボード309又はマウス310を介してユーザからの参加要求があったか否か、又は上述した自律的再接続事象が発生したか否かが判別される。そして、ユーザからの参加要求があった場合、又は自律的再接続事象が発生した場合には(ステップS2:YES)、ステップS3に進み、ユーザからの参加要求及び自律的再接続事象の発生がない場合には(ステップS2:NO)、ステップS13に進む。
ステップS3では、上述した接続候補管理テーブルに有効なノードNnの接続先候補情報が登録されているか否かが判別される。そして、有効なノードNnの接続先候補情報が登録されている場合には(ステップS3:YES)、ステップS4に進み、有効なノードNnの接続先候補情報が登録されていない場合には(ステップS3:NO)、ステップS12に進む。
ステップS4では、接続候補管理テーブルから一つの上流ノードNnが再接続先として例えばランダムに選定され、当該上流ノードNnのネットワークアドレス情報が取得される。
ステップS5では、選定された上流ノードNnに接続するための接続処理(新規接続処理又は再接続処理)が開始され、先ず、当該上流ノードNnに対してNAT越え処理(ルータのWAN側のネットワークからLAN側ネットワークへパケットを通過させるための処理)が行われる。
ステップS6では、上記選定された上流ノードNnに対して接続要求メッセージが送信される。この接続要求メッセージに対して、後述するステップS26で上流ノードNnからの接続拒否応答メッセージが受信された場合に、接続候補管理テーブル利用タイマT2が起動中であれば、再度上記ステップS3〜S6の処理が繰り返され、接続候補管理テーブルに登録されている別の上流ノードNnに接続要求メッセージが送信されることになる。
ステップS7では、接続候補管理テーブル利用タイマT2が起動中であるか否かが判別される。そして、接続候補管理テーブル利用タイマT2が起動中である場合には(ステップS7:YES)、ステップS9に進み、接続候補管理テーブル利用タイマT2が起動中でない場合には(ステップS7:NO)、ステップS8に進んで当該タイマT2が起動された後、ステップS9に進む。なお、この接続候補管理テーブル利用タイマT2は、接続候補管理テーブルを用いた接続処理に対する上限時間を設けるためのものである。
ステップS9では、ノードNnの主電源301aがオフになったか否かが判別される。そして、主電源301aがオフになった場合には(ステップS9:YES)、ステップS10に進み、主電源301aがオフになっていない場合には(ステップS9:NO)、ステップS2に戻る。
ステップS10では、主電源301aがオフ状態になったことを契機として各種プログラムが終了され、その後、種々の周期処理向けのタイマが停止される。そして、補助電源301bがオフにされ(ステップS11)、当該処理が終了する。
ステップS12では、接続先紹介サーバ20に対して上流ノード紹介要求メッセージが送信される。
ステップS13では、接続候補管理テーブル利用タイマT2のタイムアウト事象が発生したか否かが判別される。そして、上記タイマT2のタイムアウト事象が発生した場合には(ステップS13:YES)、ステップS14に進み、上記タイマT2のタイムアウト事象が発生していない場合には(ステップS14:NO)、ステップS16に進む。
ステップS14では、接続候補管理テーブル利用タイマT2が停止される。
ステップS15では、接続先紹介サーバ20に対して上流ノード紹介要求メッセージが送信される。つまり、上流ノードNnに接続する際には、接続候補管理テーブルを優先して利用し、一定時間経過した後(タイマT2のタイムアウト事象発生後)は接続先紹介サーバ20を利用する(ステップS28にて)処理手順となっている。
ステップS16では、接続先紹介サーバ20から上流ノード候補紹介メッセージが受信されたか否かが判別される。そして、上流ノード候補紹介メッセージが受信された場合には(ステップS16:YES)、ステップS17に進み、上流ノード候補紹介メッセージが受信されていない場合には(ステップS16:NO)、図13に示すステップS19に進む。かかる上流ノード候補紹介メッセージには、接続先紹介サーバ20により検索された上流ノードNn(或いは、放送局10の場合もある)のネットワークアドレス情報が含まれている。
ステップS17では、受信された上流ノード候補紹介メッセージに示される上流ノードNnに対してNAT越え処理が行われる。
ステップS18では、上流ノード候補紹介メッセージに示される上流ノードNnに対して接続要求メッセージが送信される。
次に、図13に示すステップS19では、上流ノードNnから接続許可応答メッセージが受信されたか否かが判別される。そして、接続許可応答メッセージが受信された場合には(ステップS19:YES)、ステップS20に進み、接続許可応答メッセージが受信されていない場合には(ステップS19:NO)、ステップS26に進む。
ステップS20では、接続候補管理テーブル利用タイマT2が起動中であるか否かが判別される。そして、接続候補管理テーブル利用タイマT2が起動中である場合には(ステップS20:YES)、当該タイマT2が停止され(ステップS21)、ステップS22に進み、接続候補管理テーブル利用タイマT2が起動中でない場合には(ステップS20:NO)、ステップS22に進む。
ステップS22では、上記接続許可応答メッセージを送信した上流ノードNnに対してストリーム開始要求メッセージが送信される。こうして、自ノードはトポロジーに参加することになる。
ステップS23では、自ノードがメッセージ取り纏めを行う代表ノードであるか否かが判別される。例えば、上述したように、自ノードの階層レベル値が参照され、自ノードが所定値(例えば10)の倍数の階層に位置するか否かが判別される。そして、自ノードが代表ノードである場合には(ステップS23:YES)、ステップS24に進み、自ノードが代表ノードでない場合には(ステップS23:NO)、ステップS25に進む。
ステップS24では、自ノードのトポロジーへの参加報告メッセージがメッセージ取り纏め用記憶領域に格納される。
ステップS25では、自ノードが接続している上流ノードNnに対して自ノードのトポロジーへの参加報告メッセージが送信される。
ステップS26では、上流ノードNnから接続拒否応答メッセージが受信されたか否かが判別される。そして、接続拒否応答メッセージが受信された場合には(ステップS26:YES)、ステップS27に進み、接続拒否応答メッセージが受信されていない場合には(ステップS26:NO)、ステップS29に進む。
ステップS27では、接続候補管理テーブル利用タイマT2が起動中であるか否かが判別される。そして、接続候補管理テーブル利用タイマT2が起動中である場合には(ステップS27:YES)、図12に示すステップS3に戻り、接続候補管理テーブル利用タイマT2が起動中でない場合には(ステップS27:NO)、ステップS28に進む。
ステップS28では、接続先紹介サーバ20に対して上流ノード紹介要求メッセージが送信される。
ステップS29では、他のノードNnから接続要求メッセージが受信されたか否かが判別される。そして、接続要求メッセージが受信された場合には(ステップS29:YES)、ステップS30に進み、接続要求メッセージが受信されていない場合には(ステップS29:NO)、図14に示すステップS36に進む。
ステップS30では、自ノードに接続されている下流ノードNnの数が、自ノードの接続許容数に達しているか否かが判別される。そして、下流ノードNnの数が自ノードの接続許容数に達している場合には(ステップS30:YES)、ステップS31に進み、下流ノードNnの数が自ノードの接続許容数に達していない場合には(ステップS30:NO)、ステップS32に進む。
ステップS31では、上記接続要求メッセージを送信したノードNnに対して接続拒否応答メッセージが送信される。
ステップS32では、上記接続要求メッセージを送信したノードNnの情報がノード管理テーブルに追加登録される。
ステップS33では、上記接続要求メッセージを送信したノードNnに対して接続許可応答メッセージが送信される。こうして、当該接続要求メッセージを送信したノードNnは、自ノードに接続される新たな下流ノードNnとなる。
ステップS34では、上述した接続先候補パケット蓄積用記憶領域に接続先候補パケットPが蓄積されているか否かが判別される。そして、接続先候補パケットPが蓄積されている場合には(ステップS34:YES)、ステップS35に進み、接続先候補パケットPが蓄積されていない場合には(ステップS34:NO)、図12に示すステップS9に戻る。
ステップS35では、上記蓄積されている全ての接続先候補パケットPが上記新たに接続された下流ノードNnに対して送信される。
次に、図14に示すステップS36では、下流ノードNnからストリーム開始要求メッセージが受信されたか否かが判別される。そして、ストリーム開始要求メッセージが受信された場合には(ステップS36:YES)、ステップS37に進み、ストリーム開始要求メッセージが受信されていない場合には(ステップS36:NO)、ステップS38に進む。
ステップS37では、ストリーム開始要求メッセージを送信した下流ノードNnに対してコンテンツデータのパケットの転送(中継)が開始(ストリーミング開始)される。
ステップS38では、上流ノードNnからコンテンツデータのパケットが受信されたか否かが判別される。そして、コンテンツデータのパケットが受信された場合には(ステップS38:YES)、ステップS39に進み、コンテンツデータのパケットが受信されていない場合には(ステップS38:NO)、ステップS43に進む。
ステップS39では、例えば主記憶装置302で管理されている受信品質情報が更新される。例えば、CPU304は、受信品質情報として、過去一分間の平均パケットレート、平均パケット損失率、パケット到着ゆらぎ等を計算し、過去に計算され記憶された受信品質情報を更新する。
ステップS40では、自ノードに下流ノードNnが接続されているか否かが判別される。そして、自ノードに下流ノードNnが接続されている場合には(ステップS40:YES)、当該下流ノードNnに対して上記受信されたコンテンツデータのパケットが転送(中継)され(ステップS41)、ステップS42に進む一方、自ノードに下流ノードNnが接続されていない場合には(ステップS40:NO)、ステップS42に進む。
ステップS42では、コンテンツデータの再生が行われる。つまり、受信されバッファメモリに蓄積されたコンテンツデータが読み出され、ディスプレイ311及び内蔵スピーカ312等を介して再生出力される。
ステップS43では、下流ノードNnからストリーム停止要求メッセージが受信されたか否かが判別される。そして、ストリーム停止要求メッセージが受信された場合には(ステップS43:YES)、ステップS44に進み、ストリーム停止要求メッセージが受信されていない場合には(ステップS43:NO)、ステップS45に進む。
ステップS44では、下流ノードNnに対するコンテンツデータのパケットの転送が停止(ストリーミング停止)される。
ステップS45では、下流ノードNnから接続解除要求メッセージが受信されたか否かが判別される。そして、接続解除要求メッセージが受信された場合には(ステップS45:YES)、ステップS46に進み、接続解除要求メッセージが受信されていない場合には(ステップS45:NO)、図15に示すステップS47に進む。
ステップS46では、接続解除要求メッセージを送信した下流ノードNnの情報がノード管理テーブルから削除される。
次に、図15に示すステップS47では、キーボード309又はマウス310を介してユーザからの脱退要求があったか否かが判別される。そして、ユーザからの脱退要求があった場合には(ステップS47:YES)、ステップS48に進み、ユーザからの脱退要求がない場合には(ステップS47:NO)、ステップS53に進む。
ステップS48では、上流ノードNnに対してストリーム停止要求メッセージが送信される。
ステップS49では、上流ノードNnに対して接続解除要求メッセージが送信される。こうして、自ノードはトポロジーから脱退することになる。
ステップS50では、自ノードがメッセージ取り纏めを行う代表ノードであるか否かが判別される。そして、自ノードが代表ノードである場合には(ステップS50:YES)、ステップS51に進み、自ノードが代表ノードでない場合には(ステップS50:NO)、ステップS52に進む。
ステップS51では、自ノードのトポロジーからの脱退報告メッセージがメッセージ取り纏め用記憶領域に格納される。
ステップS52では、自ノードが接続している上流ノードNnに対して自ノードのトポロジーからの脱退報告メッセージが送信される。
ステップS53では、下流ノードNnから参加報告メッセージ又は脱退報告メッセージが受信されたか否かが判別される。そして、参加報告メッセージ又は脱退報告メッセージが受信された場合には(ステップS53:YES)、ステップS54に進み、参加報告メッセージ及び脱退報告メッセージが受信されていない場合には(ステップS53:NO)、ステップS57に進む。
ステップS54では、自ノードがメッセージ取り纏めを行う代表ノードであるか否かが判別される。そして、自ノードが代表ノードである場合には(ステップS54:YES)、ステップS55に進み、自ノードが代表ノードでない場合には(ステップS54:NO)、ステップS56に進む。
ステップS55では、受信された参加報告メッセージ又は脱退報告メッセージがメッセージ取り纏め用記憶領域に格納される。
ステップS56では、自ノードが接続している上流ノードNnに対して、受信された参加報告メッセージ又は脱退報告メッセージが転送される。
ステップS57では、自ノードがメッセージ取り纏めを行う代表ノードであるか否かが判別される。そして、自ノードが代表ノードである場合には(ステップS57:YES)、ステップS58に進み、自ノードが代表ノードでない場合には(ステップS57:NO)、図16に示すステップS60に進む。
ステップS58では、メッセージ取り纏め用記憶領域に格納されたメッセージの報告契機(報告時間)か否かが判別される。そして、メッセージの報告契機である場合には(ステップS58:YES)、ステップS59に進み、メッセージの報告契機でない場合には(ステップS58:NO)、図12に示すステップS9に戻る。
ステップS59では、メッセージ取り纏め用記憶領域に格納された全てのメッセージが接続先紹介サーバ20に対して送信される。メッセージ取り纏め用記憶領域に格納されたメッセージの送信が例えば1分に1回行われるように上記報告契機が設定される。
次に、図16に示すステップS60では、上述した受信品質情報に基づき、ストリーム中継品質が閾値を下回ったか否かが判別される。そして、ストリーム中継品質が閾値を下回ったことが検知された場合には(ステップS60:YES)、ステップS61に進み、ストリーム中継品質が閾値を下回っていない場合には(ステップS60:NO)、ステップS67に進む。
ステップS61では、上流ノードNnに対してストリーム停止要求メッセージが送信される。
ステップS62では、上流ノードNnに対して接続解除要求メッセージが送信される。
ステップS63では、自ノードがメッセージ取り纏めを行う代表ノードであるか否かが判別される。そして、自ノードが代表ノードである場合には(ステップS63:YES)、ステップS64に進み、自ノードが代表ノードでない場合には(ステップS63:NO)、ステップS65に進む。
ステップS64では、自ノードのトポロジーからの脱退報告メッセージがメッセージ取り纏め用記憶領域に格納される。
ステップS65では、自ノードが接続している上流ノードNnに対して自ノードのトポロジーからの脱退報告メッセージが送信される。
ステップS66では、自律的再接続事象が生起され、自律的再接続事象フラグが1にセットされる。これにより、上記ステップS2で自律的再接続事象が発生したと判断されることになる。
ステップS67では、上流ノードNnから接続先候補パケットPが受信されたか否かが判別される。そして、接続先候補パケットPが受信された場合には(ステップS67:YES)、ステップS68に進み、接続先候補パケットPが受信されていない場合には(ステップS67:NO)、ステップS74に進む。
ステップS68では、受信された接続先候補パケットP中に接続候補管理テーブルに登録(キャッシュ)すべき接続先候補情報が含まれるか否かが判別される。例えば、上述したように、接続先候補パケットPに含まれる接続先候補情報中に自ノードの属性情報に適合するノードNnが示されている場合、登録すべき接続先候補情報が含まれると判別される。そして、接続先候補パケットP中に接続候補管理テーブルに登録(キャッシュ)すべき接続先候補情報が含まれる場合には(ステップS68:YES)、ステップS69に進み、接続先候補パケットP中に接続候補管理テーブルに登録(キャッシュ)すべき接続先候補情報が含まれない場合には(ステップS68:NO)、ステップS70に進む。
ステップS69では、自ノードの再接続先の候補が特定され、当該特定された候補に関する接続先候補情報及びその時の時刻(登録時刻)が接続候補管理テーブルに追加登録される。
ステップS70では、自ノードに下流ノードNnが接続されているか否かが判別される。そして、自ノードに下流ノードNnが接続されている場合には(ステップS70:YES)、当該下流ノードNnに対して上記受信された接続先候補パケットPが転送(中継)され(ステップS71)、ステップS72に進む一方、自ノードに下流ノードNnが接続されていない場合には(ステップS70:NO)、ステップS72に進む。
ステップS72では、自ノードに接続されている下流ノードNnの数が、自ノードの接続許容数に達しているか否かが判別される。そして、下流ノードNnの数が自ノードの接続許容数に達している場合には(ステップS72:YES)、図12に示すステップS9に戻り、下流ノードNnの数が自ノードの接続許容数に達していない(余力がある)場合には(ステップS72:NO)、ステップS73に進む。
ステップS73では、上記受信された接続先候補パケットPが接続先候補パケット蓄積用記憶領域に蓄積される。
ステップS74では、上流ノードNnからノード属性更新パケットPAが受信されたか否かが判別される。そして、ノード属性更新パケットPAが受信された場合には(ステップS74:YES)、ステップS75に進み、ノード属性更新パケットPAが受信されていない場合には(ステップS74:NO)、ステップS79に進む。
ステップS75では、受信されたノード属性更新パケットPAに更新すべき属性情報が含まれているか否かが判別される。そして、更新すべき属性情報が含まれている場合には(ステップS75:YES)、ステップS76に進み、更新すべき属性情報が含まれていない場合には(ステップS75:NO)、ステップS77に進む。
ステップS76では、ノード属性更新パケットPAにおける更新情報に含まれる変更後の属性情報に基づいて、接続候補管理テーブルに登録されている属性情報が更新される。
ステップS77では、自ノードに下流ノードNnが接続されているか否かが判別される。そして、自ノードに下流ノードNnが接続されている場合には(ステップS77:YES)、当該下流ノードNnに対して上記受信されたノード属性更新パケットPAが転送(中継)され(ステップS78)、ステップS9に戻り、自ノードに下流ノードNnが接続されていない場合には(ステップS77:NO)、図12に示すステップS9に戻る。
ステップS79では、初期化時に起動したタイマのタイムアウト事象が発生したか否かが判別される。そして、上記タイマのタイムアウト事象が発生した場合には(ステップS79:YES)、ステップS80に進み、上記タイマのタイムアウト事象が発生していない場合には(ステップS79:NO)、図12に示すステップS9に戻る。
ステップS80では、接続先候補パケット蓄積用記憶領域に蓄積されている接続先候補パケットPの蓄積時間が、所定時間を経過しているか否かが判別される。そして、蓄積時間が所定時間を経過した場合には(ステップS80:YES)、ステップS81に進み、蓄積時間が所定時間を経過していない場合には(ステップS80:NO)、ステップS82に進む。
ステップS81では、接続先候補パケット蓄積用記憶領域に蓄積されていた接続先候補情報が削除される。
ステップS82では、所定時間経過した接続先候補情報が接続候補管理テーブルに登録されているか否かが判別される。そして、接続候補管理テーブルに登録されている場合には(ステップS82:YES)、ステップS83に進み、接続候補管理テーブルに登録されていない場合には(ステップS82:NO)、図12に示すステップS9に戻る。
ステップS83では、当該所定時間経過した(つまり、古い)接続先候補情報が、接続候補管理テーブルから削除される。
(放送局10の処理)
次に、図17及び図18を参照して、放送局10におけるCPU104の処理について説明する。
図17及び図18は、放送局10におけるCPU104により実行される処理を示すフローチャートである。
図17の処理は、主電源101のオンにより放送局10が起動することにより開始される。当該処理が開始されると、ステップS101では、放送局10における各種プログラムが初期化され、タイムアウト事象を契機に実行される種々の周期処理向けのタイマが起動される。なお、当該処理の開始時には、放送局の登録要求メッセージ(当該放送局10の所在情報等を含む)が接続先紹介サーバ20に送信される。
ステップS102では、放送運営者から放送開始又は停止要求があったか否かが判別される。放送開始又は停止要求があった場合には、ステップS103に進み、放送開始又は停止要求がない場合には、ステップS106に進む。
ステップS103では、放送開始又は停止要求に応じて、コンテンツデータのパケットの生成処理が開始又は停止される。コンテンツデータのパケットの生成処理が開始されると、ハードディスク装置103に記録されたコンテンツデータに対して読み出しアクセスがなされ、システムタイマと同期が取られながら、コンテンツデータのパケットが生成され、当該パケットがバッファメモリに格納される。一方、コンテンツデータのパケットの生成処理の停止時には、上記ハードディスク装置103に記録されたコンテンツデータに対する読み出しアクセスが停止され、バッファメモリがクリアされる。
ステップS104では、放送局10の主電源101がオフになったか否かが判別される。そして、主電源101がオフになった場合には(ステップS104:YES)、ステップS105に進み、主電源101がオフになっていない場合には(ステップS104:NO)、ステップS102に戻る。
ステップS105では、主電源101がオフ状態になったことを契機として各種プログラムが終了され、その後、種々の周期処理向けのタイマが停止され、当該処理が終了する。なお、当該処理の終了時には、放送局の削除要求メッセージ(当該放送局10の所在情報等を含む)が接続先紹介サーバ20に送信される。
ステップS106では、下流ノードNnから接続要求メッセージが受信されたか否かが判別される。そして、接続要求メッセージが受信された場合には(ステップS106:YES)、ステップS107に進み、接続要求メッセージが受信されない場合には(ステップS106:NO)、ステップS109に進む。
ステップS107では、下流ノードNnの情報(例えばIPアドレス及びポート番号)がノード管理テーブルに追加登録される。
ステップS108では、下流ノードNnに対して接続許可応答メッセージが送信される。
ステップS109では、下流ノードNnから接続解除要求メッセージが受信されたか否かが判別される。そして、接続解除要求メッセージが受信された場合には(ステップS109:YES)、ステップS110に進み、接続解除要求メッセージが受信されない場合には(ステップS109:NO)、ステップS111に進む。
ステップS110では、下流ノードNnの情報(例えばIPアドレス及びポート番号)がノード管理テーブルから削除される。
ステップS111では、下流ノードNnからストリーム開始要求メッセージが受信されたか否かが判別される。そして、ストリーム開始要求メッセージが受信された場合には(ステップS111:YES)、ステップS112に進み、ストリーム開始要求メッセージが受信されない場合には(ステップS111:NO)、ステップS113に進む。
ステップS112では、下流ノードNnに対してコンテンツストリームの放送が開始(ストリーミング開始)される。
ステップS113では、下流ノードNnからストリーム停止要求メッセージが受信されたか否かが判別される。そして、ストリーム停止要求メッセージが受信された場合には(ステップS113:YES)、ステップS114に進み、ストリーム停止要求メッセージが受信されない場合には(ステップS113:NO)、図18に示すステップS115に進む。
ステップS114では、下流ノードNnに対するコンテンツストリームの放送が停止(ストリーミング停止)される。
次に、図17に示すステップS115では、接続先紹介サーバ20から接続先候補情報のチャンクC及び当該接続先候補情報の放送指令を示す放送指令メッセージが受信されたか否かが判別される。そして、接続先候補情報のチャンクC等が受信された場合には(ステップS115:YES)、ステップS116に進み、接続先候補情報のチャンクC等が受信されない場合には(ステップS115:NO)、ステップS117に進む。
ステップS116では、受信されたチャンクCが主記憶装置102の所定の記憶領域に格納される。
ステップS117では、初期化時に起動したタイマのタイムアウト事象が発生したか否かが判別される。そして、上記タイマのタイムアウト事象が発生した場合には(ステップS117:YES)、ステップS118に進み、上記タイマのタイムアウト事象が発生していない場合には(ステップS117:NO)、ステップS104に戻る。
ステップS118では、上記記憶されたチャンクCは空であるか否か、つまり、主記憶装置102の上記記憶領域にチャンクCが記憶されているか否かが判別される。そして、チャンクCは空である場合には(ステップS118:YES)、図17に示すステップS104に戻り、チャンクCは空でない場合には(ステップS118:NO)、ステップS119に進む。
ステップS119では、上記記憶されたチャンクCから接続先候補情報を含む接続先候補パケットPが生成される。
ステップS120では、生成された接続先候補パケットPが下流ノードNnに対して送信(放送)される。
ステップS121では、接続先紹介サーバ20からノード属性更新パケットPAが受信されたか否かが判別される。そして、ノード属性更新パケットPAが受信された場合には(ステップS121:YES)、ステップS122に進み、ノード属性更新パケットPAが受信されない場合には(ステップS121:NO)、図17に示すステップS104に戻る。
ステップS122では、受信されたノード属性更新パケットPAが下流ノードNnに対して送信(放送)される。
(接続先紹介サーバ20の処理)
次に、図19を参照して、接続先紹介サーバ20におけるCPU204の処理について説明する。
図19は、接続先紹介サーバ20におけるCPU204により実行される処理を示すフローチャートである。
図19の処理は、主電源201のオンにより接続先紹介サーバ20が起動することにより開始される。当該処理が開始されると、ステップS201では、接続先紹介サーバ20における各種プログラムが初期化され、タイムアウト事象を契機に実行される種々の周期処理向けのタイマが起動される。
ステップS202では、放送局10から登録要求メッセージ又は削除要求メッセージを受信したか否かが判別される。そして、登録要求メッセージ又は削除要求メッセージが受信された場合には(ステップS202:YES)、ステップS203に進み、登録要求メッセージ及び削除要求メッセージが受信されない場合には(ステップS202:NO)、ステップS207に進む。
ステップS203では、上記登録要求メッセージに含まれる所在情報等が、放送チャンネル情報に対応付けられて放送局管理データベースに登録される。又は、上記削除要求メッセージに含まれる所在情報等が放送局管理データベースから削除される。
ステップS204では、当該所在情報が登録された放送局10に対応する放送チャンネル情報がトポロジーデータベースに登録される。又は、当該放送チャンネル情報がトポロジーデータベースから削除される。
ステップS205では、接続先紹介サーバ20の主電源201がオフになったか否かが判別される。そして、主電源201がオフになった場合には(ステップS205:YES)、ステップS206に進み、主電源201がオフになっていない場合には(ステップS205:NO)、ステップS202に戻る。
ステップS206では、主電源201がオフ状態になったことを契機として各種プログラムが終了され、その後、種々の周期処理向けのタイマが停止され、当該処理が終了する。
ステップS207では、ノードNnから上流ノード紹介要求メッセージが受信されたか否かが判別される。そして、上流ノード紹介要求メッセージが受信された場合には(ステップS207:YES)、ステップS208に進み、上流ノード紹介要求メッセージが受信されない場合には(ステップS207:NO)、ステップS210に進む。
ステップ208では、トポロジーデータベースから上流ノードNnの候補が検索され、検索された1以上の上流ノードNnの候補のネットワークアドレス情報及び属性情報が取得される。
ステップS209では、上記取得された上流ノードNnの候補のネットワークアドレス情報及び属性情報を含む上流ノード候補紹介メッセージが、上流ノード紹介要求メッセージを送信したノードNnに対して返信される。
ステップS210では、ノードNnから参加報告メッセージ又は脱退報告メッセージが受信された否かが判別される。そして、参加報告メッセージ又は脱退報告メッセージが受信された場合には(ステップS210:YES)、ステップS211に進み、参加報告メッセージ及び脱退報告メッセージが受信されない場合には(ステップS210:NO)、ステップS213に進む。
ステップS211では、参加報告メッセージ又は脱退報告メッセージにしたがってトポロジーデータベースに登録されたトポロジー管理情報が更新される。これにより、トポロジーの変動が反映される。
ステップS212では、該当トポロジーにおける単位時間当りの接続頻度が計算される。
ステップS213では、初期化時に起動したタイマのタイムアウト事象が発生したか(つまり、接続先候補の放送契機になったか)否かが判別される。そして、上記タイマのタイムアウト事象が発生した場合には(ステップS213:YES)、ステップS214に進み、上記タイマのタイムアウト事象が発生していない場合には(ステップS213:NO)、ステップS216に進む。
ステップS214では、トポロジーデータベースに登録されたトポロジー管理情報に基づいて最新の下流接続可能ノードNnが再接続先の候補となるべきノードNnとして複数個抽出され、接続先候補情報を含むチャンクCが生成される。
ステップS215では、生成されたチャンクC及び当該接続先候補情報の放送指令を示す放送指令メッセージが放送局10に対して送信される。
ステップS216では、トポロジーデータベースに登録されたトポロジー管理情報におけるノードNnの属性情報に変更があったか否かが判別される。そして、上記ノードNnの属性情報に変更があった場合には(ステップS216:YES)、ステップS217に進み、上記ノードNnの属性情報に変更がない場合には(ステップS216:NO)、ステップS205に戻る。
ステップS217では、上記属性情報が変更されたノードNnのネットワークアドレス情報及び変更後の属性情報を含む更新情報が格納されたノード属性更新パケットPAが生成される。
ステップS218では、生成されたノード属性更新パケットPAが放送局10に対して送信される。
以上説明したように、上記実施形態によれば、放送局10から接続先候補情報を含む接続先候補パケットPをトポロジーの上流のノードNnから下流のノードNnに向けて放送させるようにし、当該接続先候補パケットPを受信した各ノードNnが、これに含まれる接続先候補情報に示される複数のノードNnうち、自己の属性情報に適合するノードNnを自己の再接続先の候補として特定し、当該特定したノードNnに関する接続先候補情報を記憶する。そして、各ノードNnが、自律的再接続事象の発生を契機として現在自己が接続している上流ノードNn又は放送局10との間の当該接続を解除し新たに別の上流ノードNnに再接続する場合には、上記特定された再接続先の候補のうち、一つのノードNnを再接続先として選定し、当該選定した再接続先となる上流ノードNnに再接続するように構成したので、トポロジーを管理する接続先紹介サーバ20に対して再接続となる上流ノードNnの問い合わせを抑えることができ、したがって、当該接続先紹介サーバ20に与える負荷を低減(負荷集中を抑制)させながらも、接続先紹介サーバ20から得られる接続先の候補と同等の最適性を伴った候補を各ノードNnに提供することができ、トポロジーを安定させることが可能となる。
また、上記接続先候補情報に示される複数のノードNnうち自ノードの属性情報に適合するノードNnとして、自ノードの階層レベル値より小さいか(つまり上位階層)或いは同じ階層レベル値を有するノードNnを再接続先の候補として特定するように構成すれば、配信経路が循環することを回避することができる。
また、上記接続先候補情報に示される複数のノードNnうち自ノードの属性情報に適合するノードNnとして、自ノードのNAT越え属性と適合するノードNnを再接続先の候補として特定するように構成すれば、通信を確立することができないことを回避することができる。また、接続候補管理テーブルに再接続先の候補のNAT越え属性を登録するようにしたので、当該接続候補管理テーブルに登録されたノードNnとの接続確立を試みるための処理時間を省き、接続確立までの時間を短縮することができる。
また、一つの接続先候補パケットPにおける接続先候補情報に示される複数のノードNnのうち、当該接続先候補情報に示される複数のノード装置数より少ない数のノードNnを再接続先の候補としてランダムに特定するように構成すれば、一つの接続先候補パケットPから特定される再接続先の候補数を抑制し、再接続の候補の散逸化を図ることができる。
また、再接続によりノードNnの属性情報に変更があった場合に、変更後の属性情報を含む更新情報が格納されたノード属性更新パケットPAをトポロジーの上流のノードNnから下流のノードNnに向けて放送させるようにし、当該ノード属性更新パケットPAを受信したノードNnが、自己の再接続候補管理テーブル内に該当するノードNnが登録されているか否かを検査し、登録されている場合には該当するノードNnの属性情報を、ノード属性更新パケットPAを含まれる属性情報に置き換えるように構成したので、各ノードNnが記憶している上流ノードNnの候補の属性情報の変更は、比較的短い遅延時間の中で補正することができ、接続先紹介サーバ20が提供する場合と同等の良質な再接続先の候補を提供することができる。
また、各ノードNnは、下流ノード接続数が接続許容数に達していない場合、上記接続先候補パケットPを接続先候補パケット蓄積用記憶領域に所定時間蓄積させておき、この蓄積期間中に新たなノードNnが下流ノードとして接続してきた場合に、上記蓄積された接続先候補パケットPを当該下流ノードNnに転送するように構成したので、新たにトポロジーに参加したノードNnも即座に接続先候補情報を得ることができる。
また、参加又は脱退報告メッセージを代表ノードNnにより一つに取り纏めて接続先紹介サーバ20に送信するように構成したので、接続先紹介サーバ20に対する通信量を削減することができる。
以上の結果として、トポロジーのスケーラビリティを確保するために必要であったサーバに対する設備投資を低く抑えることができる。
なお、上記実施形態においては、あるノードNnが接続先候補パケットPから再接続先の候補を特定する際、配信経路の循環を回避するために自ノードよりも階層レベル値が小さいか或いは同じ階層レベル値であることを条件としていたが、各ノードNnが近隣ノード群を予め覚えていれば自ノードよりも階層レベル値が大きいものを選定することが可能となる。
図20は、トポロジーおける注目ノードN13についての近隣ノード群を示す図である。図20の例では、注目ノードN13は,自己を中心として上流方向と下流方向に対して1ホップ(ノード)先までの近隣ノードであるノードN12,N17,N18に関する情報を記憶しており、注目ノードN13は第n階層目に位置している。この場合、注目ノードN13は、これに接続されている直属の下流ノードから辿って下流1ホップまでの近隣ノードの存在を知っているので接続先候補パケットPから再接続先の候補を特定するときは、まず、第n+1階層目以下の再接続先の候補を特定し、その後、当該特定した候補の中から下流方向の近隣ノードN17,N18を除外する。これにより、接続先候補パケットPから再接続先の候補を特定(選択)するときの条件が緩和され、より多くの再接続の候補を特定し再接続候補管理テーブルに登録することができる。なお、各ノードNnが近隣ノードの存在を知るためには単に自ノードの存在を広告するための広告用パケットをノードNnの中継(転送)回数制限付きで周辺のノードNnへ送信すれば良い。
本実施形態に係るツリー型放送システムにおける各ノード装置の接続態様の一例を示す図である。 ノードN12がツリー型放送システムSへの参加する際の様子を示した概念図である。 接続先候補パケットが上流から下流に向けて放送される様子を示す図である。 接続先候補パケットPの構成の一例を示す図である。 接続先候補パケットPが下流接続可能ノードN14において所定時間蓄積される様子を示す図である。 ノード属性更新パケットPAが上流から下流に向けて放送される様子を示す図である。 放送局10の概要構成例を示す図である。 接続先紹介サーバ20の概要構成例を示す図である。 ノードNnの概要構成例を示す図である。 接続候補管理テーブルに登録された接続先候補情報の一例を示す図である。 トポロジー内での再接続の候補が垂直方向に散逸化するように特定される例を示す図である。 ノードNnにおけるCPU304により実行される処理を示すフローチャートである。 ノードNnにおけるCPU304により実行される処理を示すフローチャートである。 ノードNnにおけるCPU304により実行される処理を示すフローチャートである。 ノードNnにおけるCPU304により実行される処理を示すフローチャートである。 ノードNnにおけるCPU304により実行される処理を示すフローチャートである。 放送局10におけるCPU104により実行される処理を示すフローチャートである。 放送局10におけるCPU104により実行される処理を示すフローチャートである。 接続先紹介サーバ20におけるCPU204により実行される処理を示すフローチャートである。 トポロジーおける注目ノードについての近隣ノード群を示す図である。
符号の説明
8 ネットワーク
9 オーバーレイネットワーク
10 放送局
20 接続先紹介サーバ
101,201,301a 主電源
301b 補助電源
102,202,302 主記憶装置
103,203,303 ハードディスク装置
104,204,304 CPU
105,205,305 ネットワークインタフェース
106,206,306 周辺機器制御チップ
107,207,307 ビデオチップ
108,308 音源チップ
109,208,309 キーボード
110,209,310 マウス
111,210,311 ディスプレイ
112,312 内蔵スピーカ
113,211,313 システムバス
114,212,314 ルータ
Nn ノード
S ツリー型放送システム

Claims (14)

  1. 複数のノード装置の参加により形成されたツリー型放送システムであり、当該複数のノード装置が放送装置を最上位として複数の階層を形成しつつ通信手段を介してツリー状に接続され、前記放送装置により放送された情報が、上位階層のノード装置から下位階層のノード装置に順次転送されるようにしたツリー型放送システムにおける前記ノード装置であって、
    現在自己が接続している上位階層のノード装置又は前記放送装置から放送されてきた、再接続先の候補となるべきノード装置を示しそのノード装置の少なくともネットワークアドレス情報を含む接続先候補情報を受信する接続先候補情報受信手段と、
    前記受信された接続先候補情報に示されるノード装置のうち、自己の属性情報に適合するノード装置を自己の再接続先の候補として特定する再接続先候補特定手段と、
    前記特定された再接続先の候補となるノード装置の少なくともネットワークアドレス情報を記憶する再接続先候補記憶手段と、
    現在自己が接続している上位階層のノード装置又は前記放送装置との間の当該接続を解除し新たに別のノード装置に再接続する場合には、前記ネットワークアドレス情報が前記再接続先候補記憶手段に記憶されているノード装置のうち、一つのノード装置を再接続先として選定し、当該選定した再接続先となるノード装置の前記ネットワークアドレス情報に基づき当該ノード装置に接続するための接続処理を行う接続処理手段と、
    を備えることを特徴とするノード装置。
  2. 請求項1に記載のノード装置において、
    自己の下位階層にノード装置が接続されている場合には、当該ノード装置に前記受信された接続先候補情報を転送する接続先候補情報転送手段を備えることを特徴とするノード装置。
  3. 請求項1又は2に記載のノード装置において、
    現在自己に接続されている下位階層のノード装置の数が、自己の下位階層に接続可能なノード装置の許容数に達しているか否かを判別する許容数判別手段と、
    前記下位階層のノード装置の数が前記許容数に達していないと判別された場合には、その後に下位階層として接続されるノード装置に対して転送するために、前記受信された接続先候補情報を所定時間蓄積する接続先候補情報蓄積手段と、
    を備えることを特徴とするノード装置。
  4. 請求項1乃至3の何れか一項に記載のノード装置において、
    前記接続先候補情報には、前記再接続先の候補となるべきノード装置の当該システムにおける階層レベルを示す情報が含まれ、
    前記属性情報には、自己の当該システムにおける階層レベルを示す情報が含まれており、
    前記再接続先候補特定手段は、前記階層レベルを示す情報に基づいて、前記受信された接続先候補情報に示されるノード装置のうち、自己と同じ階層又は上位階層に位置するノード装置を、自己の属性情報に適合する再接続先の候補として特定することを特徴とするノード装置。
  5. 請求項1乃至4の何れか一項に記載のノード装置において、
    前記接続先候補情報には、前記再接続先の候補となるべきノード装置の当該システムにおける通信方式を示す情報が含まれ、
    前記属性情報には、自己の当該システムにおける通信方式を示す情報が含まれており、
    前記再接続先候補特定手段は、前記通信方式を示す情報に基づいて、前記受信された接続先候補情報に示されるノード装置のうち、自己の通信方式と適合するノード装置を、自己の属性情報に適合する再接続先の候補として特定することを特徴とするノード装置。
  6. 請求項1乃至5の何れか一項に記載のノード装置において、
    前記接続先候補情報には、再接続先の候補となるべきノード装置が複数示されており、
    前記再接続先候補特定手段は、前記受信された接続先候補情報に示される複数のノード装置のうち、前記受信された接続先候補情報に示される複数のノード装置数より少ない数のノード装置を自己の再接続先の候補としてランダムに特定することを特徴とするノード装置。
  7. 請求項1乃至6の何れか一項に記載のノード装置において、
    前記再接続先候補記憶手段は、前記特定された再接続先の候補となるノード装置のネットワークアドレス情報に加えて当該ノード装置の属性情報を記憶し、
    現在自己が接続している上位階層のノード装置又は前記放送装置から放送されてきた更新情報であって、前記ツリー型放送システムにおける再接続により属性情報が変更されたノード装置の当該変更後の属性情報を含む更新情報を受信する更新情報受信手段と、
    前記更新情報に含まれる属性情報に基づいて、前記再接続先候補記憶手段に記憶されている属性情報を更新する属性情報更新手段と、
    を更に備えることを特徴とするノード装置。
  8. 前記接続先候補情報は、前記ツリー型放送システムにおけるノード装置の接続態様を管理するサーバ装置により生成され、前記放送装置に提供されるものであって、
    請求項1乃至7の何れか一項に記載のノード装置は、
    自己の下位階層に接続されているノード装置から送信されてきた、前記ツリー型放送システムへの参加報告又は前記ツリー型放送システムからの脱退報告を示す報告情報を受信する報告情報受信手段と、
    前記受信された報告情報を蓄積する報告情報蓄積手段と、
    自己が前記サーバ装置に代表して前記報告情報を送信する代表ノード装置である場合には、所定期間毎に前記蓄積された報告情報を当該サーバ装置に送信し、自己が前記代表ノード装置でない場合には、前記受信された報告情報を自己が接続している上位階層のノード装置に送信する報告情報送信手段と、
    を備えることを特徴とするノード装置。
  9. コンピュータを、請求項1乃至8の何れか一項に記載のノード装置として機能させることを特徴とするノード処理プログラム。
  10. 複数のノード装置の参加により形成されたツリー型放送システムであり、当該複数のノード装置が放送装置を最上位として複数の階層を形成しつつ通信手段を介してツリー状に接続され、前記放送装置により放送された情報が、上位階層のノード装置から下位階層のノード装置に順次転送されるようにしたツリー型放送システムにおける前記ノード装置の接続態様を管理するサーバ装置であって、
    前記接続態様を示す情報に基づいて、前記ツリー型放送システムにおけるノード装置の再接続先の候補となるべき他のノード装置を示しそのノード装置の少なくともネットワークアドレス情報を含む接続先候補情報を生成する接続先候補情報生成手段と、
    前記生成された接続先候補情報と、当該接続先候補情報の放送指令を示す放送指令情報を前記放送装置に送信する接続先候補情報送信手段と、
    を備えることを特徴とするサーバ装置。
  11. 請求項10に記載のサーバ装置において、
    何れかの前記ノード装置から送信されてきた、前記ツリー型放送システムへの参加報告又は前記ツリー型放送システムからの脱退報告を示す報告情報を受信する報告情報受信手段と、
    前記報告情報に基づいて前記ツリー型放送システムにおけるノード装置の接続態様を示す情報を更新する更新手段と、
    を備えることを特徴とするサーバ装置。
  12. コンピュータを、請求項10又は11に記載のサーバ装置として機能させることを特徴とするサーバ処理プログラム。
  13. 複数のノード装置の参加により形成されたツリー型放送システムであり、当該複数のノード装置が放送装置を最上位として複数の階層を形成しつつ通信手段を介してツリー状に接続され、前記放送装置により放送された情報が、上位階層のノード装置から下位階層のノード装置に順次転送されるようにしたツリー型放送システムであって、
    当該ツリー型放送システムにおける前記ノード装置の接続態様を管理するサーバ装置は、
    前記接続態様を示す情報に基づいて、前記ツリー型放送システムにおけるノード装置の再接続先の候補となるべき他のノード装置を示しそのノード装置の少なくともネットワークアドレス情報を含む接続先候補情報を生成する接続先候補情報生成手段と、
    前記生成された接続先候補情報と、当該接続先候補情報の放送指令を示す放送指令情報を前記放送装置に送信する接続先候補情報送信手段と、
    を備え、
    前記ノード装置は、
    現在自己が接続している上位階層のノード装置又は前記放送装置から放送されてきた前記接続先候補情報を受信する接続先候補情報受信手段と、
    前記受信された接続先候補情報に示されるノード装置のうち、自己の属性情報に適合するノード装置を自己の再接続先の候補として特定する再接続先候補特定手段と、
    前記特定された再接続先の候補となるノード装置の少なくともネットワークアドレス情報を記憶する再接続先候補記憶手段と、
    現在自己が接続している上位階層のノード装置又は前記放送装置との間の当該接続を解除し新たに別のノード装置に再接続する場合には、前記ネットワークアドレス情報が前記再接続先候補記憶手段に記憶されているノード装置のうち、一つのノード装置を再接続先として選定し、当該選定した再接続先となるノード装置の前記ネットワークアドレス情報に基づき当該ノード装置に接続するための接続処理を行う接続処理手段と、
    を備えることを特徴とするツリー型放送システム。
  14. 複数のノード装置の参加により形成されたツリー型放送システムであり、当該複数のノード装置が放送装置を最上位として複数の階層を形成しつつ通信手段を介してツリー状に接続され、前記放送装置により放送された情報が、上位階層のノード装置から下位階層のノード装置に順次転送されるようにしたツリー型放送システムにおける再接続処理方法であって、
    当該ツリー型放送システムにおける前記ノード装置の接続態様を管理するサーバ装置は、
    前記接続態様を示す情報に基づいて、前記ツリー型放送システムにおけるノード装置の再接続先の候補となるべき他のノード装置を示しそのノード装置の少なくともネットワークアドレス情報を含む接続先候補情報を生成する工程と、
    前記生成された接続先候補情報と、当該接続先候補情報の放送指令を示す放送指令情報を前記放送装置に送信する工程と、
    を備え、
    前記ノード装置は、
    現在自己が接続している上位階層のノード装置又は前記放送装置から放送されてきた前記接続先候補情報を受信する工程と、
    前記受信された接続先候補情報に示されるノード装置のうち、自己の属性情報に適合するノード装置を自己の再接続先の候補として特定する工程と、
    前記特定された再接続先の候補となるノード装置の少なくともネットワークアドレス情報を記憶する工程と、
    現在自己が接続している上位階層のノード装置又は前記放送装置との間の当該接続を解除し新たに別のノード装置に再接続する場合には、前記ネットワークアドレス情報が前記記憶されているノード装置のうち、一つのノード装置を再接続先として選定し、当該選定した再接続先となるノード装置の前記ネットワークアドレス情報に基づき当該ノード装置に接続するための接続処理を行う接続処理工程と、
    を備えることを特徴とするツリー型放送システムにおける再接続処理方法。
JP2007285973A 2007-11-02 2007-11-02 ツリー型放送システム、再接続処理方法、ノード装置、ノード処理プログラム、サーバ装置、及びサーバ処理プログラム Expired - Fee Related JP4840329B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2007285973A JP4840329B2 (ja) 2007-11-02 2007-11-02 ツリー型放送システム、再接続処理方法、ノード装置、ノード処理プログラム、サーバ装置、及びサーバ処理プログラム
US12/285,994 US8059669B2 (en) 2007-11-02 2008-10-17 Tree-type broadcast system, reconnection process method, node device, node process program, server device, and server process program
AT08253492T ATE522995T1 (de) 2007-11-02 2008-10-27 Baumartiges rundsendekommunikationssystem, verfahren für einen wiederverbindungsprozess, kommunikationsknoten, programm für einen prozess in einem knoten, server und programm für einen prozess in einem server
EP20080253492 EP2061184B1 (en) 2007-11-02 2008-10-27 Tree-type broadcast communication system, reconnection process method, communication node device, node process program, server device, and server process program
CN2008101747365A CN101425916B (zh) 2007-11-02 2008-10-27 树型广播***,再连接处理方法,节点装置,节点处理程序,服务器装置,以及服务器处理程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007285973A JP4840329B2 (ja) 2007-11-02 2007-11-02 ツリー型放送システム、再接続処理方法、ノード装置、ノード処理プログラム、サーバ装置、及びサーバ処理プログラム

Publications (2)

Publication Number Publication Date
JP2009117944A JP2009117944A (ja) 2009-05-28
JP4840329B2 true JP4840329B2 (ja) 2011-12-21

Family

ID=40510435

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007285973A Expired - Fee Related JP4840329B2 (ja) 2007-11-02 2007-11-02 ツリー型放送システム、再接続処理方法、ノード装置、ノード処理プログラム、サーバ装置、及びサーバ処理プログラム

Country Status (5)

Country Link
US (1) US8059669B2 (ja)
EP (1) EP2061184B1 (ja)
JP (1) JP4840329B2 (ja)
CN (1) CN101425916B (ja)
AT (1) ATE522995T1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4661751B2 (ja) * 2006-09-29 2011-03-30 ブラザー工業株式会社 離脱可否制御装置、ツリー型配信システム、ノード装置離脱制御方法、離脱可否制御プログラム及び情報処理プログラム
CN101656618B (zh) * 2009-09-11 2012-09-05 中兴通讯股份有限公司 一种基于结构化对等网络的多媒体消息广播方法及***
US8356007B2 (en) * 2010-10-20 2013-01-15 Microsoft Corporation Distributed transaction management for database systems with multiversioning
JP6026078B2 (ja) 2011-01-12 2016-11-16 サターン ライセンシング エルエルシーSaturn Licensing LLC 送信装置、送信方法、受信装置、受信方法、プログラム、およびコンテンツ配信システム
JP5857451B2 (ja) * 2011-06-03 2016-02-10 富士通株式会社 配信方法及び配信システム
WO2013031411A1 (ja) * 2011-08-29 2013-03-07 株式会社日立製作所 Natサブトポロジ管理サーバ
US9679033B2 (en) * 2014-03-21 2017-06-13 International Business Machines Corporation Run time insertion and removal of buffer operators
CN104320339B (zh) * 2014-09-18 2021-02-05 无锡锐格思信息技术有限公司 一种通过cpu周期广播或组播形成正确转发表的方法
US9785509B2 (en) * 2014-11-07 2017-10-10 Cisco Technology, Inc. Phased network formation for power restoration
JP2017017630A (ja) * 2015-07-03 2017-01-19 富士通株式会社 接続方法、通信装置、通信システム、および、通信プログラム
JP6166445B1 (ja) * 2016-07-15 2017-07-19 株式会社プランネット・アソシエイツ アプリケーション層マルチキャスト配信方法
CN106230917B (zh) * 2016-07-26 2019-10-18 凯通科技股份有限公司 一种批量数据通信方法、装置和***
US10554689B2 (en) * 2017-04-28 2020-02-04 Cisco Technology, Inc. Secure communication session resumption in a service function chain
JP6271794B1 (ja) * 2017-05-18 2018-01-31 株式会社プランネット・アソシエイツ アプリケーション層マルチキャスト配信方法
CN108055679B (zh) * 2018-01-26 2020-11-13 乐鑫信息科技(上海)股份有限公司 一种mesh网络流控的方法
CN110581892B (zh) * 2019-09-17 2022-04-01 上海保险交易所股份有限公司 基于区块链的网络连接及恢复机制
CN115543172B (zh) * 2022-11-23 2023-03-14 天津华宁电子有限公司 一种刮板运输机集成式矿鸿人机界面显示控制方法及***

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7117273B1 (en) * 2000-01-25 2006-10-03 Cisco Technology, Inc. Methods and apparatus for maintaining a map of node relationships for a network
US20060259607A1 (en) * 2001-09-13 2006-11-16 Network Foundation Technologies, Llc System and method for distributing data over a computer network
US20040205219A1 (en) * 2003-02-19 2004-10-14 Wen-Syan Li Virtual active network for live streaming media
JP2006033115A (ja) * 2004-07-13 2006-02-02 Brother Ind Ltd 配信装置、受信装置、ツリー型配信システム及び情報処理方法等
JP4604824B2 (ja) 2005-05-10 2011-01-05 ブラザー工業株式会社 情報配信システム、処理プログラム、管理プログラム及び情報配信方法等

Also Published As

Publication number Publication date
EP2061184A1 (en) 2009-05-20
JP2009117944A (ja) 2009-05-28
EP2061184B1 (en) 2011-08-31
CN101425916B (zh) 2012-04-11
CN101425916A (zh) 2009-05-06
US20090116412A1 (en) 2009-05-07
ATE522995T1 (de) 2011-09-15
US8059669B2 (en) 2011-11-15

Similar Documents

Publication Publication Date Title
JP4840329B2 (ja) ツリー型放送システム、再接続処理方法、ノード装置、ノード処理プログラム、サーバ装置、及びサーバ処理プログラム
JP4518169B2 (ja) ツリー型放送システム、モード切替指示方法、放送装置、及び放送処理プログラム
JP5092877B2 (ja) ツリー型放送システム、パケット送信方法、ノード装置、及びノード処理プログラム
CN101167311A (zh) 网格网络中的多播路由协议
KR20110026215A (ko) 스트리밍 서비스의 지연 감소를 위한 단말기, 시드 서버 및 트랙커 서버
JP4370995B2 (ja) 接続態様設定装置及び接続態様設定方法、並びに接続態様制御装置及び接続態様制御方法等
JP2008294626A (ja) コンテンツ分散保存システム、コンテンツ保存方法、ノード装置、及びノード処理プログラム
JP2008278337A (ja) 情報配信システム、同システムに用いる端末装置及びプログラム、並びに循環接続回避方法
JP4770790B2 (ja) ツリー型放送システム、ツリー型放送システムへの参加及び脱退方法、ノード装置、及びノード処理プログラム
US20140317271A1 (en) Method and node apparatus for collecting information in content network based on information-centric networking
JP5115509B2 (ja) コンテンツ配信システム、ノード装置、離脱処理遅延方法及び離脱処理遅延制御プログラム
KR101612475B1 (ko) 가십 기반의 p2p 서비스의 파트너쉽 형성 방법 및 장치
US20140317272A1 (en) Method of collecting information, content network management system, and node apparatus using management interface in content network based on information-centric networking
US20080240138A1 (en) Tree type broadcast system, connection target determination method, connection management device, connection management process program, and the like
JP2003244210A (ja) ルーチング制御方法及びルーチング制御装置並びに記録媒体及び制御プログラム
Al Ridhawi et al. A dynamic hybrid service overlay network for service compositions
JP5067259B2 (ja) ツリー型放送システム、ノード接続方法、ノード装置、及びノード処理プログラム
KR20130060895A (ko) 스마트 라우터 및 그 제어방법, 및 이를 이용한 스마트 네트워크 서비스 제공 시스템 및 방법
JP2010039722A (ja) ノード装置、管理ノード装置、ノード処理プログラム、管理ノード処理プログラム、コンテンツ分散保存システム、複製データ取得方法
JP2008294625A (ja) 通信システム、特定情報配信方法、ノード装置、特定情報配信装置、ノード処理プログラム、及び特定情報配信処理プログラム
JP5182016B2 (ja) ノード紹介装置、ノード紹介処理プログラム、ツリー型放送システム、及びノード紹介処理方法
US9392055B2 (en) Data sharing method and system
JP6231896B2 (ja) コンテンツ配信システム、p2p端末、及び接続切替え方法
JP5616801B2 (ja) 利用者端末および配信トポロジ組替プログラム
JP2009124662A (ja) ツリー型放送システム、接続処理方法、ノード装置、及びノード処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110610

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110819

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110906

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110919

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141014

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees