JP4053474B2 - Node device and message delivery method - Google Patents

Node device and message delivery method Download PDF

Info

Publication number
JP4053474B2
JP4053474B2 JP2003191240A JP2003191240A JP4053474B2 JP 4053474 B2 JP4053474 B2 JP 4053474B2 JP 2003191240 A JP2003191240 A JP 2003191240A JP 2003191240 A JP2003191240 A JP 2003191240A JP 4053474 B2 JP4053474 B2 JP 4053474B2
Authority
JP
Japan
Prior art keywords
node
message
adjacent
history
node device
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
JP2003191240A
Other languages
Japanese (ja)
Other versions
JP2005027099A (en
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.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
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 NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2003191240A priority Critical patent/JP4053474B2/en
Publication of JP2005027099A publication Critical patent/JP2005027099A/en
Application granted granted Critical
Publication of JP4053474B2 publication Critical patent/JP4053474B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、メッセージを配信するノード装置、及び、メッセージ配信方法に関し、特に、接続された複数のノードに効率的にメッセージを配信するためのノード装置、及び、メッセージ配信方法に関する。
【0002】
【従来の技術】
複数のノードが接続された通信ネットワークにおいて、配信元のノードから他のノードへメッセージを配信する方式としては、従来より、図16に示す方式が知られている(例えば、非特許文献1参照)。同図に示す通信ネットワークは、メッセージのルーティングを行うルータと、パーソナルコンピュータやサーバ等のノードとを含む構成であり、ルータによってメッセージの転送が行われる。
【0003】
一方、近年では、図17に示すメッセージ転送方式の研究が行われている。同図に示す方式では、ルータによっては全くメッセージのルーティングは行われず、各ノードが保持している、隣接するノードとの接続状態に関する情報に基づいて、隣接ノードとの間でメッセージ転送が行われる。
また、ノードの接続状態に関する情報に基づいて処理を行う技術としては、ノード同士が接続した履歴に基づいて、効率的にノード同士が接続する技術が知られている(例えば、特許文献1参照)。
【0004】
【特許文献1】
特開平11−15715号公報(図8)
【非特許文献1】
D. Waitzman他"Distance Vector Multicast Routing Protocol",[online],November 1998,RFC1075,The Internet Engineering Task Force(IETF),[平成15年6月23日検索]インターネット<URL:http://www.ietf.org/rfc/rfc1075.txt>
【0005】
【発明が解決しようとする課題】
ルータはデータ転送に特化した装置であり、複数のネットワークインターフェースを備えている。このため、図16に示すルータを用いたメッセージ転送方式では、全ての隣接ノードに、同時にメッセージの転送を行うことが可能である。一方、図17に示すルータを利用しないメッセージ転送方式では、各ノードがメッセージ転送を担うこととなる。ところが、ノードは、単一のネットワークインターフェースしか備えていないため、ノードは、当該ネットワークインターフェースを時分割して利用し、メッセージ転送を行う。従って、ノードは、全ての隣接ノードに同時にメッセージ転送を行うことはできず、隣接するノード毎に順にメッセージ転送を行う。このため、各隣接ノードへのメッセージ転送には、時間差が生じる。また、ノードが隣接ノードにメッセージを転送する順序によっては、接続された全てのノードにメッセージが転送されるまでに時間がかかってしまうという問題がある。
【0006】
図18には、メッセージ配信グループにおけるノード間の接続形態(以下、「配信ツリー」という)の一例を示す。図中の円はノードであり、円内の数字は、ノードが配信グループに参加した(配信ツリーを構成するノードに接続した)順序を示す。
図19と図20には、図18のように構成された配信ツリーにおいて、ノード間をメッセージが転送される場合のメッセージ配信シーケンスの例を示す。
【0007】
図19に示すメッセージ配信シーケンスは、メッセージ配信元のノードが、配信グループに参加した順番が遅い隣接ノードから順に、メッセージを配信する場合のシーケンス例である。一方、図20に示すメッセージ配信シーケンスは、メッセージ配信元のノードが、配信グループに参加した順番が早い隣接ノードから順に、メッセージを配信する場合のシーケンス例である。
【0008】
このような配信ツリーにおいて、各ノード間におけるリンク確立までの遅延時間が同等であり、かつ、ノード間をメッセージ転送するのに必要な時間が同等であると仮定すると、図中の1つの矢印で示される1つのメッセージ配信シーケンスは、単位時間を表していると考えることができる。すなわち、配信ツリーを構成するノード全てにメッセージを配信するまでには、図中に示されたメッセージ配信シーケンスの番号に比例した時間がかかることになる。従って、図19に示すメッセージ配信シーケンスは、図20に示すメッセージ配信シーケンスに比べて、配信ツリーを構成するノード全てにメッセージを配信するまでに、7/4倍の時間がかかってしまうことになる。このような時間差が生じるのは、隣接ノードの数が多いノードに先にメッセージを配信した方が、効率的にメッセージを配信できる確率が高く、また、配信グループに参加した順が早いノードほど隣接ノードの数が多くなる確率が高いからである。
【0009】
ルータを用いないノード間のメッセージ配信方式においては、図20に示すような効率的なメッセージ通信シーケンスは保証されておらず、伝送遅延が発生するという問題点がある。効率的なメッセージ配信シーケンスを常に保証するためには、各ノードが保持する、隣接ノードとの接続状態に関する情報を用いて、メッセージを効率的に配信する仕組みを構築する必要がある。
【0010】
ここで、特許文献1には、他のノードとの接続状態に関する履歴を保持する構成が記載されている。しかし、当該履歴は、接続先のノードに対して、接続可能な時刻を予測するために用いられている。このため、特許文献1に記載されている技術を、既にノード同士が接続されている配信ツリーにおいてメッセージを効率的に配信する仕組みを構築するために利用することはできない。
この発明は上記に鑑みてなされたものであり、その目的は、複数のノードが接続された通信ネットワークにおいて、効率的なメッセージ配信シーケンスを実現するノード装置、及び、メッセージ配信方法を提供することである。
【0011】
【課題を解決するための手段】
上記課題を解決するために、請求項1に記載の発明は、メッセージを配信する通信ネットワークを構成するノード装置において、前記ノード装置に隣接する隣接ノード装置との接続状態に関する履歴を保持する隣接履歴保持手段と、前記隣接履歴保持手段に保持されている履歴に基づいて、前記隣接ノード装置に配信すべきメッセージの配信順序を決定する配信順序決定手段とを含むことを特徴とするノード装置を提供する。
【0012】
請求項1に記載の発明によれば、前記ノード装置は、前記隣接履歴保持手段により保持されている前記ノード装置に隣接する隣接ノード装置との接続状態に関する履歴に基づいて、メッセージ配信順序を決定するため、前記ノード装置は、最適な順序でメッセージを配信することができる。このため、前記通信ネットワーク全体として、最適なメッセージ配信シーケンスを実現することができ、効率的に、短時間で、前記通信ネットワークが備えるノード装置全体にメッセージを転送することができる。このため、各ノード装置へのメッセージ到達遅延を防ぐことができる。また、効率的な転送を実現できることにより、限られた前記通信ネットワークの資源を有効に活用することができる。
【0013】
また、請求項2に記載の発明は、請求項1に記載のノード装置において、前記隣接履歴保持手段は、前記隣接ノード装置を識別するための隣接ノード識別情報と、該隣接ノード装置と前記ノード装置とが接続した時刻とを対応付けて、前記履歴として保持しており、前記配信順序決定手段は、前記隣接ノード識別情報で識別される隣接ノード装置に対して、前記隣接ノード識別情報に対応付けられている時刻が古い順に、前記メッセージを配信することを決定することを特徴とする。
【0014】
請求項2に記載の発明によれば、古くから自装置に接続していた隣接ノード装置に対して、先にメッセージを配信することができるために、古くから自装置に接続していたノード装置に、より多くのノード装置が接続されているという前提の基、より多くのノード装置が接続されている隣接ノード装置に対して、先にメッセージを配信することができる。このために、最適な配信シーケンスを実現することができ、効率的に、前記通信ネットワークが備えるノード装置全てにメッセージを配信することができる。このため、ノード装置全てに短時間でメッセージを配信することができ、各ノード装置へのメッセージ到達遅延を防ぐことができる。
【0015】
また、請求項3に記載の発明は、請求項1又は2に記載のノード装置において、前記配信順序決定手段は、前記隣接履歴保持手段に保持されている履歴に基づいて、自装置に隣接する隣接ノード装置を判定し、該判定された隣接ノード装置のうち、隣接するノード装置の数が多い順に、該隣接ノード装置にメッセージを配信することを決定することを特徴とする。
【0016】
請求項3に記載の発明によれば、前記配信順序決定手段は、前記隣接ノード装置に隣接するノード装置の数が多い順に、前記隣接ノード装置にメッセージを配信することを決定するため、確実に、より多くのノード装置が接続されているノード装置に、先にメッセージを転送することができる。このために、最適な配信シーケンスを実現することができ、効率的に、前記通信ネットワークが備えるノード装置全てにメッセージを配信することができる。このため、ノード装置全てに短時間でメッセージを配信することができ、各ノード装置へのメッセージ到達遅延を防ぐことができる。
【0017】
また、請求項4に記載の発明は、請求項1乃至3のいずれか1項に記載のノード装置において、前記隣接ノード装置毎に、該隣接ノード装置が自装置にメッセージを配信してきた頻度を管理するメッセージ受信頻度管理手段をさらに有し、前記配信順序決定手段は、前記接続履歴保持手段に保持されている履歴に基づいて、自装置に隣接する隣接ノード装置を判定し、該判定された隣接ノード装置に対して、前記メッセージ受信頻度管理手段により管理されている前記頻度が高い順に、前記メッセージを配信することを特徴とする。
【0018】
請求項4に記載の発明によれば、自装置にメッセージを配信してきた頻度が高いノード装置に、先にメッセージを配信することができるために、メッセージを配信してくる頻度が高いノード装置には、多くのノード装置が接続されているという前提の基、より多くのノード装置が接続されているノード装置に、先にメッセージを配信することができる。このために、最適な配信シーケンスを実現することができ、効率的に、前記通信ネットワークが備えるノード装置全てにメッセージを配信することができる。このため、ノード装置全てに短時間でメッセージを配信することができ、各ノード装置へのメッセージ到達遅延を防ぐことができる。
【0019】
請求項5に記載の発明は、特定のノード装置と、該特定のノード装置に隣接する隣接ノード装置との接続状態に関する履歴に基づいて、前記隣接ノード装置にメッセージを配信するメッセージ配信方法において、前記特定のノード装置が前記隣接ノード装置に接続したことを表す履歴と、前記特定のノード装置が前記隣接ノード装置によって接続されたことを表す履歴との、少なくとも一方の履歴を検索する検索ステップと、前記検索ステップにおいて検索された履歴が古い順に、該履歴で表される隣接ノード装置に対して、前記メッセージを配信する配信ステップとを有することを特徴とするメッセージ配信方法を提供する。
【0020】
請求項5に記載の発明によれば、前記履歴が古い順に、該履歴で表される隣接ノード装置に対して、前記メッセージを配信する手順としたために、古くから自装置に接続していた隣接ノード装置にメッセージを配信することができる。このために、古くから自装置に接続していたノード装置に、多くのノード装置が接続されているという前提の基、より多くのノード装置が接続されている隣接ノード装置に、先にメッセージを配信することができる。このように最適な配信シーケンスを実現できるため、効率的に、前記通信ネットワークが備えるノード装置全てにメッセージを転送することができる。このため、ノード装置全てに短時間でメッセージを転送することができ、各ノード装置へのメッセージ到達遅延を防ぐことができる。
【0021】
【発明の実施の形態】
次に、図面を参照して本発明の実施の形態について説明する。なお、以下の説明において参照する各図においては、他の図と同等部分に同一符号が付されている。
[1.第1実施形態]
[1.1.構成]
図1には、この発明の第1実施形態に係る通信ネットワーク1の構成を示す。この通信ネットワーク1は、複数のノードを含んで構成される。同図においては、通信ネットワーク1は、9つのノード10a、10b、・・・、10iが相互に接続され、配信ツリーを構成している。これらの接続された複数のノードは、例えば、マルチキャストグループ(Multicast group)と呼ばれるデータ配信グループを形成する。各ノードは、他のノードとの間で、マルチキャストメッセージ等のデータを転送する。
【0022】
なお、各ノードは、同じ機能と構成を備えているため、以下の説明では、通信ネットワーク1が備える各ノードを特に区別する必要がない場合には、ノード10として説明する。
ノード10は、パーソナルコンピュータやサーバ等の装置であり、一般的なコンピュータのハードウェア構成を備えている。すなわち、ノード10は、ノード10全体を制御するCPU(Central Processing Unit)と、ROM(Read Only Memory)やRAM(Random Access Memory)やハードディスク装置を備えた記憶部と、隣接するノードとデータの授受を制御する通信インターフェイスと、時刻(年月日時分秒)を計時する計時部と、を含んで構成されている。これらのハードウェアや、記憶部に記憶されているソフトウェアにより、図2に示すノード10の機能が実現される。
【0023】
図2は、ノード10の機能構成を示すブロック図である。同図に示すように、ノード10は、メッセージ受信部12と、隣接履歴保持部13と、メッセージ送信部14と、管理制御部15とを備えている。
隣接履歴保持部13は、ノード10に隣接する隣接ノードとの接続状態に関する履歴を記憶する。隣接履歴保持部13は、接続履歴テーブル131と、被接続履歴テーブル132とを備えている。
【0024】
接続履歴テーブル131には、自ノード10が隣接ノードに接続した履歴が記憶される。また、被接続履歴テーブル132には、自ノード10が隣接ノードに接続された履歴が記憶される。
図3には、接続履歴テーブル131と被接続履歴テーブル132とに記憶される履歴のデータ構成を示す。同図に示すように、接続履歴テーブル131に記憶される履歴は、自ノード10が隣接ノードに接続した「時刻」と、隣接ノードを識別するための「ノードID」とを含んで構成される。また、被接続履歴テーブル132に記憶される履歴は、自ノード10が隣接ノードに接続された「時刻」と、隣接ノードの「ノードID」とを含んで構成される。これらの履歴は、ノード10と他のノードとが接続した場合に、ノード10によって生成され、テーブル131、132に記憶される。
【0025】
メッセージ受信部12は、隣接ノードからメッセージを受信する。メッセージ送信部14は、メッセージを隣接ノードへ配信する。管理制御部15は、ノード10の各部を制御することにより、自ノード10を配信元とした隣接ノードへのメッセージの配信や、隣接ノードから受信したメッセージの他の隣接ノードへの配信(すなわち、メッセージの転送)の制御を行う。管理制御部15は、配信順序決定機能151を備えている。配信順序決定機能151は、接続履歴保持部13に保持されている履歴に基づいて、隣接する他のノードに配信すべきメッセージの配信順序を決定する。
【0026】
次に、ノード10の管理制御部15が行うメッセージ配信の制御機能について説明する。まず、図4のフローチャートを参照して、メッセージ配信元であるノード10が、メッセージを他のノードに配信する場合のメッセージ配信処理について説明する。
なお、このメッセージ配信処理のアルゴリズムは、「より多くのノードが接続されているノードに、先にメッセージを配信する」という考えと、「以前から配信グループに存在していたノードには(古くから自ノード10に接続していたノードには)、より多くのノードが接続されている」という考えに基づいている。
【0027】
まず、ノード10の管理制御部15は、自ノード10から接続した隣接ノードが存在するか否か判定する(ステップS101)。具体的には、管理制御部15は、隣接履歴保持部13の接続履歴テーブル131に履歴が記憶されているか否かを検索する。検索した結果、該当ノードが存在すると判定された場合には(ステップS101;該当ノードあり)、配信順序決定機能151は、該当ノードの中から、一番初めに(最も古い時刻に)接続した隣接ノードを判定する。具体的には、配信順序決定機能151は、該当ノードを内包する履歴の中から、最も古い「時刻」を内包する履歴を判定し、当該履歴の「ノードID」を抽出する。
【0028】
そして、管理制御部15は、メッセージ送信部14に対して、抽出した「ノードID」で識別されるノードにメッセージを配信するよう指示する。
そして、管理制御部15は、メッセージを配信したノードを、ステップS101の検索対象から外す(ステップS102)。
管理制御部15は、ステップS101〜102の処理を、対象のノードが存在しなくなる(ステップS101;該当ノードなし)まで繰り返す。
【0029】
対象のノードが存在しなくなった場合に(ステップS101;該当ノードなし)、管理制御部15は、隣接ノードのうち、自ノード10に接続してきた隣接ノードが存在するか否かを判定する(ステップS103)。具体的には、管理制御部15は、隣接履歴保持部13の被接続履歴テーブル132に履歴が記憶されているか否かを検索する。検索した結果、該当ノードが存在すると判定された場合には(ステップS103;該当ノードあり)、配信順序決定機能151は、該当ノードの中から、一番初め(最も古い時刻)に接続してきた隣接ノードを判定する。具体的には、配信順序決定機能151は、該当ノードを内包する履歴の中から、最も古い「時刻」を内包する履歴を判定し、当該履歴の「ノードID」を抽出する。そして、管理制御部15は、メッセージ送信部14に対して、抽出した「ノードID」で識別されるノードにメッセージを配信するよう指示する。そして、管理制御部15は、メッセージ配信済みの隣接ノードを、ステップS103の検索対象から外す(ステップS104)。管理制御部15は、ステップS103〜104の処理を、対象のノードが存在しなくなる(ステップS103;該当ノードなし)まで繰り返す。
【0030】
次に、図5のフローチャートを参照して、ノード10が、隣接するノードより転送されてきたメッセージを、他の隣接するノードに転送するメッセージ転送処理について説明する。
図5に示すメッセージ転送処理が、図4に示すメッセージ配信処理と異なる点は、ノード10のメッセージ受信部12が隣接ノードよりメッセージを受信したことがきっかけとなって処理が行われる点と、ステップS201とステップS203において該当ノードが存在するか否かを判定する際に、メッセージ転送元の隣接ノードを対象外とする点である。その他の図5に示すメッセージ転送処理の流れは、図4に示すメッセージ配信処理と同様であるため、重複した説明を省略する。
【0031】
[1.2.動作]
次に、上記構成における第1実施形態の動作について説明する。
前提として、以下の動作で説明する通信ネットワーク1は、図6に示すように、ノード10a、ノード10b、・・・、ノード10iの9つのノードが接続されて配信ツリーを構成している。また、ノード10aを識別するためのノードIDは“1”、ノード10aのノードIDは“2”、・・・、ノード10iのノードIDは“9”であり、当該情報は各々のノードの記憶部で管理されているものとする。
【0032】
また、ノード10bの隣接履歴保持部13bには、図3に示すデータ内容の履歴が記憶されているものとする。また、ノード10aの隣接履歴保持部13aには、図7に示すデータ内容の履歴が記憶されており、ノード10cの隣接履歴保持部13cには、図8に示すデータ内容の履歴が記憶されているものとする。これらの履歴に内包されているノードIDで識別されるノードは、隣接ノードに接続(配信グループに参加)した(された)後、当該配信グループから離脱(脱退)していないものとする。したがって、隣接履歴保持部13に保持されているノードIDで識別されるノードは、全て、ノード10と接続している隣接ノードとなる。
【0033】
また、各ノード間の通信リンク確立までの遅延時間は同等であり、ノード間をメッセージ転送するのに必要な時間が同等であるものとする。したがって、図6中、1つの矢印で示されるメッセージ配信シーケンスは、同一の単位時間を表している。
以下では、図4〜6を参照しながら、ノードID“2”で識別されるノード10bが、メッセージを隣接ノードに配信した場合の、通信ネットワーク1を構成する各ノードの動作について、単位時間(シーケンス番号)順に、時系列に沿って説明する。
【0034】
[シーケンス1]
<ノード10bの動作>
まず、ノード10bの管理制御部15bは、一番初めにメッセージを配信するノードを決定するために、図4に示すように、自ノードから接続した隣接ノードが存在するか否かを判定する(ステップS101)。具体的には、管理制御部15bは、隣接履歴保持部13bの接続履歴テーブル131bに履歴が記憶されているか否かを検索する。ここでは、図3に示すように、接続履歴テーブル131bには、ノードID“1”で識別されるノード10aの履歴が記憶されているため、管理制御部15bは、該当ノードが存在すると判定する(ステップS101;該当ノードあり)。
【0035】
次に、管理制御部15bの配信順序決定機能151bは、該当ノードと判定されたノードの中から、一番初めに接続したノードを判定する。そして、管理制御部15bは、メッセージ送信部14bに対して、当該判定されたノードにメッセージを配信する指示を行う。ここでは、該当ノードと判定されたノードは1つであるため、管理制御部15bは、メッセージ送信部14bに対して、ノードID“1”で識別されるノード10aにメッセージを配信するよう指示する。メッセージ送信部14bは、ノード10aにメッセージを配信する(図6に示すメッセージ配信シーケンス1)。そして、管理制御部15bは、メッセージ配信済みの隣接ノード10aを、ステップS101の検索対象から外す(ステップS102)。
【0036】
[シーケンス2]
<ノード10bの動作>
ノード10bの管理制御部15bは、シーケンス1のメッセージを配信した後、図4のステップS101に戻る。管理制御部15bは、自ノード10bから接続した隣接ノードが存在するか否かを判定する(ステップS101)。具体的には、管理制御部15bは、隣接履歴保持部13bの接続履歴テーブル131bを検索する。ここでは、ノードID“1”で識別される隣接ノードの履歴は、検索対象から外されているため、管理制御部15bは、該当ノードなしと判断する(ステップS101;該当ノードなし)。
【0037】
次に、管理制御部15bは、隣接ノードのうち、自ノードに接続してきた隣接ノードが存在するか否かを判定する(ステップS103)。具体的には、管理制御部15bは、隣接履歴保持部13bの被接続履歴テーブル132bに履歴が記憶されているか否かを検索する。ここでは、図3に示すように、被接続履歴テーブル132bには、ノードID“6”を内包する履歴と、ノードID“8”を内包する履歴と、ノードID“9”を内包する履歴との、3つの履歴が記憶されているため、管理制御部15bは、該当ノードが存在すると判断する(ステップS103;該当ノードあり)。
【0038】
次に、管理制御部15bの配信順序決定機能151bは、該当するノードの中から、一番初めに接続してきた隣接ノードを判定する。具体的には、配信順序決定機能151bは、上述した3つの履歴の中から、最も古い「時刻」を内包する履歴を判定する。ここでは、図3に示すように、ノードID“6”に対応する「時刻」が最も古い時刻であるため、配信順序決定機能151bは、ノードID“6”で識別されるノード10fが一番初めに接続してきた隣接ノードであると判定する。そして、管理制御部15bは、メッセージ送信部14bに対して、ノード10fにメッセージを配信するよう指示する。メッセージ送信部14bは、ノード10fにメッセージを配信する(図6のノード10bからノード10fへのシーケンス2)。そして、管理制御部15bは、メッセージを配信した隣接ノード10fを、ステップS103の検索対象から外す(ステップS104)。
【0039】
<シーケンス2;ノード10aの動作>
一方、シーケンス1のメッセージをノード10bより受信したノード10aの動作について説明する。ノード10aのメッセージ受信部12aがメッセージを受信すると、ノード10aの管理制御部15aは、図5に示すメッセージ転送処理を行う。まず、ノード10aの管理制御部15aは、メッセージ転送元ノード10b以外で、自ノード10aから接続した隣接ノードが存在するか否かを判定する(ステップS201)。具体的には、管理制御部15aは、隣接履歴保持部13aの接続履歴テーブル131aに履歴が記憶されているか否か検索する。ここでは、図7に示すように、接続履歴テーブル131aには、履歴は記憶されていないため、管理制御部15aは、該当ノードなしと判断する(ステップS201;該当ノードなし)。
【0040】
次に、管理制御部15aは、メッセージ転送元ノード10b以外の隣接ノードのうち、自ノード10aに接続してきた隣接ノードが存在するか判定する(ステップS103)。具体的には、管理制御部15aは、隣接履歴保持部13aの被接続履歴テーブル132aに履歴が記憶されているか否か検索する。ここでは、図7に示すように、被接続履歴テーブル132aには、ノードID“2”を内包する履歴と、ノードID“3”を内包する履歴と、ノードID“4”を内包する履歴との、3つの履歴が記憶されている。メッセージ転送元ノード10bのノードID“2”は対象外であるが、ノードID“3”、“4”は対象ノードのノードIDであるため、管理制御部15aは、該当ノードが存在すると判定する(ステップS203;該当ノードあり)。
【0041】
次に、管理制御部15aの配信順序決定機能151aは、該当ノードの中から、一番初めに接続してきた隣接ノードを判定する。具体的には、配信順序決定機能151aは、該当ノードID“3”を内包する履歴と、ノードID“4”を内包する履歴とのうち、最も古い「時刻」を内包する履歴を判定する。ここでは、ノードID“3”に対応する「時刻」が、最も古い時刻であるため、配信順序決定機能151aは、ノードID“3”で識別されるノード10cが一番初めに接続してきた隣接ノードであると判定する。そして、管理制御部15aは、メッセージ送信部14aに対して、ノード10cにメッセージを転送するよう指示する。メッセージ送信部14aは、ノード10cにメッセージを転送する(図6のノード10aからノード10cへのシーケンス2)。そして、管理制御部15aは、メッセージ転送済みの隣接ノード10cを、ステップS203の検索対象から外す(ステップS204)。
【0042】
[シーケンス3]
<ノード10bの動作>
ノード10bの管理制御部15bは、シーケンス2のメッセージをノード10fに配信した後、図4のステップS103に戻る。そして、管理制御部15bは、自ノード10bから接続した隣接ノードが存在するか否か判定する(ステップS103)。具体的には、管理制御部15bは、既にメッセージを配信したノード10fのノードID“6”を内包する履歴を検索対象外として、隣接履歴保持部13の被接続履歴テーブル132bに記憶されている履歴を検索する。ここでは、図3に示すように、被接続履歴テーブル132bには、ノードID“6”を内包する履歴以外には、ノードID“8”を内包する履歴と、ノードID“9”を内包する履歴との、2つの履歴が記憶されているため、管理制御部15bは、該当ノードが存在すると判断する(ステップS103;該当ノードあり)。
【0043】
次に、管理制御部15bの配信順序決定機能151bは、該当ノードの中から、一番初めに接続してきたノードを判定する。具体的には、配信順序決定機能151bは、該当ノードID“8”を内包する履歴とノードID“9”を内包する履歴とのうち、古い「時刻」を内包する履歴を判定する。ここでは、図3に示すように、ノードID“8”に対応する「時刻」が古い時刻であるため、配信順序決定機能151bは、ノードID“8”で識別されるノード10hが一番初めに接続してきた隣接ノードであると判定する。そして、管理制御部15bは、メッセージ送信部14bに対して、ノード10hにメッセージを配信するよう指示する。メッセージ送信部14bは、ノード10hにメッセージを配信する(図6に示すノード10bからノード10hへのシーケンス3)。そして、管理制御部15bは、メッセージ配信済みのノード10hを、ステップS103の検索対象から外す(ステップS104)。
【0044】
<シーケンス3;ノード10aの動作>
ノード10aの管理制御部15aは、ノード10cに、シーケンス2のメッセージを転送した後、図5のステップS203に戻る。
管理制御部15aは、メッセージ転送元ノード10bと、既にメッセージを転送したノード10cとを除いて、自ノードに接続してきた隣接ノードが存在するか判定する(ステップS203)。具体的には、管理制御部15aは、隣接履歴保持部13の被接続履歴テーブル132aを検索する。ここでは、図7に示すように、被接続履歴テーブル132aには、ノードID“2”を内包する履歴と、ノードID“3”を内包する履歴と、ノードID“4”を内包する履歴との、3つの履歴が記憶されている。メッセージ転送元ノード10bのノードID“2”と、既にメッセージを転送したノード10cのノードID“3”とは対象外であるが、ノードID“4”は対象ノードIDであるため、管理制御部15aは、該当ノードが存在すると判定する(ステップS203;該当ノードあり)。
【0045】
次に、管理制御部15aの配信順序決定機能151aは、該当ノードの中から、一番初めに接続してきた隣接ノードを判定する。ここでは、該当ノードIDは“4”のみであるため、配信順序決定機能151aは、ノードID“4”で識別されるノード10dが一番初めに接続してきた隣接ノードであると判定する。管理制御部15aは、メッセージ送信部14aに対して、ノード10dにメッセージを転送するよう指示する。メッセージ送信部14aは、ノード10dにメッセージを転送する(図6に示すノード10aからノード10dへのシーケンス3)。そして、管理制御部15aは、メッセージを転送済みの隣接ノード10dを、ステップS203の検索対象から外す(ステップS204)。
【0046】
次に、管理制御部15aは、ステップS203に戻り、メッセージ転送元ノード10bを除いて、該当ノードが存在するか否か判定する。ここでは、既に、ノード10c、10dにメッセージを転送済みであることにより、ノードID“3”を内包する履歴と、ノードID“4”を内包する履歴とは検索対象外である。このため、管理制御部15aは、該当ノードなしと判断し(ステップS203;該当ノードなし)、処理を終了する。
【0047】
<シーケンス3;ノード10cの動作>
一方、ノード10aより、シーケンス2のメッセージを受信したノード10cの動作について説明する。
ノード10cのメッセージ受信部12cがメッセージを受信すると、管理制御部15cは、図5に示されるメッセージ転送処理を行う。
まず、管理制御部15cは、メッセージ転送元ノード10a以外で、自ノード10cから接続した隣接ノードが存在するか判定する(ステップS201)。具体的には、管理制御部15aは、隣接履歴保持部13cの接続履歴テーブル131cを検索する。ここでは、図8に示すように、接続履歴テーブル131cにはメッセージ転送元ノード10aのノードID“1”を内包した履歴しか記憶されていないため、管理制御部15cは該当ノードなしと判断する(ステップS201;該当ノードなし)。
【0048】
次に、管理制御部15cは、メッセージ転送元ノード10a以外の隣接ノードのうち、自ノードに接続してきた隣接ノードが存在するか判定する(ステップS203)。具体的には、管理制御部15cは、隣接履歴保持部13cの被接続履歴テーブル132cを検索する。ここでは、図8に示すように、被接続履歴テーブル132cには、ノードID“5”を内包した履歴とノードID“7”を内包した履歴との2つの履歴が記憶されており、どちらのノードIDも検索対象外のノードIDでないため、管理制御部15cは、該当ノードが存在すると判断する(ステップS203;該当ノードあり)。
【0049】
次に、管理制御部15cの配信順序決定機能151cは、該当ノードの中から、一番初めに接続してきた隣接ノードを判定する。具体的には、配信順序決定機能151cは、ノードID“5”を内包した履歴とノードID“7”を内包した履歴との2つの履歴のうち、古い「時刻」を内包する履歴を判定する。ここでは、図8に示すように、ノードID“5”に対応する「時刻」が最も古い時刻であるため、配信順序決定機能151cは、ノードID“5”で識別されるノード10eが一番初めに接続してきた隣接ノードであると判定する。そして、管理制御部15cは、メッセージ送信部14cに対して、ノード10eにメッセージを転送するよう指示する。メッセージ送信部14aは、ノード10eにメッセージを転送する(図6のノード10cからノード10eへのシーケンス3)。そして、管理制御部15cは、メッセージ転送済みの隣接ノード10eを、ステップS203の判定対象から外す(ステップS204)。
【0050】
[シーケンス4]
<ノード10bの動作>
次に、ノード10bは、ノード10hにシーケンス3のメッセージを配信した後、再度、図4のステップS203に戻る。そして、ノード10bの管理制御部15bは、隣接ノードのうち、自ノード10bに接続してきた隣接ノードが存在するか否かを判定する(ステップS203)。具体的には、管理制御部15bは、隣接履歴保持部13の被接続履歴テーブル132bを検索する。ここでは、図3に示すように、被接続履歴テーブル132bには、ノードID“6” を内包した履歴と、ノードID“8”を内包した履歴と、ノードID“9”を内包した履歴との、3つの履歴が記憶されている。ノードID“6”、“8”で識別されるノードには、既にメッセージが配信されているため対象外であるが、ノードID“9”は、対象ノードIDであるため、管理制御部15bは、該当ノードが存在すると判断する(ステップS103;該当ノードあり)。
【0051】
次に、管理制御部15bの配信順序決定機能151bは、該当するノードを内包する履歴の中から、一番初めに接続してきた隣接ノードを判定する。ここでは、該当するノードIDは“9”のみであるため、配信順序決定機能151bは、ノードID“9”で識別されるノード10iが一番初めに接続してきた隣接ノードであると判定する。管理制御部15bは、メッセージ送信部14bに対して、ノード10iにメッセージを配信する指示を行う。メッセージ送信部14bは、ノード10iにメッセージを配信する(図6に示すノード10bからノード10iへのシーケンス4)。そして、管理制御部15bは、メッセージを配信した隣接ノード10iを、ステップS103の判定対象から外す(ステップS104)。
管理制御部15bは、再び、ステップS103に戻るが、既に、自ノード10bに隣接するノード全てにメッセージを配信しており、該当するノードは存在しないため(ステップS103;該当ノードなし)、処理を終了する。
【0052】
<シーケンス4;ノード10cの動作>
ノード10cは、ノード10eに、シーケンス3のメッセージを転送した後、図5のステップS203に戻る。管理制御部15cは、メッセージ転送元ノード10aと、既にメッセージを転送したノード10e以外で、自ノード10cに接続してきた隣接ノードが存在するか否かを判定する(ステップS203)。具体的には、管理制御部15cは、隣接履歴保持部13cの被接続履歴テーブル132cを検索する。ここでは、図8に示すように、被接続履歴テーブル132aには、ノードID“5”を内包する履歴と、ノードID“7”を内包する履歴との、2つの履歴が記憶されており、既にメッセージを転送したノード10eのノードID“5”は対象外であるが、ノードID“7”は対象ノードIDであるため、管理制御部15cは、該当ノードが存在すると判断する(ステップS203;該当ノードあり)。
【0053】
次に、管理制御部15cの配信順序決定機能151cは、該当ノードの中から、一番初めに接続してきた隣接ノードを判定する。ここでは、該当ノードIDは“7”のみであるため、配信順序決定機能151cは、ノードID“7”で識別されるノード10gが一番初めに接続してきた隣接ノードであると判定する。管理制御部15cは、メッセージ送信部14cに対して、ノード10gにメッセージを転送する指示を行う。メッセージ送信部14cは、ノード10gにメッセージを転送する(図6のノード10cからノード10gへのシーケンス4)。そして、管理制御部15cは、メッセージを転送済みの隣接ノード10gを、ステップS203の検索対象から外す(ステップS204)。
【0054】
管理制御部15cは、ステップS203に戻り、自ノードに接続してきたノードが存在するか否か判定する。ここでは、隣接ノード10e、10gには、既に、メッセージを転送済みであり、対象外であるため、管理制御部15cは、該当ノードなしと判断し(ステップS203;該当ノードなし)、処理を終了する。以上のように、ノード10が隣接履歴保持部13に保持されている履歴を用いて、古くから自ノード10と接続しているノードから順にメッセージを配信することで、最適なメッセージ配信シーケンスを実現することができる。このため、配信ツリーを構成する全てのノードに、最も短い4シーケンス(4単位時間)でメッセージを配信することができる。
【0055】
[2.第2実施形態]
[2.1.構成]
次に、本発明に係る第2実施形態について説明する。まず、本第2実施形態における構成について説明する。
ノード10の記憶部には、第1実施形態とは異なるプログラムが記憶されている。これにより、管理制御部15の配信順序決定機能151は、第1実施形態とは異なるアルゴリズムにより、メッセージの配信順序を決定する。第2実施形態におけるメッセージの配信順序を決定するアルゴリズムは、「より多くのノードが接続されているノードに、先にメッセージを配信する」という考えに基づいている。
【0056】
また、隣接履歴保持部13に保持されている、隣接ノードとの接続状態に関する履歴は、第1実施形態において保持されていた自ノード10についての履歴に加えて、通信ネットワーク1を構成する他の全てのノードについての履歴が保持されている。当該履歴は、他のノードの接続状態が変更されたときに、当該他のノードからノード10に変更情報が通知されて、隣接履歴保持部13に追加保持される。配信順序決定機能151は、メッセージ転送処理やメッセージ配信処理を行う際に、隣接履歴保持部13に保持されている履歴を基に、自ノード10の隣接ノードに接続されている隣接ノード数を算出する。
【0057】
上記以外の第2実施形態の構成は、第1実施形態の構成と同様である。
次に、メッセージ配信元のノード10が実行するメッセージ配信処理について、図9のフローチャートを参照しながら説明する。
まず、管理制御部15の配信順序決定機能151は、隣接履歴保持部13に保持されている履歴を参照して、現在、自ノード10に接続されている隣接ノードを把握する。そして、配信順序決定機能151は、把握した隣接ノードについて、各々の隣接ノードに接続されている隣接ノード数を算出する。配信順序決定機能151は、算出した隣接ノード数の大きさを比較する。そして、配信順序決定機能151は、一番大きい隣接ノード数を有する隣接ノードを選択する(ステップS301:該当ノードあり)。
【0058】
管理制御部15は、メッセージ送信部14に対して、ステップS301において選択したノードに対して、メッセージの配信を指示する。そして、管理制御部15は、当該ノードを選択対象より外す(ステップS302)。
配信順序決定機能151は、ステップS301に戻り、ステップS302において、選択対象外としたノードを除いて、隣接ノード数が最も大きいノードを選択する。
【0059】
全て選択対象外となり、該当ノードが存在しなくなった場合には(ステップS301;該当ノードなし)、管理制御部15は、処理を終了する。
該当ノードが存在する場合には(ステップS301;該当ノードあり)、管理制御部15は、該当ノードが存在しなくなるまで(ステップS301;該当ノードなし)、該当ノードにメッセージを配信する(ステップS302)。
【0060】
次に、隣接ノードよりメッセージを受信したノード10が実行するメッセージ転送処理について、図10のフローチャートを参照しながら説明する。
図10のメッセージ転送処理が、図9のメッセージ配信処理と異なる点は、ノード10のメッセージ受信部12が隣接ノードよりメッセージを受信したことがきっかけとなって処理が行われる点と、ステップS401において、該当ノードが存在するか否かを判定する際に、メッセージ転送元の隣接ノードを対象外とする点である。その他の図10に示すメッセージ転送処理の流れは、図9のメッセージ配信処理と同様であるため、重複した説明を省略する。
【0061】
[2.2.動作]
次に、上記構成における、第2実施形態の動作について説明する。
第2実施形態においても、第1実施形態と同様に、図6に示すように構成された配信ツリーにおいて、ノード10bからメッセージが配信されるものとする。また、その他の第2実施形態における前提は、第1実施形態と同様である。
まず、ノード10bのメッセージ配信処理について、図9を参照しながら説明する。ノード10bは、一番初めにメッセージを配信する隣接ノードを決定する。具体的には、管理制御部15bの配信順序決定機能151bは、隣接履歴保持部13bに保持されている履歴を参照して、自ノード10bに現在接続されている隣接ノードを把握する。
【0062】
ここでは、図3に示すように、接続履歴テーブル131bには、ノードID“1”を内包する履歴が記憶されており、また、被接続履歴テーブル132bには、ノードID“6” を内包する履歴と、ノードID“8” を内包する履歴と、ノードID“9” を内包する履歴とが記憶されている。このため、配信順序決定機能151bは、ノード10a、10f、10h、10iの4つが隣接ノードであると把握する。
【0063】
そして、配信順序決定機能151bは、ノード10a、10f、10h、10i各々について、隣接履歴保持部13bに保持されている履歴を参照して、各々のノードに接続されている隣接ノード数を算出する。ここでは、配信順序決定機能151bは、ノード10aの隣接ノード数“3”と、ノード10fの隣接ノード数“1”と、ノード10hの隣接ノード数“1”と、ノード10iの隣接ノード数“1”とを算出する。そして、配信順序決定機能151bは、各々の隣接ノード数の大きさを比較する。そして、配信順序決定機能151bは、一番大きい隣接ノード数“3”を保持する隣接ノード10aを選択する(ステップS301:該当ノードあり)。
【0064】
管理制御部15bは、メッセージ送信部14bに対して、ステップS301において選択したノード10aにメッセージを配信するよう指示する。メッセージ送信部14bは、ノード10aにメッセージを配信する。管理制御部15bは、当該ノード10aを選択対象より外す(ステップS302)。
そして、管理制御部15bは、該当ノードがなくなるまで(ステップS301:該当ノードなし)、該当ノードにメッセージを配信する(ステップS302)。
【0065】
なお、隣接ノード数が同一のノードが存在した場合には、管理制御部15bは、例えば、第1実施形態で用いた配信順序決定のアルゴリズムを用いて、配信順序を決定する。
次に、ノード10bよりメッセージを受信したノード10aのメッセージ転送処理について、図10を参照しながら説明する。
【0066】
ノード10aのメッセージ受信部12aがメッセージを受信すると、管理制御部15aの配信順序決定機能151aは、隣接履歴保持部13aに保持されている履歴を参照して、転送元ノード10b以外で、自ノード10aに現在接続されている隣接ノードを把握する。ここでは、図7に示すように、接続履歴テーブル131aには、なにも履歴が記憶されておらず、また、被接続履歴テーブル132aには、ノードID“2”を内包する履歴と、ノードID“3”を内包する履歴と、ノードID“4”を内包する履歴とが記憶されている。このため、配信順序決定機能151aは、ノード10b、10c、10dの3つが隣接ノードであると把握するが、ノード10bはメッセージ転送元ノードのため、選択対象外とする。
【0067】
そして、配信順序決定機能151aは、ノード10cとノード10dについて、隣接履歴保持部13aに保持されている履歴を参照して、各々のノードに接続されている隣接ノード数を算出する。ここでは、配信順序決定機能151aは、ノード10cの隣接ノード数“3”、ノード10dの隣接ノード数“1”を算出する。配信順序決定機能151aは、これらの隣接ノード数を比較する。そして、配信順序決定機能151aは、一番大きい隣接ノード数“3”を有する隣接ノード10cを選択する(ステップS401:該当ノードあり)。
【0068】
管理制御部15aは、メッセージ送信部14aに対して、ステップS401において選択したノード10cにメッセージを転送するよう指示する。メッセージ送信部14aは、ノード10cに、メッセージを転送する。管理制御部15aは、メッセージ転送済みのノード10cを選択対象より外す(ステップS402)。そして、管理制御部15aは、該当ノードがなくなるまで(ステップS401:該当ノードなし)、該当ノードにメッセージを転送する(ステップS402)。
【0069】
図6に示す配信ツリーを構成する、その他のノードの動作は、上述したノード10aの動作と基本的に同様である。また、第1実施形態と第2実施形態において説明した配信順序決定のアルゴリズムは、多くのノードが接続されているノードに、先にメッセージを配信するアルゴリズムであるため、第2実施形態におけるメッセージ配信シーケンスは、第1実施形態と同様のメッセージ配信シーケンスとなる。
以上のように、多くのノードが接続されているノードに、先にメッセージを配信するアルゴリズムとすることで、効率的なメッセージ配信シーケンスを実現することができる。
【0070】
[3.第3実施形態]
[3.1.構成]
次に、本発明に係る第3実施形態について説明する。
まず、第3実施形態における構成について説明する。図11は、第3実施形態におけるノード10の機能構成を示すブロック図である。第1実施形態と異なる点は、ノード10がメッセージ受信頻度管理部11を備えている点である。
当該メッセージ受信頻度管理部11は、図12に示すように、転送元ノードを識別するための「ノードID」毎に、メッセージを受信した「頻度」を記憶している。ここでは、「頻度」は、例えば、1時間という単位時間の間に、転送元ノードより配信されてきたメッセージの数を表している。
【0071】
また、ノード10の記憶部には、第1実施形態と異なるプログラムが記憶されている。ノード10のCPUが、このプログラムを実行することにより、メッセージ受信部12が受信したメッセージの数を、転送元ノードID毎に、時間単位で集計し、メッセージ受信頻度管理部11に記憶する。
また、ノード10の記憶部には、第1実施形態とは異なる、配信順序決定のためのプログラムが記憶されている。これにより、管理制御部15の配信順序決定機能151は、第1実施形態と異なるアルゴリズムを用いて、メッセージの配信順序を決定する。第3実施形態におけるメッセージの配信順序を決定するアルゴリズムは、「より多くのノードが接続されているノードに、先にメッセージを配信する」という考えと、「メッセージを高い頻度で配信してくるノードには、より多くのノードが接続されている」という考えに基づいている。
【0072】
上記以外の第3実施形態の構成は、第1実施形態と同様である。
次に、メッセージ配信元のノード10が実行するメッセージ配信処理について、図13のフローチャートを参照しながら説明する。
まず、管理制御部15の配信順序決定機能151は、隣接履歴保持部13に記憶されている履歴を参照して、第2実施形態と同様に、自ノードに現在接続されている隣接ノードを全て把握する。配信順序決定機能151は、把握した隣接ノードのノードIDをメッセージ受信頻度管理部11より検索する。そして、配信順序決定機能151は、検索した「ノードID」に対応する「頻度」を読み出す。配信順序決定機能151は、読み出した「頻度」同士を比較する。そして、配信順序決定機能151は、一番高い「頻度」に対応する「ノードID」で識別されるノードを選択する(ステップS501:該当ノードあり)。
【0073】
管理制御部15は、メッセージ送信部14に対して、ステップS501において選択したノードにメッセージを配信するよう指示する。そして、管理制御部15は、当該ノードを選択対象より外す(ステップS502)。
配信順序決定機能151は、ステップS501に戻り、選択対象外としたノードを除いた隣接ノードの中から、メッセージを受信した頻度が高いノード10を選択する。
【0074】
なお、「頻度」が同一であるノードが存在した場合には、配信順序決定機能151は、例えば、第1実施形態や第2実施形態において説明したアルゴリズムを用いて配信順序を決定する。
また、メッセージ受信部12によるメッセージの受信が1度もないために、メッセージ受信頻度管理部11に「頻度」に関するデータが管理されていない隣接ノードが存在する場合には、配信順序決定機能151は、当該隣接ノードの「頻度」を“0”と判断し、当該隣接ノードに対して一番後にメッセージを配信する。
【0075】
全て選択対象外のノード10となり、該当ノード10が存在しない場合には(ステップS501;該当ノードなし)、管理制御部15は、処理を終了する。
該当ノードが存在する場合には(ステップS501;該当ノードあり)、管理制御部15は、該当ノードが存在しなくなるまで(ステップS501;該当ノードなし)、該当ノードにメッセージを配信する(ステップS502)。
【0076】
次に、隣接ノードよりメッセージを受信したノード10が実行するメッセージ転送処理について、図14のフローチャートを参照しながら説明する。
図14のメッセージ転送処理が、図13のメッセージ配信処理と異なる点は、メッセージ受信部12が隣接ノードよりメッセージを受信したことがきっかけとなって処理が開始される点と、ステップS601において、該当ノードが存在するか否かを判定する際に、メッセージ転送元の隣接ノードを対象外とする点である。その他の図14に示すメッセージ転送処理の流れは、図13に示すメッセージ配信処理と同様であるため、重複した説明を省略する。
【0077】
[3.2.動作]
次に、上記構成における、第3実施形態の動作について説明する。
第3実施形態においても、第1実施形態と同様に、図6に示すように構成された配信ツリーにおいて、ノード10bからメッセージが配信されるものとする。また、その他の前提も第1実施形態と同様であるものとする。
また、ノード10bのメッセージ受信頻度管理部11bには、図12に示すデータが管理されているものとする。また、ノード10aのメッセージ受信頻度管理部11aには、図15に示すデータが管理されているものとする。
【0078】
まず、ノード10bのメッセージ配信処理について、図13を参照しながら説明する。管理制御部15bの配信順序決定機能151bは、隣接履歴保持部13bに記憶されている履歴を参照して、自ノード10bに現在接続されている隣接ノードを把握する。
ここでは、第2実施形態と同様に、配信順序決定機能151bは、ノードID“1”で識別されるノード10aと、ノードID“6”で識別される10fと、ノードID“8”で識別される10hと、ノードID“9”で識別される10iとが隣接ノードであると把握する。
【0079】
そして、配信順序決定機能151bは、把握した隣接ノードについて、メッセージ受信頻度管理部11bより、当該ノードに対応するメッセージの「頻度」を読み出す。ここでは、配信順序決定機能151bは、ノードID“1”の「頻度」“10回/h”、ノードID“6”の「頻度」“5回/h”、ノードID“8”の「頻度」“7回/h”、ノードID“9”の「頻度」“4回/h”を読み出す。配信順序決定機能151は、読み出した「頻度」を比較する。そして、配信順序決定機能151bは、一番頻度が高いのは「頻度」“10回/h”であるため、転送元ノードID“1”で識別されるノード10aを選択する(ステップS501:該当ノードあり)。
【0080】
管理制御部15bは、メッセージ送信部14bに対して、ノード10aにメッセージを配信するよう指示する。メッセージ送信部14bは、ノード10aにメッセージを配信する。そして、管理制御部15bは、メッセージ配信済みのノード10aを選択対象より外す(ステップS502)。
配信順序決定機能151bは、ステップS501に戻り、選択対象外のノード10aを除いた隣接ノードのうち、「頻度」が高いノードID“6”を選択し(ステップS501;該当ノードあり)、管理制御部15bはノードID“6”で識別される10fにメッセージを配信する指示を行う(ステップS502)。そして、管理制御部15bは、該当ノードが存在しなくなるまで(ステップS501;該当ノードなし)、該当ノードにメッセージを配信する(ステップS502)。
【0081】
次に、ノード10bよりメッセージを受信したノード10aのメッセージ転送処理について、図14を参照しながら説明する。
メッセージ受信部12aがメッセージを受信すると、第2実施形態と同様に、管理制御部15aの配信順序決定機能151aは、隣接履歴保持部13aに記憶されている履歴を参照して、転送元ノード10b以外で、自ノード10aに現在接続されている隣接ノードを把握する。ここでは、図7に示すように、接続履歴テーブル131aには、なにも履歴が記憶されておらず、また、被接続履歴テーブル132aには、ノードID“2”を内包する履歴と、ノードID“3”を内包する履歴と、ノードID“4”を内包する履歴とが記憶されている。このため、配信順序決定機能151aは、ノード10b、10c、10dの3つが隣接ノードであると把握するが、ノード10bはメッセージ転送元ノードのため、選択対象外とする。
【0082】
そして、配信順序決定機能151aは、ノードID“3”で識別されるノード10cと、ノードID“4”で識別されるノード10dについて、メッセージ受信頻度管理部11aより、当該ノードに対応するメッセージの「頻度」を読み出す。ここでは、配信順序決定機能151aは、ノードID“3”の「頻度」“3回/h”と、ノードID“4”の「頻度」“1回/h”とを読み出す。配信順序決定機能151aは、読み出した「頻度」を比較する。そして、配信順序決定機能151aは、一番高い頻度は、「頻度」“3回/h”であるため、ノードID“3”で識別されるノード10cを選択する(ステップS601:該当ノードあり)。
【0083】
管理制御部15aは、メッセージ送信部14aに対して、ノード10cにメッセージを転送するよう指示する。メッセージ送信部14aは、ノード10cにメッセージを転送する。そして、管理制御部15aは、メッセージ転送済みのノード10cを選択対象より外す(ステップS602)。
配信順序決定機能151aは、ステップS601に戻り、選択対象外のノード10cを除いた隣接ノードのうち、「頻度」が高いノードID“4”を選択し(ステップS601;該当ノードあり)、管理制御部15aは、ノードID“4”で識別される10dにメッセージを転送するよう指示する(ステップS602)。これにより、該当ノードが存在しなくなるため(ステップS501;該当ノードなし)、管理制御部15aは処理を終了する。
【0084】
図6に示す配信ツリーを構成する、その他のノードの動作は、上述したノード10aの動作と基本的に同様である。また、第1実施形態乃至第3実施形態において説明した配信順序決定のアルゴリズムは、多くのノードが接続されているノードに、先にメッセージを配信するアルゴリズムである。よって、第3実施形態におけるメッセージ配信シーケンスは、メッセージを他のノードから受信する頻度と、当該他のノードに接続されている隣接ノード数とが比例する場合には、第1実施形態及び第2実施形態と同様のメッセージ配信シーケンスとなる。
【0085】
このように、メッセージを配信してくる頻度が高いノードを選択して、先にメッセージを配信することにより、メッセージの頻度とノードに接続されているノードの数とが比例するという前提の基、多くのノードが接続されているノードに、先にメッセージを配信することができるため、最適なメッセージ配信のシーケンスを実現できる。
【0086】
[4.変形例]
以上、本発明の実施形態について説明したが、本発明は係る実施形態に限定されるものではなく、その技術思想の範囲内で様々な変形が可能である。変形例としては、例えば、以下のようなものが考えられる。
(1)上記第1実施形態乃至第3実施形態においては、配信順序決定機能151による配信順序決定のアルゴリズムを3種類説明したが、これらのアルゴリズムは例示に過ぎない。上記3種類のアルゴリズムは、「より多くのノードが接続されているノードに、先にメッセージを配信する」という考えに基づいている。この考えに基づいており、かつ、隣接履歴保持部13に保持された履歴を利用するものであれば、他のアルゴリズムを用いてもよい。
【0087】
例えば、図4に示すアルゴリズムにおいては、ノード10は、自ノード10が接続した隣接ノードにメッセージを配信した後に、自ノード10が接続された隣接ノードにメッセージを配信したが、その逆に、自ノードが接続された隣接ノードにメッセージを配信してから、自ノードが接続した隣接ノードにメッセージを配信するようにしてもよい。
【0088】
また、自ノード10が隣接ノードに接続した場合と接続された場合とを区別せずに、長い間接続している隣接ノードに、先にメッセージを送信するようにしてもよい。
また、上記で説明したアルゴリズムを複合的に用いて配信順序を決定してもよい。例えば、メッセージ配信元となるノードのアルゴリズムとして、第1実施形態において図4に示したアルゴリズムを用い、受信したメッセージを他のノードに転送するノードのアルゴリズムとして、第2実施形態の図10に示したアルゴリズムを用いてもよい。
【0089】
(2)上記実施形態で説明した隣接履歴保持部13のデータ構成は例示に過ぎない。例えば、隣接履歴保持部13には、接続履歴テーブル131と被接続履歴テーブル132との2つのテーブルを設けたが、1つのテーブルとしてもよい。また、上記実施形態においては、隣接履歴保持部13には、隣接ノードの接続(参加)に関する履歴のみが保持されており、隣接ノードは配信グループに参加した後に離脱(脱退)していないとして説明したが、離脱に関する情報も履歴として保持するようにしてもよい。この場合には、管理制御部15は、メッセージ配信処理又はメッセージ転送処理を行う際に、隣接履歴保持部13に保持されている、接続に関する情報と離脱に関する情報とに基づいて、現在接続している隣接ノードを判定するようにする。
【0090】
(3)上記第2実施形態においては、ノード10の隣接履歴保持部13には、通信ネットワーク1を構成する全てのノードについての履歴が、他のノードより通知されて保持されているとして説明したが、他のノードより通知される情報は、これに限定されない。例えば、ノード10に通知されてくる情報は、接続変更に関する情報(履歴)のみならず、隣接ノード数であってもよいし、他のノードの構成情報や管理情報であってもよい。また、上記第2実施形態においては、他のノードの接続状態が変更されたときに、当該他のノードからノード10に変更情報が通知されるとして説明したが、他のノードからノード10への通知タイミングは、これに限定されない。例えば、毎週定期的に、他のノードからノード10へ、変更情報が通知されるようにしてもよい。
【0091】
(4)第3実施形態におけるメッセージ受信頻度管理部11では、ノードID毎にメッセージが配信されてきた「頻度」を記憶することとしたが、これに限定されない。例えば、メッセージ受信頻度管理部11は、「頻度」の代わりに、「メッセージ受信日時」とメッセージ転送元の「ノードID」とを記憶するようにし、メッセージ転送処理時に、当該記憶されている情報に基づいて、メッセージ転送元ノード毎に、「頻度」を算出するようにしてもよい。また、「頻度」は、上記実施形態においては、1時間当たりのメッセージ受信数として説明したが、これに限定されず、例えば、1分間当たりのメッセージ受信数であってよい。また、「頻度」の算出方法としては、他のノードから受信したメッセージの累積受信回数を、当該ノードと接続している経過時間で除算を行ってもよいし、また、リアルタイムで、1時間毎に他のノードから受信したメッセージ数を逐次算出する仕組みであってもよい。
【0092】
【発明の効果】
以上説明したように、ノード装置は、隣接ノード装置との接続状態に関する履歴に基づいてメッセージ配信順序を決定するため、最適な配信シーケンスにより、効率的に、前記通信ネットワークが備えるノード装置全てにメッセージを転送することができる。このため、ノード装置全てに短時間でメッセージを配信することができ、各ノード装置へのメッセージ到達遅延を防ぐことができる。
【図面の簡単な説明】
【図1】本発明の第1実施形態に係る通信ネットワークの構成を示すブロック図である。
【図2】本発明の第1実施形態に係るノードの機能構成を示すブロック図である。
【図3】本発明の第1実施形態に係る隣接履歴保持部が保持するデータの構成を示す図である。
【図4】本発明の第1実施形態に係るメッセージ配信元のノードが行うメッセージ配信処理を示すフローチャートである。
【図5】本発明の第1実施形態に係るメッセージを転送するノードが行うメッセージ転送処理を示すフローチャートである。
【図6】本発明の第1実施形態に係るメッセージ配信シーケンスを説明するための図である。
【図7】本発明の第1実施形態に係るノード10aの隣接履歴保持部が保持するデータ内容を示す図である。
【図8】本発明の第1実施形態に係るノード10cの隣接履歴保持部が保持するデータ内容を示す図である。
【図9】本発明の第2実施形態に係るメッセージ配信元のノードが行うメッセージ配信処理を示すフローチャートである。
【図10】本発明の第2実施形態に係るメッセージを転送するノードが行うメッセージ転送処理を示すフローチャートである。
【図11】本発明の第3実施形態に係るノードの機能構成を示すブロック図である。
【図12】本発明の第3実施形態に係るメッセージ受信頻度管理部により管理されるデータ構成を示す図である。
【図13】本発明の第3実施形態に係るメッセージ配信元のノードが行うメッセージ配信処理を示すフローチャートである。
【図14】本発明の第3実施形態に係るメッセージを転送するノードが行うメッセージ転送処理を示すフローチャートである。
【図15】本発明の第3実施形態に係るノード10aのメッセージ受信頻度管理部により管理されるデータ内容を示す図である。
【図16】従来の通信ネットワークにおけるルータを用いたメッセージ転送方式を説明する図である。
【図17】従来のルータを用いないノード間のメッセージ転送方式を説明する図である。
【図18】従来のメッセージ配信グループにおける配信ツリーの構成例を示す図である。
【図19】配信ツリーにおける最適化されていないメッセージ配信シーケンスを説明するための図である。
【図20】配信ツリーにおける最適化されたメッセージ配信シーケンスを説明するための図である。
【符号の説明】
1 通信ネットワーク
10 ノード
11 メッセージ受信頻度管理部
12 メッセージ受信部
13 隣接履歴保持部
14 メッセージ送信部
15 管理制御部
151 配信順序決定機能
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a node device for distributing a message and a message distribution method, and more particularly to a node device and a message distribution method for efficiently distributing a message to a plurality of connected nodes.
[0002]
[Prior art]
As a method for distributing a message from a distribution source node to another node in a communication network in which a plurality of nodes are connected, a method shown in FIG. 16 is conventionally known (for example, see Non-Patent Document 1). . The communication network shown in the figure includes a router that performs message routing and a node such as a personal computer or a server, and a message is transferred by the router.
[0003]
On the other hand, in recent years, research on the message transfer method shown in FIG. 17 has been conducted. In the method shown in the figure, message routing is not performed at all by a router, and message transfer is performed between adjacent nodes based on information held by each node regarding the connection state with the adjacent node. .
Further, as a technique for performing processing based on information related to the connection state of nodes, a technique for efficiently connecting nodes based on a history of connection between nodes is known (for example, see Patent Document 1). .
[0004]
[Patent Document 1]
Japanese Patent Laid-Open No. 11-15715 (FIG. 8)
[Non-Patent Document 1]
D. Waitzman et al. “Distance Vector Multicast Routing Protocol”, [online], November 1998, RFC 1075, The Internet Engineering Task Force (IETF), [Search June 23, 2003] Internet <URL: http: // www. ietf.org/rfc/rfc1075.txt>
[0005]
[Problems to be solved by the invention]
The router is a device specialized for data transfer and includes a plurality of network interfaces. For this reason, in the message transfer method using the router shown in FIG. 16, it is possible to transfer messages to all adjacent nodes simultaneously. On the other hand, in the message transfer method that does not use the router shown in FIG. 17, each node is responsible for message transfer. However, since the node has only a single network interface, the node performs message transfer by using the network interface in a time-sharing manner. Therefore, the node cannot perform message transfer to all adjacent nodes at the same time, and sequentially performs message transfer for each adjacent node. For this reason, a time difference occurs in message transfer to each adjacent node. Also, depending on the order in which a node transfers a message to an adjacent node, there is a problem that it takes time until the message is transferred to all connected nodes.
[0006]
FIG. 18 shows an example of a connection form between nodes in a message distribution group (hereinafter referred to as “distribution tree”). Circles in the figure are nodes, and the numbers in the circles indicate the order in which the nodes participate in the distribution group (connected to the nodes constituting the distribution tree).
FIG. 19 and FIG. 20 show examples of message distribution sequences when a message is transferred between nodes in the distribution tree configured as shown in FIG.
[0007]
The message delivery sequence shown in FIG. 19 is a sequence example in the case where a message delivery source node delivers messages in order from an adjacent node with a late order of joining a delivery group. On the other hand, the message delivery sequence shown in FIG. 20 is an example of a sequence in which the message delivery source node delivers messages in order from the adjacent node in the early order of participation in the delivery group.
[0008]
In such a distribution tree, assuming that the delay time until link establishment between nodes is equal and that the time required for message transfer between nodes is equal, one arrow in the figure One message delivery sequence shown can be considered to represent a unit time. That is, it takes a time proportional to the message distribution sequence number shown in the figure until a message is distributed to all the nodes constituting the distribution tree. Accordingly, the message delivery sequence shown in FIG. 19 takes 7/4 times longer than the message delivery sequence shown in FIG. 20 to deliver the message to all the nodes constituting the delivery tree. . This time difference occurs because it is more probable that messages are delivered more efficiently to nodes that have a larger number of neighboring nodes first, and the nodes that join the delivery group earlier are more adjacent. This is because the probability of increasing the number of nodes is high.
[0009]
In the message delivery method between nodes not using a router, an efficient message communication sequence as shown in FIG. 20 is not guaranteed, and there is a problem that a transmission delay occurs. In order to guarantee an efficient message delivery sequence at all times, it is necessary to construct a mechanism for efficiently delivering messages by using information related to the connection state with adjacent nodes held by each node.
[0010]
Here, Patent Document 1 describes a configuration for holding a history relating to a connection state with another node. However, the history is used to predict a connectable time for a connection destination node. For this reason, the technique described in Patent Document 1 cannot be used to construct a mechanism for efficiently distributing messages in a distribution tree in which nodes are already connected to each other.
The present invention has been made in view of the above, and an object thereof is to provide a node device and a message distribution method for realizing an efficient message distribution sequence in a communication network in which a plurality of nodes are connected. is there.
[0011]
[Means for Solving the Problems]
In order to solve the above-mentioned problem, the invention according to claim 1 is an adjoining history for maintaining a history of connection states with adjacent node devices adjacent to the node device in a node device constituting a communication network for delivering messages. A node device comprising: a holding unit; and a distribution order determining unit that determines a distribution order of messages to be distributed to the adjacent node device based on a history held in the adjacent history holding unit. To do.
[0012]
According to the first aspect of the present invention, the node device determines a message delivery order based on a history regarding a connection state with an adjacent node device adjacent to the node device held by the adjacent history holding unit. Therefore, the node device can deliver messages in an optimal order. For this reason, an optimal message delivery sequence can be realized for the entire communication network, and a message can be efficiently and quickly transferred to the entire node device included in the communication network. For this reason, the message arrival delay to each node device can be prevented. Further, since the efficient transfer can be realized, the limited resources of the communication network can be effectively used.
[0013]
The invention according to claim 2 is the node device according to claim 1, wherein the adjacent history holding means includes adjacent node identification information for identifying the adjacent node device, the adjacent node device and the node The distribution time determination means corresponds to the adjacent node identification information for the adjacent node device identified by the adjacent node identification information, and is associated with the time when the device is connected and stored as the history. It is determined that the messages are distributed in the order of oldest attached time.
[0014]
According to the second aspect of the present invention, since a message can be delivered to an adjacent node device that has been connected to the own device for a long time, the node device that has been connected to the own device for a long time. In addition, based on the premise that more node devices are connected, a message can be distributed first to an adjacent node device to which more node devices are connected. For this reason, an optimal delivery sequence can be realized and a message can be efficiently delivered to all the node devices included in the communication network. For this reason, a message can be delivered to all the node devices in a short time, and a message arrival delay to each node device can be prevented.
[0015]
According to a third aspect of the present invention, in the node device according to the first or second aspect, the distribution order determining unit is adjacent to the own device based on the history held in the adjacent history holding unit. An adjacent node device is determined, and it is determined that messages are distributed to the adjacent node device in the descending order of the number of adjacent node devices among the determined adjacent node devices.
[0016]
According to the third aspect of the present invention, the distribution order determination unit determines to distribute messages to the adjacent node devices in descending order of the number of node devices adjacent to the adjacent node device. The message can be transferred first to a node device to which more node devices are connected. For this reason, an optimal delivery sequence can be realized and a message can be efficiently delivered to all the node devices included in the communication network. For this reason, a message can be delivered to all the node devices in a short time, and a message arrival delay to each node device can be prevented.
[0017]
The invention according to claim 4 is the node device according to any one of claims 1 to 3, wherein the frequency of the adjacent node device delivering a message to the own device is determined for each adjacent node device. A message reception frequency managing means for managing, wherein the delivery order determining means determines an adjacent node device adjacent to the own device based on a history held in the connection history holding means, and the determined The messages are distributed to adjacent node devices in descending order of the frequency managed by the message reception frequency managing means.
[0018]
According to the fourth aspect of the present invention, since the message can be delivered first to the node device that has delivered the message to the own device, the message device can be delivered to the node device that is frequently delivered. Is capable of delivering a message to a node device to which more node devices are connected based on the assumption that many node devices are connected. For this reason, an optimal delivery sequence can be realized and a message can be efficiently delivered to all the node devices included in the communication network. For this reason, a message can be delivered to all the node devices in a short time, and a message arrival delay to each node device can be prevented.
[0019]
The invention according to claim 5 is a message delivery method for delivering a message to an adjacent node device based on a history relating to a connection state between the specific node device and an adjacent node device adjacent to the specific node device. A search step for searching at least one of a history indicating that the specific node device is connected to the adjacent node device and a history indicating that the specific node device is connected by the adjacent node device; And a distribution step of distributing the message to the adjacent node devices represented by the history in order of oldest history searched in the search step.
[0020]
According to the fifth aspect of the present invention, since the procedure is to distribute the message to the adjacent node devices represented by the history in order from the oldest, the neighbors connected to the own device for a long time. A message can be distributed to the node device. Therefore, based on the premise that many node devices are connected to the node device that has been connected to the device for a long time, a message is first sent to the adjacent node device to which more node devices are connected. Can be delivered. Since an optimal distribution sequence can be realized in this way, a message can be efficiently transferred to all the node devices included in the communication network. For this reason, a message can be transferred to all the node devices in a short time, and a message arrival delay to each node device can be prevented.
[0021]
DETAILED DESCRIPTION OF THE INVENTION
Next, embodiments of the present invention will be described with reference to the drawings. In each drawing referred to in the following description, the same reference numerals are given to the same parts as in the other drawings.
[1. First Embodiment]
[1.1. Constitution]
FIG. 1 shows the configuration of a communication network 1 according to the first embodiment of the present invention. The communication network 1 includes a plurality of nodes. In the figure, the communication network 1 includes nine nodes 10a, 10b,..., 10i connected to each other to form a distribution tree. These connected nodes form, for example, a data distribution group called a multicast group. Each node transfers data such as a multicast message to and from other nodes.
[0022]
Since each node has the same function and configuration, in the following description, each node included in the communication network 1 will be described as a node 10 when it is not necessary to particularly distinguish each node.
The node 10 is a device such as a personal computer or a server, and has a general computer hardware configuration. That is, the node 10 exchanges data with a CPU (Central Processing Unit) that controls the entire node 10, a storage unit including a ROM (Read Only Memory), a RAM (Random Access Memory), and a hard disk device, and an adjacent node. And a time measuring unit for measuring time (year / month / day / hour / minute / second). The functions of the node 10 shown in FIG. 2 are realized by these hardware and software stored in the storage unit.
[0023]
FIG. 2 is a block diagram illustrating a functional configuration of the node 10. As shown in the figure, the node 10 includes a message receiving unit 12, an adjacent history holding unit 13, a message transmitting unit 14, and a management control unit 15.
The adjacent history holding unit 13 stores a history related to a connection state with an adjacent node adjacent to the node 10. The adjacent history holding unit 13 includes a connection history table 131 and a connected history table 132.
[0024]
The connection history table 131 stores a history of the own node 10 connecting to an adjacent node. In addition, the connected history table 132 stores a history that the own node 10 is connected to an adjacent node.
FIG. 3 shows the data structure of the history stored in the connection history table 131 and the connected history table 132. As shown in the figure, the history stored in the connection history table 131 includes “time” when the own node 10 is connected to an adjacent node, and “node ID” for identifying the adjacent node. . The history stored in the connected history table 132 includes “time” when the node 10 is connected to the adjacent node and “node ID” of the adjacent node. These histories are generated by the node 10 and stored in the tables 131 and 132 when the node 10 and another node are connected.
[0025]
The message receiving unit 12 receives a message from an adjacent node. The message transmission unit 14 distributes the message to adjacent nodes. The management control unit 15 controls each unit of the node 10 to distribute a message to an adjacent node having the local node 10 as a distribution source, or to distribute a message received from the adjacent node to another adjacent node (that is, Message transfer). The management control unit 15 includes a distribution order determination function 151. The distribution order determination function 151 determines the distribution order of messages to be distributed to other adjacent nodes based on the history held in the connection history holding unit 13.
[0026]
Next, a message delivery control function performed by the management control unit 15 of the node 10 will be described. First, with reference to the flowchart of FIG. 4, a message delivery process when the message delivery source node 10 delivers a message to another node will be described.
Note that this message delivery algorithm is based on the idea of “delivering messages first to nodes that have more nodes connected” and “nodes that previously existed in the delivery group ( Based on the idea that “more nodes are connected to the node connected to the own node 10”.
[0027]
First, the management control unit 15 of the node 10 determines whether there is an adjacent node connected from the own node 10 (step S101). Specifically, the management control unit 15 searches whether a history is stored in the connection history table 131 of the adjacent history holding unit 13. As a result of the search, if it is determined that the corresponding node exists (step S101; with the corresponding node), the distribution order determination function 151 selects the adjacent node connected first (at the oldest time) from the corresponding nodes. Determine the node. Specifically, the distribution order determination function 151 determines a history including the oldest “time” from the history including the corresponding node, and extracts the “node ID” of the history.
[0028]
Then, the management control unit 15 instructs the message transmission unit 14 to distribute the message to the node identified by the extracted “node ID”.
Then, the management control unit 15 excludes the node that has delivered the message from the search target of Step S101 (Step S102).
The management control unit 15 repeats the processing of steps S101 to S102 until there is no target node (step S101; no corresponding node).
[0029]
When the target node no longer exists (step S101; no corresponding node), the management control unit 15 determines whether there is an adjacent node connected to the own node 10 among the adjacent nodes (step S101). S103). Specifically, the management control unit 15 searches whether the history is stored in the connected history table 132 of the adjacent history holding unit 13. As a result of the search, if it is determined that the corresponding node exists (step S103; corresponding node exists), the distribution order determination function 151 is connected to the adjacent node that is connected at the earliest (oldest time) among the corresponding nodes. Determine the node. Specifically, the distribution order determination function 151 determines a history including the oldest “time” from the history including the corresponding node, and extracts the “node ID” of the history. Then, the management control unit 15 instructs the message transmission unit 14 to distribute the message to the node identified by the extracted “node ID”. Then, the management control unit 15 removes the adjacent node to which the message has been distributed from the search target in step S103 (step S104). The management control unit 15 repeats the processes in steps S103 to S104 until there is no target node (step S103; no corresponding node).
[0030]
Next, a message transfer process in which the node 10 transfers a message transferred from an adjacent node to another adjacent node will be described with reference to the flowchart of FIG.
The message transfer process shown in FIG. 5 is different from the message delivery process shown in FIG. 4 in that the message reception unit 12 of the node 10 receives the message from the adjacent node, and the process is performed. In determining whether or not the corresponding node exists in S201 and step S203, the message transfer source adjacent node is excluded. The other flow of the message transfer process shown in FIG. 5 is the same as the message delivery process shown in FIG.
[0031]
[1.2. Operation]
Next, the operation of the first embodiment in the above configuration will be described.
As a premise, the communication network 1 described in the following operation includes a node 10a, a node 10b,..., And a node 10i connected to each other as shown in FIG. The node ID for identifying the node 10a is “1”, the node ID of the node 10a is “2”,..., And the node ID of the node 10i is “9”, and the information is stored in each node. It is assumed that it is managed by the department.
[0032]
Further, it is assumed that the history of data contents shown in FIG. 3 is stored in the adjacent history holding unit 13b of the node 10b. Further, the history of data contents shown in FIG. 7 is stored in the adjacent history holding unit 13a of the node 10a, and the history of data contents shown in FIG. 8 is stored in the adjacent history holding unit 13c of the node 10c. It shall be. It is assumed that the node identified by the node ID included in these histories does not leave (withdraw) from the distribution group after being connected (joined) to an adjacent node (joined). Therefore, all the nodes identified by the node ID held in the adjacent history holding unit 13 are adjacent nodes connected to the node 10.
[0033]
Further, it is assumed that the delay time until the communication link is established between the nodes is the same, and the time required for transferring the message between the nodes is the same. Therefore, the message delivery sequence indicated by one arrow in FIG. 6 represents the same unit time.
In the following, with reference to FIGS. 4 to 6, the operation of each node constituting the communication network 1 when the node 10b identified by the node ID “2” distributes the message to the adjacent node is described in unit time ( The sequence will be described in order of sequence number).
[0034]
[Sequence 1]
<Operation of Node 10b>
First, the management control unit 15b of the node 10b determines whether or not there is an adjacent node connected from its own node, as shown in FIG. Step S101). Specifically, the management control unit 15b searches whether a history is stored in the connection history table 131b of the adjacent history holding unit 13b. Here, as shown in FIG. 3, since the history of the node 10a identified by the node ID “1” is stored in the connection history table 131b, the management control unit 15b determines that the corresponding node exists. (Step S101; corresponding node exists).
[0035]
Next, the distribution order determination function 151b of the management control unit 15b determines the first connected node from among the nodes determined as corresponding nodes. Then, the management control unit 15b instructs the message transmission unit 14b to distribute the message to the determined node. Here, since there is one node determined to be the corresponding node, the management control unit 15b instructs the message transmission unit 14b to distribute the message to the node 10a identified by the node ID “1”. . The message transmission unit 14b distributes the message to the node 10a (message distribution sequence 1 shown in FIG. 6). Then, the management control unit 15b removes the adjacent node 10a to which the message has been distributed from the search target in Step S101 (Step S102).
[0036]
[Sequence 2]
<Operation of Node 10b>
The management control unit 15b of the node 10b returns the message of sequence 1 and then returns to step S101 in FIG. The management control unit 15b determines whether there is an adjacent node connected from the own node 10b (step S101). Specifically, the management control unit 15b searches the connection history table 131b of the adjacent history holding unit 13b. Here, since the history of the adjacent node identified by the node ID “1” is excluded from the search target, the management control unit 15b determines that there is no corresponding node (step S101; no corresponding node).
[0037]
Next, the management control unit 15b determines whether there is an adjacent node connected to the own node among the adjacent nodes (step S103). Specifically, the management control unit 15b searches whether a history is stored in the connected history table 132b of the adjacent history holding unit 13b. Here, as shown in FIG. 3, the connected history table 132b includes a history that includes the node ID “6”, a history that includes the node ID “8”, and a history that includes the node ID “9”. Since the three histories are stored, the management control unit 15b determines that the corresponding node exists (step S103; there is a corresponding node).
[0038]
Next, the distribution order determination function 151b of the management control unit 15b determines the adjacent node that is connected first among the corresponding nodes. Specifically, the distribution order determination function 151b determines a history including the oldest “time” from the three histories described above. Here, as shown in FIG. 3, since the “time” corresponding to the node ID “6” is the oldest time, the distribution order determination function 151b is the node 10f identified by the node ID “6”. It is determined that the adjacent node is the first connected node. Then, the management control unit 15b instructs the message transmission unit 14b to distribute the message to the node 10f. The message transmission unit 14b distributes the message to the node 10f (sequence 2 from the node 10b to the node 10f in FIG. 6). Then, the management control unit 15b removes the adjacent node 10f that has distributed the message from the search target of Step S103 (Step S104).
[0039]
<Sequence 2; operation of the node 10a>
On the other hand, the operation of the node 10a that has received the message of sequence 1 from the node 10b will be described. When the message receiving unit 12a of the node 10a receives the message, the management control unit 15a of the node 10a performs a message transfer process shown in FIG. First, the management control unit 15a of the node 10a determines whether there is an adjacent node connected from the own node 10a other than the message transfer source node 10b (step S201). Specifically, the management control unit 15a searches whether a history is stored in the connection history table 131a of the adjacent history holding unit 13a. Here, as shown in FIG. 7, since no history is stored in the connection history table 131a, the management control unit 15a determines that there is no corresponding node (step S201; no corresponding node).
[0040]
Next, the management control unit 15a determines whether there is an adjacent node connected to the own node 10a among the adjacent nodes other than the message transfer source node 10b (step S103). Specifically, the management control unit 15a searches whether a history is stored in the connected history table 132a of the adjacent history holding unit 13a. Here, as shown in FIG. 7, the connected history table 132 a includes a history including the node ID “2”, a history including the node ID “3”, and a history including the node ID “4”. The three histories are stored. The node ID “2” of the message transfer source node 10b is not a target, but the node IDs “3” and “4” are the node IDs of the target node, so the management control unit 15a determines that the corresponding node exists. (Step S203; corresponding node exists).
[0041]
Next, the distribution order determination function 151a of the management control unit 15a determines the adjacent node that is connected first among the corresponding nodes. Specifically, the distribution order determination function 151a determines the history including the oldest “time” from the history including the node ID “3” and the history including the node ID “4”. Here, since the “time” corresponding to the node ID “3” is the oldest time, the distribution order determination function 151a is connected to the node 10c identified by the node ID “3” first. Determine that it is a node. Then, the management control unit 15a instructs the message transmission unit 14a to transfer the message to the node 10c. The message transmission unit 14a transfers the message to the node 10c (sequence 2 from the node 10a to the node 10c in FIG. 6). Then, the management control unit 15a removes the adjacent node 10c to which the message has been transferred from the search target in step S203 (step S204).
[0042]
[Sequence 3]
<Operation of Node 10b>
The management control unit 15b of the node 10b distributes the message of sequence 2 to the node 10f, and then returns to step S103 in FIG. Then, the management control unit 15b determines whether there is an adjacent node connected from the own node 10b (step S103). Specifically, the management control unit 15b stores the history including the node ID “6” of the node 10f that has already delivered the message as a search target, and stores it in the connected history table 132b of the adjacent history holding unit 13. Search the history. Here, as shown in FIG. 3, in the connected history table 132b, in addition to the history including the node ID “6”, the history including the node ID “8” and the node ID “9” are included. Since two histories are stored, the management control unit 15b determines that the corresponding node exists (step S103; there is a corresponding node).
[0043]
Next, the distribution order determination function 151b of the management control unit 15b determines the node that is connected first from the corresponding nodes. Specifically, the distribution order determination function 151b determines a history including the old “time” from a history including the node ID “8” and a history including the node ID “9”. Here, as shown in FIG. 3, since the “time” corresponding to the node ID “8” is an old time, the distribution order determination function 151b starts with the node 10h identified by the node ID “8” first. It is determined that it is an adjacent node connected to the. Then, the management control unit 15b instructs the message transmission unit 14b to distribute the message to the node 10h. The message transmission unit 14b distributes the message to the node 10h (sequence 3 from the node 10b to the node 10h shown in FIG. 6). Then, the management control unit 15b removes the node 10h to which the message has been distributed from the search target in Step S103 (Step S104).
[0044]
<Sequence 3; Operation of Node 10a>
The management control unit 15a of the node 10a transfers the message of sequence 2 to the node 10c, and then returns to step S203 in FIG.
The management control unit 15a determines whether there is an adjacent node connected to the own node, excluding the message transfer source node 10b and the node 10c that has already transferred the message (step S203). Specifically, the management control unit 15 a searches the connected history table 132 a of the adjacent history holding unit 13. Here, as shown in FIG. 7, the connected history table 132 a includes a history including the node ID “2”, a history including the node ID “3”, and a history including the node ID “4”. The three histories are stored. Since the node ID “2” of the message transfer source node 10b and the node ID “3” of the node 10c that has already transferred the message are excluded, the node ID “4” is the target node ID. 15a determines that the corresponding node exists (step S203; corresponding node exists).
[0045]
Next, the distribution order determination function 151a of the management control unit 15a determines the adjacent node that is connected first among the corresponding nodes. Here, since the corresponding node ID is only “4”, the distribution order determination function 151 a determines that the node 10 d identified by the node ID “4” is the adjacent node to which the node 10 d is connected first. The management control unit 15a instructs the message transmission unit 14a to transfer the message to the node 10d. The message transmission unit 14a transfers the message to the node 10d (sequence 3 from the node 10a to the node 10d shown in FIG. 6). Then, the management control unit 15a removes the adjacent node 10d to which the message has been transferred from the search target in Step S203 (Step S204).
[0046]
Next, the management control unit 15a returns to step S203, and determines whether or not the corresponding node exists except for the message transfer source node 10b. Here, since the message has already been transferred to the nodes 10c and 10d, the history including the node ID “3” and the history including the node ID “4” are not search targets. Therefore, the management control unit 15a determines that there is no corresponding node (step S203; no corresponding node), and ends the process.
[0047]
<Sequence 3; Operation of Node 10c>
On the other hand, the operation of the node 10c that has received the message of sequence 2 from the node 10a will be described.
When the message receiving unit 12c of the node 10c receives the message, the management control unit 15c performs a message transfer process shown in FIG.
First, the management control unit 15c determines whether there is an adjacent node connected from the own node 10c other than the message transfer source node 10a (step S201). Specifically, the management control unit 15a searches the connection history table 131c of the adjacent history holding unit 13c. Here, as shown in FIG. 8, since only the history including the node ID “1” of the message transfer source node 10a is stored in the connection history table 131c, the management control unit 15c determines that there is no corresponding node ( Step S201: No corresponding node).
[0048]
Next, the management control unit 15c determines whether there is an adjacent node connected to the own node among adjacent nodes other than the message transfer source node 10a (step S203). Specifically, the management control unit 15c searches the connected history table 132c of the adjacent history holding unit 13c. Here, as shown in FIG. 8, the connected history table 132c stores two histories, a history including the node ID “5” and a history including the node ID “7”. Since the node ID is not a node ID that is not a search target, the management control unit 15c determines that the corresponding node exists (step S203; there is a corresponding node).
[0049]
Next, the distribution order determination function 151c of the management control unit 15c determines the adjacent node that has been connected first from the corresponding nodes. Specifically, the delivery order determination function 151c determines a history including the old “time” out of two histories including the history including the node ID “5” and the history including the node ID “7”. . Here, as shown in FIG. 8, since the “time” corresponding to the node ID “5” is the oldest time, the distribution order determination function 151c has the node 10e identified by the node ID “5” as the first. It is determined that the adjacent node is the first connected node. Then, the management control unit 15c instructs the message transmission unit 14c to transfer the message to the node 10e. The message transmission unit 14a transfers the message to the node 10e (sequence 3 from the node 10c to the node 10e in FIG. 6). Then, the management control unit 15c removes the adjacent node 10e to which the message has been transferred from the determination target in step S203 (step S204).
[0050]
[Sequence 4]
<Operation of Node 10b>
Next, after delivering the message of sequence 3 to the node 10h, the node 10b returns to step S203 in FIG. 4 again. Then, the management control unit 15b of the node 10b determines whether there is an adjacent node connected to the own node 10b among the adjacent nodes (step S203). Specifically, the management control unit 15 b searches the connected history table 132 b of the adjacent history holding unit 13. Here, as shown in FIG. 3, the connected history table 132b includes a history including the node ID “6”, a history including the node ID “8”, and a history including the node ID “9”. The three histories are stored. Since the message has already been distributed to the nodes identified by the node IDs “6” and “8”, the node ID “9” is the target node ID, so the management control unit 15b , It is determined that the corresponding node exists (step S103; corresponding node exists).
[0051]
Next, the delivery order determination function 151b of the management control unit 15b determines the adjacent node that has been connected first from the history including the corresponding node. Here, since the corresponding node ID is only “9”, the distribution order determination function 151b determines that the node 10i identified by the node ID “9” is the first adjacent node to which the node 10i is connected. The management control unit 15b instructs the message transmission unit 14b to distribute the message to the node 10i. The message transmission unit 14b distributes the message to the node 10i (sequence 4 from the node 10b to the node 10i shown in FIG. 6). Then, the management control unit 15b removes the adjacent node 10i that has delivered the message from the determination target in step S103 (step S104).
The management control unit 15b returns to step S103 again, but has already delivered the message to all the nodes adjacent to the own node 10b, and there is no corresponding node (step S103; no corresponding node). finish.
[0052]
<Sequence 4; operation of the node 10c>
After transferring the message of sequence 3 to the node 10e, the node 10c returns to step S203 in FIG. The management control unit 15c determines whether there is an adjacent node connected to the own node 10c other than the message transfer source node 10a and the node 10e that has already transferred the message (step S203). Specifically, the management control unit 15c searches the connected history table 132c of the adjacent history holding unit 13c. Here, as shown in FIG. 8, the connected history table 132a stores two histories, a history including the node ID “5” and a history including the node ID “7”. Since the node ID “5” of the node 10e that has already transferred the message is not a target, but the node ID “7” is a target node ID, the management control unit 15c determines that the corresponding node exists (step S203; (There is a corresponding node).
[0053]
Next, the distribution order determination function 151c of the management control unit 15c determines the adjacent node that has been connected first from the corresponding nodes. Here, since the corresponding node ID is only “7”, the distribution order determination function 151c determines that the node 10g identified by the node ID “7” is the first adjacent node to which the node 10g is connected. The management control unit 15c instructs the message transmission unit 14c to transfer the message to the node 10g. The message transmission unit 14c transfers the message to the node 10g (sequence 4 from the node 10c to the node 10g in FIG. 6). Then, the management control unit 15c removes the adjacent node 10g to which the message has been transferred from the search target in Step S203 (Step S204).
[0054]
The management control unit 15c returns to step S203 and determines whether there is a node connected to the own node. Here, since the message has already been transferred to the adjacent nodes 10e and 10g and is not a target, the management control unit 15c determines that there is no corresponding node (step S203; no corresponding node), and ends the processing. To do. As described above, an optimal message distribution sequence is realized by distributing messages in order from the node connected to the own node 10 for a long time using the history stored in the adjacent history storage unit 13 by the node 10 can do. For this reason, a message can be distributed to all the nodes constituting the distribution tree in the shortest 4 sequences (4 unit times).
[0055]
[2. Second Embodiment]
[2.1. Constitution]
Next, a second embodiment according to the present invention will be described. First, the configuration of the second embodiment will be described.
The storage unit of the node 10 stores a program different from that in the first embodiment. Thereby, the delivery order determination function 151 of the management control unit 15 determines the delivery order of messages by an algorithm different from that of the first embodiment. The algorithm for determining the delivery order of messages in the second embodiment is based on the idea that “messages are delivered first to nodes to which more nodes are connected”.
[0056]
In addition to the history of the own node 10 held in the first embodiment, the history related to the connection state with the adjacent node held in the adjacent history holding unit 13 is the other history that configures the communication network 1. A history for all nodes is maintained. When the connection state of another node is changed, the change information is notified from the other node to the node 10, and the history is additionally held in the adjacent history holding unit 13. The distribution order determination function 151 calculates the number of adjacent nodes connected to the adjacent node of the own node 10 based on the history held in the adjacent history holding unit 13 when performing message transfer processing and message distribution processing. To do.
[0057]
The configuration of the second embodiment other than the above is the same as the configuration of the first embodiment.
Next, message delivery processing executed by the message delivery source node 10 will be described with reference to the flowchart of FIG.
First, the distribution order determination function 151 of the management control unit 15 refers to the history held in the adjacent history holding unit 13 and grasps the adjacent node currently connected to the own node 10. Then, the distribution order determination function 151 calculates the number of adjacent nodes connected to each adjacent node for the recognized adjacent nodes. The distribution order determination function 151 compares the calculated numbers of adjacent nodes. Then, the distribution order determination function 151 selects an adjacent node having the largest number of adjacent nodes (step S301: there is a corresponding node).
[0058]
The management control unit 15 instructs the message transmission unit 14 to distribute the message to the node selected in step S301. Then, the management control unit 15 removes the node from the selection target (step S302).
The delivery order determination function 151 returns to step S301, and selects a node having the largest number of adjacent nodes, excluding nodes that are not selected, in step S302.
[0059]
When all are excluded from the selection target and the corresponding node no longer exists (step S301; no corresponding node), the management control unit 15 ends the process.
If the corresponding node exists (step S301; corresponding node exists), the management control unit 15 distributes the message to the corresponding node until there is no corresponding node (step S301; no corresponding node) (step S302). .
[0060]
Next, message transfer processing executed by the node 10 that has received a message from an adjacent node will be described with reference to the flowchart of FIG.
The message transfer process of FIG. 10 is different from the message delivery process of FIG. 9 in that the process is triggered by the message receiving unit 12 of the node 10 receiving a message from an adjacent node, and in step S401. When determining whether or not the corresponding node exists, the message transfer source adjacent node is excluded. The other flow of the message transfer process shown in FIG. 10 is the same as that of the message delivery process in FIG.
[0061]
[2.2. Operation]
Next, the operation of the second embodiment in the above configuration will be described.
In the second embodiment, similarly to the first embodiment, it is assumed that a message is distributed from the node 10b in the distribution tree configured as shown in FIG. The other premise in the second embodiment is the same as that in the first embodiment.
First, the message delivery process of the node 10b will be described with reference to FIG. The node 10b determines the adjacent node to which the message is delivered first. Specifically, the distribution order determination function 151b of the management control unit 15b refers to the history held in the adjacent history holding unit 13b and grasps the adjacent node currently connected to the own node 10b.
[0062]
Here, as shown in FIG. 3, the connection history table 131b stores the history including the node ID “1”, and the connected history table 132b includes the node ID “6”. A history, a history including the node ID “8”, and a history including the node ID “9” are stored. For this reason, the delivery order determination function 151b recognizes that the four nodes 10a, 10f, 10h, and 10i are adjacent nodes.
[0063]
Then, the distribution order determination function 151b calculates the number of adjacent nodes connected to each node with reference to the history held in the adjacent history holding unit 13b for each of the nodes 10a, 10f, 10h, and 10i. . Here, the distribution order determination function 151b performs the number of adjacent nodes “3” of the node 10a, the number of adjacent nodes “1” of the node 10f, the number of adjacent nodes “1” of the node 10h, and the number of adjacent nodes of the node 10i “ 1 "is calculated. Then, the distribution order determination function 151b compares the numbers of adjacent nodes. Then, the delivery order determination function 151b selects the adjacent node 10a that holds the largest adjacent node number “3” (step S301: corresponding node exists).
[0064]
The management control unit 15b instructs the message transmission unit 14b to distribute the message to the node 10a selected in step S301. The message transmission unit 14b distributes the message to the node 10a. The management control unit 15b removes the node 10a from the selection target (step S302).
Then, the management control unit 15b distributes the message to the corresponding node until there is no corresponding node (step S301: no corresponding node) (step S302).
[0065]
If there are nodes having the same number of adjacent nodes, the management control unit 15b determines the distribution order using, for example, the distribution order determination algorithm used in the first embodiment.
Next, message transfer processing of the node 10a that has received a message from the node 10b will be described with reference to FIG.
[0066]
When the message receiving unit 12a of the node 10a receives the message, the delivery order determining function 151a of the management control unit 15a refers to the history held in the adjacent history holding unit 13a, and the own node other than the transfer source node 10b. Know the adjacent nodes currently connected to 10a. Here, as shown in FIG. 7, no history is stored in the connection history table 131a, and a history including the node ID “2” is stored in the connected history table 132a, A history including ID “3” and a history including node ID “4” are stored. For this reason, the distribution order determination function 151a recognizes that the three nodes 10b, 10c, and 10d are adjacent nodes, but the node 10b is excluded from selection because it is a message transfer source node.
[0067]
Then, the distribution order determination function 151a calculates the number of adjacent nodes connected to each node with reference to the history held in the adjacent history holding unit 13a for the nodes 10c and 10d. Here, the distribution order determination function 151a calculates the number of adjacent nodes “3” of the node 10c and the number of adjacent nodes “1” of the node 10d. The distribution order determination function 151a compares the numbers of these adjacent nodes. Then, the distribution order determination function 151a selects the adjacent node 10c having the largest adjacent node number “3” (step S401: corresponding node exists).
[0068]
The management control unit 15a instructs the message transmission unit 14a to transfer the message to the node 10c selected in step S401. The message transmission unit 14a transfers the message to the node 10c. The management control unit 15a removes the node 10c to which the message has been transferred from the selection target (step S402). Then, the management control unit 15a transfers the message to the corresponding node until there is no corresponding node (step S401: no corresponding node) (step S402).
[0069]
The operations of other nodes constituting the distribution tree shown in FIG. 6 are basically the same as the operation of the node 10a described above. In addition, since the delivery order determination algorithm described in the first embodiment and the second embodiment is an algorithm for delivering a message to a node to which many nodes are connected first, message delivery in the second embodiment. The sequence is a message delivery sequence similar to that of the first embodiment.
As described above, an efficient message distribution sequence can be realized by using an algorithm that first distributes a message to a node to which many nodes are connected.
[0070]
[3. Third Embodiment]
[3.1. Constitution]
Next, a third embodiment according to the present invention will be described.
First, the configuration in the third embodiment will be described. FIG. 11 is a block diagram illustrating a functional configuration of the node 10 according to the third embodiment. The difference from the first embodiment is that the node 10 includes a message reception frequency management unit 11.
As shown in FIG. 12, the message reception frequency management unit 11 stores a “frequency” at which a message is received for each “node ID” for identifying a transfer source node. Here, “frequency” represents, for example, the number of messages distributed from the transfer source node during a unit time of one hour.
[0071]
Further, the storage unit of the node 10 stores a program different from that of the first embodiment. When the CPU of the node 10 executes this program, the number of messages received by the message receiving unit 12 is tabulated for each transfer source node ID and stored in the message reception frequency management unit 11.
The storage unit of the node 10 stores a program for determining the distribution order, which is different from the first embodiment. Thereby, the delivery order determination function 151 of the management control unit 15 determines the delivery order of messages using an algorithm different from that of the first embodiment. The algorithm for determining the delivery order of messages in the third embodiment is based on the idea of “delivering messages first to nodes to which more nodes are connected” and “nodes that deliver messages with high frequency. Is based on the idea that more nodes are connected to.
[0072]
The configuration of the third embodiment other than the above is the same as that of the first embodiment.
Next, message delivery processing executed by the message delivery source node 10 will be described with reference to the flowchart of FIG.
First, the distribution order determination function 151 of the management control unit 15 refers to the history stored in the adjacent history holding unit 13 and selects all the adjacent nodes currently connected to the own node as in the second embodiment. To grasp. The distribution order determination function 151 searches the message reception frequency management unit 11 for the node ID of the grasped adjacent node. Then, the distribution order determination function 151 reads “frequency” corresponding to the searched “node ID”. The distribution order determination function 151 compares the read “frequency”. Then, the distribution order determination function 151 selects a node identified by the “node ID” corresponding to the highest “frequency” (step S501: there is a corresponding node).
[0073]
The management control unit 15 instructs the message transmission unit 14 to distribute the message to the node selected in step S501. Then, the management control unit 15 removes the node from the selection target (step S502).
The delivery order determination function 151 returns to step S501, and selects the node 10 having a high frequency of receiving the message from the adjacent nodes excluding the nodes that are not selected.
[0074]
When nodes having the same “frequency” exist, the distribution order determination function 151 determines the distribution order using, for example, the algorithm described in the first embodiment or the second embodiment.
In addition, since the message reception unit 12 has never received a message, and the message reception frequency management unit 11 includes an adjacent node in which data regarding “frequency” is not managed, the distribution order determination function 151 The “frequency” of the adjacent node is determined to be “0”, and the message is distributed to the adjacent node most recently.
[0075]
When all nodes 10 are not selected and there is no corresponding node 10 (step S501; no corresponding node), the management control unit 15 ends the process.
If the corresponding node exists (step S501; corresponding node exists), the management control unit 15 distributes the message to the corresponding node until there is no corresponding node (step S501; no corresponding node) (step S502). .
[0076]
Next, message transfer processing executed by the node 10 that has received a message from an adjacent node will be described with reference to the flowchart of FIG.
The message transfer process in FIG. 14 differs from the message delivery process in FIG. 13 in that the process is started when the message receiving unit 12 receives a message from an adjacent node, and in step S601, When determining whether or not a node exists, the message transfer source adjacent node is excluded. The other flow of the message transfer process shown in FIG. 14 is the same as the message delivery process shown in FIG.
[0077]
[3.2. Operation]
Next, the operation of the third embodiment in the above configuration will be described.
Also in the third embodiment, as in the first embodiment, it is assumed that a message is distributed from the node 10b in the distribution tree configured as shown in FIG. Other assumptions are the same as those in the first embodiment.
Further, it is assumed that the data shown in FIG. 12 is managed in the message reception frequency management unit 11b of the node 10b. Further, it is assumed that the data shown in FIG. 15 is managed in the message reception frequency management unit 11a of the node 10a.
[0078]
First, the message delivery process of the node 10b will be described with reference to FIG. The distribution order determination function 151b of the management control unit 15b refers to the history stored in the adjacent history holding unit 13b and grasps the adjacent node currently connected to the own node 10b.
Here, as in the second embodiment, the distribution order determination function 151b is identified by the node 10a identified by the node ID “1”, 10f identified by the node ID “6”, and the node ID “8”. 10h and 10i identified by the node ID “9” are recognized as adjacent nodes.
[0079]
Then, the distribution order determination function 151b reads the “frequency” of the message corresponding to the node from the message reception frequency management unit 11b for the grasped adjacent node. Here, the distribution order determination function 151b performs “frequency” “10 times / h” of the node ID “1”, “frequency” “5 times / h” of the node ID “6”, and “frequency” of the node ID “8”. “7 times / h” and “frequency” “4 times / h” of the node ID “9” are read. The distribution order determination function 151 compares the read “frequency”. The distribution order determination function 151b selects the node 10a identified by the transfer source node ID “1” because “frequency” “10 times / h” has the highest frequency (step S501: applicable) With nodes).
[0080]
The management control unit 15b instructs the message transmission unit 14b to distribute the message to the node 10a. The message transmission unit 14b distributes the message to the node 10a. Then, the management control unit 15b removes the node 10a that has already received the message from the selection target (step S502).
The delivery order determination function 151b returns to step S501, selects the node ID “6” having the higher “frequency” among the adjacent nodes excluding the node 10a that is not the selection target (step S501; corresponding node exists), and performs management control. The unit 15b instructs to distribute the message to 10f identified by the node ID “6” (step S502). Then, the management control unit 15b distributes the message to the corresponding node until there is no corresponding node (step S501; no corresponding node) (step S502).
[0081]
Next, message transfer processing of the node 10a that has received a message from the node 10b will be described with reference to FIG.
When the message receiving unit 12a receives the message, as in the second embodiment, the distribution order determining function 151a of the management control unit 15a refers to the history stored in the adjacent history holding unit 13a, and transfers the source node 10b. Otherwise, the adjacent node currently connected to the own node 10a is grasped. Here, as shown in FIG. 7, no history is stored in the connection history table 131a, and a history including the node ID “2” is stored in the connected history table 132a, A history including ID “3” and a history including node ID “4” are stored. For this reason, the distribution order determination function 151a recognizes that the three nodes 10b, 10c, and 10d are adjacent nodes, but the node 10b is excluded from selection because it is a message transfer source node.
[0082]
The delivery order determination function 151a then sends a message corresponding to the node 10c identified by the node ID “3” and the node 10d identified by the node ID “4” from the message reception frequency management unit 11a. Read “Frequency”. Here, the distribution order determination function 151a reads the “frequency” “3 times / h” of the node ID “3” and the “frequency” “1 time / h” of the node ID “4”. The distribution order determination function 151a compares the read “frequency”. The distribution order determination function 151a selects the node 10c identified by the node ID “3” because the highest frequency is “frequency” “3 times / h” (step S601: corresponding node exists). .
[0083]
The management control unit 15a instructs the message transmission unit 14a to transfer the message to the node 10c. The message transmission unit 14a transfers the message to the node 10c. Then, the management control unit 15a removes the node 10c to which the message has been transferred from the selection target (step S602).
The delivery order determination function 151a returns to step S601, selects the node ID “4” having a high “frequency” from the adjacent nodes excluding the node 10c that is not the selection target (step S601; corresponding node exists), and performs management control. The unit 15a instructs the message 10d identified by the node ID “4” to be transferred (step S602). Thereby, since the corresponding node does not exist (step S501; no corresponding node), the management control unit 15a ends the process.
[0084]
The operations of other nodes constituting the distribution tree shown in FIG. 6 are basically the same as the operation of the node 10a described above. The delivery order determination algorithm described in the first to third embodiments is an algorithm for delivering a message first to a node to which many nodes are connected. Therefore, in the message delivery sequence in the third embodiment, when the frequency of receiving a message from another node is proportional to the number of adjacent nodes connected to the other node, the first embodiment and the second embodiment The message delivery sequence is the same as in the embodiment.
[0085]
In this way, by selecting a node that delivers a high frequency of message delivery and delivering the message first, the frequency of the message is proportional to the number of nodes connected to the node, Since a message can be delivered first to a node to which many nodes are connected, an optimal message delivery sequence can be realized.
[0086]
[4. Modified example]
Although the embodiments of the present invention have been described above, the present invention is not limited to such embodiments, and various modifications can be made within the scope of the technical idea. As modifications, for example, the following can be considered.
(1) In the first to third embodiments, three types of distribution order determination algorithms by the distribution order determination function 151 have been described. However, these algorithms are merely examples. The above three types of algorithms are based on the idea of “delivering a message first to a node to which more nodes are connected”. Another algorithm may be used as long as it is based on this idea and uses the history held in the adjacent history holding unit 13.
[0087]
For example, in the algorithm shown in FIG. 4, the node 10 delivers a message to the adjacent node to which the node 10 is connected after delivering the message to the adjacent node to which the node 10 is connected. The message may be distributed to an adjacent node to which the node is connected after the message is distributed to the adjacent node to which the node is connected.
[0088]
Further, the message may be transmitted first to the adjacent node that has been connected for a long time without distinguishing between the case where the own node 10 is connected to the adjacent node and the case where it is connected.
Further, the distribution order may be determined using a combination of the algorithms described above. For example, the algorithm shown in FIG. 4 in the first embodiment is used as an algorithm of a node serving as a message distribution source, and the algorithm of a node that transfers a received message to another node is shown in FIG. 10 of the second embodiment. Other algorithms may be used.
[0089]
(2) The data structure of the adjacent history holding unit 13 described in the above embodiment is merely an example. For example, the adjacent history holding unit 13 is provided with two tables, that is, a connection history table 131 and a connected history table 132, but may be a single table. In the above embodiment, the adjacency history holding unit 13 holds only the history related to the connection (participation) of adjacent nodes, and it is assumed that the adjoining node does not leave (leave) after joining the distribution group. However, information regarding withdrawal may also be held as a history. In this case, when performing the message distribution process or the message transfer process, the management control unit 15 is currently connected based on the connection information and the disconnection information held in the adjacent history holding unit 13. An adjacent node is determined.
[0090]
(3) In the second embodiment, it has been described that the history of all nodes constituting the communication network 1 is held and notified by the adjacent history holding unit 13 of the node 10 from other nodes. However, the information notified from other nodes is not limited to this. For example, the information notified to the node 10 may be not only information (history) related to the connection change but also the number of adjacent nodes, or configuration information and management information of other nodes. In the second embodiment, it has been described that the change information is notified from the other node to the node 10 when the connection state of the other node is changed. The notification timing is not limited to this. For example, the change information may be notified from other nodes to the node 10 periodically every week.
[0091]
(4) In the message reception frequency management unit 11 in the third embodiment, the “frequency” at which the message has been distributed for each node ID is stored, but the present invention is not limited to this. For example, the message reception frequency management unit 11 stores “message reception date / time” and “node ID” of the message transfer source instead of “frequency”, and stores the information in the stored information at the time of message transfer processing. Based on this, “frequency” may be calculated for each message transfer source node. In addition, the “frequency” has been described as the number of received messages per hour in the above embodiment, but is not limited thereto, and may be, for example, the number of received messages per minute. In addition, as a method of calculating “frequency”, the cumulative number of received messages received from other nodes may be divided by the elapsed time connected to the node, or in real time every hour. Alternatively, the number of messages received from other nodes may be calculated sequentially.
[0092]
【The invention's effect】
As described above, since the node device determines the message distribution order based on the history regarding the connection state with the adjacent node device, the message is efficiently transmitted to all the node devices included in the communication network by the optimal distribution sequence. Can be transferred. For this reason, a message can be delivered to all the node devices in a short time, and a message arrival delay to each node device can be prevented.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a communication network according to a first embodiment of the present invention.
FIG. 2 is a block diagram showing a functional configuration of a node according to the first embodiment of the present invention.
FIG. 3 is a diagram showing a configuration of data held by an adjacent history holding unit according to the first embodiment of the present invention.
FIG. 4 is a flowchart showing message delivery processing performed by a message delivery source node according to the first embodiment of the present invention;
FIG. 5 is a flowchart showing message transfer processing performed by a node that transfers a message according to the first embodiment of the present invention.
FIG. 6 is a diagram for explaining a message delivery sequence according to the first embodiment of the present invention.
FIG. 7 is a diagram showing data contents held by the adjacent history holding unit of the node 10a according to the first embodiment of the present invention.
FIG. 8 is a diagram showing data contents held by the adjacent history holding unit of the node 10c according to the first embodiment of the present invention.
FIG. 9 is a flowchart showing message delivery processing performed by a message delivery source node according to the second exemplary embodiment of the present invention.
FIG. 10 is a flowchart showing a message transfer process performed by a node that transfers a message according to the second embodiment of the present invention.
FIG. 11 is a block diagram showing a functional configuration of a node according to the third embodiment of the present invention.
FIG. 12 is a diagram showing a data configuration managed by a message reception frequency management unit according to the third embodiment of the present invention.
FIG. 13 is a flowchart showing message delivery processing performed by a message delivery source node according to the third exemplary embodiment of the present invention.
FIG. 14 is a flowchart showing a message transfer process performed by a node that transfers a message according to the third embodiment of the present invention.
FIG. 15 is a diagram showing data contents managed by a message reception frequency management unit of the node 10a according to the third embodiment of the present invention.
FIG. 16 is a diagram illustrating a message transfer method using a router in a conventional communication network.
FIG. 17 is a diagram for explaining a message transfer method between nodes without using a conventional router;
FIG. 18 is a diagram illustrating a configuration example of a distribution tree in a conventional message distribution group.
FIG. 19 is a diagram for explaining an unoptimized message distribution sequence in the distribution tree;
FIG. 20 is a diagram for explaining an optimized message distribution sequence in the distribution tree;
[Explanation of symbols]
1 Communication network
10 nodes
11 Message reception frequency management section
12 Message receiver
13 Adjacent history holding unit
14 Message transmitter
15 Management control unit
151 Distribution order determination function

