ノード装置及びプログラム
【課題】簡易な構造で、かつ、ネットワークに負荷をかけずに、自律的に適切な経路を選択可能なノード装置/プログラムを提供する。
【解決手段】通信ネットワークの中のノード装置1において、FID管理テーブル5にフレームを一意に識別するFIDとフレームの送出先ノードに関する情報とを格納し、重み付けテーブル7にフレームの最終宛先ノードごとに、フレームを中継するため送出先とする他ノードについての重み付け情報を格納する。自ノード宛に送信されたフレームを受信すると、受信したフレームのFIDがFID管理テーブル5に格納されている場合には、FIDと対応付けられた送出先ノードについてのデータを更新する。フレーム受信手段により受信したフレームのFIDが、FID管理テーブル5に格納されていない場合には、フレームの宛先ノードに該当する重み付けテーブル5を参照して、フレームを中継するための宛先とする他ノードを決定する。
【解決手段】通信ネットワークの中のノード装置1において、FID管理テーブル5にフレームを一意に識別するFIDとフレームの送出先ノードに関する情報とを格納し、重み付けテーブル7にフレームの最終宛先ノードごとに、フレームを中継するため送出先とする他ノードについての重み付け情報を格納する。自ノード宛に送信されたフレームを受信すると、受信したフレームのFIDがFID管理テーブル5に格納されている場合には、FIDと対応付けられた送出先ノードについてのデータを更新する。フレーム受信手段により受信したフレームのFIDが、FID管理テーブル5に格納されていない場合には、フレームの宛先ノードに該当する重み付けテーブル5を参照して、フレームを中継するための宛先とする他ノードを決定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のノードを含むネットワークにおける、経路選択可能な装置/プログラムに関する。
【背景技術】
【0002】
ネットワーク装置は、これまで非常に多くの研究がなされている。最も普及しているのは、IP(Internet Protocol)ネットワークを利用したネットワーク装置である。また
、複数のプロトコルやネットワークを収容することを目的としたMPLS(Multi Protocol Labeled Switching)は、自動的に経路を作成する機構を持つネットワーク装置である。また、アドホックアルゴリズムの代表例としてAODV(Ad-hoc On-Demand Vector)
やOLSR(Optimized Link State Routing)がある。
【0003】
IPネットワーク装置では、IPアドレスに従いルーティングを決定する。IPアドレス自体が木構造を持つため、IPアドレスの上位から合致するIPネットワークを管理するネットワーク装置に伝送することで、最終的に目標とする端末へフレームを伝送することができる。ルーティングはIPアドレス体系により決定されている。どのネットワーク装置かどのIPネットワークを管理しているかは、ルーティングテーブルによって規定される。ルーティングテーブルは主に手動で設定されることも多いが、RIP(Routing Information Protocol)により自動的に更新されることもある。RIPとは、ネットワーク装置が管理するIPネットワークを周囲にブロードキャストし、ネットワーク装置が互いの管理するIPネットワークを確認する方式である。
【0004】
MPLSでは、ネットワークがLSR(Label Switch Router)と呼ばれるネットワー
ク装置間と外部ネットワークとに分離される。外部ネットワークからのフレームは、エッジノードと呼ばれる外部ネットワークと内部ネットワークの両方にまたがるネットワーク装置によって内部ネットワークに取り込まれる。このとき、外部フレームの先頭にはラベルが挿入される。各LSRは、それぞれがラベル転送テーブルを持つ。ラベル転送テーブルは、入力フレームのラベルと出力フレームのラベルおよびあて先を保持する。LSRは入力されるフレームのラベルを取り出し、該当するラベルをラベル転送テーブルから発見し、出力フレームのラベルに書き換え、該当するあて先に送出する。ラベル転送テーブルのLDP(Label Distribution Protocol)によって行われる。LDPは、まずRIPな
どによりルーティングテーブルの作成を行い、これにラベルを付加し、隣接ノード間で通知しあうプロトコルである。
【0005】
AODVは、経路検索にブロードキャストを用いて、他の通信ノード装置がブロードキャストを繰り返し目的のノード装置への経路を発見する手法である。通信ノード装置は、目標とする経路を発見するために周囲に「Route Request(RREQ)」というフレーム
を送出する。このフレームには、検索目標の通信ノードIDが明記されている。周囲の通信ノード装置は、自身を検索していない場合は、新たにRREQフレームを作成して、周囲へのブロードキャストを繰り返し行う。このとき各通信ノード装置は、送り元のメッセージが、隣接するどの通信ノード装置から受信されたものなのかを記録する。RREQメッセージが目的の通信ノード装置に達したとき、その目的の通信ノード装置は、「Route Reply(RREP)」フレームを作成し、送り元のノードに対して、RREQフレームが
送られてきた経路をたどるようにしてRREPフレームを送信する。このようにして、双方向の通信経路が作成されている。
【0006】
OLSR(Optimized Link State Routing)では、通信ノード装置同士が定期的にフレ
ームを交換しあうことで、ネットワーク全体を把握し、目的の通信ノードまでの経路を検出するという方式を採用している。通信ノード装置は、周期的にHELLO(ハロー)フレームを送出し、互いにその存在を通知しあう。通信相手となる通信ノード装置の存在が判明したところで次に効率的にネットワーク全体にフレームを配信するためのフラッディング用のパスを生成する。これをMPR(Multi Point Relay)と呼ぶ。MPRにより、
各通信ノード装置から効率よくフレームをネットワーク全体へブロードキャストできる。次にこのMPRを用いて、経路作成メッセージであるTC(Topology Control)フレームをノード装置同士が互いに配信することで全ノード装置がネットワークトポロジーを知ることができる。フレームを、目標とする通信ノード装置に送るには、送出元となる通信ノード装置自身が知っているネットワークトポロジーを参照し、送るべき隣接通信ノード装置にフレームを託す。隣接ノード装置も同様に処理を行い、最終的に目標ノード装置にフレームを届ける。
【0007】
アドホック無線通信ネットワークに関しては、公知の技術として、各ノードがハローメッセージとして自ノードの存在を通知する情報と、自ノードまでのルートメトリックとを含んだ情報を放送し、該ハローメッセージを受信した他ノードは、受信したルートメトリックにハローメッセージを放送してきたノードと自ノードとの間のルートのためのルートメトリックを追加し、該追加後のルートメトリックを使用する技術について提供されている(例えば、特許文献1)。ここでのルートメトリックは、ホップ数、リンク品質等の因子により算出される、送信元と宛先とのコストを表す値である。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特表2006−526937号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
IPネットワーク装置やMPLSでは、前提としてアドレスによってネットワーク自体が構造を持っていることを利用している。IPアドレスが木構造であるため、アドレスが上位からマッチしていく方向を選択することにより経路が決定する。また、これらは有線の接続を前提としている。2つの通信端末間で有線接続は安定した通信ができ、接続されていない通信機器はフレームを受信することはないため、単純に通信機のホップ数だけで決めることができる。
【0010】
しかし無線通信を前提としたとき、これらの方式では通信品質のよい経路作成は困難である。無線通信では、通信品質は有線通信と比較した場合に悪く、かつ通信とは直接関係しない他の通信端末にも影響を与える。また通信品質は、距離や周囲の環境の依存性も高く、時間的変化も伴う。このような環境下で上記プロトコルを実施した場合、ホップ数のみで決定すると、アルゴリズムが遠くの通信端末を経由しようとする場合がありえる。しかしながら、距離が遠ければその分通信品質も悪いため非常に品質の悪い経路を作成してしまう。
【0011】
AODVは、経路作成時にネットワークに負荷をかける。通信端末数が少ない場合は問題ないが、通信端末数が多くなり通信量が増えた場合ネットワークへの負荷が高くなってしまう。その結果、通信がすでに確立している通信ノード装置にも影響を与え、リンク切れを起こす可能性が高く、結果的に通信できるノード装置は非常に少なくなりそのほとんどが経路確立できなくなる。また、上記のようにホップ数をベースとしているため通信品質の悪い経路を作成してしまうことも考えられる。
【0012】
OLSRでは、全ノード装置がネットワークトポロジーを知る必要がある。このためス
ケールに限界が生じる。また、全ノード装置のトポロジーが判明する時間が必要となる。
【0013】
上記のとおり、有線無線を問わず、ネットワークにおいては、通信量や周囲の環境影響によりノード装置間の通信品質が変化することがあり、特に無線では変化が大きい。このため、非常に多くのノード装置を含んだネットワークを考えた場合、ネットワークを統括するサーバを設置し、該サーバによってネットワークの管理を行うことは実用的ではない。というのは、ノード装置の個数が多いのでサーバから制御指示を送信するだけでも大変な負荷になってしまうからである。そこで、非常に多くのノード装置からネットワークがつくられている場合には、各ノード装置が自律的に経路選択や死活監視などの動作をすることが望まれる。
【0014】
さて、各ノード装置が自律的に動作することを考えた場合、上述の通り通信品質は変化するので、あるノード装置に宛てた送信フレームを中継する際には、現時点で有効な経路を各ノード装置が把握しておく必要がある。例えば、固定的な構造を持つネットワークや一般的な検索手法である二分木探索などの手法では、ネットワークや木の全体像が初めからわかっているため、どこまで経路を探索したかを容易に判別可能であるのに対し、本願が対象とするノード装置間のリンクが変化してゆくようなネットワークでは、各ノード装置は、周囲のノード装置の先にどのようなノード装置がリンクされているかを知らないので、どこまで経路を探索したかを知るための仕組が必要になる。
【0015】
本発明では、簡易な構造で、かつ、ネットワークに負荷をかけずに、自律的に適切な経路を選択可能なノード装置/プログラムを提供する。
【課題を解決するための手段】
【0016】
本発明の実施形態にかかるノード装置は、複数のノード装置を含むネットワークの中の、ノード装置において、自ノードが送信したフレームの情報として、フレームを一意に識別するための識別情報と該フレームの送出先ノードに関する情報とを格納する識別情報管理テーブルと、フレームの最終宛先ノードごとに、フレームを中継するため送出先とする他ノードについての重み付け情報を格納する宛先ノード別重み付けテーブルと、他ノードから自ノードに宛てて送信されたフレームを受信するフレーム受信手段と、前記フレーム受信手段により受信した前記フレームの識別情報が、前記識別情報管理テーブルに格納されている場合に、該識別情報と対応付けて格納されている前記送出先ノードについて、該フレームの最終宛先に対応する前記宛先ノード別重み付けテーブルのデータを更新する宛先ノード別重み付けテーブル更新手段と、前記フレーム受信手段により受信した前記フレームの識別情報が、前記識別情報管理テーブルに格納されていない場合に、前記フレームの最終宛先ノードに該当する前記宛先ノード別重み付けテーブルを参照して、該フレームを中継するための送出先とする他ノードを決定するフレーム送出先決定手段とを備える。
【0017】
他ノードからフレームを受信すると、宛先ノード別重み付けテーブルを参照し、転送すべきノードを決定する。転送先のノードを重みにしたがって決定し、また、他ノードへのフレームの転送の成否に応じて重みが更新される。ノード装置は、自律的に経路を学習できる。
【0018】
前記宛先ノード別重み付けテーブル更新手段は、前記フレーム受信手段により受信した前記フレームの識別情報が、前記識別情報管理テーブルに格納されている場合に、該識別情報と対応付けて格納されている前記送出先ノードについて、該フレームの最終宛先に対応する前記宛先ノード別重み付けテーブルの該送出先ノードに対する重み付けを、優先度が低くなるように更新するようにしてもよい。
【0019】
更には、自ノードの周囲に存在する他ノードに関する情報を格納する隣接ノード管理テ
ーブルと、ハローメッセージとして、自ノードの存在を知らせる情報と、前記隣接ノード管理テーブルから読み出した情報であって、周囲の経路に関する情報とを送信するハローメッセージ送信手段と、他ノードからの送信されたハローメッセージを受信するハローメッセージ受信手段と、前記ハローメッセージ受信手段により受信したハローメッセージの送出元ノードに関する情報に基づき、前記隣接ノード管理テーブルを更新する隣接ノード管理テーブル更新手段と、を更に備え、前記隣接ノード管理テーブルにおいて、所定の状態になった第1のノードを検出した場合には、前記宛先ノード別重み付けテーブル更新手段は、前記宛先ノード別重み付けテーブルの送出先ノードが該第1のノードであるデータを優先度が低くなるように更新するようにしてもよい。
【発明の効果】
【0020】
本発明の実施形態にかかるノード装置によれば、ノード装置間のリンクが変化するようなネットワークにおいても、各ノード装置は、保有する重みに関する情報を参照して転送先のノードを決定し、重みに関する情報を更新する。これにより、ネットワークの全体を把握せずとも、自律的に最適な経路を学習して通信を行うことが可能となる。
【図面の簡単な説明】
【0021】
【図1】通信システムの全体概念図である。
【図2】本発明の実施形態に係るノード装置の概略図である。
【図3】本発明の実施形態に係るノード装置の詳細な模式図である。
【図4】隣接ノード管理テーブルの構造を示す図である。
【図5】フレームのフォーマット例である。
【図6】図5のフレームのフォーマット例の説明である。
【図7】隣接ノード管理テーブルに基づくデータ転送処理を説明する図である。
【図8】フレームの転送結果により重みに関する情報を操作する処理を説明する図である。
【図9】FID管理テーブルの例を示す図である。
【図10】本発明の実施形態に係るノード装置のデータフレーム受信時の処理を示したフローチャートの概略(その1)である。
【図11】本発明の実施形態に係るノード装置のデータフレーム受信時の処理を示したフローチャートの概略(その2)である。
【図12】ハローヘッダのフォーマットを示す図である。
【図13】本発明の実施形態に係るノード装置において、遅延により通信品質を計測する方法を説明する図である。
【図14】ハローヘッダを含んだハローフレームの詳細なフォーマットを示す図である。
【図15】重み付けテーブルの構造を詳細に説明する図である。
【図16】本発明の実施形態に係るノード装置のフレーム受信時の処理を示した詳細なフローチャート(その1)である。
【図17】本発明の実施形態に係るノード装置のフレーム受信時の処理を示した詳細なフローチャート(その2)である。
【図18】本発明の実施形態に係るノード装置のフレーム受信時の処理を示した詳細なフローチャート(その3)である。
【図19】本発明の実施形態に係るノード装置のフレーム受信時の処理を示した詳細なフローチャート(その4)である。
【図20】本発明の実施形態に係るノード装置のフレーム受信時の処理を示した詳細なフローチャート(その5)である。
【図21】本発明の実施形態に係るノード装置のフレーム受信時の処理を示した詳細なフローチャート(その6)である。
【図22】ハローフレームの交換シーケンスを示す図である。
【図23】本発明の実施形態にかかるノード装置もしくはプログラムを実施可能なハードウェアを示す概要図である。
【発明を実施するための形態】
【0022】
以下、本発明の好適な実施の形態について、図面を参照して詳細に説明する。
まず、本明細書での用語について説明をする。
【0023】
「フレーム」とは、プロトコルが扱うデータ単位のことを指す。「フレーム」には、例えば「ハローフレーム」「データフレーム」が含まれるが、これらに限定はされない。
【0024】
「ハローフレーム(HELLOフレーム)」とは、本発明の実施形態にかかるノード装置が
、別のノード装置に対して互いの存在・状態の確認のために送出する特別なフレームのことを指す。
【0025】
「データフレーム」とは、ネットワークが(スタートノードからゴールノードへと)伝送しようとするデータのことを指す。なお当然のことながら本発明の実施形態にかかるノード装置は、「ハローフレーム」と「データフレーム」を識別するための適切な手段を有することができる。
【0026】
「Local Destination (LD)」とは、或るノード装置を主体として観たときに、次にフレームを渡すべき隣接ノード装置を表すあて先ノードIDのことを指す。なお本明細書ではLDのことを、「ローカル宛先アドレス」と称することもある。
【0027】
「Local Source (LS)」とは、LDへフレームを送るその直接の送り元となるノード装置
(すなわち、LDにとっての自ノード装置)を表したノードIDのことを指す。なお本明細書ではLSのことを、「ローカル差出アドレス」と称することもある。
【0028】
「Global Destination (GD)」とは、データフレームのネットワークに跨った一連の伝
播に関する最終的なあて先となるノードIDのことを指す。なお本明細書ではGDのことを、「グローバル宛先アドレス」と称することもある。
【0029】
「Global Source (GS)」とは、データフレームのネットワークに跨った一連の伝播に関する最初の送り元であるノードIDのことを指す。なお本明細書ではGSのことを、「グローバル差出アドレス」と称することもある。
【0030】
「フレームID (FID)」とは、各フレームが持つ固有の識別情報のことである。FIDとし
ては例えば一連の番号を用いることができるが、これに限定はされない。
【0031】
「重み」とは、本発明の実施形態にかかるフレーム伝播経路選択にあたって考慮される値である。重みとしては、復路リンク重み、往路リンク重み、双方向リンク重み、経路品質重み、復路品質重み、リンク間到達重み、が本明細書に例示されているが、これらに限定はされない。なお本明細書の記載において「重み」または「重みに関する情報」と言うときには、何らかの種類の重みを用いて算定した値のことを指すこともあると解釈されたい。
【0032】
「復路リンク重み」とは、復路を来たるフレームに関する重みのことである。なお、或るノード装置を主体として考えるとき、そのノード装置が別の隣接するノード装置からフレームを受けるとするなら、そのフレームは「復路」を通ってきたことになる。
【0033】
「往路リンク重み」とは、往路を行くフレームに関する重みのことである。なお、或る
ノード装置を主体として考えるとき、そのノード装置が別の隣接するノード装置へフレームを送るとするなら、そのフレームは「往路」を通ることになる。
【0034】
「双方向リンク重み」とは、上述した往路リンク重みと復路リンク重みとを組み合わせて算出する重みのことである。本発明の実施形態では、「復路リンク重み」「往路リンク重み」「双方向リンク重み」は、後に詳述する隣接ノード管理テーブルが含むことができるデータである。しかし他の実施形態では、これ以外の組み合わせを含むようにしてもかまわない。
【0035】
「経路品質重み」とは、GDまでの経路上での遅延を数値化したものを指す。
「復路品質重み」とは、相手となるノード装置から自ノード装置へ至る方向への通信品質を数値化したものを指す。
【0036】
「リンク間到達重み」とは、フレームのリンク間での転送の成否を数値化した値である。本発明の実施形態では、「経路品質重み」「復路品質重み」「リンク間到達重み」は、後に詳述する重み付けテーブルが含むことができるデータである。しかし他の実施形態では、これ以外の組み合わせを含むようにしてもかまわない。
【0037】
図1は、通信システムの全体概念図である。図1に示すように、ネットワークにはノード装置(a、b、…、s、t)が互いに接続されて含まれている
。本通信システムにおいては、スタートノード(図1の例ではノード装置b)からゴールノード(図1の例ではノード装置t)へと情報を伝達するにあたり、各ノード装置が中継器として動作する。
【0038】
各ノード装置は、それぞれ固有の識別情報(ID、Identification)を保有する。各ノード装置に割り当てられたIDを、以下ノードIDとする。各ノード装置は、互いに隣接しているノード装置やネットワーク全体については把握していない。初期状態においては、互いのリンクは存在しておらず、各ノード装置は、自身以外のノード装置についてはその存在・状態を把握していない。
【0039】
そこで、図1に示す通信システムにおいてスタートノード{b}からゴールノード{t}へと情報を伝達するには、まず、ネットワークを構築する必要がある。ネットワークを構築する手順は、以下のとおりである。
【0040】
まず行われるのは、周囲のノード装置の検出である。或るノード装置は、自身の存在を近隣に存在するノード装置へ周期的に通知する。近隣ノード装置への通知には、経路作成に関連した情報が付随されている。各ノード装置は、通知を受信すると、周囲のノード装置についてのリストを作成して、自装置の周囲のノード装置の存在を把握することができる。
【0041】
周囲のノード装置を検出したノード装置は、作成したリストに基づいて、自身が情報を転送する相手となるべきノード装置を決定して、そのノード装置に情報を転送する。
【0042】
或るノード装置が、情報を転送すべきノード装置を決定するにあたって、周囲に存在する複数のノード装置のうちいずれのノード装置に情報を託せば、目的とするゴールノードに情報を到達させられるかについては、この時点では未だこのノード装置は識らない。そこで、本実施形態に係るノード装置では、周囲のノード装置のいずれに優先的に情報を転送すべきかを示す重み付けテーブルを作成し、重み付けテーブルに格納されている重みに関する情報にしたがって、情報の転送の対象となるべきノード装置を決定する。
【0043】
以下、本実施形態に係るノード装置について、具体的に説明する。
図2は、本実施形態に係るノード装置の概略図である。図2におおまかな概要を示すノード装置1は、フレーム処理部2、リンク管理部3、ルーティング決定部4、FID(フレームID)管理テーブル5、隣接ノード管理テーブル6、及び重み付けテーブル7を有する。図2には明示されていないが、当該技術分野において既知である何らかの種類の記憶装置(例えば、DRAMもしくはフラッシュメモリ)が、FID(フレームID)管理テーブル5、隣接ノード管理テーブル6、及び重み付けテーブル7をデータテーブルとして格納できる。
【0044】
フレーム処理部2は、ノード装置1に隣接するノード装置との間で交換されるデータフレームの処理を行う。フレーム処理部2はまた、データフレームを受信した場合に、記憶装置(図2には示されていない)にアクセスしてFID管理テーブル5(請求項の識別情報管理テーブルに相当)を用い、ループの発生の検出も行う。
【0045】
リンク管理部3は、記憶装置(図2には示されていない)にアクセスして隣接ノード管理テーブル6を用い、隣接するノード装置の死活及びリンク強度を管理する。
【0046】
ルーティング決定部4は、記憶装置(図2には示されていない)にアクセスして重み付けテーブル7(請求項の宛先ノード別重み付けテーブルに相当)を参照し、フレームを次にどの隣接ノード装置に転送すべきかを決定する。重み付けテーブル7は、フレームの最終的な宛先(すなわち、Global Destination (GD))ごとに作成される。
【0047】
なお、図1に示すネットワークを構築する複数のノード装置の各々は、それぞれが図2に示すような構造をとるが、以下の説明においては、他のノード装置と区別して、自ノード装置について符号「1」もしくは「1a」を付して説明している。また、各ノード装置は、無線によって接続されていてもよいし、有線によって接続されていても構わない。所望であれば、無線と有線が混在したネットワークに本発明の実施形態にかかる装置もしくはプログラムを適用できることも、本発明の実施形態では想定されている。
【0048】
図3は、実施形態に係るノード装置をさらに説明するための、より詳細な模式図である。なお、参照番号についた接尾辞"a"は、同番号の構成要素(element)と同様であるかもしくは類似した構成要素を指していることに留意されたい。なお本明細書では、例えば或る装置XXXと装置XXXaがともに実施形態に包摂されうる。また、参照番号の接尾辞を省略して、接尾辞が無いものと有るものとを包括する概念を指すこともある。例えば、装置XXXと表記したとき、矛盾が生じないかぎりは、装置XXXaのことも含んでいると解釈される。
【0049】
図3のノード装置1aは、フレーム処理部2a、リンク管理部3a、ルーティング決定部4a、FID管理テーブル5a、隣接ノード管理テーブル6a、重み付けテーブル7a、受信部10、送信部20を有する。なお、FID管理テーブル5a、隣接ノード管理テーブル6a、及び重み付けテーブル7aは、任意の適切な記憶装置に格納できる。そしてその記憶装置をノード装置1aの内部に収めることもできるし、外部に設置することも可能である。また、そうした記憶装置は、各ノード装置ごとに単一のものであってもよいし、複数存在してもよい。
【0050】
上述したLSに対応するノード装置1aが、受信部10にてフレーム(データフレームおよびハローフレームを含む)を受信すると、フレーム分岐処理部12がフレームの種別を識別して、その種別に応じて処理を分岐させる。詳しくは後述するが、フレーム分岐処理部12は、フレームに付されたそのフレームの種別を表すための識別子を用いることができる。
【0051】
受信されたフレームがハローフレームであった場合には、フレーム分岐処理部12が、フレームをリンク管理部3aに渡す。リンク管理部3aは、隣接ノード管理テーブル6aを格納した記憶装置にアクセスし、隣接するノード装置の死活及びリンク強度を管理する。そしてリンク管理部3aは、ループが検出された場合には、重み付けテーブル7aを格納した記憶装置にアクセスし、重みに関する情報の登録または更新を行う(詳しくは後述する)。
【0052】
受信されたフレームがデータフレームであった場合には、フレーム分岐処理部12が、フレームをフレーム処理部2aに渡す。フレーム処理部2aは、FID管理テーブル5aを
格納した記憶装置にアクセスし、FID、LD、およびGSに関する情報を管理する。そしてフ
レーム処理部2aはフレームをルーティング決定部4aに渡す。また、フレーム処理部2aは、ループが検出された場合には、重み付けテーブル7aを格納した記憶装置にアクセスし、重みに関する情報の登録または更新を行う(詳しくは後述する)。
【0053】
ルーティング決定部4aは、重み付けテーブル7aを格納した記憶装置にアクセスして重みに関する情報を得たうえで、フレームをどのノード装置へ送信するかを決定する。そして、送信部20にフレームを渡す。
【0054】
送信部20は、ルーティング決定部4aから受けとったフレームを他のノード装置へ送信するにあたり、送信処理部22にFID管理テーブル5aを格納した記憶装置にアクセス
させて、FIDとLDおよびGSに関する情報を登録・更新する。
【0055】
本発明の実施形態では、上述したように、隣接ノード装置管理テーブル、FID(フレー
ムID)管理テーブル、重み付けテーブルといったテーブルを使用する。まず、隣接ノード装置管理テーブルについての説明を行う。
【0056】
図4は、隣接ノード管理テーブル6もしくは6aの構造を示す図である。隣接ノード管理テーブル6もしくは6aは、ノードID、最終更新時間及びリンク強度を含む。
【0057】
ノードIDは、ネットワークを構築するノード装置を識別するために各ノード装置に割り当てられた識別情報である。
【0058】
最終更新時間は、各ノードIDが示すノード装置について、最後に情報が更新された日時情報である。具体的には例えば、最終更新時間としてリンク強度が更新された日時情報を格納できる。
【0059】
リンク強度は、ノード装置1もしくは1aが、隣接するノード装置から受信したハローフレームに含まれるリンク強度に基づき算出され、適切な記憶装置に格納される。リンク強度は例えば、電波強度やフレーム到達率を用いて算出できる。リンク強度は例えば、双方向リンク重みに対応している。
【0060】
上記のとおり、まず、事前にネットワークを構築するために、隣接ノード間で通知用のフレーム(ハローフレーム)が交換される。そして、図2に示す隣接ノード管理テーブル6もしくは図3に示す隣接ノード管理テーブル6a、ならびに図2に示す重み付けテーブル7もしくは図3に示す重み付けテーブル7aが、各ノード装置において作成される。図
1の説明においても述べたとおり、本実施形態に係るノード装置1においては、ネットワークトポロジーを把握する必要はない。
【0061】
隣接ノード管理テーブル6もしくは6aが作成されると、隣接ノード管理テーブル6も
しくは6aに対応する情報が格納されている隣接ノードのうち、フレームを転送すべきノード装置を決定する。フレームを転送すべきノード装置を決定するときに参照される重み付けテーブル7は、フレームを隣接ノード装置から受信したあとの処理にて更新される。
【0062】
図5および図6は、フレームのフォーマット例である。図5に示すフレームは、隣接ノードの宛先ノード(Local Destination)についてのノードID(LD)、隣接ノードの
送信元ノード(Local Source)についてのノードID(LS)、宛先ノード(Global Destination)についてのノードID(GD)、送信元ノード(Global Source)についての
ノードID(GS)、フレームID(FID)、フレームタイプ(TYPE)、データ長(DATALEN)、及びデータ本体(DATA)を含む。
【0063】
LDには、ノード装置1の隣接ノードのうち、フレームを転送する宛先ノードのノードIDが格納される。
【0064】
LSには、LDとなる隣接ノード装置へフレームを転送する送信元のノード装置のノードIDが格納される。例えば、LDがノード装置1に隣接するノード装置のいずれかのノードIDであったならば、LSはそのノード装置1のノードIDとなる。
【0065】
GDには、フレームの本来の宛先のノードIDが格納され、GSには、フレームの本来の送信元のノードIDが格納される。
【0066】
フレームIDは、フレームを識別するための識別情報が格納される。
フレームタイプには、そのフレームの種類を示す情報が格納される。フレームの種類としては、例えば、データフレームや、ハローフレーム等があるが、これらに限定はされない。
【0067】
データ長には、データ本体の長さ(データ長、またはフレームサイズとも称する)が格納される。
【0068】
データ本体には、ネットワークを伝播する対象であるデータが格納される。
なおここに示したフォーマットはあくまで一例であることに留意されたい。本発明の別の実施形態では、これとは異なったフォーマットを使用することもでき、かつその別の実施形態は本発明の範囲に包摂されうる。
【0069】
図7は、或る実施形態にかかる、隣接ノード管理テーブル6もしくは6aに基づくフレーム転送処理を説明する図である。このうち、図7(a)は、隣接ノード装置ごとの重みの概要を示す図であり、図7(b)は、隣接ノード管理テーブル6もしくは6aの簡単な例を示す図である。
【0070】
この実施形態に係るノード1もしくは1aは、隣接するノード装置のうちいずれかからフレームを受信すると、フレームの送信元すなわちLSであるノード装置以外のうち、重みに関する情報に鑑みてより優先度の高いノード装置に、そのフレームを転送する。ノード装置1もしくは1aは、隣接ノード装置のそれぞれに対してリンク番号を付しており、これによって各隣接ノード装置を識別している。
【0071】
なお、この実施形態においては、重みに関する情報(例えば、双方向リンク重みなど)として用いる値を、0以上1以下の範囲として設定してある。この値が小さいほど、優先度が高いものとして扱う。重みに関する情報初期値として例えば0.5を設定しておき、その
後のフレーム転送の成否やループの検出の有無等に応じて変更してゆくことができる。
【0072】
重みに関する情報の設定及び更新は、後述する重み操作関数(例えば、リンク強度を考慮した関数)により行う。重み操作関数は、ネットワーク全体の振る舞いに影響するため、ネットワークの用途に応じて変更する必要があるだろう。
【0073】
図7(a)においては、リンク番号iの隣接ノード装置からフレームを受信した場合の、重みに関する情報による転送先ノード装置の決定方法を示している。
【0074】
リンク番号iの隣接ノード装置から転送されたフレームを受信すると、ノード装置1もしくは1aは、保有する隣接ノード管理テーブル6もしくは6aのうち、GDのノード装置に対応する重み付けテーブルを参照する。そして、重みに関する情報を踏まえて最も優先度が高く、リンク番号が「i」以外である隣接ノード装置に対して、受信したフレームが転送されることになる。
【0075】
図7(b)に示すように、隣接ノード管理テーブル6もしくは6aでは、隣接ノード装置ごとに割り当てられるリンク番号と、リンク番号に対応付けた隣接ノード装置の重みを格納する。なお、リンク番号は、ノードIDで代用することも可能である。ノード装置1もしくは1aは、リンク番号iの隣接ノード装置から受信したフレームにしたがって、隣接ノード管理テーブル6もしくは6aを更新し、重みに関する情報を操作する。
【0076】
図8は、データの転送結果により重みを操作する処理を説明する図である。
図8に示す例では、重みに関する情報として、隣接ノード装置A、B、C、Dに対しそれぞれ、リンク番号1, 2, 3, 4 および重み w1, w2, w3, w4 を設定してある。
【0077】
なお、例えばノード装置間の通信が無線である場合には、通信時における環境やノード装置間の距離等が通信品質に影響することがあり、ノード装置間の通信が有線である場合には、例えばトラフィック量が通信品質に影響することがある。その影響を考慮し、ここでは重みの初期値を0.5とし、かつその値の範囲を0以上1以下としているが、これはあくまで一例であって、それ以外の値をとりうる重みを用いる実施形態が想定できる。また、この実施形態においては、重みが小さい(0に近い)ほど優先度が高いとしているが
、これもまた一例である。それ以外の優先度の定めかた(例えば、重みが大きいほど優先度が高いような定めかた)をした実施形態もまた想定されている。
【0078】
また、重み付けテーブルには、フレームを転送する際に優先的に転送すべき隣接ノード装置と、それ以外のノード装置とを示す情報を格納してもよい。例えば、フラグ等を用意しておき、フレームの転送の成否に応じて値を重み付けテーブルに設定することも可能である。
【0079】
ノード装置1もしくは1aは、これまで隣接ノード装置にフレームを転送した結果に応じて重みに関する情報(例えば双方向リンク重み)を操作する。まず、各重みの大小関係が、w1<w2<w3<w4であるとする。すなわち、隣接ノード装置Aについての優先度が最も高く、隣接ノード装置Dについての優先度が最も低いと仮定する。
【0080】
このような場合にノード装置1もしくは1aがフレームを隣接ノード装置A〜D以外の隣接ノード装置iから受信すると、ノード装置1もしくは1aは、最も優先度の高い隣接ノード装置Aから順にフレームを転送しようとする。隣接ノード装置Aへのデータ転送に失敗すると、次に優先度の高いノード装置Bにデータを転送する。
【0081】
最終的に、隣接ノード装置A及びBのいずれについてもデータ転送が失敗し、隣接ノード装置Cについてはデータ転送が成功したとすると、ノード装置1もしくは1aは、隣接ノード装置A、Bについては重みを最大(最悪値)にして、優先度を最低に設定する。そ
して、隣接ノード装置Cについての重みが減らされ、優先度が高く設定されることになる。
【0082】
次回以降のデータフレーム転送においては、このようにして更新された重みの関係(w3<w4<w1=w2)に基づいて、フレームの転送先(LD)を決定し、最も優先度の高い隣接ノード装置Cからフレームの転送を試みることとなる。
【0083】
次に、ループの発生を検出する方法について説明する。
図9は、FID管理テーブル5もしくは5aの構成の一例を示す図である。図9に示した実施形態においては、FID管理テーブル5もしくは5aは例えば、FIFO(First In First Out)型バッファである。FID管理テーブル5もしくは5aには、フレームID(FID)、送信元ノードGSのノードID、転送先ノードLDのノードID、及び送信元ノードLSのノードIDが含まれる。FID、GS/LD/LSのノードIDの定義については、図6に示すデータフレームのそれぞれ対応するフィールドと同様である。
【0084】
ノード装置1もしくは1aは、隣接ノード装置からフレームを受信すると、フレームのFID及びGSのフィールドの値と、FID管理テーブル5もしくは5aに格納されているレコードとを比較する。比較した結果、受信したフレームと同じFID及びGSを有するレコードがFID管理テーブル5に格納されていた場合は、ノード装置1もしくは1aは、そのフレームが過去に一度受信したフレームと同一のフレームであると判断して、「ループが発生した」か、「途中の経路の遮断により戻りが発生した」と見做す。ループまたは戻りの発生が検出された場合には、重み付けテーブル7もしくは7aを更新し、そのフレームのLSのノードIDに対応する重みに関する情報に、最悪値(この実施形態では最大の値)を設定する。
【0085】
一方、同一のFID及びGSを有するレコードが存在しなかった場合には、ノード装置1もしくは1aが、受信したフレームからFID、GS、LD、及びLSの各フィールドから値を取り出して、FID管理テーブル5に1レコード登録する。
【0086】
つづいて、ノード装置がデータフレームを受信した際に行う処理に関し、よりいっそう詳しく説明を行ってゆく。
【0087】
図10及び図11は、或る実施形態に係るノード装置1もしくは1aのデータフレーム受信時の処理を示したフローチャートである。
【0088】
まず、ステップS1で、初期化処理を実行する。ステップS1の初期化処理においては、例えば、無線で隣接ノード装置と通信を行う場合には、使用周波数を合わせる処理や、変調方式を決定する処理等を実行する。なお、ステップS1の初期化処理は、ノード装置1もしくは1aをネットワークに設置したときにのみ実行される。
【0089】
ステップS2では、データフレームの受信を待機する。ステップS2で、データフレームを受信すると、ステップS3に進み、LDのフィールドに格納されているノードIDが自装置のノードIDであるか否かを判定する。LDに自装置以外のノードIDが格納されていた場合には、ステップS2に戻って待機を続ける。
【0090】
また、ステップS1の処理とステップS2の処理との間には、上記のとおり、ハローフレームによるネットワーク構築処理も行われているが、ハローフレームの送受信については図10及び図11に示す処理とは異なるスレッドによって実行されるため、ここでは説明を省略する。
【0091】
ステップS3で、LDのフィールドに自装置のノードIDが格納されていると判定されると、ステップS4に進む。
【0092】
ステップS4では、GDのフィールドに格納されているノードIDは、自装置のノードIDであるか否かを判定する。ステップS4において、GDのフィールドに、自装置のノードIDが格納されていると判定された場合は、つまりネットワークに跨る一連のデータ伝播の終着点が自ノード装置であったということである。したがってフローはステップS10に進み、受信したデータフレームを(上位層で)処理し、一連の処理を終了する。
【0093】
ステップS4において、GDのフィールドに格納されているノードIDが、自装置以外のノードIDであると判定されると、フローはステップS5に進む。そして、ステップS5で、FID管理テーブル5に、受信したデータフレームのFID及びGSとそれぞれ一致するFID及びGSの組み合わせを有するレコードが、存在するか否かを判定する。
【0094】
ステップS5において、FID管理テーブル5にデータフレームのFID及びGSと一致するレコードが存在したと判定されると、フローはステップS6に進む。ステップS6では、FID管理テーブル5のうち、FID及びGSがいずれもデータフレームのFID及びGSと一致すると判定されたレコードから、LDを取り出す。そして、ステップS7で、データフレームのGDに対応する重み付けテーブル7もしくは7aについて、ステップS6において取り出したLDと一致するノードIDを有するレコードについて更新を行う。例えばこの実施形態では、項LastとしてFID管理テーブルで最後にFIDを持つフレームを送出したノードIDを設定している。そしてこの項Lastに対応する重みに関する情報が、優先度がもっとも低い最悪値(例えば1.0)となるように変更できる。重み付けテーブル
7もしくは7aを更新すると、図11の記号(A)に進む。
【0095】
一方、ステップS5において、FID管理テーブル5に一致するFID及びGSは存在しないと判定されると、フローはステップS8に進む。ステップS8では、データフレームのGDに対応する重み付けテーブル7もしくは7aが存在するか否かを判定する。
【0096】
ステップS8において、データフレームのGDが示すノード装置についての重み付けテーブル7もしくは7aが存在しないと判定されると、フローはステップS9に進む。そして、ステップS9では、データフレームのGDについての重み付けテーブル7もしくは7aを作成し、その後フローは図11の記号(A)に進む。
【0097】
なお他の実施形態においては、ステップS9にて、例えば、図5に示す隣接ノード管理テーブル6もしくは6aのリンク強度を参照して重み付けテーブルを作成してもよい。
【0098】
ステップS8において、データフレームのGDが示すノード装置についての重み付けテーブル7もしくは7aが存在すると判定された場合には、特に処理を行わず、図11の記号(A)に進む。
【0099】
図11に示す処理においては、まず記号(A)からステップS11に進み、重み付けテーブル7もしくは7aから最も優先度の高い評価値に対応するノードIDを取得する。そしてステップS12で、取得したノードIDに対応する適切なノード装置を発見することができるか否かを判定する。
【0100】
ステップS12において、適切なノード装置を発見することができたと判定された場合には、フローはステップS13に進み、ステップS11で取得したノードIDに対してデータフレームを転送する。
【0101】
そして、ステップS14では、転送したデータフレームに含まれるデータに基づき、FID管理テーブル5にフレームのFID及びGSと、LDと、LSとを追加する。
【0102】
つづいてステップS15で、データフレームの転送が成功したか否かを転送先ノード装置からの応答により判断する。例えば、転送先ノード装置からack信号を受信した場合には転送が成功したと判定し、所定時間経過してもack信号を受信しなかった場合には失敗したと判定するようにできる。成功したと判定された場合には、ステップS16で、データフレームのGDが示すノード装置についての重み付けテーブル7もしくは7aについて、転送先のノード装置についてのノードIDに対応する評価値を操作しての優先度を上げ、図10の記号(B)に戻る。
【0103】
一方、ステップS15において、データフレームの転送が失敗したと判定された場合には、ステップS17で、転送先のノード装置についてのノードIDに対応する評価値を操作して優先度を下げ、ステップS11に戻る。
【0104】
以降は、データフレームの転送が成功するか、重み付けテーブルに適切なノードIDが存在しなくなるまで、ステップS11以降の処理を繰り返す。
【0105】
ステップS12において、重み付けテーブル7もしくは7aから適切なノード装置(ノードID)が発見できないと判定された場合には、ステップS18に進み、受信したデータフレームをLSが示すノード装置に転送し、図10の記号(B)に戻る。
【0106】
以上説明したように、本実施形態に係るノード装置1もしくは1aによれば、データフレームを転送するときに、保有する重み付けテーブル7もしくは7aを参照して優先的にデータ転送すべきノード装置を判断し、データ転送の成否により重みに関する情報(例えば評価値)を更新する。重みに関する情報にしたがって優先的にフレームを転送すべきノード装置を判断することで、ループの発生にともなうデータフレームの戻りや、ネットワークの状態の変化によりそれまで通信可能であった経路が遮断された際のデータフレームの戻りを検出し、そのことを踏まえて経路を迂回して最適な経路で通信を継続することが可能となる。なお上述したように、重み付けテーブル7もしくは7aはGDごとに作成されうるものであるが、ここではあくまで一例として、わかりやすくするためにひとつの重み付けテーブルだけを考えていることに留意されたい。
【0107】
ところで、図1に示す通信システムにおいては、各ノード装置がネットワークの状態を監視している。以下、本実施形態に係るノード装置によるネットワークの監視方法について説明する。
【0108】
上記のとおり、各ノード装置は、ハローフレームに他のノード装置から受信した電波の通信品質に関わる情報を含めて送信している。ノード装置は、他のノード装置から受信したハローフレームを参照して、隣接ノード装置の通信品質を算出し、図5に示す隣接ノード管理テーブル6もしくは6aに算出した通信品質に関わる情報を保持する。或る実施形態においては、遅延及びホップ数により通信品質を決定する。
【0109】
図12は、ハローフレームのうちの所定の領域に格納されるハローヘッダのフォーマットを示す図である。図12に示すように、ハローヘッダは、グローバル宛先アドレス(すなわちGD)、ホップ数h、経路品質重みd、復路品質重み、及びノードタイプを含む。
【0110】
グローバル宛先アドレス(GD)は例えば、図12に示すハローヘッダを含むハローフレームの最初の送信元(GS)であるノード装置が持つ、重み付けテーブル7に対応するグローバル宛先アドレス(GD)の情報である。
【0111】
ホップ数hは例えば、このハローフレームの送信元から最終目的地(GD)であるノード
装置までのホップ数の情報である。
【0112】
経路品質重みdは、GDまでの経路上での遅延から求めた値が格納される。
復路品質重みは、相手のノード装置(ここでは、ハローフレームを送信したノード装置)から自ノード装置へ至る方向の通信品質に基づいて求めた値が格納される。
【0113】
ノードタイプには、ゲートウェイ、中継器、及び端末等の種類が定義される。
ハローヘッダに格納される情報のうち、経路品質重みdを求める方法について、図13を参照してさらに具体的に説明してゆく。
【0114】
図13は、本実施形態に係るノード装置1もしくは1aにおいて、遅延により通信品質を計測する方法を説明する概念図である。「発生元」のノード装置は、定期的にハローフレームを外部に向けて送出している。図13中に楕円形に示している網掛け部は、発生元ノード装置が送信するハローフレームを受信可能な範囲を示している。ノード装置a及びbは、発生元のノード装置から順次送出されるハローフレームを受信し、1つのフレームを受信してから次のフレームを受信するまでに要する時間を計測する。以下、次のフレームを受信するまでに要する時間を、「受信周期」とも称する。
【0115】
図13において、ノード装置a及びbにおける受信周期と受信回数との関係を図中のグラフ(縦軸は出現回数、横軸は受信間隔)に示す。図示するとおり、各ノード装置における受信周期と受信回数との関係は、一般的に、正規分布となる。
【0116】
そして、一般的に、発生元のノード装置からの距離が比較的遠いノード装置bでは、フレームロスが発生しやすくなる。従って、ノード装置bでは、ノード装置aよりもフレームロスによるフレームの受信抜けが発生しやすくなり、次のフレームを受信するまでの時間が長くなる傾向にある。このことから、本発明にかかる或る実施形態においては、受信周期Tが大きいことを、遅延が大きいことであると見做すような近似を行って、受信周期Tにより通信品質を求めている。
【0117】
受信周期により通信品質を求めるやりかたを説明する。まず、ある時刻tにハローフレームを受信し、次に時刻がt+t1にハローフレームを受信したとする。この場合、受信周期T=t1である。所定の期間に観測された受信周期の集合をT{t1、t2、…、tn|n∈N}(ti(i=1、2、…、n)は各時点での観測値)とする。この場合の観測された受信周期に基づく標準偏差lは、以下の式(1)で表される。なお、式中の
【0118】
【数1】
【0119】
は、受信周期の観測値の平均値である。
【0120】
【数2】
(1)
【0121】
上記(1)式により得られる標準偏差を、復路リンク重みとして、隣接ノード管理テーブル6もしくは6aの所定のフィールド(不図示)に格納する。なお、(1)式で求めた復路リンク重みを、ハローフレームに格納して相手のノード装置に送信すると、相手のノード装置は、受信した情報から往路リンク重みを得られる。このように、互いに相手のノード装置から受信したハローフレームにより自装置内で復路リンク重みを求め、求めた復路リンク重みを今度はハローフレームに含めて相手のノード装置と交換することで、往路リンク重みを得られるのである。
【0122】
取得した往路リンク重み及び復路リンク重みから、双方向リンク重みを算出するにあたっては、当該技術分野において適切とされるさまざまな手法を使用可能である。その一例として、双方向リンク重みは、以下の式(2)で算出可能である。
【0123】
(双方向リンク重み) = [{(往路リンク重み)+1}{(復路リンク重み)+1}-1]1/2 (2)
【0124】
図14は、本発明の或る実施形態がアドホックネットワークにおいて使用可能な、ハローヘッダを含んだハローフレームの詳細なフォーマットを詳細に説明するための図である。なお、本発明の別の実施形態では、これとは異なったフォーマットを使用でき、かつその別の実施形態は本発明の範囲に包摂されうる。
【0125】
図14に示したフレームは、おおまかには、アドホックヘッダと、圧縮ヘッダと、ペイロードとに分けられる。
【0126】
この実施形態においては、アドホックヘッダは、"ローカル宛先アドレス"(LD)と、"
ローカル差出アドレス"(LS)と、フレームの種別を表す"フレームタイプ"と、圧縮後の
フレームのサイズを表す"フレームサイズ"というフィールドを有している。
【0127】
圧縮ヘッダは、ペイロードの圧縮手法を示す"圧縮タイプ"と、圧縮前のフレームのサイズを表す"フレームサイズ"というフィールドを有している。各ノード装置は、この圧縮タイプを考慮して、適切にペイロードの伸張を行うことができる。
【0128】
また、ペイロードには、ハローメッセージヘッダと、一個以上のハローヘッダと、署名を示すハッシュとが圧縮して含まれている。なお、この実施形態にかかるフレームで圧縮を行っているのはフレームのサイズを軽減して通信帯域を節約するという効果を得るためである。当然のことながら、圧縮をせずにデータを有するようなフレームもまた、本発明の他の実施形態に包摂されている。
【0129】
ペイロードに含まれるハローメッセージヘッダには、サービスの種別を表す"サービス
タイプ"と、ペイロード内の分割状況を表す"分割情報"と、ペイロードが含むハローヘッ
ダの個数を示す"ハローヘッダ数"と、ノード装置のIDを示す"装置ID"と、暗号化された情報を復号するための"アクセスキー"というフィールドが含まれる。なおこの"装置ID"というフィールドには、図22に関連して後述するハロー要求の送信元であるノード装置のIDが格納できる。
【0130】
そしてペイロードに含まれる一個以上のハローヘッダは、"グローバル差出アドレス"(GS)と、ゲートウェイ(GW)の情報についてのホップ数を表す"GW情報ホップ数"と、前述の"経路品質重み"(d)および"復路品質重み"というフィールドを含んでいる。
【0131】
なお以上に述べてきたフィールドの種類および順番はあくまで例に過ぎない。本発明の他の実施形態においては、上述したフィールドとそれ以外の当業者が適切と考える任意の
フィールドとを、任意の適切な順番で各ヘッダ内に配置できる。
【0132】
図15は、重み付けテーブル7もしくは7aの構造をさらに詳細に説明する図である。図15に示す重み付けテーブル7もしくは7aは、グローバル宛先アドレス(GD)、ローカル宛先アドレス(LD)、ホップ数h、リンク間到達重みw、経路品質重みd、及び評価値Eを含む。また図15には示していないが、重み付けテーブル7もしくは7aはこの他の情報を含んでもよく、例えば、データを更新した時間情報を示す最終更新時間のデータを含んでもよい。上述したように、こうした重み付けテーブルは、それぞれのノード装置が有するものである。
【0133】
グローバル宛先アドレス(GD)には、受信したハローフレーム(ここでは、ノード装置を起動してから、図16〜図21に関連させて後述するハローフレーム受信処理が複数回行われたとして、そのいずれかの受信処理において受信したハローフレーム、という意味として解釈されたい)のハローヘッダ内のグローバル宛先アドレス(GD)のフィールドに示されるデータが格納される。
【0134】
ローカル宛先アドレス(LD)には、受信したハローフレームに含まれているローカル差出アドレス(LS)に示されるデータが格納される。つまり、このハローフレームを受信したノード装置を主体として考えたとき、受信したハローフレームのLSが、次に別のフレームを送信する際のLD候補となるということである。
【0135】
ホップ数hは、この重み付けテーブルを有するノード装置からGDまでのホップ数が格納されるデータである。つまり、受信したハローフレームのハローヘッダ内のホップ数に示される値に1を加算した値が格納される。
【0136】
ノードタイプは、ノードの種類を定義するデータであって、受信したハローフレームのハローヘッダ内のノードタイプに示されるデータが格納される。
【0137】
リンク間到達重みwは、データフレームのリンク間での転送の成否を数値化したものである。この実施形態では、リンク間到達重みwとして、受信したハローフレームのハローヘッダ内の復路品質重みに基づいて算出されたデータが格納される。
【0138】
経路品質重みdは、図12及び図13を参照して説明したとおり、ハローフレームの受信周期の分散に基づいて算出される値である。
【0139】
評価値Eは、受信したハローフレームのハローヘッダ内の上記ホップ数h、リンク間到達重みw、及び経路品質重みdを用いて算出した、総合的な経路評価情報が格納される。
【0140】
本技術分野では、ホップ数hが増すにつれ指数関数的に通信不安程度が高まる(スルー
プットが低下する)ことが経験的に知られている。これを踏まえて、例えば、評価値Eを以下の(3)式で表すことができる。
【0141】
E(h,w,d)=2(h+w)+d (3)
【0142】
とはいえ、上述した(3)式を用いること以外にも、適切に評価値Eを導出する手法を
用いてもよく、かつそうした手法は本発明の実施形態群に包摂されうる。本発明の他の実施形態においては、ホップ数h、経路品質重みd、リンク間到達重みw、受信信号強度、
もしくはその他の当該技術分野にて適切と考えられる任意のパラメータ、のうちの少なくとも一種を使って、適切に評価値Eを導出することができる。例えば、E = d+h+5w+20/r
という式を使って評価値Eを算出してもよい(ここでdは経路品質重み、hはホップ数、wは
リンク間到達重み、rは最新のハローフレームを受信した際の受信信号(電力)強度であ
る)。
【0143】
更に、上記リンク間到達重みwを定義し、データ転送が失敗した場合にはw=w+1、成功した場合にはw=w−1(例えば、0を最小値とする)とし、wを上記(3)式のようにすることで、データ転送時の隣接ノードの微調整を行うことができる。
【0144】
このように、本実施形態に係るノード装置1もしくは1aは、他のノード装置からのハローフレームの受信状況に基づき、ネットワークの状態を監視することができる。
【0145】
図16から図21は、本発明の実施形態に係るノード装置のハローフレーム受信時の処理を示した詳細なフローチャートである。以下、これらの図にわたってフローを説明してゆく。以下に本発明の実施形態に係るノード装置の処理をおおまかに述べる。
(i) ステップS1600からS1614にて隣接ノード管理テーブルの更新を行う。
(ii) ステップS1700からS1710’にて、ハローフレームのハローヘッダを用い
てハローヘッダのGDごとに、自ノード装置の持つ重み付けテーブルに登録しているハローフレームの送信元(LS)の評価値の更新を行う。
(iii) ステップS1850からS1700’にて、GDがハロー送信元(LS)である自ノード装置の持つ重み付けテーブルの評価値の更新を行う。
(iv) ステップS2000からS2010’にて、自ノード装置の持つ重み付けテーブル
にハローフレームの送信元(LS)が登録されていない場合に新たに登録し、自ノード装置の持つ重み付けテーブルにハローヘッダのGDが登録されていない場合に新たに登録する。
【0146】
この実施形態にかかるフローはまず、図16にて、視点を置くノード装置(自ノード装置)にハローフレームが受信されたところから始まる。
【0147】
ステップS1600からS1614では、ハロー(HELLO)フレームの送信元(LS)に
対応する隣接ノード管理テーブルのレコードにおける重みに関する情報を更新する。
【0148】
ステップS1600では、ハローフレームを受けとったノード装置が、そのノード装置が有する隣接ノード管理テーブル中にハローフレームの送信元(LS)のノード装置に該当するレコードが存在するかどうかを確認するために検索を行う。この検索に際しては、このLSからの前回のハローフレーム受信時刻および今回のハローフレーム受信時刻とを比較する。こうすることで、受信時刻の逆転が起こっていないかを確認してLSの"なりすまし"(つまり、LSを偽って送られているフレーム)が無いかを判断することも可能となる。
【0149】
ステップS1602にて、検索によりハローフレームの送信元(LS)が隣接ノード管理テーブル内に無いことがわかったならば、フローはステップS1604へ進む。そして、隣接ノード管理テーブルにLSを新規に追加し、復路リンク重みの初期値を設定する。ステップS1602にて、検索によりハローフレームの送信元(LS)が隣接ノード管理テーブル内に在ることがわかったならば、フローはステップS1606へ進む。そして、隣接ノード管理テーブル中でのLSに該当するレコードにて、復路リンク重みの値を更新する。
【0150】
その後のステップS1608では、ハローフレーム内のハローヘッダに、自ノード装置の情報(IDなど)が含まれているかという検索を行う。このときに、LSの持つノード間のリンク品質情報(すなわち、LSからの復路リンク重み)を参照する。そしてステップS1610にて自ノード装置の情報が存在することがわかった場合に、フローはステップS1612に進み、隣接ノード装置に関する往路リンク重みの計算を行う。
【0151】
その後のステップS1614では、隣接ノード装置に関する双方向リンク重みを算出す
る。そして図17の記号(I)へ進む。
【0152】
図17のステップS1700では、まず自ノード装置が有する重み付けテーブルのレコード一個ごとについてのくりかえし処理(ループ処理)を開始する。そしてステップS1710でさらに、ハローフレームに含まれるハローヘッダ一個ごとのくりかえし処理をネストする。
【0153】
ステップS1712では、重み付けテーブルのGDと、ハローフレーム内のハローヘッダのGD(つまり、本来はハローフレームの送信元(LS)が持つ重み付けテーブルに含まれていたもの)が一致するかを判定する。
【0154】
ステップS1714にて重み付けテーブルのGDとハローヘッダのGDとが一致しなかったら、フローは図17の記号(IV)へ飛び、ステップS1710’にて1つのくりかえしサイ
クルを了える。ステップS1714にて重み付けテーブルのGDとハローヘッダのGDとが一致したら、フローはステップS1716に進む。
【0155】
ステップS1716では、ハローフレームの送信元(LS)に対応する重み付けテーブルに、自ノード装置がフレームを送る宛先となるLD候補が存在するかを検索する。
【0156】
ステップS1718にて、宛先となるLD候補(宛先LD候補)が存在したら、ステップS1720にて重み付けテーブル中のその宛先LD候補についてのレコードで、ホップ数hを
、ハローヘッダのホップ数+1として更新する。そしてステップS1722で、このハローフレームに関する経路品質重みdを算出し、宛先LD候補に関する経路品質重みdを更新する。なおここでいうハローフレームに関する経路品質重みdとは例えば、ハローフレームの
送信元から観た経路品質重みと、ハローフレームの受信周期の分散から得られる復路品質重みとから算出される経路全体(もしくは経路全体の少なくとも一部分)での双方向リンク重みを、加算または何らかの演算を施した値が、すなわち経路品質重みとなる。これは要するに、或るノード装置において、受信したハローフレームに関する経路品質重みdを
、重み付けテーブルの経路品質重みdに加えられ、そうして得られた更新された経路品質
重みdが、今度は送信されるハローフレームに収められた経路品質重みとなって、次のノ
ード装置へと送信される、ということである。端的にいえば、ハローヘッダごとの双方向リンク重みの積算が、重み付けテーブルの経路品質重みdとなると考えてもよい。この実
施形態においては、一連のくりかえし処理S1710〜S1710’またはくりかえし処理S1700〜S1700’のあいだに得られる各々の双方向リンク重みを積算して、くりかえし処理の対象となっていた重み付けテーブルの経路品質重みdを算出できる。さて
それから図18の記号(II)へフローを進める。
【0157】
ステップS1824では、宛先LD候補に関する受信電力(なお、図15では受信電力についてのフィールドは示していない)を、このハローフレームを受信した際の受信電力として更新する。ステップS1826では、このハローフレームに関する評価値Eを上述し
たように算出して、宛先LD候補に関する評価値Eを更新する。それからステップS182
8にて、宛先LD候補に関するエージングカウンタ(重み付けテーブルの有効期間を設定するための手段)をリセットする。そしてフローはステップS1840に進み、宛先LD候補を評価値の順にソートして、優先度的に好ましい候補を絞りこむようにできる。そしてステップS1710’にて1つのくりかえしサイクルが完了する。
【0158】
一方、ステップS1718にて、宛先となるLD候補が存在しなかった場合には、まずそのハローフレームの送信元(LS)を、重み付けテーブルに宛先となるLD候補として新規に登録をし、フローはステップS1730に進む。ステップS1730にてその新たな宛先LD候補についてのレコードで、ホップ数hを、ハローヘッダのホップ数+1として更新する
。そしてステップS1732で、このハローフレームに関する経路品質重みdを算出し、
宛先LD候補に関する経路品質重みdを更新する。それから図18の記号(III)へフローを進める。ステップS1834では、宛先LD候補に関する受信電力を、このハローフレームを受信した際の受信電力として更新する。ステップS1836では、このハローフレームに関する評価値Eを上述したように算出して、宛先LD候補に関する評価値Eを更新する。それからステップS1838にて、宛先LD候補に関するエージングカウンタをリセットする。そしてフローはステップS1840に進み、宛先LD候補を評価値の順にソートし、ステップS1710’にて1つのくりかえしサイクルが完了する。
【0159】
くりかえし処理S1710〜S1710’が一通り完了したところで、フローはステップS1850へ進む。
【0160】
ステップS1850では、くりかえし処理S1710〜S1710’における処理にてハローヘッダを用いた宛先LD候補の更新があったか、すなわちステップS1714からS1716へ一度でも進んだかどうかを確認する。更新があった場合には、フローは図19の記号(VII)へ飛び、ステップS1700’にて1つのくりかえしサイクルを了える。更新が無かった場合には、フローはステップS1852へ進む。ステップS1852では、ハローフレームの送信元であるノード装置(LS)にあたる値が、(図15に示したような)重み付けテーブルのGDにあたるかどうかを判定する。この実施形態ではこのようにして、ルーティングの評価を行っている。
【0161】
ハローフレームの送信元であるノード装置(LS)が、重み付けテーブルのGDと一致しなかった場合には、フローは図19の記号(VI)へ飛び、ステップS1930で宛先LD候補を評価値順にソートする。そしてステップS1700’にて1つのくりかえしサイクルを了
える。
【0162】
ハローフレームの送信元であるノード装置(LS)が、重み付けテーブルのGDと一致した場合には、フローはステップS1854へ進む。そして、ハローフレームの送信元(LS)に対応する重み付けテーブルに、隣接ノードの候補が存在するかどうかを検索する。そして図19の記号(V)を挟んでステップS1900にて、宛先LD候補が有る場合にはフロー
はステップS1910へ進む。ステップS1910では、このハローフレームに関する経路品質重みdを計算して、その宛先LD候補に関する経路品質重みdを更新する。ステップS1912では、宛先LD候補に関する受信電力を、このハローフレームを受信した際の受信電力として更新する。ステップS1914では、このハローフレームに関する評価値Eを
上述したように算出して、宛先LD候補に関する評価値Eを更新する。それからステップS
1916にて、宛先LD候補に関するエージングカウンタをリセットする。なお紙幅の関係で省略したが、宛先LD候補が複数存在する場合にはステップS1910からステップS1916をその個数分くりかえすこともできる。そしてフローはステップS1930に進み、宛先LD候補を評価値の順にソートし、ステップS1700’にて1つのくりかえしサイ
クルが完了する。
【0163】
一方、ステップS1900にて宛先LD候補が無い場合にはフローはステップS1920へ進む。ステップS1920では、新たな宛先LD候補のホップ数を初期値(ここでは1)
に設定する。ステップS1922では、宛先LD候補のリンク間到達重みwに初期値(例え
ば0.5)を設定する。ステップS1924では、このハローフレームに関する経路品質重
みdを計算して、その宛先LD候補に関する経路品質重みdを更新する。ステップS1926では、宛先LD候補に関する受信電力を、このハローフレームを受信した際の受信電力として更新する。ステップS1928では、このハローフレームに関する評価値Eを上述した
ように算出して、宛先LD候補に関する評価値Eを更新する。それからステップS1929
にて、宛先LD候補に関するエージングカウンタをリセットする。そしてフローはステップ
S1930に進み、宛先LD候補を評価値の順にソートし、ステップS1700’にて1つ
のくりかえしサイクルが完了する。
【0164】
くりかえし処理S1700〜S1700’が一通り完了したところで、フローは記号(VIII)を挟んで図20のステップS2000へ進む。
【0165】
ステップS2000では、ハローフレームの送信元であるノード装置(LS)に対応する(そのLSがGDとなっている)エントリが、自ノード装置の持つ重み付けテーブル(群)のうちに存在するかどうかを確認する。重み付けテーブルに該当エントリが存在した場合には、フローはステップS2010へ飛ぶ。重み付けテーブルに該当エントリが存在しなかった場合には、フローはステップS2001へ進む。
【0166】
ステップS2001では、そのLSをGDとした新たな重み付けテーブルを作成する。ステップS2002では、新たな宛先LD候補のホップ数を初期値(ここでは1)に設定する。
ステップS2003では、宛先LD候補のリンク間到達重みwに初期値(例えば0.5)を設定する。ステップS2004では、このハローフレームに関する経路品質重みdを計算して
、その宛先LD候補に関する経路品質重みdを更新する。ステップS2005では、宛先LD
候補に関する受信電力を、このハローフレームを受信した際の受信電力として更新する。ステップS2006では、このハローフレームに関する評価値Eを上述したように算出し
て、宛先LD候補に関する評価値Eを更新する。それからステップS2007にて、宛先LD
候補に関するエージングカウンタをリセットする。それからフローはステップS2010に進む。
【0167】
ステップS2010では、ハローフレームに含まれるハローヘッダ一個ごとのくりかえし処理を開始する。
【0168】
記号(IX)を挟んで図21のステップS2100では、ハローヘッダのGDが、自ノード装置の持つ重み付けテーブルに存在するかどうかを確認する。重み付けテーブルに該当エントリが存在した場合には、フローはステップS2010’へ飛び、1つのくりかえしサイ
クルが完了する。重み付けテーブルに該当エントリが存在しなかった場合には、フローはステップS2101へ進む。
【0169】
ステップS2101では、そのハローヘッダのGDに対応した新たな重み付けテーブルを作成するとともに、そのテーブルに、ハローフレームの持つアドホックヘッダのLSをフィールドLDの値として持つようなエントリを作成する。ステップS2102では、新たな宛先LD候補のホップ数hを、ハローヘッダのホップ数+1として設定する。ステップS210
3では、宛先LD候補のリンク間到達重みwに初期値(例えば0.5)を設定する。ステップS2104では、このハローヘッダに関する経路品質重みdを使って経路品質重みdを再計算して、その宛先LD候補に関する経路品質重みdを初期化する。ステップS2105では、
宛先LD候補に関する受信電力を、このハローフレームを受信した際の受信電力として更新する。ステップS2106では、このハローヘッダに関する評価値Eを算出して、宛先LD
候補に関する評価値Eを更新する。それからステップS2107にて、宛先LD候補に関す
るエージングカウンタをリセットする。それからフローはステップS2010’に進み、1つのくりかえしサイクルが完了する。
【0170】
そしてくりかえし処理S2010〜S2010’が一通り完了すると、一連のフローは終了する。
【0171】
図22は、ハローフレームの交換シーケンスを示す図である。各ノード装置は、ハローフレームを近隣のノード装置に向けてブロードキャスト送信する。ハローフレームには、
各ノードまでの経路の中で最適と判定されたリンク情報が含まれている。各ノード装置は、ハローフレームを受信すると、保有する隣接ノード管理テーブル6もしくは6aおよび重み付けテーブル7もしくは7aと比較して、各ノード装置についての重みに関する情報の作成及び更新を行っていく。また、隣接ノード管理テーブル6もしくは6aを参照して、ハローフレームのリンク情報の更新を行う。この動作を各ノード装置が複数回繰り返すことで、ノード装置は、他のノード装置のそれぞれまでのルーティングを可能とするリンク先情報を複数個持つことが可能となる。
【0172】
或る実施形態においては、ノード装置1もしくは1aが、特定のノード装置からそれまで受信できていたハローフレームを所定の期間内(例えば30分以内)に受信できなくなった場合に、その特定のノード装置を、通信不能状態にあると見做して、その旨をゲートウェイ装置に通知することができる。また、受信したハローフレームの内容から判断を行ったうえで、異常が検出されればその旨をゲートウェイ装置へ通知することもできる。更には、隣接ノード管理テーブル6もしくは6aを参照して、あるノード装置について異常が検出された場合には、上記重み付けテーブル7もしくは7aの対応する重みを更新して、そのノード装置についての優先度を低くしてもよい。
【0173】
更に或る実施形態では、図22に示すとおり、ゲートウェイ装置との間でハローフレームを送受することにより、ゲートウェイ装置の死活監視を行うこともできる。
【0174】
ノード装置間での状態監視については、所定の時間内に相手のノード装置からハローフレームを受信しない場合には、相手のノード装置に対してハローフレーム発生要求を送信し、相手のノード装置からハローフレームを受信するか否かにより、相手のノード装置の状態を監視するような構造をとってもよい。
【0175】
或る実施形態では、上記のようにして各ノード装置においてネットワークを監視し、ハローフレームにそのハローフレームが通過した経路上のノード装置についての情報を付加してゆき、さらにサーバで集計することにより、ネットワークの監視を行うこともできる。
【0176】
本発明の実施形態に応じて、ハローフレームを用いて各ノード装置がネットワークの監視を行うことで、ネットワーク監視用のフレームを別途流通させる必要がなく、流通フレーム数を抑制することができる。また、隣接ノード装置とで送受するハローフレームを用いてネットワーク監視を行うことにより、センターからネットワーク監視用のフレームを送信してその応答により状態を監視する場合と比較して、ターンアラウンドを小さく抑えたリアルタイムに近い監視が可能となる。
【0177】
図23は、本発明の実施形態にかかるノード装置もしくはプログラムを実施可能なハードウェアを示す概要図である。
【0178】
図23にはまず、各種計算処理を担うマイクロプロセッサユニット(MPU)2300が
示されている。マイクロプロセッサユニット2300は、有線物理層処理部(PHY)23
12とMII(Media Independent Interface)/MDIO(Management Data Input/Output)イ
ンターフェイス2310を介して通信可能に接続されている(なお"MII/MDIO"とは、「MIIまたはMDIO」を意味する)。MIIとMDIOはいずれも、物理層とMAC副層(Media Access Control sublayer)との間のインターフェイスである。
またマイクロプロセッサ2300は、時刻の計測などを担うタイマIC2322と、I2C(Inter-Integrated Circuit)/PIO(Parallel Input/Output)バス2320を介して通信可能に接続されている(なお"I2C/PIO"とは、「I2CまたはPIO」を意味する)。さらにマイ
クロプロセッサ2300は、記憶手段であるダイナミックランダムアクセスメモリ(DRAM
)2332およびフラッシュメモリ2334、ならびにネットワークインターフェイスである無線LAN処理部2336と、PCI(Peripheral Component Interconnect)バス233
0を介して通信可能に接続されている。当然のことながら、当該技術分野の常識に照らし、ここに例示した規格・種類以外の装置を適宜使用してもかまわない。
【0179】
MPU2300は、不揮発性記憶装置の一種であるフラッシュメモリ2334上に格納さ
れたファームウェアなどの種々のプログラムを、DRAM2332上にロードして実行することで、様々な処理を実行できる。MPU2300は例えば、上述した各種処理をノード装置
1に実行させるためのファームウェアプログラムなど、種々のプログラムを実行できる。
【0180】
なお、DRAM2332は、フレームの送信バッファ及び受信バッファとしても使用可能である。フラッシュメモリ2334は、上述したようにファームウェアプログラムなどを格納できる。また、フラッシュメモリ2334には、ノード装置1もしくは1a自身に固有の情報(例えば、ノードIDやMACアドレス)も格納できる。
【0181】
有線PHY処理部2312は、有線接続における物理層の処理を行う回路である。また、
無線LAN処理部2336は、無線LAN接続における物理層の処理を行うハードウェアで
ある。無線LAN処理部2336は、例えばアンテナ、ADC(Analog-to-Digital Converter)、DAC(Digital-to-Analog Converter)、変調器、復調器などを含むことができ
、物理層とMAC副層の処理を行う。したがって、本実施形態では、ノード装置1もしくは1aが、有線通信と無線通信の双方を行うことができる。当然ながらノード装置1もしくは1aが、有線通信又は無線通信の一方のみを行う実施形態も可能である。
【0182】
タイマIC2322は、設定された時間が経過するまでカウントアップ動作を行い、設定された時間が経過すると割り込み信号を出力する回路である。
【0183】
なお、上記の実施形態においては、ノード装置について主に説明したが、上記の方法をコンピュータに実行させる制御プログラムも、本発明の実施形態の一例に含まれる。当該制御プログラムは、磁気ディスク、光磁気ディスク、不揮発性の半導体メモリ、光ディスクなどの、コンピュータ読み取り可能な記憶媒体に格納されて提供され、コンピュータにロードされ、コンピュータにより実行されてもよい。
【0184】
当該制御プログラムを実行するコンピュータは、不図示のノード装置に内蔵又は接続され、上記不図示のノード装置が上記実施形態のノード装置1もしくは1aと同様に動作するように、当該制御プログラムにしたがって上記不図示のノード装置を制御する。例えば、上記実施形態を別の観点から見れば、ノード装置1もしくは1aの内蔵コンピュータであるMPU2300は、フラッシュメモリ2334に格納された制御プログラムにしたがってノード装置1もしくは1aを制御し、上記各処理をノード装置1もしくは1aに行わせている、とも見做せる。
【0185】
以上説明したように、上記の実施形態に係るノード装置によれば、大規模の通信ネットワークに適用する場合であっても、各ノード装置が隣接ノード装置から受信した情報により経路の最適化を行うことやネットワークの監視を行うことが可能となる。
【0186】
また、本実施形態では各種のデータについて、理解しやすいようにテーブル形式の例を開示したが、この例に限らず、データを対応付けて管理可能なXMLやツリー構造など他の管理形式を採用してもよい。
【技術分野】
【0001】
本発明は、複数のノードを含むネットワークにおける、経路選択可能な装置/プログラムに関する。
【背景技術】
【0002】
ネットワーク装置は、これまで非常に多くの研究がなされている。最も普及しているのは、IP(Internet Protocol)ネットワークを利用したネットワーク装置である。また
、複数のプロトコルやネットワークを収容することを目的としたMPLS(Multi Protocol Labeled Switching)は、自動的に経路を作成する機構を持つネットワーク装置である。また、アドホックアルゴリズムの代表例としてAODV(Ad-hoc On-Demand Vector)
やOLSR(Optimized Link State Routing)がある。
【0003】
IPネットワーク装置では、IPアドレスに従いルーティングを決定する。IPアドレス自体が木構造を持つため、IPアドレスの上位から合致するIPネットワークを管理するネットワーク装置に伝送することで、最終的に目標とする端末へフレームを伝送することができる。ルーティングはIPアドレス体系により決定されている。どのネットワーク装置かどのIPネットワークを管理しているかは、ルーティングテーブルによって規定される。ルーティングテーブルは主に手動で設定されることも多いが、RIP(Routing Information Protocol)により自動的に更新されることもある。RIPとは、ネットワーク装置が管理するIPネットワークを周囲にブロードキャストし、ネットワーク装置が互いの管理するIPネットワークを確認する方式である。
【0004】
MPLSでは、ネットワークがLSR(Label Switch Router)と呼ばれるネットワー
ク装置間と外部ネットワークとに分離される。外部ネットワークからのフレームは、エッジノードと呼ばれる外部ネットワークと内部ネットワークの両方にまたがるネットワーク装置によって内部ネットワークに取り込まれる。このとき、外部フレームの先頭にはラベルが挿入される。各LSRは、それぞれがラベル転送テーブルを持つ。ラベル転送テーブルは、入力フレームのラベルと出力フレームのラベルおよびあて先を保持する。LSRは入力されるフレームのラベルを取り出し、該当するラベルをラベル転送テーブルから発見し、出力フレームのラベルに書き換え、該当するあて先に送出する。ラベル転送テーブルのLDP(Label Distribution Protocol)によって行われる。LDPは、まずRIPな
どによりルーティングテーブルの作成を行い、これにラベルを付加し、隣接ノード間で通知しあうプロトコルである。
【0005】
AODVは、経路検索にブロードキャストを用いて、他の通信ノード装置がブロードキャストを繰り返し目的のノード装置への経路を発見する手法である。通信ノード装置は、目標とする経路を発見するために周囲に「Route Request(RREQ)」というフレーム
を送出する。このフレームには、検索目標の通信ノードIDが明記されている。周囲の通信ノード装置は、自身を検索していない場合は、新たにRREQフレームを作成して、周囲へのブロードキャストを繰り返し行う。このとき各通信ノード装置は、送り元のメッセージが、隣接するどの通信ノード装置から受信されたものなのかを記録する。RREQメッセージが目的の通信ノード装置に達したとき、その目的の通信ノード装置は、「Route Reply(RREP)」フレームを作成し、送り元のノードに対して、RREQフレームが
送られてきた経路をたどるようにしてRREPフレームを送信する。このようにして、双方向の通信経路が作成されている。
【0006】
OLSR(Optimized Link State Routing)では、通信ノード装置同士が定期的にフレ
ームを交換しあうことで、ネットワーク全体を把握し、目的の通信ノードまでの経路を検出するという方式を採用している。通信ノード装置は、周期的にHELLO(ハロー)フレームを送出し、互いにその存在を通知しあう。通信相手となる通信ノード装置の存在が判明したところで次に効率的にネットワーク全体にフレームを配信するためのフラッディング用のパスを生成する。これをMPR(Multi Point Relay)と呼ぶ。MPRにより、
各通信ノード装置から効率よくフレームをネットワーク全体へブロードキャストできる。次にこのMPRを用いて、経路作成メッセージであるTC(Topology Control)フレームをノード装置同士が互いに配信することで全ノード装置がネットワークトポロジーを知ることができる。フレームを、目標とする通信ノード装置に送るには、送出元となる通信ノード装置自身が知っているネットワークトポロジーを参照し、送るべき隣接通信ノード装置にフレームを託す。隣接ノード装置も同様に処理を行い、最終的に目標ノード装置にフレームを届ける。
【0007】
アドホック無線通信ネットワークに関しては、公知の技術として、各ノードがハローメッセージとして自ノードの存在を通知する情報と、自ノードまでのルートメトリックとを含んだ情報を放送し、該ハローメッセージを受信した他ノードは、受信したルートメトリックにハローメッセージを放送してきたノードと自ノードとの間のルートのためのルートメトリックを追加し、該追加後のルートメトリックを使用する技術について提供されている(例えば、特許文献1)。ここでのルートメトリックは、ホップ数、リンク品質等の因子により算出される、送信元と宛先とのコストを表す値である。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特表2006−526937号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
IPネットワーク装置やMPLSでは、前提としてアドレスによってネットワーク自体が構造を持っていることを利用している。IPアドレスが木構造であるため、アドレスが上位からマッチしていく方向を選択することにより経路が決定する。また、これらは有線の接続を前提としている。2つの通信端末間で有線接続は安定した通信ができ、接続されていない通信機器はフレームを受信することはないため、単純に通信機のホップ数だけで決めることができる。
【0010】
しかし無線通信を前提としたとき、これらの方式では通信品質のよい経路作成は困難である。無線通信では、通信品質は有線通信と比較した場合に悪く、かつ通信とは直接関係しない他の通信端末にも影響を与える。また通信品質は、距離や周囲の環境の依存性も高く、時間的変化も伴う。このような環境下で上記プロトコルを実施した場合、ホップ数のみで決定すると、アルゴリズムが遠くの通信端末を経由しようとする場合がありえる。しかしながら、距離が遠ければその分通信品質も悪いため非常に品質の悪い経路を作成してしまう。
【0011】
AODVは、経路作成時にネットワークに負荷をかける。通信端末数が少ない場合は問題ないが、通信端末数が多くなり通信量が増えた場合ネットワークへの負荷が高くなってしまう。その結果、通信がすでに確立している通信ノード装置にも影響を与え、リンク切れを起こす可能性が高く、結果的に通信できるノード装置は非常に少なくなりそのほとんどが経路確立できなくなる。また、上記のようにホップ数をベースとしているため通信品質の悪い経路を作成してしまうことも考えられる。
【0012】
OLSRでは、全ノード装置がネットワークトポロジーを知る必要がある。このためス
ケールに限界が生じる。また、全ノード装置のトポロジーが判明する時間が必要となる。
【0013】
上記のとおり、有線無線を問わず、ネットワークにおいては、通信量や周囲の環境影響によりノード装置間の通信品質が変化することがあり、特に無線では変化が大きい。このため、非常に多くのノード装置を含んだネットワークを考えた場合、ネットワークを統括するサーバを設置し、該サーバによってネットワークの管理を行うことは実用的ではない。というのは、ノード装置の個数が多いのでサーバから制御指示を送信するだけでも大変な負荷になってしまうからである。そこで、非常に多くのノード装置からネットワークがつくられている場合には、各ノード装置が自律的に経路選択や死活監視などの動作をすることが望まれる。
【0014】
さて、各ノード装置が自律的に動作することを考えた場合、上述の通り通信品質は変化するので、あるノード装置に宛てた送信フレームを中継する際には、現時点で有効な経路を各ノード装置が把握しておく必要がある。例えば、固定的な構造を持つネットワークや一般的な検索手法である二分木探索などの手法では、ネットワークや木の全体像が初めからわかっているため、どこまで経路を探索したかを容易に判別可能であるのに対し、本願が対象とするノード装置間のリンクが変化してゆくようなネットワークでは、各ノード装置は、周囲のノード装置の先にどのようなノード装置がリンクされているかを知らないので、どこまで経路を探索したかを知るための仕組が必要になる。
【0015】
本発明では、簡易な構造で、かつ、ネットワークに負荷をかけずに、自律的に適切な経路を選択可能なノード装置/プログラムを提供する。
【課題を解決するための手段】
【0016】
本発明の実施形態にかかるノード装置は、複数のノード装置を含むネットワークの中の、ノード装置において、自ノードが送信したフレームの情報として、フレームを一意に識別するための識別情報と該フレームの送出先ノードに関する情報とを格納する識別情報管理テーブルと、フレームの最終宛先ノードごとに、フレームを中継するため送出先とする他ノードについての重み付け情報を格納する宛先ノード別重み付けテーブルと、他ノードから自ノードに宛てて送信されたフレームを受信するフレーム受信手段と、前記フレーム受信手段により受信した前記フレームの識別情報が、前記識別情報管理テーブルに格納されている場合に、該識別情報と対応付けて格納されている前記送出先ノードについて、該フレームの最終宛先に対応する前記宛先ノード別重み付けテーブルのデータを更新する宛先ノード別重み付けテーブル更新手段と、前記フレーム受信手段により受信した前記フレームの識別情報が、前記識別情報管理テーブルに格納されていない場合に、前記フレームの最終宛先ノードに該当する前記宛先ノード別重み付けテーブルを参照して、該フレームを中継するための送出先とする他ノードを決定するフレーム送出先決定手段とを備える。
【0017】
他ノードからフレームを受信すると、宛先ノード別重み付けテーブルを参照し、転送すべきノードを決定する。転送先のノードを重みにしたがって決定し、また、他ノードへのフレームの転送の成否に応じて重みが更新される。ノード装置は、自律的に経路を学習できる。
【0018】
前記宛先ノード別重み付けテーブル更新手段は、前記フレーム受信手段により受信した前記フレームの識別情報が、前記識別情報管理テーブルに格納されている場合に、該識別情報と対応付けて格納されている前記送出先ノードについて、該フレームの最終宛先に対応する前記宛先ノード別重み付けテーブルの該送出先ノードに対する重み付けを、優先度が低くなるように更新するようにしてもよい。
【0019】
更には、自ノードの周囲に存在する他ノードに関する情報を格納する隣接ノード管理テ
ーブルと、ハローメッセージとして、自ノードの存在を知らせる情報と、前記隣接ノード管理テーブルから読み出した情報であって、周囲の経路に関する情報とを送信するハローメッセージ送信手段と、他ノードからの送信されたハローメッセージを受信するハローメッセージ受信手段と、前記ハローメッセージ受信手段により受信したハローメッセージの送出元ノードに関する情報に基づき、前記隣接ノード管理テーブルを更新する隣接ノード管理テーブル更新手段と、を更に備え、前記隣接ノード管理テーブルにおいて、所定の状態になった第1のノードを検出した場合には、前記宛先ノード別重み付けテーブル更新手段は、前記宛先ノード別重み付けテーブルの送出先ノードが該第1のノードであるデータを優先度が低くなるように更新するようにしてもよい。
【発明の効果】
【0020】
本発明の実施形態にかかるノード装置によれば、ノード装置間のリンクが変化するようなネットワークにおいても、各ノード装置は、保有する重みに関する情報を参照して転送先のノードを決定し、重みに関する情報を更新する。これにより、ネットワークの全体を把握せずとも、自律的に最適な経路を学習して通信を行うことが可能となる。
【図面の簡単な説明】
【0021】
【図1】通信システムの全体概念図である。
【図2】本発明の実施形態に係るノード装置の概略図である。
【図3】本発明の実施形態に係るノード装置の詳細な模式図である。
【図4】隣接ノード管理テーブルの構造を示す図である。
【図5】フレームのフォーマット例である。
【図6】図5のフレームのフォーマット例の説明である。
【図7】隣接ノード管理テーブルに基づくデータ転送処理を説明する図である。
【図8】フレームの転送結果により重みに関する情報を操作する処理を説明する図である。
【図9】FID管理テーブルの例を示す図である。
【図10】本発明の実施形態に係るノード装置のデータフレーム受信時の処理を示したフローチャートの概略(その1)である。
【図11】本発明の実施形態に係るノード装置のデータフレーム受信時の処理を示したフローチャートの概略(その2)である。
【図12】ハローヘッダのフォーマットを示す図である。
【図13】本発明の実施形態に係るノード装置において、遅延により通信品質を計測する方法を説明する図である。
【図14】ハローヘッダを含んだハローフレームの詳細なフォーマットを示す図である。
【図15】重み付けテーブルの構造を詳細に説明する図である。
【図16】本発明の実施形態に係るノード装置のフレーム受信時の処理を示した詳細なフローチャート(その1)である。
【図17】本発明の実施形態に係るノード装置のフレーム受信時の処理を示した詳細なフローチャート(その2)である。
【図18】本発明の実施形態に係るノード装置のフレーム受信時の処理を示した詳細なフローチャート(その3)である。
【図19】本発明の実施形態に係るノード装置のフレーム受信時の処理を示した詳細なフローチャート(その4)である。
【図20】本発明の実施形態に係るノード装置のフレーム受信時の処理を示した詳細なフローチャート(その5)である。
【図21】本発明の実施形態に係るノード装置のフレーム受信時の処理を示した詳細なフローチャート(その6)である。
【図22】ハローフレームの交換シーケンスを示す図である。
【図23】本発明の実施形態にかかるノード装置もしくはプログラムを実施可能なハードウェアを示す概要図である。
【発明を実施するための形態】
【0022】
以下、本発明の好適な実施の形態について、図面を参照して詳細に説明する。
まず、本明細書での用語について説明をする。
【0023】
「フレーム」とは、プロトコルが扱うデータ単位のことを指す。「フレーム」には、例えば「ハローフレーム」「データフレーム」が含まれるが、これらに限定はされない。
【0024】
「ハローフレーム(HELLOフレーム)」とは、本発明の実施形態にかかるノード装置が
、別のノード装置に対して互いの存在・状態の確認のために送出する特別なフレームのことを指す。
【0025】
「データフレーム」とは、ネットワークが(スタートノードからゴールノードへと)伝送しようとするデータのことを指す。なお当然のことながら本発明の実施形態にかかるノード装置は、「ハローフレーム」と「データフレーム」を識別するための適切な手段を有することができる。
【0026】
「Local Destination (LD)」とは、或るノード装置を主体として観たときに、次にフレームを渡すべき隣接ノード装置を表すあて先ノードIDのことを指す。なお本明細書ではLDのことを、「ローカル宛先アドレス」と称することもある。
【0027】
「Local Source (LS)」とは、LDへフレームを送るその直接の送り元となるノード装置
(すなわち、LDにとっての自ノード装置)を表したノードIDのことを指す。なお本明細書ではLSのことを、「ローカル差出アドレス」と称することもある。
【0028】
「Global Destination (GD)」とは、データフレームのネットワークに跨った一連の伝
播に関する最終的なあて先となるノードIDのことを指す。なお本明細書ではGDのことを、「グローバル宛先アドレス」と称することもある。
【0029】
「Global Source (GS)」とは、データフレームのネットワークに跨った一連の伝播に関する最初の送り元であるノードIDのことを指す。なお本明細書ではGSのことを、「グローバル差出アドレス」と称することもある。
【0030】
「フレームID (FID)」とは、各フレームが持つ固有の識別情報のことである。FIDとし
ては例えば一連の番号を用いることができるが、これに限定はされない。
【0031】
「重み」とは、本発明の実施形態にかかるフレーム伝播経路選択にあたって考慮される値である。重みとしては、復路リンク重み、往路リンク重み、双方向リンク重み、経路品質重み、復路品質重み、リンク間到達重み、が本明細書に例示されているが、これらに限定はされない。なお本明細書の記載において「重み」または「重みに関する情報」と言うときには、何らかの種類の重みを用いて算定した値のことを指すこともあると解釈されたい。
【0032】
「復路リンク重み」とは、復路を来たるフレームに関する重みのことである。なお、或るノード装置を主体として考えるとき、そのノード装置が別の隣接するノード装置からフレームを受けるとするなら、そのフレームは「復路」を通ってきたことになる。
【0033】
「往路リンク重み」とは、往路を行くフレームに関する重みのことである。なお、或る
ノード装置を主体として考えるとき、そのノード装置が別の隣接するノード装置へフレームを送るとするなら、そのフレームは「往路」を通ることになる。
【0034】
「双方向リンク重み」とは、上述した往路リンク重みと復路リンク重みとを組み合わせて算出する重みのことである。本発明の実施形態では、「復路リンク重み」「往路リンク重み」「双方向リンク重み」は、後に詳述する隣接ノード管理テーブルが含むことができるデータである。しかし他の実施形態では、これ以外の組み合わせを含むようにしてもかまわない。
【0035】
「経路品質重み」とは、GDまでの経路上での遅延を数値化したものを指す。
「復路品質重み」とは、相手となるノード装置から自ノード装置へ至る方向への通信品質を数値化したものを指す。
【0036】
「リンク間到達重み」とは、フレームのリンク間での転送の成否を数値化した値である。本発明の実施形態では、「経路品質重み」「復路品質重み」「リンク間到達重み」は、後に詳述する重み付けテーブルが含むことができるデータである。しかし他の実施形態では、これ以外の組み合わせを含むようにしてもかまわない。
【0037】
図1は、通信システムの全体概念図である。図1に示すように、ネットワークにはノード装置(a、b、…、s、t)が互いに接続されて含まれている
。本通信システムにおいては、スタートノード(図1の例ではノード装置b)からゴールノード(図1の例ではノード装置t)へと情報を伝達するにあたり、各ノード装置が中継器として動作する。
【0038】
各ノード装置は、それぞれ固有の識別情報(ID、Identification)を保有する。各ノード装置に割り当てられたIDを、以下ノードIDとする。各ノード装置は、互いに隣接しているノード装置やネットワーク全体については把握していない。初期状態においては、互いのリンクは存在しておらず、各ノード装置は、自身以外のノード装置についてはその存在・状態を把握していない。
【0039】
そこで、図1に示す通信システムにおいてスタートノード{b}からゴールノード{t}へと情報を伝達するには、まず、ネットワークを構築する必要がある。ネットワークを構築する手順は、以下のとおりである。
【0040】
まず行われるのは、周囲のノード装置の検出である。或るノード装置は、自身の存在を近隣に存在するノード装置へ周期的に通知する。近隣ノード装置への通知には、経路作成に関連した情報が付随されている。各ノード装置は、通知を受信すると、周囲のノード装置についてのリストを作成して、自装置の周囲のノード装置の存在を把握することができる。
【0041】
周囲のノード装置を検出したノード装置は、作成したリストに基づいて、自身が情報を転送する相手となるべきノード装置を決定して、そのノード装置に情報を転送する。
【0042】
或るノード装置が、情報を転送すべきノード装置を決定するにあたって、周囲に存在する複数のノード装置のうちいずれのノード装置に情報を託せば、目的とするゴールノードに情報を到達させられるかについては、この時点では未だこのノード装置は識らない。そこで、本実施形態に係るノード装置では、周囲のノード装置のいずれに優先的に情報を転送すべきかを示す重み付けテーブルを作成し、重み付けテーブルに格納されている重みに関する情報にしたがって、情報の転送の対象となるべきノード装置を決定する。
【0043】
以下、本実施形態に係るノード装置について、具体的に説明する。
図2は、本実施形態に係るノード装置の概略図である。図2におおまかな概要を示すノード装置1は、フレーム処理部2、リンク管理部3、ルーティング決定部4、FID(フレームID)管理テーブル5、隣接ノード管理テーブル6、及び重み付けテーブル7を有する。図2には明示されていないが、当該技術分野において既知である何らかの種類の記憶装置(例えば、DRAMもしくはフラッシュメモリ)が、FID(フレームID)管理テーブル5、隣接ノード管理テーブル6、及び重み付けテーブル7をデータテーブルとして格納できる。
【0044】
フレーム処理部2は、ノード装置1に隣接するノード装置との間で交換されるデータフレームの処理を行う。フレーム処理部2はまた、データフレームを受信した場合に、記憶装置(図2には示されていない)にアクセスしてFID管理テーブル5(請求項の識別情報管理テーブルに相当)を用い、ループの発生の検出も行う。
【0045】
リンク管理部3は、記憶装置(図2には示されていない)にアクセスして隣接ノード管理テーブル6を用い、隣接するノード装置の死活及びリンク強度を管理する。
【0046】
ルーティング決定部4は、記憶装置(図2には示されていない)にアクセスして重み付けテーブル7(請求項の宛先ノード別重み付けテーブルに相当)を参照し、フレームを次にどの隣接ノード装置に転送すべきかを決定する。重み付けテーブル7は、フレームの最終的な宛先(すなわち、Global Destination (GD))ごとに作成される。
【0047】
なお、図1に示すネットワークを構築する複数のノード装置の各々は、それぞれが図2に示すような構造をとるが、以下の説明においては、他のノード装置と区別して、自ノード装置について符号「1」もしくは「1a」を付して説明している。また、各ノード装置は、無線によって接続されていてもよいし、有線によって接続されていても構わない。所望であれば、無線と有線が混在したネットワークに本発明の実施形態にかかる装置もしくはプログラムを適用できることも、本発明の実施形態では想定されている。
【0048】
図3は、実施形態に係るノード装置をさらに説明するための、より詳細な模式図である。なお、参照番号についた接尾辞"a"は、同番号の構成要素(element)と同様であるかもしくは類似した構成要素を指していることに留意されたい。なお本明細書では、例えば或る装置XXXと装置XXXaがともに実施形態に包摂されうる。また、参照番号の接尾辞を省略して、接尾辞が無いものと有るものとを包括する概念を指すこともある。例えば、装置XXXと表記したとき、矛盾が生じないかぎりは、装置XXXaのことも含んでいると解釈される。
【0049】
図3のノード装置1aは、フレーム処理部2a、リンク管理部3a、ルーティング決定部4a、FID管理テーブル5a、隣接ノード管理テーブル6a、重み付けテーブル7a、受信部10、送信部20を有する。なお、FID管理テーブル5a、隣接ノード管理テーブル6a、及び重み付けテーブル7aは、任意の適切な記憶装置に格納できる。そしてその記憶装置をノード装置1aの内部に収めることもできるし、外部に設置することも可能である。また、そうした記憶装置は、各ノード装置ごとに単一のものであってもよいし、複数存在してもよい。
【0050】
上述したLSに対応するノード装置1aが、受信部10にてフレーム(データフレームおよびハローフレームを含む)を受信すると、フレーム分岐処理部12がフレームの種別を識別して、その種別に応じて処理を分岐させる。詳しくは後述するが、フレーム分岐処理部12は、フレームに付されたそのフレームの種別を表すための識別子を用いることができる。
【0051】
受信されたフレームがハローフレームであった場合には、フレーム分岐処理部12が、フレームをリンク管理部3aに渡す。リンク管理部3aは、隣接ノード管理テーブル6aを格納した記憶装置にアクセスし、隣接するノード装置の死活及びリンク強度を管理する。そしてリンク管理部3aは、ループが検出された場合には、重み付けテーブル7aを格納した記憶装置にアクセスし、重みに関する情報の登録または更新を行う(詳しくは後述する)。
【0052】
受信されたフレームがデータフレームであった場合には、フレーム分岐処理部12が、フレームをフレーム処理部2aに渡す。フレーム処理部2aは、FID管理テーブル5aを
格納した記憶装置にアクセスし、FID、LD、およびGSに関する情報を管理する。そしてフ
レーム処理部2aはフレームをルーティング決定部4aに渡す。また、フレーム処理部2aは、ループが検出された場合には、重み付けテーブル7aを格納した記憶装置にアクセスし、重みに関する情報の登録または更新を行う(詳しくは後述する)。
【0053】
ルーティング決定部4aは、重み付けテーブル7aを格納した記憶装置にアクセスして重みに関する情報を得たうえで、フレームをどのノード装置へ送信するかを決定する。そして、送信部20にフレームを渡す。
【0054】
送信部20は、ルーティング決定部4aから受けとったフレームを他のノード装置へ送信するにあたり、送信処理部22にFID管理テーブル5aを格納した記憶装置にアクセス
させて、FIDとLDおよびGSに関する情報を登録・更新する。
【0055】
本発明の実施形態では、上述したように、隣接ノード装置管理テーブル、FID(フレー
ムID)管理テーブル、重み付けテーブルといったテーブルを使用する。まず、隣接ノード装置管理テーブルについての説明を行う。
【0056】
図4は、隣接ノード管理テーブル6もしくは6aの構造を示す図である。隣接ノード管理テーブル6もしくは6aは、ノードID、最終更新時間及びリンク強度を含む。
【0057】
ノードIDは、ネットワークを構築するノード装置を識別するために各ノード装置に割り当てられた識別情報である。
【0058】
最終更新時間は、各ノードIDが示すノード装置について、最後に情報が更新された日時情報である。具体的には例えば、最終更新時間としてリンク強度が更新された日時情報を格納できる。
【0059】
リンク強度は、ノード装置1もしくは1aが、隣接するノード装置から受信したハローフレームに含まれるリンク強度に基づき算出され、適切な記憶装置に格納される。リンク強度は例えば、電波強度やフレーム到達率を用いて算出できる。リンク強度は例えば、双方向リンク重みに対応している。
【0060】
上記のとおり、まず、事前にネットワークを構築するために、隣接ノード間で通知用のフレーム(ハローフレーム)が交換される。そして、図2に示す隣接ノード管理テーブル6もしくは図3に示す隣接ノード管理テーブル6a、ならびに図2に示す重み付けテーブル7もしくは図3に示す重み付けテーブル7aが、各ノード装置において作成される。図
1の説明においても述べたとおり、本実施形態に係るノード装置1においては、ネットワークトポロジーを把握する必要はない。
【0061】
隣接ノード管理テーブル6もしくは6aが作成されると、隣接ノード管理テーブル6も
しくは6aに対応する情報が格納されている隣接ノードのうち、フレームを転送すべきノード装置を決定する。フレームを転送すべきノード装置を決定するときに参照される重み付けテーブル7は、フレームを隣接ノード装置から受信したあとの処理にて更新される。
【0062】
図5および図6は、フレームのフォーマット例である。図5に示すフレームは、隣接ノードの宛先ノード(Local Destination)についてのノードID(LD)、隣接ノードの
送信元ノード(Local Source)についてのノードID(LS)、宛先ノード(Global Destination)についてのノードID(GD)、送信元ノード(Global Source)についての
ノードID(GS)、フレームID(FID)、フレームタイプ(TYPE)、データ長(DATALEN)、及びデータ本体(DATA)を含む。
【0063】
LDには、ノード装置1の隣接ノードのうち、フレームを転送する宛先ノードのノードIDが格納される。
【0064】
LSには、LDとなる隣接ノード装置へフレームを転送する送信元のノード装置のノードIDが格納される。例えば、LDがノード装置1に隣接するノード装置のいずれかのノードIDであったならば、LSはそのノード装置1のノードIDとなる。
【0065】
GDには、フレームの本来の宛先のノードIDが格納され、GSには、フレームの本来の送信元のノードIDが格納される。
【0066】
フレームIDは、フレームを識別するための識別情報が格納される。
フレームタイプには、そのフレームの種類を示す情報が格納される。フレームの種類としては、例えば、データフレームや、ハローフレーム等があるが、これらに限定はされない。
【0067】
データ長には、データ本体の長さ(データ長、またはフレームサイズとも称する)が格納される。
【0068】
データ本体には、ネットワークを伝播する対象であるデータが格納される。
なおここに示したフォーマットはあくまで一例であることに留意されたい。本発明の別の実施形態では、これとは異なったフォーマットを使用することもでき、かつその別の実施形態は本発明の範囲に包摂されうる。
【0069】
図7は、或る実施形態にかかる、隣接ノード管理テーブル6もしくは6aに基づくフレーム転送処理を説明する図である。このうち、図7(a)は、隣接ノード装置ごとの重みの概要を示す図であり、図7(b)は、隣接ノード管理テーブル6もしくは6aの簡単な例を示す図である。
【0070】
この実施形態に係るノード1もしくは1aは、隣接するノード装置のうちいずれかからフレームを受信すると、フレームの送信元すなわちLSであるノード装置以外のうち、重みに関する情報に鑑みてより優先度の高いノード装置に、そのフレームを転送する。ノード装置1もしくは1aは、隣接ノード装置のそれぞれに対してリンク番号を付しており、これによって各隣接ノード装置を識別している。
【0071】
なお、この実施形態においては、重みに関する情報(例えば、双方向リンク重みなど)として用いる値を、0以上1以下の範囲として設定してある。この値が小さいほど、優先度が高いものとして扱う。重みに関する情報初期値として例えば0.5を設定しておき、その
後のフレーム転送の成否やループの検出の有無等に応じて変更してゆくことができる。
【0072】
重みに関する情報の設定及び更新は、後述する重み操作関数(例えば、リンク強度を考慮した関数)により行う。重み操作関数は、ネットワーク全体の振る舞いに影響するため、ネットワークの用途に応じて変更する必要があるだろう。
【0073】
図7(a)においては、リンク番号iの隣接ノード装置からフレームを受信した場合の、重みに関する情報による転送先ノード装置の決定方法を示している。
【0074】
リンク番号iの隣接ノード装置から転送されたフレームを受信すると、ノード装置1もしくは1aは、保有する隣接ノード管理テーブル6もしくは6aのうち、GDのノード装置に対応する重み付けテーブルを参照する。そして、重みに関する情報を踏まえて最も優先度が高く、リンク番号が「i」以外である隣接ノード装置に対して、受信したフレームが転送されることになる。
【0075】
図7(b)に示すように、隣接ノード管理テーブル6もしくは6aでは、隣接ノード装置ごとに割り当てられるリンク番号と、リンク番号に対応付けた隣接ノード装置の重みを格納する。なお、リンク番号は、ノードIDで代用することも可能である。ノード装置1もしくは1aは、リンク番号iの隣接ノード装置から受信したフレームにしたがって、隣接ノード管理テーブル6もしくは6aを更新し、重みに関する情報を操作する。
【0076】
図8は、データの転送結果により重みを操作する処理を説明する図である。
図8に示す例では、重みに関する情報として、隣接ノード装置A、B、C、Dに対しそれぞれ、リンク番号1, 2, 3, 4 および重み w1, w2, w3, w4 を設定してある。
【0077】
なお、例えばノード装置間の通信が無線である場合には、通信時における環境やノード装置間の距離等が通信品質に影響することがあり、ノード装置間の通信が有線である場合には、例えばトラフィック量が通信品質に影響することがある。その影響を考慮し、ここでは重みの初期値を0.5とし、かつその値の範囲を0以上1以下としているが、これはあくまで一例であって、それ以外の値をとりうる重みを用いる実施形態が想定できる。また、この実施形態においては、重みが小さい(0に近い)ほど優先度が高いとしているが
、これもまた一例である。それ以外の優先度の定めかた(例えば、重みが大きいほど優先度が高いような定めかた)をした実施形態もまた想定されている。
【0078】
また、重み付けテーブルには、フレームを転送する際に優先的に転送すべき隣接ノード装置と、それ以外のノード装置とを示す情報を格納してもよい。例えば、フラグ等を用意しておき、フレームの転送の成否に応じて値を重み付けテーブルに設定することも可能である。
【0079】
ノード装置1もしくは1aは、これまで隣接ノード装置にフレームを転送した結果に応じて重みに関する情報(例えば双方向リンク重み)を操作する。まず、各重みの大小関係が、w1<w2<w3<w4であるとする。すなわち、隣接ノード装置Aについての優先度が最も高く、隣接ノード装置Dについての優先度が最も低いと仮定する。
【0080】
このような場合にノード装置1もしくは1aがフレームを隣接ノード装置A〜D以外の隣接ノード装置iから受信すると、ノード装置1もしくは1aは、最も優先度の高い隣接ノード装置Aから順にフレームを転送しようとする。隣接ノード装置Aへのデータ転送に失敗すると、次に優先度の高いノード装置Bにデータを転送する。
【0081】
最終的に、隣接ノード装置A及びBのいずれについてもデータ転送が失敗し、隣接ノード装置Cについてはデータ転送が成功したとすると、ノード装置1もしくは1aは、隣接ノード装置A、Bについては重みを最大(最悪値)にして、優先度を最低に設定する。そ
して、隣接ノード装置Cについての重みが減らされ、優先度が高く設定されることになる。
【0082】
次回以降のデータフレーム転送においては、このようにして更新された重みの関係(w3<w4<w1=w2)に基づいて、フレームの転送先(LD)を決定し、最も優先度の高い隣接ノード装置Cからフレームの転送を試みることとなる。
【0083】
次に、ループの発生を検出する方法について説明する。
図9は、FID管理テーブル5もしくは5aの構成の一例を示す図である。図9に示した実施形態においては、FID管理テーブル5もしくは5aは例えば、FIFO(First In First Out)型バッファである。FID管理テーブル5もしくは5aには、フレームID(FID)、送信元ノードGSのノードID、転送先ノードLDのノードID、及び送信元ノードLSのノードIDが含まれる。FID、GS/LD/LSのノードIDの定義については、図6に示すデータフレームのそれぞれ対応するフィールドと同様である。
【0084】
ノード装置1もしくは1aは、隣接ノード装置からフレームを受信すると、フレームのFID及びGSのフィールドの値と、FID管理テーブル5もしくは5aに格納されているレコードとを比較する。比較した結果、受信したフレームと同じFID及びGSを有するレコードがFID管理テーブル5に格納されていた場合は、ノード装置1もしくは1aは、そのフレームが過去に一度受信したフレームと同一のフレームであると判断して、「ループが発生した」か、「途中の経路の遮断により戻りが発生した」と見做す。ループまたは戻りの発生が検出された場合には、重み付けテーブル7もしくは7aを更新し、そのフレームのLSのノードIDに対応する重みに関する情報に、最悪値(この実施形態では最大の値)を設定する。
【0085】
一方、同一のFID及びGSを有するレコードが存在しなかった場合には、ノード装置1もしくは1aが、受信したフレームからFID、GS、LD、及びLSの各フィールドから値を取り出して、FID管理テーブル5に1レコード登録する。
【0086】
つづいて、ノード装置がデータフレームを受信した際に行う処理に関し、よりいっそう詳しく説明を行ってゆく。
【0087】
図10及び図11は、或る実施形態に係るノード装置1もしくは1aのデータフレーム受信時の処理を示したフローチャートである。
【0088】
まず、ステップS1で、初期化処理を実行する。ステップS1の初期化処理においては、例えば、無線で隣接ノード装置と通信を行う場合には、使用周波数を合わせる処理や、変調方式を決定する処理等を実行する。なお、ステップS1の初期化処理は、ノード装置1もしくは1aをネットワークに設置したときにのみ実行される。
【0089】
ステップS2では、データフレームの受信を待機する。ステップS2で、データフレームを受信すると、ステップS3に進み、LDのフィールドに格納されているノードIDが自装置のノードIDであるか否かを判定する。LDに自装置以外のノードIDが格納されていた場合には、ステップS2に戻って待機を続ける。
【0090】
また、ステップS1の処理とステップS2の処理との間には、上記のとおり、ハローフレームによるネットワーク構築処理も行われているが、ハローフレームの送受信については図10及び図11に示す処理とは異なるスレッドによって実行されるため、ここでは説明を省略する。
【0091】
ステップS3で、LDのフィールドに自装置のノードIDが格納されていると判定されると、ステップS4に進む。
【0092】
ステップS4では、GDのフィールドに格納されているノードIDは、自装置のノードIDであるか否かを判定する。ステップS4において、GDのフィールドに、自装置のノードIDが格納されていると判定された場合は、つまりネットワークに跨る一連のデータ伝播の終着点が自ノード装置であったということである。したがってフローはステップS10に進み、受信したデータフレームを(上位層で)処理し、一連の処理を終了する。
【0093】
ステップS4において、GDのフィールドに格納されているノードIDが、自装置以外のノードIDであると判定されると、フローはステップS5に進む。そして、ステップS5で、FID管理テーブル5に、受信したデータフレームのFID及びGSとそれぞれ一致するFID及びGSの組み合わせを有するレコードが、存在するか否かを判定する。
【0094】
ステップS5において、FID管理テーブル5にデータフレームのFID及びGSと一致するレコードが存在したと判定されると、フローはステップS6に進む。ステップS6では、FID管理テーブル5のうち、FID及びGSがいずれもデータフレームのFID及びGSと一致すると判定されたレコードから、LDを取り出す。そして、ステップS7で、データフレームのGDに対応する重み付けテーブル7もしくは7aについて、ステップS6において取り出したLDと一致するノードIDを有するレコードについて更新を行う。例えばこの実施形態では、項LastとしてFID管理テーブルで最後にFIDを持つフレームを送出したノードIDを設定している。そしてこの項Lastに対応する重みに関する情報が、優先度がもっとも低い最悪値(例えば1.0)となるように変更できる。重み付けテーブル
7もしくは7aを更新すると、図11の記号(A)に進む。
【0095】
一方、ステップS5において、FID管理テーブル5に一致するFID及びGSは存在しないと判定されると、フローはステップS8に進む。ステップS8では、データフレームのGDに対応する重み付けテーブル7もしくは7aが存在するか否かを判定する。
【0096】
ステップS8において、データフレームのGDが示すノード装置についての重み付けテーブル7もしくは7aが存在しないと判定されると、フローはステップS9に進む。そして、ステップS9では、データフレームのGDについての重み付けテーブル7もしくは7aを作成し、その後フローは図11の記号(A)に進む。
【0097】
なお他の実施形態においては、ステップS9にて、例えば、図5に示す隣接ノード管理テーブル6もしくは6aのリンク強度を参照して重み付けテーブルを作成してもよい。
【0098】
ステップS8において、データフレームのGDが示すノード装置についての重み付けテーブル7もしくは7aが存在すると判定された場合には、特に処理を行わず、図11の記号(A)に進む。
【0099】
図11に示す処理においては、まず記号(A)からステップS11に進み、重み付けテーブル7もしくは7aから最も優先度の高い評価値に対応するノードIDを取得する。そしてステップS12で、取得したノードIDに対応する適切なノード装置を発見することができるか否かを判定する。
【0100】
ステップS12において、適切なノード装置を発見することができたと判定された場合には、フローはステップS13に進み、ステップS11で取得したノードIDに対してデータフレームを転送する。
【0101】
そして、ステップS14では、転送したデータフレームに含まれるデータに基づき、FID管理テーブル5にフレームのFID及びGSと、LDと、LSとを追加する。
【0102】
つづいてステップS15で、データフレームの転送が成功したか否かを転送先ノード装置からの応答により判断する。例えば、転送先ノード装置からack信号を受信した場合には転送が成功したと判定し、所定時間経過してもack信号を受信しなかった場合には失敗したと判定するようにできる。成功したと判定された場合には、ステップS16で、データフレームのGDが示すノード装置についての重み付けテーブル7もしくは7aについて、転送先のノード装置についてのノードIDに対応する評価値を操作しての優先度を上げ、図10の記号(B)に戻る。
【0103】
一方、ステップS15において、データフレームの転送が失敗したと判定された場合には、ステップS17で、転送先のノード装置についてのノードIDに対応する評価値を操作して優先度を下げ、ステップS11に戻る。
【0104】
以降は、データフレームの転送が成功するか、重み付けテーブルに適切なノードIDが存在しなくなるまで、ステップS11以降の処理を繰り返す。
【0105】
ステップS12において、重み付けテーブル7もしくは7aから適切なノード装置(ノードID)が発見できないと判定された場合には、ステップS18に進み、受信したデータフレームをLSが示すノード装置に転送し、図10の記号(B)に戻る。
【0106】
以上説明したように、本実施形態に係るノード装置1もしくは1aによれば、データフレームを転送するときに、保有する重み付けテーブル7もしくは7aを参照して優先的にデータ転送すべきノード装置を判断し、データ転送の成否により重みに関する情報(例えば評価値)を更新する。重みに関する情報にしたがって優先的にフレームを転送すべきノード装置を判断することで、ループの発生にともなうデータフレームの戻りや、ネットワークの状態の変化によりそれまで通信可能であった経路が遮断された際のデータフレームの戻りを検出し、そのことを踏まえて経路を迂回して最適な経路で通信を継続することが可能となる。なお上述したように、重み付けテーブル7もしくは7aはGDごとに作成されうるものであるが、ここではあくまで一例として、わかりやすくするためにひとつの重み付けテーブルだけを考えていることに留意されたい。
【0107】
ところで、図1に示す通信システムにおいては、各ノード装置がネットワークの状態を監視している。以下、本実施形態に係るノード装置によるネットワークの監視方法について説明する。
【0108】
上記のとおり、各ノード装置は、ハローフレームに他のノード装置から受信した電波の通信品質に関わる情報を含めて送信している。ノード装置は、他のノード装置から受信したハローフレームを参照して、隣接ノード装置の通信品質を算出し、図5に示す隣接ノード管理テーブル6もしくは6aに算出した通信品質に関わる情報を保持する。或る実施形態においては、遅延及びホップ数により通信品質を決定する。
【0109】
図12は、ハローフレームのうちの所定の領域に格納されるハローヘッダのフォーマットを示す図である。図12に示すように、ハローヘッダは、グローバル宛先アドレス(すなわちGD)、ホップ数h、経路品質重みd、復路品質重み、及びノードタイプを含む。
【0110】
グローバル宛先アドレス(GD)は例えば、図12に示すハローヘッダを含むハローフレームの最初の送信元(GS)であるノード装置が持つ、重み付けテーブル7に対応するグローバル宛先アドレス(GD)の情報である。
【0111】
ホップ数hは例えば、このハローフレームの送信元から最終目的地(GD)であるノード
装置までのホップ数の情報である。
【0112】
経路品質重みdは、GDまでの経路上での遅延から求めた値が格納される。
復路品質重みは、相手のノード装置(ここでは、ハローフレームを送信したノード装置)から自ノード装置へ至る方向の通信品質に基づいて求めた値が格納される。
【0113】
ノードタイプには、ゲートウェイ、中継器、及び端末等の種類が定義される。
ハローヘッダに格納される情報のうち、経路品質重みdを求める方法について、図13を参照してさらに具体的に説明してゆく。
【0114】
図13は、本実施形態に係るノード装置1もしくは1aにおいて、遅延により通信品質を計測する方法を説明する概念図である。「発生元」のノード装置は、定期的にハローフレームを外部に向けて送出している。図13中に楕円形に示している網掛け部は、発生元ノード装置が送信するハローフレームを受信可能な範囲を示している。ノード装置a及びbは、発生元のノード装置から順次送出されるハローフレームを受信し、1つのフレームを受信してから次のフレームを受信するまでに要する時間を計測する。以下、次のフレームを受信するまでに要する時間を、「受信周期」とも称する。
【0115】
図13において、ノード装置a及びbにおける受信周期と受信回数との関係を図中のグラフ(縦軸は出現回数、横軸は受信間隔)に示す。図示するとおり、各ノード装置における受信周期と受信回数との関係は、一般的に、正規分布となる。
【0116】
そして、一般的に、発生元のノード装置からの距離が比較的遠いノード装置bでは、フレームロスが発生しやすくなる。従って、ノード装置bでは、ノード装置aよりもフレームロスによるフレームの受信抜けが発生しやすくなり、次のフレームを受信するまでの時間が長くなる傾向にある。このことから、本発明にかかる或る実施形態においては、受信周期Tが大きいことを、遅延が大きいことであると見做すような近似を行って、受信周期Tにより通信品質を求めている。
【0117】
受信周期により通信品質を求めるやりかたを説明する。まず、ある時刻tにハローフレームを受信し、次に時刻がt+t1にハローフレームを受信したとする。この場合、受信周期T=t1である。所定の期間に観測された受信周期の集合をT{t1、t2、…、tn|n∈N}(ti(i=1、2、…、n)は各時点での観測値)とする。この場合の観測された受信周期に基づく標準偏差lは、以下の式(1)で表される。なお、式中の
【0118】
【数1】
【0119】
は、受信周期の観測値の平均値である。
【0120】
【数2】
(1)
【0121】
上記(1)式により得られる標準偏差を、復路リンク重みとして、隣接ノード管理テーブル6もしくは6aの所定のフィールド(不図示)に格納する。なお、(1)式で求めた復路リンク重みを、ハローフレームに格納して相手のノード装置に送信すると、相手のノード装置は、受信した情報から往路リンク重みを得られる。このように、互いに相手のノード装置から受信したハローフレームにより自装置内で復路リンク重みを求め、求めた復路リンク重みを今度はハローフレームに含めて相手のノード装置と交換することで、往路リンク重みを得られるのである。
【0122】
取得した往路リンク重み及び復路リンク重みから、双方向リンク重みを算出するにあたっては、当該技術分野において適切とされるさまざまな手法を使用可能である。その一例として、双方向リンク重みは、以下の式(2)で算出可能である。
【0123】
(双方向リンク重み) = [{(往路リンク重み)+1}{(復路リンク重み)+1}-1]1/2 (2)
【0124】
図14は、本発明の或る実施形態がアドホックネットワークにおいて使用可能な、ハローヘッダを含んだハローフレームの詳細なフォーマットを詳細に説明するための図である。なお、本発明の別の実施形態では、これとは異なったフォーマットを使用でき、かつその別の実施形態は本発明の範囲に包摂されうる。
【0125】
図14に示したフレームは、おおまかには、アドホックヘッダと、圧縮ヘッダと、ペイロードとに分けられる。
【0126】
この実施形態においては、アドホックヘッダは、"ローカル宛先アドレス"(LD)と、"
ローカル差出アドレス"(LS)と、フレームの種別を表す"フレームタイプ"と、圧縮後の
フレームのサイズを表す"フレームサイズ"というフィールドを有している。
【0127】
圧縮ヘッダは、ペイロードの圧縮手法を示す"圧縮タイプ"と、圧縮前のフレームのサイズを表す"フレームサイズ"というフィールドを有している。各ノード装置は、この圧縮タイプを考慮して、適切にペイロードの伸張を行うことができる。
【0128】
また、ペイロードには、ハローメッセージヘッダと、一個以上のハローヘッダと、署名を示すハッシュとが圧縮して含まれている。なお、この実施形態にかかるフレームで圧縮を行っているのはフレームのサイズを軽減して通信帯域を節約するという効果を得るためである。当然のことながら、圧縮をせずにデータを有するようなフレームもまた、本発明の他の実施形態に包摂されている。
【0129】
ペイロードに含まれるハローメッセージヘッダには、サービスの種別を表す"サービス
タイプ"と、ペイロード内の分割状況を表す"分割情報"と、ペイロードが含むハローヘッ
ダの個数を示す"ハローヘッダ数"と、ノード装置のIDを示す"装置ID"と、暗号化された情報を復号するための"アクセスキー"というフィールドが含まれる。なおこの"装置ID"というフィールドには、図22に関連して後述するハロー要求の送信元であるノード装置のIDが格納できる。
【0130】
そしてペイロードに含まれる一個以上のハローヘッダは、"グローバル差出アドレス"(GS)と、ゲートウェイ(GW)の情報についてのホップ数を表す"GW情報ホップ数"と、前述の"経路品質重み"(d)および"復路品質重み"というフィールドを含んでいる。
【0131】
なお以上に述べてきたフィールドの種類および順番はあくまで例に過ぎない。本発明の他の実施形態においては、上述したフィールドとそれ以外の当業者が適切と考える任意の
フィールドとを、任意の適切な順番で各ヘッダ内に配置できる。
【0132】
図15は、重み付けテーブル7もしくは7aの構造をさらに詳細に説明する図である。図15に示す重み付けテーブル7もしくは7aは、グローバル宛先アドレス(GD)、ローカル宛先アドレス(LD)、ホップ数h、リンク間到達重みw、経路品質重みd、及び評価値Eを含む。また図15には示していないが、重み付けテーブル7もしくは7aはこの他の情報を含んでもよく、例えば、データを更新した時間情報を示す最終更新時間のデータを含んでもよい。上述したように、こうした重み付けテーブルは、それぞれのノード装置が有するものである。
【0133】
グローバル宛先アドレス(GD)には、受信したハローフレーム(ここでは、ノード装置を起動してから、図16〜図21に関連させて後述するハローフレーム受信処理が複数回行われたとして、そのいずれかの受信処理において受信したハローフレーム、という意味として解釈されたい)のハローヘッダ内のグローバル宛先アドレス(GD)のフィールドに示されるデータが格納される。
【0134】
ローカル宛先アドレス(LD)には、受信したハローフレームに含まれているローカル差出アドレス(LS)に示されるデータが格納される。つまり、このハローフレームを受信したノード装置を主体として考えたとき、受信したハローフレームのLSが、次に別のフレームを送信する際のLD候補となるということである。
【0135】
ホップ数hは、この重み付けテーブルを有するノード装置からGDまでのホップ数が格納されるデータである。つまり、受信したハローフレームのハローヘッダ内のホップ数に示される値に1を加算した値が格納される。
【0136】
ノードタイプは、ノードの種類を定義するデータであって、受信したハローフレームのハローヘッダ内のノードタイプに示されるデータが格納される。
【0137】
リンク間到達重みwは、データフレームのリンク間での転送の成否を数値化したものである。この実施形態では、リンク間到達重みwとして、受信したハローフレームのハローヘッダ内の復路品質重みに基づいて算出されたデータが格納される。
【0138】
経路品質重みdは、図12及び図13を参照して説明したとおり、ハローフレームの受信周期の分散に基づいて算出される値である。
【0139】
評価値Eは、受信したハローフレームのハローヘッダ内の上記ホップ数h、リンク間到達重みw、及び経路品質重みdを用いて算出した、総合的な経路評価情報が格納される。
【0140】
本技術分野では、ホップ数hが増すにつれ指数関数的に通信不安程度が高まる(スルー
プットが低下する)ことが経験的に知られている。これを踏まえて、例えば、評価値Eを以下の(3)式で表すことができる。
【0141】
E(h,w,d)=2(h+w)+d (3)
【0142】
とはいえ、上述した(3)式を用いること以外にも、適切に評価値Eを導出する手法を
用いてもよく、かつそうした手法は本発明の実施形態群に包摂されうる。本発明の他の実施形態においては、ホップ数h、経路品質重みd、リンク間到達重みw、受信信号強度、
もしくはその他の当該技術分野にて適切と考えられる任意のパラメータ、のうちの少なくとも一種を使って、適切に評価値Eを導出することができる。例えば、E = d+h+5w+20/r
という式を使って評価値Eを算出してもよい(ここでdは経路品質重み、hはホップ数、wは
リンク間到達重み、rは最新のハローフレームを受信した際の受信信号(電力)強度であ
る)。
【0143】
更に、上記リンク間到達重みwを定義し、データ転送が失敗した場合にはw=w+1、成功した場合にはw=w−1(例えば、0を最小値とする)とし、wを上記(3)式のようにすることで、データ転送時の隣接ノードの微調整を行うことができる。
【0144】
このように、本実施形態に係るノード装置1もしくは1aは、他のノード装置からのハローフレームの受信状況に基づき、ネットワークの状態を監視することができる。
【0145】
図16から図21は、本発明の実施形態に係るノード装置のハローフレーム受信時の処理を示した詳細なフローチャートである。以下、これらの図にわたってフローを説明してゆく。以下に本発明の実施形態に係るノード装置の処理をおおまかに述べる。
(i) ステップS1600からS1614にて隣接ノード管理テーブルの更新を行う。
(ii) ステップS1700からS1710’にて、ハローフレームのハローヘッダを用い
てハローヘッダのGDごとに、自ノード装置の持つ重み付けテーブルに登録しているハローフレームの送信元(LS)の評価値の更新を行う。
(iii) ステップS1850からS1700’にて、GDがハロー送信元(LS)である自ノード装置の持つ重み付けテーブルの評価値の更新を行う。
(iv) ステップS2000からS2010’にて、自ノード装置の持つ重み付けテーブル
にハローフレームの送信元(LS)が登録されていない場合に新たに登録し、自ノード装置の持つ重み付けテーブルにハローヘッダのGDが登録されていない場合に新たに登録する。
【0146】
この実施形態にかかるフローはまず、図16にて、視点を置くノード装置(自ノード装置)にハローフレームが受信されたところから始まる。
【0147】
ステップS1600からS1614では、ハロー(HELLO)フレームの送信元(LS)に
対応する隣接ノード管理テーブルのレコードにおける重みに関する情報を更新する。
【0148】
ステップS1600では、ハローフレームを受けとったノード装置が、そのノード装置が有する隣接ノード管理テーブル中にハローフレームの送信元(LS)のノード装置に該当するレコードが存在するかどうかを確認するために検索を行う。この検索に際しては、このLSからの前回のハローフレーム受信時刻および今回のハローフレーム受信時刻とを比較する。こうすることで、受信時刻の逆転が起こっていないかを確認してLSの"なりすまし"(つまり、LSを偽って送られているフレーム)が無いかを判断することも可能となる。
【0149】
ステップS1602にて、検索によりハローフレームの送信元(LS)が隣接ノード管理テーブル内に無いことがわかったならば、フローはステップS1604へ進む。そして、隣接ノード管理テーブルにLSを新規に追加し、復路リンク重みの初期値を設定する。ステップS1602にて、検索によりハローフレームの送信元(LS)が隣接ノード管理テーブル内に在ることがわかったならば、フローはステップS1606へ進む。そして、隣接ノード管理テーブル中でのLSに該当するレコードにて、復路リンク重みの値を更新する。
【0150】
その後のステップS1608では、ハローフレーム内のハローヘッダに、自ノード装置の情報(IDなど)が含まれているかという検索を行う。このときに、LSの持つノード間のリンク品質情報(すなわち、LSからの復路リンク重み)を参照する。そしてステップS1610にて自ノード装置の情報が存在することがわかった場合に、フローはステップS1612に進み、隣接ノード装置に関する往路リンク重みの計算を行う。
【0151】
その後のステップS1614では、隣接ノード装置に関する双方向リンク重みを算出す
る。そして図17の記号(I)へ進む。
【0152】
図17のステップS1700では、まず自ノード装置が有する重み付けテーブルのレコード一個ごとについてのくりかえし処理(ループ処理)を開始する。そしてステップS1710でさらに、ハローフレームに含まれるハローヘッダ一個ごとのくりかえし処理をネストする。
【0153】
ステップS1712では、重み付けテーブルのGDと、ハローフレーム内のハローヘッダのGD(つまり、本来はハローフレームの送信元(LS)が持つ重み付けテーブルに含まれていたもの)が一致するかを判定する。
【0154】
ステップS1714にて重み付けテーブルのGDとハローヘッダのGDとが一致しなかったら、フローは図17の記号(IV)へ飛び、ステップS1710’にて1つのくりかえしサイ
クルを了える。ステップS1714にて重み付けテーブルのGDとハローヘッダのGDとが一致したら、フローはステップS1716に進む。
【0155】
ステップS1716では、ハローフレームの送信元(LS)に対応する重み付けテーブルに、自ノード装置がフレームを送る宛先となるLD候補が存在するかを検索する。
【0156】
ステップS1718にて、宛先となるLD候補(宛先LD候補)が存在したら、ステップS1720にて重み付けテーブル中のその宛先LD候補についてのレコードで、ホップ数hを
、ハローヘッダのホップ数+1として更新する。そしてステップS1722で、このハローフレームに関する経路品質重みdを算出し、宛先LD候補に関する経路品質重みdを更新する。なおここでいうハローフレームに関する経路品質重みdとは例えば、ハローフレームの
送信元から観た経路品質重みと、ハローフレームの受信周期の分散から得られる復路品質重みとから算出される経路全体(もしくは経路全体の少なくとも一部分)での双方向リンク重みを、加算または何らかの演算を施した値が、すなわち経路品質重みとなる。これは要するに、或るノード装置において、受信したハローフレームに関する経路品質重みdを
、重み付けテーブルの経路品質重みdに加えられ、そうして得られた更新された経路品質
重みdが、今度は送信されるハローフレームに収められた経路品質重みとなって、次のノ
ード装置へと送信される、ということである。端的にいえば、ハローヘッダごとの双方向リンク重みの積算が、重み付けテーブルの経路品質重みdとなると考えてもよい。この実
施形態においては、一連のくりかえし処理S1710〜S1710’またはくりかえし処理S1700〜S1700’のあいだに得られる各々の双方向リンク重みを積算して、くりかえし処理の対象となっていた重み付けテーブルの経路品質重みdを算出できる。さて
それから図18の記号(II)へフローを進める。
【0157】
ステップS1824では、宛先LD候補に関する受信電力(なお、図15では受信電力についてのフィールドは示していない)を、このハローフレームを受信した際の受信電力として更新する。ステップS1826では、このハローフレームに関する評価値Eを上述し
たように算出して、宛先LD候補に関する評価値Eを更新する。それからステップS182
8にて、宛先LD候補に関するエージングカウンタ(重み付けテーブルの有効期間を設定するための手段)をリセットする。そしてフローはステップS1840に進み、宛先LD候補を評価値の順にソートして、優先度的に好ましい候補を絞りこむようにできる。そしてステップS1710’にて1つのくりかえしサイクルが完了する。
【0158】
一方、ステップS1718にて、宛先となるLD候補が存在しなかった場合には、まずそのハローフレームの送信元(LS)を、重み付けテーブルに宛先となるLD候補として新規に登録をし、フローはステップS1730に進む。ステップS1730にてその新たな宛先LD候補についてのレコードで、ホップ数hを、ハローヘッダのホップ数+1として更新する
。そしてステップS1732で、このハローフレームに関する経路品質重みdを算出し、
宛先LD候補に関する経路品質重みdを更新する。それから図18の記号(III)へフローを進める。ステップS1834では、宛先LD候補に関する受信電力を、このハローフレームを受信した際の受信電力として更新する。ステップS1836では、このハローフレームに関する評価値Eを上述したように算出して、宛先LD候補に関する評価値Eを更新する。それからステップS1838にて、宛先LD候補に関するエージングカウンタをリセットする。そしてフローはステップS1840に進み、宛先LD候補を評価値の順にソートし、ステップS1710’にて1つのくりかえしサイクルが完了する。
【0159】
くりかえし処理S1710〜S1710’が一通り完了したところで、フローはステップS1850へ進む。
【0160】
ステップS1850では、くりかえし処理S1710〜S1710’における処理にてハローヘッダを用いた宛先LD候補の更新があったか、すなわちステップS1714からS1716へ一度でも進んだかどうかを確認する。更新があった場合には、フローは図19の記号(VII)へ飛び、ステップS1700’にて1つのくりかえしサイクルを了える。更新が無かった場合には、フローはステップS1852へ進む。ステップS1852では、ハローフレームの送信元であるノード装置(LS)にあたる値が、(図15に示したような)重み付けテーブルのGDにあたるかどうかを判定する。この実施形態ではこのようにして、ルーティングの評価を行っている。
【0161】
ハローフレームの送信元であるノード装置(LS)が、重み付けテーブルのGDと一致しなかった場合には、フローは図19の記号(VI)へ飛び、ステップS1930で宛先LD候補を評価値順にソートする。そしてステップS1700’にて1つのくりかえしサイクルを了
える。
【0162】
ハローフレームの送信元であるノード装置(LS)が、重み付けテーブルのGDと一致した場合には、フローはステップS1854へ進む。そして、ハローフレームの送信元(LS)に対応する重み付けテーブルに、隣接ノードの候補が存在するかどうかを検索する。そして図19の記号(V)を挟んでステップS1900にて、宛先LD候補が有る場合にはフロー
はステップS1910へ進む。ステップS1910では、このハローフレームに関する経路品質重みdを計算して、その宛先LD候補に関する経路品質重みdを更新する。ステップS1912では、宛先LD候補に関する受信電力を、このハローフレームを受信した際の受信電力として更新する。ステップS1914では、このハローフレームに関する評価値Eを
上述したように算出して、宛先LD候補に関する評価値Eを更新する。それからステップS
1916にて、宛先LD候補に関するエージングカウンタをリセットする。なお紙幅の関係で省略したが、宛先LD候補が複数存在する場合にはステップS1910からステップS1916をその個数分くりかえすこともできる。そしてフローはステップS1930に進み、宛先LD候補を評価値の順にソートし、ステップS1700’にて1つのくりかえしサイ
クルが完了する。
【0163】
一方、ステップS1900にて宛先LD候補が無い場合にはフローはステップS1920へ進む。ステップS1920では、新たな宛先LD候補のホップ数を初期値(ここでは1)
に設定する。ステップS1922では、宛先LD候補のリンク間到達重みwに初期値(例え
ば0.5)を設定する。ステップS1924では、このハローフレームに関する経路品質重
みdを計算して、その宛先LD候補に関する経路品質重みdを更新する。ステップS1926では、宛先LD候補に関する受信電力を、このハローフレームを受信した際の受信電力として更新する。ステップS1928では、このハローフレームに関する評価値Eを上述した
ように算出して、宛先LD候補に関する評価値Eを更新する。それからステップS1929
にて、宛先LD候補に関するエージングカウンタをリセットする。そしてフローはステップ
S1930に進み、宛先LD候補を評価値の順にソートし、ステップS1700’にて1つ
のくりかえしサイクルが完了する。
【0164】
くりかえし処理S1700〜S1700’が一通り完了したところで、フローは記号(VIII)を挟んで図20のステップS2000へ進む。
【0165】
ステップS2000では、ハローフレームの送信元であるノード装置(LS)に対応する(そのLSがGDとなっている)エントリが、自ノード装置の持つ重み付けテーブル(群)のうちに存在するかどうかを確認する。重み付けテーブルに該当エントリが存在した場合には、フローはステップS2010へ飛ぶ。重み付けテーブルに該当エントリが存在しなかった場合には、フローはステップS2001へ進む。
【0166】
ステップS2001では、そのLSをGDとした新たな重み付けテーブルを作成する。ステップS2002では、新たな宛先LD候補のホップ数を初期値(ここでは1)に設定する。
ステップS2003では、宛先LD候補のリンク間到達重みwに初期値(例えば0.5)を設定する。ステップS2004では、このハローフレームに関する経路品質重みdを計算して
、その宛先LD候補に関する経路品質重みdを更新する。ステップS2005では、宛先LD
候補に関する受信電力を、このハローフレームを受信した際の受信電力として更新する。ステップS2006では、このハローフレームに関する評価値Eを上述したように算出し
て、宛先LD候補に関する評価値Eを更新する。それからステップS2007にて、宛先LD
候補に関するエージングカウンタをリセットする。それからフローはステップS2010に進む。
【0167】
ステップS2010では、ハローフレームに含まれるハローヘッダ一個ごとのくりかえし処理を開始する。
【0168】
記号(IX)を挟んで図21のステップS2100では、ハローヘッダのGDが、自ノード装置の持つ重み付けテーブルに存在するかどうかを確認する。重み付けテーブルに該当エントリが存在した場合には、フローはステップS2010’へ飛び、1つのくりかえしサイ
クルが完了する。重み付けテーブルに該当エントリが存在しなかった場合には、フローはステップS2101へ進む。
【0169】
ステップS2101では、そのハローヘッダのGDに対応した新たな重み付けテーブルを作成するとともに、そのテーブルに、ハローフレームの持つアドホックヘッダのLSをフィールドLDの値として持つようなエントリを作成する。ステップS2102では、新たな宛先LD候補のホップ数hを、ハローヘッダのホップ数+1として設定する。ステップS210
3では、宛先LD候補のリンク間到達重みwに初期値(例えば0.5)を設定する。ステップS2104では、このハローヘッダに関する経路品質重みdを使って経路品質重みdを再計算して、その宛先LD候補に関する経路品質重みdを初期化する。ステップS2105では、
宛先LD候補に関する受信電力を、このハローフレームを受信した際の受信電力として更新する。ステップS2106では、このハローヘッダに関する評価値Eを算出して、宛先LD
候補に関する評価値Eを更新する。それからステップS2107にて、宛先LD候補に関す
るエージングカウンタをリセットする。それからフローはステップS2010’に進み、1つのくりかえしサイクルが完了する。
【0170】
そしてくりかえし処理S2010〜S2010’が一通り完了すると、一連のフローは終了する。
【0171】
図22は、ハローフレームの交換シーケンスを示す図である。各ノード装置は、ハローフレームを近隣のノード装置に向けてブロードキャスト送信する。ハローフレームには、
各ノードまでの経路の中で最適と判定されたリンク情報が含まれている。各ノード装置は、ハローフレームを受信すると、保有する隣接ノード管理テーブル6もしくは6aおよび重み付けテーブル7もしくは7aと比較して、各ノード装置についての重みに関する情報の作成及び更新を行っていく。また、隣接ノード管理テーブル6もしくは6aを参照して、ハローフレームのリンク情報の更新を行う。この動作を各ノード装置が複数回繰り返すことで、ノード装置は、他のノード装置のそれぞれまでのルーティングを可能とするリンク先情報を複数個持つことが可能となる。
【0172】
或る実施形態においては、ノード装置1もしくは1aが、特定のノード装置からそれまで受信できていたハローフレームを所定の期間内(例えば30分以内)に受信できなくなった場合に、その特定のノード装置を、通信不能状態にあると見做して、その旨をゲートウェイ装置に通知することができる。また、受信したハローフレームの内容から判断を行ったうえで、異常が検出されればその旨をゲートウェイ装置へ通知することもできる。更には、隣接ノード管理テーブル6もしくは6aを参照して、あるノード装置について異常が検出された場合には、上記重み付けテーブル7もしくは7aの対応する重みを更新して、そのノード装置についての優先度を低くしてもよい。
【0173】
更に或る実施形態では、図22に示すとおり、ゲートウェイ装置との間でハローフレームを送受することにより、ゲートウェイ装置の死活監視を行うこともできる。
【0174】
ノード装置間での状態監視については、所定の時間内に相手のノード装置からハローフレームを受信しない場合には、相手のノード装置に対してハローフレーム発生要求を送信し、相手のノード装置からハローフレームを受信するか否かにより、相手のノード装置の状態を監視するような構造をとってもよい。
【0175】
或る実施形態では、上記のようにして各ノード装置においてネットワークを監視し、ハローフレームにそのハローフレームが通過した経路上のノード装置についての情報を付加してゆき、さらにサーバで集計することにより、ネットワークの監視を行うこともできる。
【0176】
本発明の実施形態に応じて、ハローフレームを用いて各ノード装置がネットワークの監視を行うことで、ネットワーク監視用のフレームを別途流通させる必要がなく、流通フレーム数を抑制することができる。また、隣接ノード装置とで送受するハローフレームを用いてネットワーク監視を行うことにより、センターからネットワーク監視用のフレームを送信してその応答により状態を監視する場合と比較して、ターンアラウンドを小さく抑えたリアルタイムに近い監視が可能となる。
【0177】
図23は、本発明の実施形態にかかるノード装置もしくはプログラムを実施可能なハードウェアを示す概要図である。
【0178】
図23にはまず、各種計算処理を担うマイクロプロセッサユニット(MPU)2300が
示されている。マイクロプロセッサユニット2300は、有線物理層処理部(PHY)23
12とMII(Media Independent Interface)/MDIO(Management Data Input/Output)イ
ンターフェイス2310を介して通信可能に接続されている(なお"MII/MDIO"とは、「MIIまたはMDIO」を意味する)。MIIとMDIOはいずれも、物理層とMAC副層(Media Access Control sublayer)との間のインターフェイスである。
またマイクロプロセッサ2300は、時刻の計測などを担うタイマIC2322と、I2C(Inter-Integrated Circuit)/PIO(Parallel Input/Output)バス2320を介して通信可能に接続されている(なお"I2C/PIO"とは、「I2CまたはPIO」を意味する)。さらにマイ
クロプロセッサ2300は、記憶手段であるダイナミックランダムアクセスメモリ(DRAM
)2332およびフラッシュメモリ2334、ならびにネットワークインターフェイスである無線LAN処理部2336と、PCI(Peripheral Component Interconnect)バス233
0を介して通信可能に接続されている。当然のことながら、当該技術分野の常識に照らし、ここに例示した規格・種類以外の装置を適宜使用してもかまわない。
【0179】
MPU2300は、不揮発性記憶装置の一種であるフラッシュメモリ2334上に格納さ
れたファームウェアなどの種々のプログラムを、DRAM2332上にロードして実行することで、様々な処理を実行できる。MPU2300は例えば、上述した各種処理をノード装置
1に実行させるためのファームウェアプログラムなど、種々のプログラムを実行できる。
【0180】
なお、DRAM2332は、フレームの送信バッファ及び受信バッファとしても使用可能である。フラッシュメモリ2334は、上述したようにファームウェアプログラムなどを格納できる。また、フラッシュメモリ2334には、ノード装置1もしくは1a自身に固有の情報(例えば、ノードIDやMACアドレス)も格納できる。
【0181】
有線PHY処理部2312は、有線接続における物理層の処理を行う回路である。また、
無線LAN処理部2336は、無線LAN接続における物理層の処理を行うハードウェアで
ある。無線LAN処理部2336は、例えばアンテナ、ADC(Analog-to-Digital Converter)、DAC(Digital-to-Analog Converter)、変調器、復調器などを含むことができ
、物理層とMAC副層の処理を行う。したがって、本実施形態では、ノード装置1もしくは1aが、有線通信と無線通信の双方を行うことができる。当然ながらノード装置1もしくは1aが、有線通信又は無線通信の一方のみを行う実施形態も可能である。
【0182】
タイマIC2322は、設定された時間が経過するまでカウントアップ動作を行い、設定された時間が経過すると割り込み信号を出力する回路である。
【0183】
なお、上記の実施形態においては、ノード装置について主に説明したが、上記の方法をコンピュータに実行させる制御プログラムも、本発明の実施形態の一例に含まれる。当該制御プログラムは、磁気ディスク、光磁気ディスク、不揮発性の半導体メモリ、光ディスクなどの、コンピュータ読み取り可能な記憶媒体に格納されて提供され、コンピュータにロードされ、コンピュータにより実行されてもよい。
【0184】
当該制御プログラムを実行するコンピュータは、不図示のノード装置に内蔵又は接続され、上記不図示のノード装置が上記実施形態のノード装置1もしくは1aと同様に動作するように、当該制御プログラムにしたがって上記不図示のノード装置を制御する。例えば、上記実施形態を別の観点から見れば、ノード装置1もしくは1aの内蔵コンピュータであるMPU2300は、フラッシュメモリ2334に格納された制御プログラムにしたがってノード装置1もしくは1aを制御し、上記各処理をノード装置1もしくは1aに行わせている、とも見做せる。
【0185】
以上説明したように、上記の実施形態に係るノード装置によれば、大規模の通信ネットワークに適用する場合であっても、各ノード装置が隣接ノード装置から受信した情報により経路の最適化を行うことやネットワークの監視を行うことが可能となる。
【0186】
また、本実施形態では各種のデータについて、理解しやすいようにテーブル形式の例を開示したが、この例に限らず、データを対応付けて管理可能なXMLやツリー構造など他の管理形式を採用してもよい。
【特許請求の範囲】
【請求項1】
複数のノード装置を含んだネットワークの中の、ノード装置において、
ひとつ以上の相手ノードから自ノードに宛てて送信されたフレームを受信する、フレーム受信手段と、
前記自ノードから前記ひとつ以上の相手ノードの各々へと送信するフレームの通信品質に関する、第一の情報、
前記ひとつ以上の相手ノードの各々から前記自ノードへと送信されるフレームの通信品質に関する、第二の情報、および
前記第一の情報と前記第二の情報とから算出される、双方向の通信品質に関する第三の情報を含んだテーブルを格納する、記憶手段と、
前記テーブルに基づいて、前記ひとつ以上の相手ノードの各々に関する優先度を示す評価値を定める、優先度判定手段と、
前記評価値を用いて、前記ひとつ以上の相手ノードのうちのもっとも優先度の高いノードへフレームを送信する、フレーム送信手段と
を含むことを特徴とするノード装置。
【請求項2】
前記フレーム受信手段が受信した、前記ひとつ以上の相手ノードから前記自ノードに宛てて送信されたハローフレームに基づいて、前記優先度判定手段が前記評価値を定め、
前記ひとつ以上の相手ノードのいずれかから前記自ノードに宛てて送られたデータフレームを、前記フレーム受信手段が受信し、
前記フレーム送信手段が、前記評価値を用いて、前記データフレームを前記ひとつ以上の相手ノードのうちの適切なノードへ送信する
ことを特徴とする、請求項1記載のノード装置。
【請求項3】
複数のノード装置を含んだネットワークの中の、ノード装置が実行する方法おいて、
ひとつ以上の相手ノードから自ノードに宛てて送信されたフレームを受信し、
前記自ノードから前記ひとつ以上の相手ノードの各々へと送信するフレームの通信品質に関する、第一の情報、
前記ひとつ以上の相手ノードの各々から前記自ノードへと送信されるフレームの通信品質に関する、第二の情報、および
前記第一の情報と前記第二の情報とから算出される、双方向の通信品質に関する第三の情報を含んだテーブルを記憶手段に格納し、
前記記憶手段に格納されたテーブルに基づいて、前記ひとつ以上の相手ノードの各々に関する優先度を示す評価値を定め、
前記評価値を用いて、前記ひとつ以上の相手ノードのうちのもっとも優先度の高いノードへフレームを送信する、
処理を含むことを特徴とする、ノード装置が実行する方法。
【請求項4】
複数のノード装置を含むネットワークの中の、ノード装置であるコンピュータに実行させるためのプログラムであって、
ひとつ以上の相手ノードから自ノードに宛てて送信されたフレームを受信し、
前記自ノードから前記ひとつ以上の相手ノードの各々へと送信するフレームの通信品質に関する、第一の情報、
前記ひとつ以上の相手ノードの各々から前記自ノードへと送信されるフレームの通信品質に関する、第二の情報、および
前記第一の情報と前記第二の情報とから算出される、双方向の通信品質に関する第三の情報を含んだテーブルを記憶手段に格納し、
前記記憶手段に格納されたテーブルに基づいて、前記ひとつ以上の相手ノードの各々に関する優先度を示す評価値を定め、
前記評価値を用いて、前記ひとつ以上の相手ノードのうちのもっとも優先度の高いノードへフレームを送信する、
処理をコンピュータに実行させるためのプログラム。
【請求項1】
複数のノード装置を含んだネットワークの中の、ノード装置において、
ひとつ以上の相手ノードから自ノードに宛てて送信されたフレームを受信する、フレーム受信手段と、
前記自ノードから前記ひとつ以上の相手ノードの各々へと送信するフレームの通信品質に関する、第一の情報、
前記ひとつ以上の相手ノードの各々から前記自ノードへと送信されるフレームの通信品質に関する、第二の情報、および
前記第一の情報と前記第二の情報とから算出される、双方向の通信品質に関する第三の情報を含んだテーブルを格納する、記憶手段と、
前記テーブルに基づいて、前記ひとつ以上の相手ノードの各々に関する優先度を示す評価値を定める、優先度判定手段と、
前記評価値を用いて、前記ひとつ以上の相手ノードのうちのもっとも優先度の高いノードへフレームを送信する、フレーム送信手段と
を含むことを特徴とするノード装置。
【請求項2】
前記フレーム受信手段が受信した、前記ひとつ以上の相手ノードから前記自ノードに宛てて送信されたハローフレームに基づいて、前記優先度判定手段が前記評価値を定め、
前記ひとつ以上の相手ノードのいずれかから前記自ノードに宛てて送られたデータフレームを、前記フレーム受信手段が受信し、
前記フレーム送信手段が、前記評価値を用いて、前記データフレームを前記ひとつ以上の相手ノードのうちの適切なノードへ送信する
ことを特徴とする、請求項1記載のノード装置。
【請求項3】
複数のノード装置を含んだネットワークの中の、ノード装置が実行する方法おいて、
ひとつ以上の相手ノードから自ノードに宛てて送信されたフレームを受信し、
前記自ノードから前記ひとつ以上の相手ノードの各々へと送信するフレームの通信品質に関する、第一の情報、
前記ひとつ以上の相手ノードの各々から前記自ノードへと送信されるフレームの通信品質に関する、第二の情報、および
前記第一の情報と前記第二の情報とから算出される、双方向の通信品質に関する第三の情報を含んだテーブルを記憶手段に格納し、
前記記憶手段に格納されたテーブルに基づいて、前記ひとつ以上の相手ノードの各々に関する優先度を示す評価値を定め、
前記評価値を用いて、前記ひとつ以上の相手ノードのうちのもっとも優先度の高いノードへフレームを送信する、
処理を含むことを特徴とする、ノード装置が実行する方法。
【請求項4】
複数のノード装置を含むネットワークの中の、ノード装置であるコンピュータに実行させるためのプログラムであって、
ひとつ以上の相手ノードから自ノードに宛てて送信されたフレームを受信し、
前記自ノードから前記ひとつ以上の相手ノードの各々へと送信するフレームの通信品質に関する、第一の情報、
前記ひとつ以上の相手ノードの各々から前記自ノードへと送信されるフレームの通信品質に関する、第二の情報、および
前記第一の情報と前記第二の情報とから算出される、双方向の通信品質に関する第三の情報を含んだテーブルを記憶手段に格納し、
前記記憶手段に格納されたテーブルに基づいて、前記ひとつ以上の相手ノードの各々に関する優先度を示す評価値を定め、
前記評価値を用いて、前記ひとつ以上の相手ノードのうちのもっとも優先度の高いノードへフレームを送信する、
処理をコンピュータに実行させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【公開番号】特開2013−85295(P2013−85295A)
【公開日】平成25年5月9日(2013.5.9)
【国際特許分類】
【出願番号】特願2013−6543(P2013−6543)
【出願日】平成25年1月17日(2013.1.17)
【分割の表示】特願2011−232231(P2011−232231)の分割
【原出願日】平成21年4月27日(2009.4.27)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成25年5月9日(2013.5.9)
【国際特許分類】
【出願日】平成25年1月17日(2013.1.17)
【分割の表示】特願2011−232231(P2011−232231)の分割
【原出願日】平成21年4月27日(2009.4.27)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]