Claims (5)

メッセージを配信する通信ネットワークを構成するノード装置において、
前記ノード装置に隣接する隣接ノード装置との接続状態に関する履歴を保持する隣接履歴保持手段と、
前記隣接履歴保持手段に保持されている履歴に基づいて、前記隣接ノード装置に配信すべきメッセージの配信順序を決定する配信順序決定手段と
を含むことを特徴とするノード装置。
In a node device constituting a communication network that distributes messages,
Adjacent history holding means for holding a history relating to a connection state with an adjacent node device adjacent to the node device;
A node device comprising: a distribution order determining unit that determines a distribution order of messages to be distributed to the adjacent node device based on a history held in the adjacent history holding unit.
前記隣接履歴保持手段は、前記隣接ノード装置を識別するための隣接ノード識別情報と、該隣接ノード装置と前記ノード装置とが接続した時刻とを対応付けて、前記履歴として保持しており、
前記配信順序決定手段は、前記隣接ノード識別情報で識別される隣接ノード装置に対して、前記隣接ノード識別情報に対応付けられている時刻が古い順に、前記メッセージを配信することを決定することを特徴とする請求項1に記載のノード装置。
The adjacent history holding unit associates the adjacent node identification information for identifying the adjacent node device with the time when the adjacent node device and the node device are connected, and holds the history as the history,
The delivery order determining means determines to deliver the messages to the adjacent node device identified by the adjacent node identification information in the order of the oldest time associated with the adjacent node identification information. The node device according to claim 1, wherein:
前記配信順序決定手段は、前記隣接履歴保持手段に保持されている履歴に基づいて、自装置に隣接する隣接ノード装置を判定し、該判定された隣接ノード装置のうち、隣接するノード装置の数が多い順に、該隣接ノード装置にメッセージを配信することを決定することを特徴とする請求項1又は2に記載のノード装置。The distribution order determining unit determines an adjacent node device adjacent to the own device based on the history held in the adjacent history holding unit, and among the determined adjacent node devices, the number of adjacent node devices 3. The node device according to claim 1, wherein the node device determines to distribute the message to the adjacent node device in descending order. 前記隣接ノード装置毎に、該隣接ノード装置が自装置にメッセージを配信してきた頻度を管理するメッセージ受信頻度管理手段をさらに有し、
前記配信順序決定手段は、前記接続履歴保持手段に保持されている履歴に基づいて、自装置に隣接する隣接ノード装置を判定し、
該判定された隣接ノード装置に対して、前記メッセージ受信頻度管理手段により管理されている前記頻度が高い順に、前記メッセージを配信することを特徴とする請求項1乃至3のいずれか1項に記載のノード装置。
For each of the adjacent node devices, it further comprises a message reception frequency management means for managing the frequency with which the adjacent node device has delivered a message to its own device,
The delivery order determining unit determines an adjacent node device adjacent to the own device based on a history held in the connection history holding unit;
4. The message according to claim 1, wherein the messages are delivered to the determined adjacent node device in descending order of the frequency managed by the message reception frequency managing unit. 5. Node equipment.
特定のノード装置と、該特定のノード装置に隣接する隣接ノード装置との接続状態に関する履歴に基づいて、前記隣接ノード装置にメッセージを配信するメッセージ配信方法において、
前記特定のノード装置が前記隣接ノード装置に接続したことを表す履歴と、前記特定のノード装置が前記隣接ノード装置によって接続されたことを表す履歴との、少なくとも一方の履歴を検索する検索ステップと、
前記検索ステップにおいて検索された履歴が古い順に、該履歴で表される隣接ノード装置に対して、前記メッセージを配信する配信ステップと、
を有することを特徴とするメッセージ配信方法。
In a message delivery method for delivering a message to an adjacent node device based on a history relating to a connection state between the specific node device and an adjacent node device adjacent to the specific node device,
A search step for searching at least one of a history indicating that the specific node device is connected to the adjacent node device and a history indicating that the specific node device is connected by the adjacent node device; ,
A distribution step of distributing the message to the adjacent node devices represented by the history in order of the history searched in the search step;
A message delivery method comprising:
JP2003191240A 2003-07-03 2003-07-03 Node device and message delivery method Expired - Fee Related JP4053474B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003191240A JP4053474B2 (en) 2003-07-03 2003-07-03 Node device and message delivery method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003191240A JP4053474B2 (en) 2003-07-03 2003-07-03 Node device and message delivery method

Publications (2)

Publication Number Publication Date
JP2005027099A JP2005027099A (en) 2005-01-27
JP4053474B2 true JP4053474B2 (en) 2008-02-27

Family

ID=34188917

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003191240A Expired - Fee Related JP4053474B2 (en) 2003-07-03 2003-07-03 Node device and message delivery method

Country Status (1)

Country Link
JP (1) JP4053474B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4623026B2 (en) * 2007-03-02 2011-02-02 ブラザー工業株式会社 CONTENT DISTRIBUTION SYSTEM, TERMINAL DEVICE, CONTENT DISTRIBUTION METHOD, AND PROGRAM USED FOR THE SAME
TW200935226A (en) * 2008-02-15 2009-08-16 Alcor Micro Corp KVM switch and operation method thereof
CN112130565B (en) * 2020-09-14 2023-06-23 贵州翰凯斯智能技术有限公司 Self-propelled robot platform control system and communication method thereof

Also Published As

Publication number Publication date
JP2005027099A (en) 2005-01-27

Similar Documents

Publication Publication Date Title
US7792137B2 (en) Self-organized and self-managed ad hoc communications network
US7457257B2 (en) Apparatus, system, and method for reliable, fast, and scalable multicast message delivery in service overlay networks
US20070097880A1 (en) Resource matched topology database synchronization in communications networks having topology state routing protocols
US7859992B2 (en) Router redundancy in data communication networks
JP5741150B2 (en) Relay device, relay program, and relay method
CN105794284B (en) So that node is synchronized to the method for data sink and is used to form the node of wireless network
CN103210617A (en) Reduction of message and computational overhead in networks
US20050169281A1 (en) Distributed router
TW201006272A (en) Method and apparatus for maintaining communications connections over a distributed wireless network
JPH06202969A (en) Computer in network and its operating method
WO2006068365A1 (en) P2p overlay network construction method and apparatus
JP2006201896A (en) Network system and mobile communication node
WO2015058705A1 (en) Data distribution method and apparatus
US7539191B1 (en) System and method for securing route processors against attack
CN101094119A (en) Method for detecting and recovering faults in covered network based on fast switch over
JP4815547B2 (en) Data synchronization system, data synchronization method, and synchronization management server
CN107431910A (en) For managing the technology for the heterogeneous nodes for being configured to support homogeneous communication agreement
JP4053474B2 (en) Node device and message delivery method
JP2009230369A (en) Synchronization method for shared data, program for synchronizing shared data, and network system for synchronizing shared data to be held
US20080307045A1 (en) Method, system and apparatus for managing directory information
JP4095352B2 (en) Information processing apparatus, information processing apparatus control method, and computer program for executing the control method
CN109831372A (en) Message synchronization method and instant communicating system
Alnajjar et al. Performance analysis of routing protocols in delay/disruption tolerant mobile ad hoc networks
JP2010199882A (en) Communication system, path computation device, path computation method and program
US20140211604A1 (en) Method and Apparatus for the Fast Detection of Connectivity Loss Between Devices in a Network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060412

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071026

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: 20071120

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071205

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

Free format text: PAYMENT UNTIL: 20101214

Year of fee payment: 3

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: 20101214

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111214

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111214

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121214

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121214

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20131214

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees