[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2015180014A - 経路選択方法、ノード装置、及び、プログラム - Google Patents

経路選択方法、ノード装置、及び、プログラム Download PDF

Info

Publication number
JP2015180014A
JP2015180014A JP2014057265A JP2014057265A JP2015180014A JP 2015180014 A JP2015180014 A JP 2015180014A JP 2014057265 A JP2014057265 A JP 2014057265A JP 2014057265 A JP2014057265 A JP 2014057265A JP 2015180014 A JP2015180014 A JP 2015180014A
Authority
JP
Japan
Prior art keywords
node device
link
route
frame
cost
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.)
Granted
Application number
JP2014057265A
Other languages
English (en)
Other versions
JP6241339B2 (ja
Inventor
泰二 近藤
Taiji Kondo
泰二 近藤
浩史 砥綿
Hiroshi Towata
浩史 砥綿
英三 石津
Eizo Ishizu
英三 石津
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014057265A priority Critical patent/JP6241339B2/ja
Priority to US14/632,501 priority patent/US9900240B2/en
Priority to BR102015004267A priority patent/BR102015004267A2/pt
Publication of JP2015180014A publication Critical patent/JP2015180014A/ja
Application granted granted Critical
Publication of JP6241339B2 publication Critical patent/JP6241339B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/123Evaluation of link metrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks
    • H04W84/20Master-slave selection or change arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/026Details of "hello" or keep-alive messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/124Shortest path evaluation using a combination of metrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/122Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/20Hop count for routing purposes, e.g. TTL

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

【課題】ループ経路の発生を抑制しつつ、より適した経路を維持することを可能とする経路選択方法、ノード装置、及び、プログラムを提供する。
【解決手段】リンクの到達率を算出し、使用頻度が高いリンクにおける到達率が多く存在する範囲における閾値の間隔が、他の範囲と比較して、より狭くなるように設定されている閾値に基づいて、算出した到達率を離散化し、離散化した後の値に基づいて、リンクコストを算出する。そして、隣接ノード装置から到達可能な各最終宛先までの経路毎のルートコストを隣接ノード装置から取得し、取得したルートコストに算出したリンクコストを積算して、自ノード装置から隣接ノード装置を経由して到達可能な各最終宛先までの経路のルートコストを算出する。そして、データフレームを送信する際に、送信対象のデータフレームの最終宛先までの経路のルートコストに基づいて、送信先となる隣接ノード装置を選択する。
【選択図】図3

Description

本発明は、経路選択方法、ノード装置、及び、プログラムに関する。
近年、複数の通信装置(以下、ノード装置という)が自律分散的に相互接続するアドホックネットワークの研究が進められている。アドホックネットワークの各ノード装置は、通信環境に応じて自立的にネットワークを構築する。
具体的には、アドホックネットワークでは、アクセスポイントは設置されず、各ノード装置が、隣接するノード装置(以下、隣接ノード装置という)から受信したデータフレームをネットワークトポロジに基づいて、他の隣接ノード装置に中継することで、データフレームをゲートウェイ装置(以下、GW装置という)などの最終宛先の装置(以下、最終宛先装置という)に伝送する。
この際、各ノード装置は、ルートコストCRouteに基づいて経路を選択してデータフレームを送信する。つまり、最終宛先装置への経路が複数存在する場合には、各ノード装置が、どの経路を選択するかはルートコストCRouteの定義によることとなる。
経路上のリンクの品質(以下、リンク品質という)が変化し、経路の切換えが行われると、ループ経路が発生する場合がある。このループ経路は、ハローフレームが伝搬され、リンク品質の低下が各ノード装置に伝えられることで解消される。
このように、アドホックネットワークにおけるループ経路は、経路の切換えを発端として発生し、ハローフレームが伝搬され、経路が再形成されることで、解消される。
しかしながら、リンク品質の変動が大きな環境では、経路の切換えが頻発することとなる。この場合、ハローフレームの伝搬が間に合わないため、ループ経路が多数発生し、その結果、到達率が悪化してしまう。
この問題の解決方法として、例えば、ルートコストCRouteの元となるリンクコストCLinkを離散化することで、リンク品質の変化に伴うルートコストCRouteの変化の発生頻度を抑制する方法がある(例えば、特許文献1を参照)。ルートコストCRouteの変化の発生頻度を抑制することで、経路の切換えが抑制され、その結果、ループ経路の発生を抑えることが可能となる。
特表2010−518745号公報
しかしながら、特許文献1で提案されている方法では、経路の安定化のために、単に、ルートコストCRouteに誤差を含ませているに過ぎず、ルートコストCRouteに大きな誤差が含まれてしまうと、適した経路選択ができなくなる可能性がある。
一つの側面では、本発明は、ループ経路の発生を抑制しつつ、より適した経路を維持することを可能とする経路選択方法、ノード装置、及び、プログラムを提供することを課題とする。
一つの態様では、経路選択方法は、隣接するノード装置である隣接ノード装置との間のリンクにおける双方向の受信率を乗算した値である到達率を算出し、予め設定されている複数の閾値に基づいて、算出した前記到達率を離散化し、前記到達率を離散化した後の値に基づいて、前記隣接ノード装置との間の前記リンクにおけるリンクコストを算出し、前記隣接ノード装置から到達可能な各最終宛先のノード装置までの経路毎に、経路上の前記リンクの前記リンクコストの積算値であるルートコストを前記隣接ノード装置から取得し、取得した前記ルートコストに算出した前記リンクコストを積算して、自ノード装置から前記隣接ノード装置を経由して到達可能な各最終宛先のノード装置までの経路のルートコストを算出し、前記データフレームを送信する際に、自ノード装置から送信対象の前記データフレームの最終宛先のノード装置までの経路の前記ルートコストに基づいて、送信対象の前記データフレームの送信先となる前記隣接ノード装置を選択し、前記閾値は、使用頻度が高い前記リンクにおける前記到達率が多く存在する範囲における前記閾値の間隔が、他の範囲と比較して、より狭くなるように設定されている、ことを特徴とする。
一つの態様では、ノード装置は、隣接するノード装置である隣接ノード装置との間のリンクにおける双方向の受信率を乗算した値である到達率を算出する第1の算出手段と、予め設定されている複数の閾値に基づいて、算出された前記到達率を離散化する離散化手段と、前記到達率を離散化した後の値に基づいて、前記隣接ノード装置との間の前記リンクにおけるリンクコストを算出する第2の算出手段と、前記隣接ノード装置から到達可能な各最終宛先のノード装置までの経路毎に、経路上の前記リンクの前記リンクコストの積算値であるルートコストを前記隣接ノード装置から取得する第1の取得手段と、取得された前記ルートコストに算出された前記リンクコストを積算して、自ノード装置から前記隣接ノード装置を経由して到達可能な各最終宛先のノード装置までの経路のルートコストを算出する第3の算出手段と、前記データフレームを送信する際に、自ノード装置から送信対象の前記データフレームの最終宛先のノード装置までの経路の前記ルートコストに基づいて、送信対象の前記データフレームの送信先となる前記隣接ノード装置を選択する選択手段と、を備え、前記閾値は、使用頻度が高い前記リンクにおける前記到達率が多く存在する範囲における前記閾値の間隔が、他の範囲と比較して、より狭くなるように設定されている、ことを特徴としている。
一つの態様では、プログラムは、ノード装置のコンピュータに、隣接するノード装置である隣接ノード装置との間のリンクにおける双方向の受信率を乗算した値である到達率を算出し、予め設定されている複数の閾値に基づいて、算出した前記到達率を離散化し、前記到達率を離散化した後の値に基づいて、前記隣接ノード装置との間の前記リンクにおけるリンクコストを算出し、前記隣接ノード装置から到達可能な各最終宛先のノード装置までの経路毎に、経路上の前記リンクの前記リンクコストの積算値であるルートコストを前記隣接ノード装置から取得し、取得した前記ルートコストに算出した前記リンクコストを積算して、自ノード装置から前記隣接ノード装置を経由して到達可能な各最終宛先のノード装置までの経路のルートコストを算出し、前記データフレームを送信する際に、自ノード装置から送信対象の前記データフレームの最終宛先のノード装置までの経路の前記ルートコストに基づいて、送信対象の前記データフレームの送信先となる前記隣接ノード装置を選択する、処理を実行させ、前記閾値は、使用頻度が高い前記リンクにおける前記到達率が多く存在する範囲における前記閾値の間隔が、他の範囲と比較して、より狭くなるように設定されている、ことを特徴としている。
1つの側面として、ループ経路の発生を抑制しつつ、より適した経路を維持することが可能となる。
実施形態1におけるネットワークの構成例の一部を示す図である。 ハローフレームの受信率に対する到達率と、到達率を離散化した後の値と、ハローフレームの受信率に対するリンクの使用率を、それぞれ、グラフで表した例である。 実施形態1におけるネットワークを構成するノード装置の構成例を示す機能ブロック図である。 実施形態1におけるデータフレームのヘッダのフォーマット例を示す図である。 図4に示すフォーマット例における各フィールドの説明である。 実施形態1におけるハローフレームのヘッダのフォーマット例を示す図である。 図6に示すフォーマット例における各フィールドの説明である。 実施形態1におけるフレーム長管理テーブルの例を示す図である。 実施形態1における閾値管理テーブルの例を示す図である。 実施形態1における受信回数管理テーブルの例を示す図である。 実施形態1におけるルーティングテーブルの例を示す図である。 実施形態1におけるフレーム受信処理のフローを説明するためのフローチャートの例である。 実施形態1における転送処理のフローを説明するためのフローチャートの例である。 実施形態1における更新処理のフローを説明するためのフローチャートの例の一部である。 実施形態1における更新処理のフローを説明するためのフローチャートの例の他の一部である。 実施形態1におけるハローフレーム生成処理のフローを説明するためのフローチャートの例である。 実施形態2におけるネットワークを構成するノード装置の構成例を示す機能ブロック図である。 実施形態2における閾値管理テーブルの例を示す図である。 実施形態2における使用頻度管理テーブルの例を示す図である。 実施形態2におけるハローフレームのヘッダのフォーマット例を示す図である。 図20に示すフォーマット例における各フィールドの説明である。 実施形態2におけるGW装置として機能するノード装置の構成例を示す機能ブロック図である。 実施形態2における使用率算出用テーブルの例を示す図である。 実施形態2における転送処理のフローを説明するためのフローチャートの例である。 実施形態2における更新処理のフローを説明するためのフローチャートの例の一部である。 実施形態2における更新処理のフローを説明するためのフローチャートの例の他の一部である。 実施形態2におけるハローフレーム生成処理のフローを説明するためのフローチャートの例である。 実施形態2におけるデータフレーム生成処理のフローを説明するためのフローチャートの例である。 実施形態2におけるGW装置で実行される閾値算出処理のフローを説明するためのフローチャートの例である。 実施形態におけるノード装置のハードウェア構成の例を示す図である。
以下に本発明の実施の形態について図面を参照しながら詳細に説明する。
(実施形態1)
図1は、本実施形態1におけるネットワーク100の構成例の一部を示す図である。ネットワーク100は、アドホックネットワークの一例であり、複数のノード装置1を含んで構成されている。ノード装置1間には、リンクが存在しており、図1では、リンクを実線で表している。
ノード装置1は、例えば、電力メータなどの検針ノード装置や各種のセンサを具備するセンサノード装置などである。ノード装置1がセンサノード装置の場合、ノード装置1は、データサーバの命令に従って、あるいは、自立的にセンサ等から情報を収集し、収集した情報(データフレーム)を、データサーバへ送信する。
ノード装置1は、図1においては、「Ni」(i=1,・・,7)として示されている。「Ni」は、ノード装置1を一意に識別可能なノードID(IDentification)、例えば、ノード装置1のアドレスである。以下において、特定のノード装置1を指す場合、例えば、ノードIDがNiのノード装置1を指す場合には、ノード装置Niと称することとする。なお、図1におけるノード装置N1はGW装置であるものとする。
リンクは、無線リンクでも、有線リンクでもよい。例えば、図1を参照して、ノード装置N1とノード装置N2とが、他のノード装置1による中継を経ることなく、直接、通信可能な場合に、「ノード装置N1とノード装置N2との間にリンクが存在する」という。
リンクは、動的に変化し、例えば、天候や遮蔽物などの影響で、ノード装置1間にリンクが新たに確立されたり、今まで確立されていたリンクが消滅したりすることがある。また、例えば、ノード装置1が可動式であれば、ノード装置1間の距離の変動によってリンクの有無が変化することもある。また、例えば、ケーブルの接続替えにより、新たなリンクが確立されたり、今まで存在していたリンクが消滅したり、ケーブルの切断等の障害によってリンクが消滅することもある。
次に、本実施形態1におけるリンクコストCLinkの算出の際に用いるアルゴリズムについて説明する。本アルゴリズムでは、詳しくは後述するユニキャストフレームの到達率iを、以下に説明する方法で算出した閾値Sk(k=1,2,・・,K)に基づいて離散化し、到達率iを離散化した後の値iの逆数をリンクコストCLinkとする。
まず、閾値Skの算出方法について説明する。閾値Skは、以下の式1のように定義されている推定メトリックMが最小となるように最適化された閾値である。つまり、閾値Skは、実際使用されるリンクの到達率iの存在確率(確率分布)を考慮して、到達率iを離散化することで生じる誤差がシステム全体で最小となるように最適化したものである。
なお、式中のSCORE(i)、SCORE(i)、UR(i)、Iは、それぞれ、以下のように定義されているものである。但し、これに限定されるものではないが、i<0.1の場合、SCORE(i)=SCORE(i)=10とする。
SCORE(i):到達率iの逆数(1/i)
SCORE(i):到達率iを、閾値Skに基づいて離散化した後の値iの逆数(1/i
UR(i):本ネットワーク100における到達率iのリンクの使用率、つまり、到達率iを確率変数とした場合における、確率変数の値がiである確率
I:到達率iから成る集合
到達率iの閾値Skに基づく離散化は、例えば、以下の式2にしたがって、行われる。但し、Sk<Sk+1とする。
ここで、本実施形態1におけるリンクコストCLinkを、以下の式3のように定義する。すなわち、リンクにおける到達率iを、推定メトリックMが最小となるように最適化した閾値Skに基づいて、式2にしたがって離散化した後の値iの逆数、つまり、推定メトリックMが最小となるように最適化した場合の閾値SkにおけるSCORE(i)をリンクコストCLinkとして定義する。
また、本実施形態1におけるルートコストCRouteを、以下の式4のように定義する。つまり、ルートコストCRouteを、経路上の各リンクのリンクコストCLinkの積算値と定義する。
この場合、図1を参照して、経路(N7,N6,N5,N1)のルートコストCRoute(N7,N6,N5,N1)は、以下の式5のように、経路(N7,N4,N3,N2,N1)のルートコストCRoute(N7,N4,N3,N2,N1)は、以下の式6のように、それぞれ、表すことができる。なお、リンクNi−NjにおけるリンクコストCLinkを、リンクコストCLink(Ni,Nj)と表すものとする。
次に、本実施形態1におけるユニキャストフレームの到達率iの算出の際に用いるアルゴリズムについて説明する。本実施形態1における到達率算出のアルゴリズムでは、ハローフレームの受信率のみに基づいて、つまり、リンクの片方向の受信率のみに基づいて、各リンクにおけるユニキャストフレームの到達率iを算出(推定)する。
ここで、本実施形態1においては、ユニキャストフレームはデータフレームとACK(ACKnowledgement)フレームのことであり、ユニキャストフレームの到達率iは、データフレームが転送先の隣接ノード装置1に到達し、且つ、転送先の隣接ノード装置1からのACKフレームが転送元のノード装置1に到達する確率である。つまり、ユニキャストフレームの到達率iは、リンクの往路の受信率(データフレームの受信率)と復路の受信率(ACKフレームの受信率)とを乗算したものである。
1ビットのデータの片方向の受信率と、フレーム長Lビットのハローフレームの受信率を、それぞれ、以下の式7と式8のように表すとすると、以下の式9が成り立つ。
したがって、1ビットのデータの片方向の受信率は、フレーム長Lビットのハローフレームの受信率に基づいて、以下の式10により算出することが可能である。つまり、1ビットのデータの片方向の受信率は、フレーム長Lビットのハローフレームの受信率をフレーム長Lの逆数(1/L)乗することで算出することが可能である。
また、フレーム長Lビットのデータフレームの受信率と、フレーム長LビットのACKフレームの受信率は、1ビットのデータの片方向の受信率を用いて、それぞれ、以下の式11と式12にしたがって、算出することが可能である。
ユニキャストフレームの到達率iは、上述したように、リンクの往路の受信率(データフレームの受信率)と復路の受信率(ACKフレームの受信率)とを乗算したものである。したがって、ユニキャストフレームの到達率iは、式10乃至式12に基づいて、以下の式13のように表すことができる。つまり、ユニキャストフレームの到達率iは、ハローフレームの受信率と各フレームタイプのフレーム長とに基づいて、算出することが可能である。
ここで、図2は、ハローフレームの受信率に対する到達率iと、到達率iを離散化した後の値iと、ハローフレームの受信率に対するリンクの使用率UR(i)を、それぞれ、グラフで表した例である。なお、図2に示す例は、閾値Sk(k=1,2,3,4)とした場合、つまり、閾値の数を4とした場合における式1で定義した推定メトリックMを最小化する閾値Skの例である。式1で定義した推定メトリックMを最小化するように閾値Skを設定することは、図2に示すように、使用率UR(i)の高いハローフレームの受信率の範囲をより細分化するように到達率iの閾値Skを設定することを意味する。すなわち、これは、使用率UR(i)の高い到達率iの範囲において、閾値Skの間隔をより狭く設定することを意味する。
次に、図3を参照して、本実施形態1におけるノード装置1について説明する。図3は、本実施形態1におけるネットワーク100を構成するノード装置1の構成例を示す機能ブロック図である。
ノード装置1は、図3に示すように、通信部10と、記憶部20と、制御部30と、を備えて構成されている。
通信部10は、通信モジュールなどで構成され、他のノード装置1との間で通信を行う。例えば、通信部10は、ハローフレームなどのフレームを送受信する。また、通信部10は、フレームを受信すると、受信したフレームをフレーム種別特定部31(詳しくは後述)に出力する。
記憶部20は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリなどで構成されている。記憶部20は、制御部30を構成する、例えば、MPU(Micro-Processing Unit)のワークエリア、ノード装置1全体を制御するための動作プログラムなどの各種プログラムを格納するプログラムエリア、詳しくは後述のフレーム長管理テーブルT1、閾値管理テーブルT2、受信回数管理テーブルT3、ルーティングテーブルT4などの各種データを格納するデータエリアとして機能する。また、データエリアには、自ノードIDなども格納されている。
ここで、図4と図5を参照して、データフレーム処理部33(詳しくは後述)により生成されるデータフレームのヘッダについて説明する。図4は、本実施形態1におけるデータフレームのヘッダのフォーマット例を示す図である。図5は、図4に示すフォーマット例における各フィールドの説明である。
本実施形態1におけるデータフレームのヘッダは、図4に示すように、LD(Local Destination)と、LS(Local Source)と、GD(Global Destination)と、GS(Global Source)と、FID(Frame IDentification)と、フレームタイプと、を含む。
LSは、転送元のノード装置1であり、例えば、図1を参照して、ノード装置N7によりノード装置N6へ送信されたデータフレームのLSは、ノード装置N7である。LDは、転送先となる隣接ノード装置1であり、LSとなるノード装置1のルート選択部34(詳しくは後述)が、ルーティングテーブルT4を参照して、LDを選択する。例えば、図1を参照して、ノード装置N7によりノード装置N6へ送信されたデータフレームのLDは、ノード装置N6である。
GSは、データフレームの発行元のノード装置1であり、GDは、データフレームの最終的な宛先となるノード装置1である。例えば、図1を参照して、ノード装置N7により発行されたデータフレームが、ノード装置N6、ノード装置N5の順番で中継され、最終的にノード装置N1へと送信される場合、該データフレームのGDは、ノード装置N1であり、GSは、ノード装置N7である。
FIDは、データフレームの発行元のノード装置1におけるフレームID、つまり、発行元のノード装置1におけるデータフレームの生成回数を示す通し番号である。
フレームタイプは、フレームの種別を示す情報であり、データフレームにおいては、フレームの種別がデータフレームであることを示す情報が、「フレームタイプ」フィールドに格納される。フレームの種別としては、本実施形態1においては、データフレームと、ACKフレームと、ハローフレームの3つが存在するものとする。
データフレームは、発行元のノード装置1(GS)が最終的な宛先となるノード装置1(GD)に伝達しようとしている情報を、ペイロードとして含むフレームである。
ACKフレームは、データフレームを受信した受信側のノード装置1(LD)が、「データフレームを受信した旨」を送信側のノード装置1(LS)に伝えるために送信されるフレーム、つまり、肯定応答である。
ハローフレームは、ハローフレーム生成部35(詳しくは後述)により生成され、自ノード装置1の存在を他のノード装置1に対して通知するためのフレームであり、後述するように、経路作成に必要な情報を含んでいる。
次に、図6と図7を参照して、ハローフレーム生成部35により生成されるハローフレームのヘッダについて説明する。図6は、本実施形態1におけるハローフレームのヘッダのフォーマット例を示す図である。図7は、図6に示すフォーマット例における各フィールドの説明である。
本実施形態1におけるハローフレームのヘッダは、図6に示すように、送信元IDと、FIDと、フレームタイプと、GDとルートコストCRouteとの組と、を含む。
送信元IDは、ハローフレームの送信元のノード装置1のノードIDであり、例えば、送信元のノード装置1のアドレスである。
FIDは、ハローフレームの送信元のノード装置1におけるフレームID、つまり、送信元のノード装置1におけるハローフレームの生成回数(すなわち、送信回数)を示す通し番号である。
フレームタイプは、フレームの種別を示す情報であり、ハローフレームにおいては、フレームの種別がハローフレームであることを示す情報が、「フレームタイプ」フィールドに格納される。
GDとルートコストCRouteとの組は、ハローフレームの送信元のノード装置1から到達可能な最終的な宛先(GD)のノードIDと当該GDから送信元のノード装置1に至る経路の内で最小のルートコストCRouteとの組である。
次に、図8乃至図11を参照して、記憶部20のデータエリアに格納されている、フレーム長管理テーブルT1、閾値管理テーブルT2、受信回数管理テーブルT3、ルーティングテーブルT4について、それぞれ、説明する。
図8は、本実施形態1におけるフレーム長管理テーブルT1の例を示す図である。本実施形態1におけるフレーム長管理テーブルT1は、例えば、リンク管理部32(詳しくは後述)が到達率を算出する際に参照されるテーブルであり、図8に示すように、「フレームタイプ」と「フレーム長」とが対応付けられているテーブルである。
図9は、本実施形態1における閾値管理テーブルT2の例を示す図である。本実施形態1における閾値管理テーブルT2は、リンク管理部32がリンクコストCLinkを算出する際に参照されるテーブルであり、図9に示すように、各閾値Skの値が管理されているテーブルである。これらの閾値Skは、上述した方法により予め算出された閾値である。
図10は、本実施形態1における受信回数管理テーブルT3の例を示す図であり、ノード装置N7の受信回数管理テーブルT3の例である。本実施形態1における受信回数管理テーブルT3は、リンク管理部32により管理されているテーブルであり、図10に示すように、「隣接ノード装置1のノードID」と「受信回数」とが対応付けられているテーブルである。
受信回数は、対応する隣接ノード装置1から送信されたハローフレームの受信回数であり、対応する隣接ノード装置1からのハローフレームが受信される度に、リンク管理部32によりインクリメントされる。
図11は、本実施形態1におけるルーティングテーブルT4の例を示す図であり、ノード装置N7のルーティングテーブルT4の例である。本実施形態1におけるルーティングテーブルT4は、リンク管理部32により管理されており、データフレームの転送先となる隣接ノード装置1を選択するために必要となる情報(各経路のルートコスト)をGDごとに管理しているテーブルである。例えば、本実施形態1におけるルーティングテーブルT4は、図11に示すように、「GDのノードID」と「隣接ノード装置1のノードID」と「リンクコストCLink」と「ルートコストCRoute」とが対応付けられているテーブルである。
隣接ノード装置1のノードIDは、対応するGDにデータフレームを送信する際の転送先候補となる隣接ノード装置1のノードIDである。
リンクコストCLinkは、対応する隣接ノード装置1との間のリンクのリンクコストCLinkである。ルートコストCRouteは、GDから自ノード装置1までの経路上の各リンクのリンクコストCLinkの積算値であり、対応する隣接ノード装置1からのハローフレームに含まれるルートコストCRouteと対応する隣接ノード装置1との間のリンクのリンクコストCLinkとの積算値が、リンク管理部32により格納される。
図3に戻り、制御部30は、例えば、MPUなどで構成され、記憶部20のプログラムエリアに格納されている動作プログラムを実行して、図3に示すように、フレーム種別特定部31と、リンク管理部32と、データフレーム処理部33と、ルート選択部34と、ハローフレーム生成部35と、ACKフレーム処理部36としての機能を実現すると共に、ノード装置1全体を制御する制御処理や詳しくは後述のフレーム受信処理やハローフレーム生成処理などの処理を実行する。
フレーム種別特定部31は、通信部10で受信したフレームの種別を特定する。具体的には、通信部10は、フレームを受信すると、受信したフレームをフレーム種別特定部31に出力する。フレーム種別特定部31は、入力されたフレームのヘッダを解析して、フレームタイプに基づいて、フレームの種別を特定する。そして、フレーム種別特定部31は、特定したフレームの種別がハローフレームの場合には、受信したフレームをリンク管理部32に、特定したフレームの種別がデータフレームの場合には、受信したフレームをデータフレーム処理部33に、特定したフレームの種別がACKフレームの場合には、受信したフレームをACKフレーム処理部36に、それぞれ、出力する。
リンク管理部32は、受信回数管理テーブルT3とルーティングテーブルT4の管理を行うことで、経路管理を行う。より具体的には、リンク管理部32は、受信したフレームがハローフレームの場合に、受信したハローフレームを解析し、解析結果に基づいて、受信回数管理テーブルT3とルーティングテーブルT4の更新を行う。
例えば、リンク管理部32は、受信したハローフレームの送信元IDに基づいて、ハローフレームの送信元の隣接ノード装置1を特定する。そして、リンク管理部32は、受信回数管理テーブルT3を参照して、特定した隣接ノード装置1に対応する受信回数をインクリメントする。この際、リンク管理部32は、受信したハローフレームの送信元IDと一致するノードIDが受信回数管理テーブルT3にない場合には、エントリを追加し、送信元IDと受信回数“1”とを対応付けて格納する。
また、例えば、リンク管理部32は、受信したハローフレームのFIDに基づいて、送信元のノード装置1におけるハローフレームの送信回数を特定する。そして、リンク管理部32は、インクリメントした後の受信回数と特定した送信回数とに基づいて、ハローフレームの受信率を算出すると共に、フレーム長管理テーブルT1を参照して、各フレームタイプのフレーム長(L、L、L)を取得する。
そして、リンク管理部32は、算出したハローフレームの受信率と各フレームタイプのフレーム長とに基づいて、上述の式13に従って、受信したハローフレームの送信元のノード装置1との間のリンクおけるユニキャストフレームの到達率iを算出する。
そして、リンク管理部32は、閾値管理テーブルT2を参照して、閾値Skを取得し、取得した閾値Skに基づいて、算出した到達率iを離散化する。より具体的には、リンク管理部32は、例えば、式2にしたがって、算出した到達率iを離散化する。そして、リンク管理部32は、算出した到達率iを離散化した後の値iの逆数をリンクコストCLinkとして算出し、算出したリンクコストCLinkで、ルーティングテーブルT4の特定した隣接ノード装置1に対応するリンクコストCLinkをそれぞれ更新する。
この際、特定した隣接ノード装置1のエントリがルーティングテーブルT4に存在しない場合、あるいは、ハローフレームに含まれるルートコストCRouteに対応付けられているGDの一部に特定した隣接ノード装置1のエントリが存在しない場合に、リンク管理部32は、エントリを追加して、対応するフィールドに算出したリンクコストCLinkを格納する。
更に、リンク管理部32は、受信したハローフレームに含まれるGDに対応付けられているルートコストCRouteに算出したリンクコストCLinkを積算した値で、ルーティングテーブルT4における対応するGDの特定した隣接ノード装置1(送信元)に対応するルートコストCRouteをそれぞれ更新する。
データフレーム処理部33は、受信したデータフレームの処理を行う。より具体的には、まず、フレーム種別特定部31よりデータフレームが入力されると、データフレーム処理部33は、入力されたデータフレームのヘッダを解析し、LDが自ノードIDと一致するか否かを判定する。そして、データフレーム処理部33は、LDが自ノードIDと一致しない場合には、受信したデータフレームを破棄する。
一方、LDが自ノードIDと一致する場合には、データフレーム処理部33は、ACKフレーム処理部36に対して、ACKフレームの生成の指示を行うと共に、GDが自ノードIDと一致するか否かを判定する。すなわち、データフレーム処理部33は、受信したデータフレームの最終的な宛先が自ノード装置1か否かを判定する。
受信したデータフレームの最終的な宛先が自ノード装置1の場合には、データフレーム処理部33は、受信したデータフレームを上位層に出力する。上位層は、データフレームの入力に応答して、受信したデータフレームの処理を行う。
一方、受信したデータフレームの最終的な宛先が他のノード装置1の場合には、データフレーム処理部33は、受信したデータフレームの転送を行うために、ルート選択部34に対して、LDの選択を指示する。
また、データフレーム処理部33は、ルート選択部34より選択されたLDが通知されると、データフレームの送信処理を行う。より具体的には、データフレーム処理部33は、ルート選択部34より選択されたLDが通知されると、ヘッダのLSに自ノードIDを設定すると共に、ヘッダのLDにルート選択部34より選択されたLDを設定する。そして、データフレーム処理部33は、通信部10を介して、設定したLDである隣接ノード装置1にデータフレームを転送する。
更に、データフレーム処理部33は、上位層の要求に応答して、データフレームを生成し、通信部10を介して、隣接ノード装置1に生成したデータフレームを送信する。この際、送信先の隣接ノード装置1は、GDに応じてルート選択部34により選択される。
ルート選択部34は、受信したデータフレーム(又は、生成されたデータフレーム)を他のノード装置1へ転送する必要がある場合に、ルーティングテーブルT4を参照して、データフレームの転送先となる隣接ノード装置1、すなわち、LDを選択する。そして、ルート選択部34は、選択したLDをデータフレーム処理部33へ通知する。
より具体的には、データフレーム処理部33よりLDの選択を指示された場合に、ルート選択部34は、転送対象のデータフレームのGDに対応するルーティングテーブルT4を特定する。そして、ルート選択部34は、特定したルーティングテーブルT4のルートコストCRouteに基づいて、GDまでのルートコストCRouteが最小となるように、送信先の隣接ノード装置1、すなわち、LDを選択する。
ハローフレーム生成部35は、所定のタイミング(例えば、定期的に)が到来すると、図6に例示するハローフレームを生成し、通信部10を介して、生成したハローフレームを隣接ノード装置1へ送信する。この際、ハローフレーム生成部35は、ルーティングテーブルT4を参照して、登録されているGD毎に、当該GDに対応する隣接ノード装置1のルートコストCRouteの内で最小のルートコストCRouteを特定し、特定したルートコストCRouteを当該GDのノードIDと対応付けてそれぞれハローフレームに格納する。
ACKフレーム処理部36は、データフレーム処理部33によるACKフレームの生成の指示に応答して、ACKフレームを生成し、通信部10を介して、受信したデータフレームの送信元のノード装置1(LS)に生成したACKフレームを送信する。
次に、図12を参照して、本実施形態1におけるフレーム受信処理の流れについて説明する。図12は、本実施形態1におけるフレーム受信処理のフローを説明するためのフローチャートの例である。本フレーム受信処理は、フレームの受信をトリガとして開始される。
フレーム種別特定部31は、フレームを受信したか否かを判定する(ステップS001)。フレーム種別特定部31によりフレームを受信していないと判定された場合には(ステップS001;NO)、処理はステップS001の処理を繰り返し、フレームの受信を待つ。
一方、フレームを受信したと判定した場合には(ステップS001;YES)、フレーム種別特定部31は、受信したフレームのヘッダを解析し、フレームタイプに基づいて、フレームの種別を特定し(ステップS002)、特定した種別がデータフレームか否かを判定する(ステップS003)。
データフレームであると判定した場合には(ステップS003;YES)、フレーム種別特定部31は、受信したフレームをデータフレーム処理部33に出力する(ステップS004)。そして、データフレーム処理部33は、ルート選択部34などと連係して、受信したデータフレームの転送処理を行い(ステップS005)、処理はステップS001の処理へと戻り、前述の処理を繰り返す。
一方、データフレームではないと判定した場合には(ステップS003;NO)、フレーム種別特定部31は、更に、特定した種別がハローフレームか否かを判定する(ステップS006)。
ACKフレームであると判定した場合には(ステップS006;NO)、フレーム種別特定部31は、受信したACKフレームをACKフレーム処理部36に出力し(ステップS007)、処理はステップS001の処理へと戻り、前述の処理を繰り返す。
一方、ハローフレームであると判定した場合には(ステップS006;YES)、フレーム種別特定部31は、受信したフレームをリンク管理部32に出力する(ステップS008)。そして、リンク管理部32は、受信回数管理テーブルT3とルーティングテーブルT4の更新処理を行い(ステップS009)、処理はステップS001の処理へと戻り、前述の処理を繰り返す。
次に、図13を参照して、本実施形態1における転送処理の流れについて説明する。図13は、本実施形態1における転送処理のフローを説明するためのフローチャートの例である。本転送処理は、上述のフレーム受信処理のステップS005の処理に対応する処理である。
データフレーム処理部33は、受信したデータフレームのヘッダを解析し、LDが自ノードIDと一致するか否かを判定する(ステップS101)。
LDが自ノードIDと一致しないと判定した場合には(ステップS101;NO)、データフレーム処理部33は、受信したデータフレームを破棄する(ステップS102)。そして、本処理は終了する。
一方、LDが自ノードIDと一致すると判定した場合には(ステップS101;YES)、データフレーム処理部33は、ACKフレーム処理部36に対して、ACKフレームの生成の指示を行う(ステップS103)。そして、ACKフレーム処理部36は、ACKフレームを生成し、通信部10を介して、送信元のノード装置1(LS)に生成したACKフレームを送信する(ステップS104)。
そして、データフレーム処理部33は、GDが自ノードIDと一致するか否かを判定する(ステップS105)。すなわち、データフレーム処理部33は、受信したデータフレームの最終的な宛先が自ノード装置1か否かを判定する。
GDが自ノードIDと一致すると判定した場合には(ステップS105;YES)、データフレーム処理部33は、受信したデータフレームを上位層に出力し、上位層は、データフレームの入力に応答して、受信したデータフレームの処理を行う(ステップS106)。そして、本処理は終了する。
一方、GDが自ノードIDと一致しないと判定した場合には(ステップS105;NO)、データフレーム処理部33は、ルート選択部34に対して、LDの選択を指示する(ステップS107)。
LDの選択の指示を受けたルート選択部34は、転送対象のデータフレームのGDに対応するルーティングテーブルT4を特定し(ステップS108)、GDまでのルートコストCRouteが最小となるように、LDを選択する(ステップS109)。そして、ルート選択部34は、データフレーム処理部33に対し、選択したLDを通知する(ステップS110)。
選択されたLDの通知を受けたデータフレーム処理部33は、ヘッダの設定を行い(ステップS111)、通信部10を介して、ルート選択部34により選択されたLDである隣接ノード装置1にデータフレームを転送する(ステップS112)。そして、本処理は終了する。
次に、図14と図15を参照して、本実施形態1における更新処理の流れについて説明する。図14と図15は、それぞれ、本実施形態1における更新処理のフローを説明するためのフローチャートの例の一部と、他の一部である。本更新処理は、上述のフレーム受信処理のステップS009の処理に対応する処理である。
リンク管理部32は、受信したハローフレームを解析し、送信元IDに基づいて、ハローフレームの送信元の隣接ノード装置1を特定し(ステップS201)、特定した隣接ノード装置1のエントリが受信回数管理テーブルT3に有るか否かを判定する(ステップS202)。
特定した隣接ノード装置1のエントリは存在しないと判定した場合には(ステップS202;NO)、リンク管理部32は、エントリを追加し、送信元IDと受信回数“1”とを対応付けて受信回数管理テーブルT3に格納する(ステップS203)。そして、処理は後述のステップS205の処理へと進む。
一方、特定した隣接ノード装置1のエントリが存在すると判定した場合には(ステップS202;YES)、リンク管理部32は、特定した隣接ノード装置1に対応する受信回数をインクリメントする(ステップS204)。
そして、リンク管理部32は、受信したハローフレームのFIDに基づいて、送信元のノード装置1におけるハローフレームの送信回数を特定する(ステップS205)。そして、リンク管理部32は、インクリメントした後の受信回数と特定した送信回数とに基づいて、ハローフレームの受信率を算出すると共に(ステップS206)、フレーム長管理テーブルT1を参照して、各フレームタイプのフレーム長(L、L、L)を取得する(ステップS207)。
そして、リンク管理部32は、算出したハローフレームの受信率と取得した各フレームタイプのフレーム長とに基づいて、上述の式13に従って、受信したハローフレームの送信元のノード装置1との間のリンクおけるユニキャストフレームの到達率iを算出する(ステップS208)。
そして、リンク管理部32は、閾値管理テーブルT2を参照して、閾値Skを取得し(ステップS209)、取得した閾値Skに基づいて、算出した到達率iを離散化する(ステップS210)。
そして、リンク管理部32は、離散化した後の値iの逆数をリンクコストCLinkとして算出し(ステップS211)、算出したリンクコストCLinkで、ルーティングテーブルT4の特定した隣接ノード装置1に対応するリンクコストCLinkをそれぞれ更新する(ステップS212)。この際、特定した隣接ノード装置1のエントリがルーティングテーブルT4に存在しない場合、あるいは、ハローフレームに含まれるルートコストCRouteに対応付けられているGDの一部に特定した隣接ノード装置1のエントリが存在しない場合に、リンク管理部32は、エントリを追加して、対応するフィールドに算出したリンクコストCLinkを格納する。
そして、リンク管理部32は、受信したハローフレームに含まれる各ルートコストCRouteに算出したリンクコストCLinkを積算して、自ノード装置1までのルートコストCRouteを算出する(ステップS213)。
そして、リンク管理部32は、受信したハローフレームに含まれる各ルートコストCRouteに算出したリンクコストCLinkを積算した後のルートコストCRouteで、ルーティングテーブルT4の対応するルートコストCRouteをそれぞれ更新する(ステップS214)。そして、本処理は終了する。
次に、図16を参照して、本実施形態1におけるハローフレーム生成処理の流れについて説明する。図16は、本実施形態1におけるハローフレーム生成処理のフローを説明するためのフローチャートの例である。本ハローフレーム生成処理は、所定のタイミングの到来をトリガとして開始される。
ハローフレーム生成部35は、所定のタイミングが到来したか否かを判定する(ステップS301)。ハローフレーム生成部35により、所定のタイミングはまだ到来していないと判定された場合には(ステップS301;NO)、処理はステップS301の処理を繰り返し、所定のタイミングの到来を待つ。
一方、所定のタイミングが到来したと判定した場合には(ステップS301;YES)、ハローフレーム生成部35は、ルーティングテーブルT4を参照して、登録されているGD毎に、当該GDに対応する隣接ノード装置1のルートコストCRouteの内で最小のルートコストCRouteを特定する(ステップS302)。そして、ハローフレーム生成部35は、当該GDのノードIDと特定したルートコストCRouteとの組を含むハローフレームを生成する(ステップS303)。
そして、ハローフレーム生成部35は、通信部10を介して、生成したハローフレームを隣接ノード装置1へ送信する(ステップS304)。そして、処理はステップS301の処理へと戻り、前述の処理を繰り返す。
上記実施形態1によれば、ノード装置1は、隣接ノード装置1との間のリンクにおける到達率iを算出し、使用頻度FU(i)が高いリンクにおける到達率iが多く存在する範囲における閾値Skの間隔が、他の範囲と比較して、より狭くなるように設定されている閾値Skに基づいて、算出した到達率iを離散化する。そして、ノード装置1は、離散化した後の値iに基づいて、リンクコストCLinkを算出し、隣接ノード装置1から到達可能な各GDまでの経路毎のルートコストCRouteを隣接ノード装置1から取得する。そして、ノード装置1は、取得したルートコストCRouteに算出したリンクコストCLinkを積算して、自ノード装置1から隣接ノード装置1を経由して到達可能な各GDまでの経路のルートコストCRouteを算出する。そして、ノード装置1は、データフレームを送信する際に、自ノード装置1から送信対象のデータフレームのGDまでの経路のルートコストCRouteに基づいて、データフレームの送信先となる隣接ノード装置1を選択する。
このように構成することで、ループ経路の発生を抑制しつつ、使用頻度FU(i)が高いリンクにおける到達率iと離散化後の値iとの誤差をより小さくすることが可能となり、これにより、より適した経路選択が可能となる。
また、上記実施形態1によれば、ノード装置1は、ハローフレームの受信率を算出し、算出したハローフレームの受信率に基づいて、リンクコストCLinkを算出した。このように構成することで、ハローフレームは定期的に送信されるため、定期的にリンクコストCLinkを算出することが可能となる。したがって、適切な経路を維持することが可能となる。
また、上記実施形態1によれば、ノード装置1は、自ノード装置1から送信対象のデータフレームのGDまでの経路のルートコストCRouteが最小となるように、データフレームの送信先となる隣接ノード装置1を選択する。このように構成することで、より適切な経路を選択することが可能となる。
また、上記実施形態1によれば、ノード装置1は、特定のフレームタイプのフレームの受信回数と受信した特定のフレームタイプのフレームに含まれる当該特定のフレームタイプのフレームが自ノード装置1に送信された送信回数とに基づいて、受信率を算出した。このように構成することで、簡単な方法で、ネットワーク負荷を増大させることなく、リンクコストCLinkを算出することが可能となる。
(実施形態2)
本実施形態2においては、ノード装置1が閾値管理テーブルT2で管理している閾値Skを更新する場合について説明する。
図17は、本実施形態2におけるノード装置1の構成例を示す機能ブロック図である。本実施形態2におけるノード装置1の基本的な構成は、実施形態1の場合と同じである。但し、図17に示すように、記憶部20のデータエリアに使用頻度管理テーブルT5を格納する点で、実施形態1の場合と異なっている。また、閾値管理テーブルT2の構成が実施形態1の場合と異なっている。また、リンク管理部32とデータフレーム処理部33とハローフレーム生成部35が果たす機能が、実施形態1の場合と若干異なっている。
ここで、図18と図19を参照して、記憶部20のデータエリアに格納されている閾値管理テーブルT2と使用頻度管理テーブルT5について、それぞれ、説明する。
図18は、本実施形態2における閾値管理テーブルT2の例を示す図である。本実施形態2における閾値管理テーブルT2は、図18に示すように、各閾値Skの値が管理されているテーブルであり、更に、閾値Skが更新された際にセットされる更新フラグが対応付けられている。
更新フラグは、上述したように、閾値Skが更新されたか否かを示すフラグであり、リンク管理部32が閾値Skを更新した際に、閾値Skが更新されたことを示す値“1”にリンク管理部32により変更される。そして、ハローフレーム生成部35が、更新後の閾値Skを含むハローフレーム(詳しくは後述)を生成し、隣接ノード装置1に送信した際に、更新フラグは、ハローフレーム生成部35により、初期化され、再び、“0”に変更される。
図19は、本実施形態2における使用頻度管理テーブルT5の例を示す図である。本実施形態2における使用頻度管理テーブルT5は、隣接ノード装置1との間のリンクの使用頻度FU(i)、つまり、データフレームを送信する際に、当該リンクを構成する隣接ノード装置1を転送先(LD)とした回数を管理するテーブルである。本実施形態2における使用頻度管理テーブルT5は、図19に示すように、リンクが存在する隣接ノード装置毎に、当該リンクの到達率iと使用頻度FU(i)とフラグとが対応付けられているテーブルである。
使用頻度FU(i)は、対応する到達率iのリンクがデータフレームを転送する際に使用された回数であり、データフレーム処理部33により対応する隣接ノード装置1が転送先として選択される度にインクリメントされる。
フラグは、対応する隣接ノード装置1との間のリンクにおける最新の到達率iを示すフラグであり、フラグ値“1”が、最新の到達率iであることを示している。
図17に戻り、本実施形態2におけるリンク管理部32とデータフレーム処理部33とハローフレーム生成部35がそれぞれ果たす機能について、実施形態1の場合と異なる部分を中心に説明する。
リンク管理部32は、更に、閾値管理テーブルT2の管理を行う。より具体的には、リンク管理部32は、受信したハローフレームを解析し、ハローフレームに閾値Skが含まれている場合に、ハローフレームに含まれている閾値Skで、閾値管理テーブルT2に登録されている閾値Skをそれぞれ更新する。そして、リンク管理部32は、閾値管理テーブルT2の更新フラグの値を“1”に変更する。
また、リンク管理部32は、使用頻度管理テーブルT5の管理を行う。より具体的には、リンク管理部32は、リンクコストCLinkを算出する過程で算出した到達率iを対応する隣接ノード装置1と対応付けて、使用頻度管理テーブルT5に格納すると共に、対応する使用頻度FU(i)のフィールドに初期値“0”を格納する。そして、リンク管理部32は、対応する隣接ノード装置1のフラグ値を初期化し、格納した最新の到達率iに対応するフラグ値を“1”に変更する。
データフレーム処理部33は、更に、所定のタイミング(例えば、定期的に)が到来すると、使用頻度管理テーブルT5を参照して、使用頻度管理テーブルT5の登録内容を示す使用頻度情報を、ペイロードとして含むデータフレームを生成し、GW装置1を最終宛先(GD)として、送信する。そして、データフレーム処理部33は、使用頻度管理テーブルT5を初期化する。本実施形態2における使用頻度情報は、到達率iと使用頻度FU(i)とを対応付けた情報である。
また、データフレーム処理部33は、データフレームを隣接ノード装置1に転送した際に、使用頻度管理テーブルT5の対応する使用頻度FU(i)をインクリメントする。より具体的には、データフレーム処理部33は、使用頻度管理テーブルT5を参照して、転送先(LD)として選択した隣接ノード装置1に対応する使用頻度FU(i)の内、対応するフラグ値が“1”の使用頻度FU(i)を特定し、特定した使用頻度FU(i)をインクリメントする。
ハローフレーム生成部35は、所定のタイミング(例えば、定期的に)が到来すると、詳しくは後述する図20に例示するヘッダのハローフレームを生成し、通信部10を介して、生成したハローフレームを隣接ノード装置1へ送信する。この際、ハローフレーム生成部35は、ルーティングテーブルT4を参照して、登録されているGD毎に、当該GDに対応する隣接ノード装置1のルートコストCRouteの内で最小のルートコストCRouteを特定し、特定したルートコストCRouteを当該GDのノードIDと対応付けてそれぞれハローフレームに格納する。また、ハローフレーム生成部35は、閾値管理テーブルT2を参照して、更新フラグのフラグ値が“1”の場合には、閾値管理テーブルT2に登録されている閾値Skを取得し、取得した閾値Skをハローフレームに格納する。そして、ハローフレーム生成部35は、閾値管理テーブルT2の更新フラグを初期化する。
ここで、図20と図21を参照して、本実施形態2におけるハローフレームのヘッダのフォーマットについて説明する。図20は、本実施形態2におけるハローフレームのヘッダのフォーマット例を示す図であり、図21は、図20に示すフォーマット例における各フィールドの説明である。
本実施形態2におけるハローフレームのヘッダは、図20に示すように、送信元IDと、FIDと、フレームタイプと、GDとルートコストCRouteとの組と、閾値Skと、を含む。
閾値Skは、閾値Skが更新された際に格納される更新後の閾値Skであり、閾値Skが更新されていない場合には、NULLが格納される。
次に、図22は、本実施形態2におけるGW装置1として機能するノード装置1の構成例を示す機能ブロック図である。本実施形態2おけるGW装置1の基本的な構成は、通常のノード装置1の構成と同じである。
但し、本実施形態2のGW装置1の制御部30が、図22に示すように、使用頻度管理部37と、閾値算出部38と、を更に備える点で、通常のノード装置1とは異なっている。また、本実施形態2におけるGW装置1の記憶部20は、図22に示すように、使用率算出用テーブルT6を更にデータエリアに格納する点で、通常のノード装置1とは異なっている。
ここで、図23を参照して、GW装置1の記憶部20のデータエリアに格納されている使用率算出用テーブルT6について説明する。図23は、本実施形態2における使用率算出用テーブルT6の例を示す図である。本実施形態2における使用率算出用テーブルT6は、図23に示すように、到達率i毎に、使用頻度FU(i)と使用率UR(i)とが対応付けられているテーブルである。
到達率iは、GW装置1の配下の各ノード装置1から収集した各リンクのユニキャストフレームの到達率iである。使用頻度FU(i)は、対応する到達率iのリンクの使用頻度であり、配下の各ノード装置1から収集したリンクの使用頻度FU(i)である。使用率UR(i)は、対応する到達率iのリンクの使用率であり、閾値算出部38により算出され、格納される。
図22に戻り、使用頻度管理部37は、使用頻度情報をペイロードとして含む自GW装置1宛のデータフレームを受信すると、到達率iと使用頻度FU(i)とを対応付けて、使用率算出用テーブルT6に格納する。この際、使用頻度管理部37は、到達率iと一致するエントリが既に存在する場合には、そのエントリの使用頻度FU(i)にデータフレームの対応する使用頻度FU(i)を積算する。一方、到達率iと一致するエントリが存在しない場合には、使用頻度管理部37は、エントリを追加して、到達率iと使用頻度FU(i)とを対応付けて、使用率算出用テーブルT6に格納する。
閾値算出部38は、所定のタイミング(例えば、定期的に)が到来すると、使用率算出用テーブルT6を参照して、使用頻度FU(i)に基づいて、登録されている到達率i毎に使用率UR(i)を算出する。そして、閾値算出部38は、算出した使用率UR(i)で、使用率算出用テーブルT6の対応する使用率UR(i)をそれぞれ更新する。
そして、閾値算出部38は、到達率iと対応する更新後の使用率UR(i)とに基づいて、上述した式1で定義されている推定メトリックMが最小となる閾値Skを算出する。そして、閾値算出部38は、ハローフレーム生成部35に対して、算出した閾値Skを含むハローフレームの生成を指示する。ハローフレーム生成部35は、これに応答して、閾値算出部38により算出された閾値Skを格納した、図20に例示するヘッダのハローフレームを生成して、送信する。これにより、配下の各ノード装置1は閾値管理テーブルT2に格納されている閾値Skを更新することが可能となる。
次に、図24を参照して、本実施形態2における転送処理の流れについて説明する。図24は、本実施形態2における転送処理のフローを説明するためのフローチャートの例である。本転送処理は、実施形態1で説明したフレーム受信処理のステップS005の処理に対応する処理である。
データフレーム処理部33は、受信したデータフレームのヘッダを解析し、LDが自ノードIDと一致するか否かを判定する(ステップS101)。
LDが自ノードIDと一致しないと判定した場合には(ステップS101;NO)、データフレーム処理部33は、受信したデータフレームを破棄する(ステップS102)。そして、本処理は終了する。
一方、LDが自ノードIDと一致すると判定した場合には(ステップS101;YES)、データフレーム処理部33は、ACKフレーム処理部36に対して、ACKフレームの生成の指示を行う(ステップS103)。そして、ACKフレーム処理部36は、ACKフレームを生成し、通信部10を介して、送信元のノード装置1(LS)に生成したACKフレームを送信する(ステップS104)。
そして、データフレーム処理部33は、GDが自ノードIDと一致するか否かを判定する(ステップS105)。すなわち、データフレーム処理部33は、受信したデータフレームの最終的な宛先が自ノード装置1か否かを判定する。
GDが自ノードIDと一致すると判定した場合には(ステップS105;YES)、データフレーム処理部33は、受信したデータフレームを上位層に出力し、上位層は、データフレームの入力に応答して、受信したデータフレームの処理を行う(ステップS106)。そして、本処理は終了する。
一方、GDが自ノードIDと一致しないと判定した場合には(ステップS105;NO)、データフレーム処理部33は、ルート選択部34に対して、LDの選択を指示する(ステップS107)。
LDの選択の指示を受けたルート選択部34は、転送対象のデータフレームのGDに対応するルーティングテーブルT4を特定し(ステップS108)、GDまでのルートコストCRouteが最小となるように、LDを選択する(ステップS109)。そして、ルート選択部34は、データフレーム処理部33に対し、選択したLDを通知する(ステップS110)。
選択されたLDの通知を受けたデータフレーム処理部33は、ヘッダの設定を行い(ステップS111)、通信部10を介して、ルート選択部34により選択されたLDである隣接ノード装置1にデータフレームを転送する(ステップS112)。
そして、データフレーム処理部33は、使用頻度管理テーブルT5を参照して、転送先(LD)として選択した隣接ノード装置1に対応する使用頻度FU(i)の内、対応するフラグ値が“1”の使用頻度FU(i)を特定し(ステップS113)、特定した使用頻度FU(i)をインクリメントする(ステップS114)。そして、本処理は終了する。
次に、図25と図26を参照して、本実施形態2における更新処理の流れについて説明する。図25と図26は、それぞれ、本実施形態2における更新処理のフローを説明するためのフローチャートの例の一部と、他の一部である。本更新処理は、実施形態1で説明したフレーム受信処理のステップS009の処理に対応する処理である。
リンク管理部32は、受信したハローフレームを解析し、送信元IDに基づいて、ハローフレームの送信元の隣接ノード装置1を特定し(ステップS201)、特定した隣接ノード装置1のエントリが受信回数管理テーブルT3に有るか否かを判定する(ステップS202)。
特定した隣接ノード装置1のエントリは存在しないと判定した場合には(ステップS202;NO)、リンク管理部32は、エントリを追加し、送信元IDと受信回数“1”とを対応付けて受信回数管理テーブルT3に格納する(ステップS203)。そして、処理は後述のステップS205の処理へと進む。
一方、特定した隣接ノード装置1のエントリが存在すると判定した場合には(ステップS202;YES)、リンク管理部32は、特定した隣接ノード装置1に対応する受信回数をインクリメントする(ステップS204)。
そして、リンク管理部32は、受信したハローフレームのFIDに基づいて、送信元のノード装置1におけるハローフレームの送信回数を特定する(ステップS205)。そして、リンク管理部32は、インクリメントした後の受信回数と特定した送信回数とに基づいて、ハローフレームの受信率を算出すると共に(ステップS206)、フレーム長管理テーブルT1を参照して、各フレームタイプのフレーム長(L、L、L)を取得する(ステップS207)。
そして、リンク管理部32は、算出したハローフレームの受信率と取得した各フレームタイプのフレーム長とに基づいて、上述の式13に従って、受信したハローフレームの送信元のノード装置1との間のリンクおけるユニキャストフレームの到達率iを算出する(ステップS208)。
そして、リンク管理部32は、算出した到達率iを対応する隣接ノード装置1と対応付けて、使用頻度管理テーブルT5に格納すると共に(ステップS401)、対応する使用頻度FU(i)のフィールドに初期値“0”を格納する(ステップS402)。そして、リンク管理部32は、対応する隣接ノード装置1のフラグ値を初期化し(ステップS403)、格納した最新の到達率iに対応するフラグ値を“1”に変更する(ステップS404)。
そして、リンク管理部32は、閾値管理テーブルT2を参照して、閾値Skを取得し(ステップS209)、取得した閾値Skに基づいて、算出した到達率iを離散化する(ステップS210)。
そして、リンク管理部32は、離散化した後の値iの逆数をリンクコストCLinkとして算出し(ステップS211)、算出したリンクコストCLinkで、ルーティングテーブルT4の特定した隣接ノード装置1に対応するリンクコストCLinkをそれぞれ更新する(ステップS212)。この際、特定した隣接ノード装置1のエントリがルーティングテーブルT4に存在しない場合、あるいは、ハローフレームに含まれるルートコストCRouteに対応付けられているGDの一部に特定した隣接ノード装置1のエントリが存在しない場合に、リンク管理部32は、エントリを追加して、対応するフィールドに算出したリンクコストCLinkを格納する。
そして、リンク管理部32は、受信したハローフレームに含まれる各ルートコストCRouteに算出したリンクコストCLinkを積算して、自ノード装置1までのルートコストCRouteを算出する(ステップS213)。
そして、リンク管理部32は、受信したハローフレームに含まれる各ルートコストCRouteに算出したリンクコストCLinkを積算した後のルートコストCRouteで、ルーティングテーブルT4の対応するルートコストCRouteをそれぞれ更新する(ステップS214)。
そして、リンク管理部32は、受信したハローフレームに閾値Skが含まれているか否かを判定する(ステップS405)。リンク管理部32により、閾値Skは含まれていないと判定された場合には(ステップS405;NO)、本処理は終了する。
一方、閾値Skが含まれていると判定した場合には(ステップS405;YES)、リンク管理部32は、ハローフレームに含まれている閾値Skで、閾値管理テーブルT2に登録されている閾値Skをそれぞれ更新する(ステップS406)。そして、リンク管理部32は、閾値管理テーブルT2の更新フラグの値を“1”に変更し(ステップS407)、本処理は終了する。
次に、図27を参照して、本実施形態2におけるハローフレーム生成処理の流れについて説明する。図27は、本実施形態2におけるハローフレーム生成処理のフローを説明するためのフローチャートの例である。本ハローフレーム生成処理は、所定のタイミングの到来をトリガとして開始される。
ハローフレーム生成部35は、所定のタイミングが到来したか否かを判定する(ステップS301)。ハローフレーム生成部35により、所定のタイミングはまだ到来していないと判定された場合には(ステップS301;NO)、処理はステップS301の処理を繰り返し、所定のタイミングの到来を待つ。
一方、所定のタイミングが到来したと判定した場合には(ステップS301;YES)、ハローフレーム生成部35は、ルーティングテーブルT4を参照して、登録されているGD毎に、当該GDに対応する隣接ノード装置1のルートコストCRouteの内で最小のルートコストCRouteを特定する(ステップS302)。
そして、ハローフレーム生成部35は、閾値管理テーブルT2を参照して、更新フラグのフラグ値が“1”であるか否かを判定する(ステップS501)。更新フラグのフラグ値が“1”ではないと判定した場合には(ステップS501;NO)、ハローフレーム生成部35は、当該GDのノードIDと特定したルートコストCRouteとの組を含むハローフレームを生成する(ステップS303)。そして、処理はステップS304の処理へと進む。
一方、更新フラグのフラグ値は“1”であると判定した場合には(ステップS501;YES)、ハローフレーム生成部35は、閾値管理テーブルT2に登録されている閾値Skを取得し(ステップS502)、当該GDのノードIDと特定したルートコストCRouteとの組と、取得した閾値Skと、を含むハローフレームに生成する(ステップS503)。そして、ハローフレーム生成部35は、閾値管理テーブルT2の更新フラグを初期化する(ステップS504)。
そして、ハローフレーム生成部35は、通信部10を介して、生成したハローフレームを隣接ノード装置1へ送信する(ステップS304)。そして、処理はステップS301の処理へと戻り、前述の処理を繰り返す。
次に、図28を参照して、使用頻度情報をペイロードとして含むデータフレームの生成処理の流れについて説明する。図28は、本実施形態2におけるデータフレーム生成処理のフローを説明するためのフローチャートの例である。本データフレーム生成処理は、所定のタイミングの到来をトリガとして開始される。
データフレーム処理部33は、所定のタイミングが到来したか否かを判定する(ステップS601)。データフレーム処理部33により、所定のタイミングはまだ到来していないと判定された場合には(ステップS601;NO)、処理はステップS601の処理を繰り返し、所定のタイミングの到来を待つ。
一方、所定のタイミングが到来したと判定した場合には(ステップS601;YES)、データフレーム処理部33は、使用頻度管理テーブルT5を参照して、使用頻度情報をペイロードとして含むデータフレームを生成し、GW装置1を最終宛先(GD)として、送信する(ステップS602)。そして、データフレーム処理部33は、使用頻度管理テーブルT5を初期化し(ステップS603)、本処理は、ステップS601の処理へと戻り、前述の処理を繰り返す。
次に、図29を参照して、GW装置1で実行される閾値算出処理の流れについて説明する。図29は、本実施形態2におけるGW装置1で実行される閾値算出処理のフローを説明するためのフローチャートの例である。本閾値算出処理は、所定のタイミングの到来をトリガとして開始される。
閾値算出部38は、所定のタイミングが到来したか否かを判定する(ステップS701)。閾値算出部38により、所定のタイミングはまだ到来していないと判定された場合には(ステップS701;NO)、処理はステップS701の処理を繰り返し、所定のタイミングの到来を待つ。
一方、所定のタイミングが到来したと判定した場合には(ステップS701;YES)、閾値算出部38は、使用率算出用テーブルT6を参照して、使用頻度FU(i)に基づいて、登録されている到達率i毎に使用率UR(i)を算出する(ステップS702)。そして、閾値算出部38は、算出した使用率UR(i)で、使用率算出用テーブルT6の対応する使用率UR(i)をそれぞれ更新する(ステップS703)。
そして、閾値算出部38は、到達率iと対応する更新後の使用率UR(i)とに基づいて、推定メトリックMが最小となる閾値Skを算出し(ステップS704)、ハローフレーム生成部35に対して、算出した閾値Skを含むハローフレームの生成を指示する(ステップS705)。
ハローフレーム生成部35は、これに応答して、閾値算出部38により算出された閾値Skを格納したハローフレームを生成して、送信する(ステップS706)。そして、処理はステップS701の処理へと戻り、前述の処理を繰り返す。
上記実施形態2によれば、GW装置1として機能するノード装置1は、配下のノード装置1から使用頻度情報を収集し、収集した使用頻度情報に基づいて、閾値Skを算出し、配下のノード装置1に算出した閾値Skを報知する。そして、配下の各ノード装置1は、報知された閾値Skで、閾値管理テーブルT2の閾値Skをそれぞれ更新する。このように構成することで、ループ経路の発生を抑制しつつ、より適した経路を維持し続けることが可能となる。
なお、上記実施形態1と2において、到達率iは、ハローフレームの受信率と各フレームタイプのフレーム長とに基づいて、算出すると説明したが、これに限定されるものではなく、他の方法により到達率iを算出しても良い。例えば、隣接ノード装置1に対してデータフレームを送信し、データフレームの送信回数と送信先の隣接ノード装置1からのACKフレームの受信回数とに基づいて、ユニキャストフレームの到達率iを算出してよい。この際、到達率iを算出するために、測定用の専用フレームを利用してもよい。
また、リンクを構成する隣接ノード装置1の双方で受信電界強度を測定し、測定した受信電界強度に基づいて、データフレームの受信率とACKフレームの受信率を算出することで、ユニキャスフレームの到達率iを算出してもよい。
例えば、図1を参照して、データフレームの送信元(LS)をノード装置N2とし、送信先(LD)をノード装置N1とする。この場合、送信先(LD)のノード装置N1は、測定した受信電界強度に基づいてデータフレームの受信率を算出し、算出したデータフレームの受信率を、例えば、ACKフレームに含めて、送信元(LS)のノード装置N2に送信する。送信元(LS)のノード装置N2は、測定した受信電界強度に基づいてACKフレームの受信率を算出し、受信したACKフレームに含まれているデータフレームの受信率と算出したACKフレームの受信率とを乗算することで、当該隣接ノード装置1との間のリンクにおけるユニキャストフレームの到達率iを算出する。なお、データフレーム又はACKフレームの受信率は、測定した受信電界強度に基づいてSNR(Signal to Noise Ratio)を算出し、算出したSNRに基づいて、算出することが可能である。
また、上記実施形態1と2において、ハローフレームの受信率と各フレームタイプのフレーム長とに基づいて、ユニキャストフレームの到達率iを算出すると説明したが、これに限定されるものではなく、データフレームの受信率(又は、ACKフレームの受信率)と各フレームタイプのフレーム長とに基づいて、ユニキャストフレームの到達率iを算出してもよい。
例えば、データフレームの受信率とデータフレームのフレーム長Lとに基づいて、1ビットのデータの片方向の受信率を、同様の方法により、算出することが可能である。したがって、データフレームの受信率に基づいて、ユニキャストフレームの到達率iを算出することが可能である。この場合、データフレームに送信先の隣接ノード装置1にデータフレームを送信した回数を含めればよい。しかしながら、ハローフレームは定期的に送信されるため、定期的にリンクコストCLinkを算出することが可能である。したがって、ハローフレームの受信率に基づいて、リンクコストCLinkを算出するのが好ましい。
また、上記実施形態1と2において、各フレームタイプのフレーム長が固定化されているものとして説明したが、これに限定されるものではなく、フレーム長が可変の場合には、例えば、各フレームタイプのフレーム長を、使用している無線方式で使用可能な最大フレーム長として、リンクコストCLinkを算出してもよい。また、各フレームタイプのフレーム長の平均値をそれぞれ算出し、算出した平均値を用いてリンクコストCLinkを算出してもよい。
また、上記実施形態1と2において、推定メトリックMは式1で定義されているものであると説明した。しかしながら、これに限定されるものではなく、使用頻度FU(i)は使用率UR(i)に比例することから、推定メトリックMは、使用率UR(i)の替りに使用頻度FU(i)を用いて、以下の式14で定義されるものであってもよい。
また、上記実施形態2において、GW装置1(図1においては、上述したように、ノード装置N1)は、閾値Skを算出し、算出した閾値Skを配下の各ノード装置1に報知すると説明した。しかしながら、これに限定されるものではなく、GW装置1は、使用頻度管理テーブルT6における到達率iと使用率UR(i)とを対応付けた対応情報、つまり、到達率iを確率変数とした場合の確率分布を配下の各ノード装置1に報知し、各ノード装置1が閾値Skを算出するように構成してもよい。
図30は、実施形態におけるノード装置1のハードウェア構成の例を示す図である。図3などに示すノード装置1は、例えば、図30に示す各種ハードウェアにより実現されてもよい。図30の例では、ノード装置1は、MPU201、PHY(PHYsical layer)チップ202、およびタイマIC(Integrated Circuit)203を備える。また、ノード装置1は、DRAM(Dynamic Random Access Memory)204、フラッシュメモリ205、無線通信モジュール206、および読取装置207を備える。
MPU201とPHYチップ202の間を接続する通信インタフェースは、MII/MDIO(Media Independent Interface or Management Data Input/Output)209である。MIIとMDIOはいずれも、物理層とMAC(Media Access Control sublayer)副層との間のインタフェースである。また、MPU201とタイマIC203は、IC/PIO(Inter-Integrated Circuit or Parallel Input/Output)バス210を介して、接続されている。そして、DRAM204とフラッシュメモリ205と無線通信モジュール206と読取装置207は、PCI(Peripheral Component Interconnect)バス211を介して、MPU201に接続されている。
MPU201は、不揮発性記憶装置の一種であるフラッシュメモリ205に格納された動作プログラムをDRAM204にロードし、DRAM204をワーキングメモリとして使いながら各種処理を実行する。MPU201は、動作プログラムを実行することで、図3などに示す制御部30の各機能部を実現することができる。
なお、上記動作を実行するための動作プログラムを、フレキシブルディスク、CD−ROM(Compact Disk-Read Only Memory)、DVD(Digital Versatile Disk)、MO(Magneto Optical disk)などのコンピュータで読み取り可能な記録媒体208に記憶して配布し、これをノード装置1の読取装置207で読み取ってコンピュータにインストールすることにより、上述の処理を実行するように構成してもよい。さらに、インターネット上のサーバ装置が有するディスク装置等に動作プログラムを記憶しておき、PHYチップ202もしくは無線通信モジュール206を介して、ノード装置1のコンピュータに動作プログラムをダウンロード等するものとしてもよい。
なお、実施形態に応じて、DRAM204やフラッシュメモリ205以外の他の種類の記憶装置が利用されてもよい。例えば、ノード装置1は、CAM(Content Addressable Memory)、SRAM(Static Random Access Memory)、SDRAM(Synchronous Dynamic Random Access Memory)などの記憶装置を有してもよい。
図3などに示すフレーム長管理テーブルT1、閾値管理テーブルT2、受信回数管理テーブルT3、ルーティングテーブルT4、使用頻度管理テーブルT5、使用率算出用テーブルT6は、DRAM204、フラッシュメモリ205、あるいは不図示のその他の記憶装置により実現される。また、フラッシュメモリ205は、動作プログラムだけでなく、自ノードIDなども記憶している。
PHYチップ202は、有線接続における物理層の処理を行う回路である。ネットワーク100が無線ネットワークの場合には、ノード装置1はPHYチップ202を備えなくてもよい。しかし、ノード装置1と外部ネットワークとの接続のために、ノード装置1はPHYチップ202を備えていてもよい。
例えば、ノード装置1は、イーサネット(登録商標)規格にしたがった有線LANポートを備え、有線LANポートに接続されたケーブルを介して外部ネットワークのGW装置などに接続されていてもよい。
その場合、MPU201は、イーサネットフレームを生成し、MII/MDIO209を介してPHYチップ202に出力することができる。そして、PHYチップ202は、MPU201からの出力(すなわちイーサネットフレームを表す論理信号)を、ケーブルの種類に応じた信号(つまり電気信号または光信号)に変換し、ケーブルに出力する。こうして、ノード装置1はPHYチップ202を用いて外部ネットワークにデータ(例えば、フレーム)を送信することができる。
また、PHYチップ202は、ケーブルと有線LANポートを介して外部ネットワークから入力される電気信号または光信号を、論理信号に変換し、MII/MDIO209を介してMPU201に出力することもできる。こうして、ノード装置1はPHYチップ202を用いて外部ネットワークからデータ(例えば、フレーム)を受信することができる。
タイマIC203は、設定された時間が経過するまでカウントアップ動作を行い、設定された時間が経過すると割り込み信号を出力する回路である。
無線通信モジュール206は、無線接続における物理層の処理を行うハードウェアである。無線通信モジュール206は、例えば、アンテナ、ADC(Analog-to-Digital Converter)、DAC(Digital-to-Analog Converter)、変調器、復調器、符号化器、復号器などを含む。
なお、実施形態に応じて、ノード装置1のハードウェア構成は図30とは異なっていてもよく、図30に例示した規格・種類以外のその他のハードウェアをノード装置1に適用することもできる。
例えば、図3などに示す制御部30の各機能部は、ハードウェア回路により実現されてもよい。具体的には、MPU201の代わりに、FPGA(Field Programmable Gate Array)などのリコンフィギュラブル回路や、ASIC(Application Specific Integrated Circuit)などにより、図3などに示す制御部30の各機能部が実現されてもよい。もちろん、MPU201とハードウェア回路の双方により、これらの機能部が実現されてもよい。
以上において、いくつかの実施形態について説明した。しかしながら、実施形態は上記の実施形態に限定されるものではなく、上述の実施形態の各種変形形態及び代替形態を包含するものとして理解されるべきである。例えば、各種実施形態は、その趣旨及び範囲を逸脱しない範囲で構成要素を変形して具体化できることが理解されよう。また、前述した実施形態に開示されている複数の構成要素を適宜組み合わせることにより、種々の実施形態を成すことができることが理解されよう。更には、実施形態に示される全構成要素からいくつかの構成要素を削除して又は置換して、或いは実施形態に示される構成要素にいくつかの構成要素を追加して種々の実施形態が実施され得ることが当業者には理解されよう。
以上の実施形態1と2を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
隣接するノード装置である隣接ノード装置との間のリンクにおける双方向の受信率を乗算した値である到達率を算出し、
予め設定されている複数の閾値に基づいて、算出した前記到達率を離散化し、
前記到達率を離散化した後の値に基づいて、前記隣接ノード装置との間の前記リンクにおけるリンクコストを算出し、
前記隣接ノード装置から到達可能な各最終宛先のノード装置までの経路毎に、経路上の前記リンクの前記リンクコストの積算値であるルートコストを前記隣接ノード装置から取得し、
取得した前記ルートコストに算出した前記リンクコストを積算して、自ノード装置から前記隣接ノード装置を経由して到達可能な各最終宛先のノード装置までの経路のルートコストを算出し、
前記データフレームを送信する際に、自ノード装置から送信対象の前記データフレームの最終宛先のノード装置までの経路の前記ルートコストに基づいて、送信対象の前記データフレームの送信先となる前記隣接ノード装置を選択し、
前記閾値は、使用頻度が高い前記リンクにおける前記到達率が多く存在する範囲における前記閾値の間隔が、他の範囲と比較して、より狭くなるように設定されている、
ことを特徴とするノード装置の経路選択方法。
(付記2)
前記閾値は、前記到達率を離散化した後の値の逆数と前記到達率の逆数との差と、前記到達率のリンクにおける前記使用頻度と、を乗算した値である乗算値を前記到達率毎に求め、前記到達率毎に求めた前記乗算値を積算した値が最小となるような閾値である、
ことを特徴とする付記1に記載のノード装置の経路選択方法。
(付記3)
前記閾値を、所定のタイミングで更新する、
ことを特徴とする付記1又は2に記載のノード装置の経路選択方法。
(付記4)
前記到達率を離散化した後の値の逆数を、前記隣接ノード装置との間の前記リンクにおける前記リンクコストとして算出する、
ことを特徴とする付記1乃至3のいずれか一に記載のノード装置の経路選択方法。
(付記5)
前記隣接ノード装置より送信された特定のフレームタイプのフレームの受信率を算出し、算出した前記受信率と各フレームタイプのフレーム長とに基づいて、前記到達率を算出する、
ことを特徴とする付記1乃至4のいずれか一に記載のノード装置の経路選択方法。
(付記6)
前記特定のフレームタイプのフレームはハローフレームである、
ことを特徴とする付記5に記載のノード装置の経路選択方法。
(付記7)
隣接するノード装置である隣接ノード装置との間のリンクにおける双方向の受信率を乗算した値である到達率を算出する第1の算出手段と、
予め設定されている複数の閾値に基づいて、算出された前記到達率を離散化する離散化手段と、
前記到達率を離散化した後の値に基づいて、前記隣接ノード装置との間の前記リンクにおけるリンクコストを算出する第2の算出手段と、
前記隣接ノード装置から到達可能な各最終宛先のノード装置までの経路毎に、経路上の前記リンクの前記リンクコストの積算値であるルートコストを前記隣接ノード装置から取得する第1の取得手段と、
取得された前記ルートコストに算出された前記リンクコストを積算して、自ノード装置から前記隣接ノード装置を経由して到達可能な各最終宛先のノード装置までの経路のルートコストを算出する第3の算出手段と、
前記データフレームを送信する際に、自ノード装置から送信対象の前記データフレームの最終宛先のノード装置までの経路の前記ルートコストに基づいて、送信対象の前記データフレームの送信先となる前記隣接ノード装置を選択する選択手段と、
を備え、
前記閾値は、使用頻度が高い前記リンクにおける前記到達率が多く存在する範囲における前記閾値の間隔が、他の範囲と比較して、より狭くなるように設定されている、
ことを特徴とするノード装置。
(付記8)
前記閾値は、前記到達率を離散化した後の値の逆数と前記到達率の逆数との差と、前記到達率のリンクにおける前記使用頻度と、を乗算した値である乗算値を前記到達率毎に求め、前記到達率毎に求めた前記乗算値を積算した値が最小となるような閾値である、
ことを特徴とする付記7に記載のノード装置。
(付記9)
前記閾値を、所定のタイミングで更新する更新手段を、更に、備える、
ことを特徴とする付記7又は8に記載のノード装置。
(付記10)
前記第2の算出手段は、前記到達率を離散化した後の値の逆数を、前記隣接ノード装置との間の前記リンクにおける前記リンクコストとして算出する、
ことを特徴とする付記7乃至9のいずれか一に記載のノード装置。
(付記11)
前記第1の算出手段は、前記隣接ノード装置より送信された特定のフレームタイプのフレームの受信率を算出し、算出した前記受信率と各フレームタイプのフレーム長とに基づいて、前記到達率を算出する、
ことを特徴とする付記7乃至10のいずれか一に記載のノード装置。
(付記12)
前記特定のフレームタイプのフレームはハローフレームである、
ことを特徴とする付記11に記載のノード装置。
(付記13)
ゲートウェイ装置として機能し、
配下のノード装置から前記リンクの前記到達率と前記リンクの前記使用頻度とを対応付けた使用頻度情報を取得する第2の取得手段と、
取得された前記使用頻度情報に基づいて、前記閾値を算出する第4の算出手段と、
算出された前記閾値を前記配下の前記ノード装置に報知する報知手段と、
を、更に、備える、
ことを特徴とする付記7乃至12のいずれか一に記載のノード装置。
(付記14)
ノード装置のコンピュータに、
隣接するノード装置である隣接ノード装置との間のリンクにおける双方向の受信率を乗算した値である到達率を算出し、
予め設定されている複数の閾値に基づいて、算出した前記到達率を離散化し、
前記到達率を離散化した後の値に基づいて、前記隣接ノード装置との間の前記リンクにおけるリンクコストを算出し、
前記隣接ノード装置から到達可能な各最終宛先のノード装置までの経路毎に、経路上の前記リンクの前記リンクコストの積算値であるルートコストを前記隣接ノード装置から取得し、
取得した前記ルートコストに算出した前記リンクコストを積算して、自ノード装置から前記隣接ノード装置を経由して到達可能な各最終宛先のノード装置までの経路のルートコストを算出し、
前記データフレームを送信する際に、自ノード装置から送信対象の前記データフレームの最終宛先のノード装置までの経路の前記ルートコストに基づいて、送信対象の前記データフレームの送信先となる前記隣接ノード装置を選択する、
処理を実行させ、
前記閾値は、使用頻度が高い前記リンクにおける前記到達率が多く存在する範囲における前記閾値の間隔が、他の範囲と比較して、より狭くなるように設定されている、
ことを特徴とするプログラム。
(付記15)
ノード装置のコンピュータに、
隣接するノード装置である隣接ノード装置との間のリンクにおける双方向の受信率を乗算した値である到達率を算出し、
予め設定されている複数の閾値に基づいて、算出した前記到達率を離散化し、
前記到達率を離散化した後の値に基づいて、前記隣接ノード装置との間の前記リンクにおけるリンクコストを算出し、
前記隣接ノード装置から到達可能な各最終宛先のノード装置までの経路毎に、経路上の前記リンクの前記リンクコストの積算値であるルートコストを前記隣接ノード装置から取得し、
取得した前記ルートコストに算出した前記リンクコストを積算して、自ノード装置から前記隣接ノード装置を経由して到達可能な各最終宛先のノード装置までの経路のルートコストを算出し、
前記データフレームを送信する際に、自ノード装置から送信対象の前記データフレームの最終宛先のノード装置までの経路の前記ルートコストに基づいて、送信対象の前記データフレームの送信先となる前記隣接ノード装置を選択する、
処理を実行させ、
前記閾値は、使用頻度が高い前記リンクにおける前記到達率が多く存在する範囲における前記閾値の間隔が、他の範囲と比較して、より狭くなるように設定されている、
ことを特徴とするプログラムを記憶した記録媒体。
100 ネットワーク
Ni ノード装置のノードID
1 ノード装置(又は、GW装置)
10 通信部
20 記憶部
T1 フレーム長管理テーブル
T2 閾値管理テーブル
T3 受信回数管理テーブル
T4 ルーティングテーブル
T5 使用頻度管理テーブル
T6 使用率算出用テーブル
30 制御部
31 フレーム種別特定部
32 リンク管理部
33 データフレーム処理部
34 ルート選択部
35 ハローフレーム生成部
36 ACKフレーム処理部
37 使用頻度管理部
38 閾値算出部
201 MPU
202 PHYチップ
203 タイマIC
204 DRAM
205 フラッシュメモリ
206 無線通信モジュール
207 読取装置
208 記録媒体
209 MII/MDIO
210 IC/PIOバス
211 PCIバス

Claims (11)

  1. 隣接するノード装置である隣接ノード装置との間のリンクにおける双方向の受信率を乗算した値である到達率を算出し、
    予め設定されている複数の閾値に基づいて、算出した前記到達率を離散化し、
    前記到達率を離散化した後の値に基づいて、前記隣接ノード装置との間の前記リンクにおけるリンクコストを算出し、
    前記隣接ノード装置から到達可能な各最終宛先のノード装置までの経路毎に、経路上の前記リンクの前記リンクコストの積算値であるルートコストを前記隣接ノード装置から取得し、
    取得した前記ルートコストに算出した前記リンクコストを積算して、自ノード装置から前記隣接ノード装置を経由して到達可能な各最終宛先のノード装置までの経路のルートコストを算出し、
    前記データフレームを送信する際に、自ノード装置から送信対象の前記データフレームの最終宛先のノード装置までの経路の前記ルートコストに基づいて、送信対象の前記データフレームの送信先となる前記隣接ノード装置を選択し、
    前記閾値は、使用頻度が高い前記リンクにおける前記到達率が多く存在する範囲における前記閾値の間隔が、他の範囲と比較して、より狭くなるように設定されている、
    ことを特徴とするノード装置の経路選択方法。
  2. 前記閾値は、前記到達率を離散化した後の値の逆数と前記到達率の逆数との差と、前記到達率のリンクにおける前記使用頻度と、を乗算した値である乗算値を前記到達率毎に求め、前記到達率毎に求めた前記乗算値を積算した値が最小となるような閾値である、
    ことを特徴とする請求項1に記載のノード装置の経路選択方法。
  3. 前記閾値を、所定のタイミングで更新する、
    ことを特徴とする請求項1又は2に記載のノード装置の経路選択方法。
  4. 前記到達率を離散化した後の値の逆数を、前記隣接ノード装置との間の前記リンクにおける前記リンクコストとして算出する、
    ことを特徴とする請求項1乃至3のいずれか一に記載のノード装置の経路選択方法。
  5. 前記隣接ノード装置より送信された特定のフレームタイプのフレームの受信率を算出し、算出した前記受信率と各フレームタイプのフレーム長とに基づいて、前記到達率を算出する、
    ことを特徴とする請求項1乃至4のいずれか一に記載のノード装置の経路選択方法。
  6. 前記特定のフレームタイプのフレームはハローフレームである、
    ことを特徴とする請求項5に記載のノード装置の経路選択方法。
  7. 隣接するノード装置である隣接ノード装置との間のリンクにおける双方向の受信率を乗算した値である到達率を算出する第1の算出手段と、
    予め設定されている複数の閾値に基づいて、算出された前記到達率を離散化する離散化手段と、
    前記到達率を離散化した後の値に基づいて、前記隣接ノード装置との間の前記リンクにおけるリンクコストを算出する第2の算出手段と、
    前記隣接ノード装置から到達可能な各最終宛先のノード装置までの経路毎に、経路上の前記リンクの前記リンクコストの積算値であるルートコストを前記隣接ノード装置から取得する第1の取得手段と、
    取得された前記ルートコストに算出された前記リンクコストを積算して、自ノード装置から前記隣接ノード装置を経由して到達可能な各最終宛先のノード装置までの経路のルートコストを算出する第3の算出手段と、
    前記データフレームを送信する際に、自ノード装置から送信対象の前記データフレームの最終宛先のノード装置までの経路の前記ルートコストに基づいて、送信対象の前記データフレームの送信先となる前記隣接ノード装置を選択する選択手段と、
    を備え、
    前記閾値は、使用頻度が高い前記リンクにおける前記到達率が多く存在する範囲における前記閾値の間隔が、他の範囲と比較して、より狭くなるように設定されている、
    ことを特徴とするノード装置。
  8. 前記閾値は、前記到達率を離散化した後の値の逆数と前記到達率の逆数との差と、前記到達率のリンクにおける前記使用頻度と、を乗算した値である乗算値を前記到達率毎に求め、前記到達率毎に求めた前記乗算値を積算した値が最小となるような閾値である、
    ことを特徴とする請求項7に記載のノード装置。
  9. 前記閾値を、所定のタイミングで更新する更新手段を、更に、備える、
    ことを特徴とする請求項7又は8に記載のノード装置。
  10. ゲートウェイ装置として機能し、
    配下のノード装置から前記リンクの前記到達率と前記リンクの前記使用頻度とを対応付けた使用頻度情報を取得する第2の取得手段と、
    取得された前記使用頻度情報に基づいて、前記閾値を算出する第4の算出手段と、
    算出された前記閾値を前記配下の前記ノード装置に報知する報知手段と、
    を、更に、備える、
    ことを特徴とする請求項7乃至9のいずれか一に記載のノード装置。
  11. ノード装置のコンピュータに、
    隣接するノード装置である隣接ノード装置との間のリンクにおける双方向の受信率を乗算した値である到達率を算出し、
    予め設定されている複数の閾値に基づいて、算出した前記到達率を離散化し、
    前記到達率を離散化した後の値に基づいて、前記隣接ノード装置との間の前記リンクにおけるリンクコストを算出し、
    前記隣接ノード装置から到達可能な各最終宛先のノード装置までの経路毎に、経路上の前記リンクの前記リンクコストの積算値であるルートコストを前記隣接ノード装置から取得し、
    取得した前記ルートコストに算出した前記リンクコストを積算して、自ノード装置から前記隣接ノード装置を経由して到達可能な各最終宛先のノード装置までの経路のルートコストを算出し、
    前記データフレームを送信する際に、自ノード装置から送信対象の前記データフレームの最終宛先のノード装置までの経路の前記ルートコストに基づいて、送信対象の前記データフレームの送信先となる前記隣接ノード装置を選択する、
    処理を実行させ、
    前記閾値は、使用頻度が高い前記リンクにおける前記到達率が多く存在する範囲における前記閾値の間隔が、他の範囲と比較して、より狭くなるように設定されている、
    ことを特徴とするプログラム。
JP2014057265A 2014-03-19 2014-03-19 経路選択方法、ノード装置、及び、プログラム Expired - Fee Related JP6241339B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014057265A JP6241339B2 (ja) 2014-03-19 2014-03-19 経路選択方法、ノード装置、及び、プログラム
US14/632,501 US9900240B2 (en) 2014-03-19 2015-02-26 Route selecting method and node apparatus
BR102015004267A BR102015004267A2 (pt) 2014-03-19 2015-02-26 método de seleção de rota, aparelho de nó e programa

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014057265A JP6241339B2 (ja) 2014-03-19 2014-03-19 経路選択方法、ノード装置、及び、プログラム

Publications (2)

Publication Number Publication Date
JP2015180014A true JP2015180014A (ja) 2015-10-08
JP6241339B2 JP6241339B2 (ja) 2017-12-06

Family

ID=54143127

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014057265A Expired - Fee Related JP6241339B2 (ja) 2014-03-19 2014-03-19 経路選択方法、ノード装置、及び、プログラム

Country Status (3)

Country Link
US (1) US9900240B2 (ja)
JP (1) JP6241339B2 (ja)
BR (1) BR102015004267A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017092836A (ja) * 2015-11-16 2017-05-25 三菱電機株式会社 パケット制御装置
JP2021197576A (ja) * 2020-06-10 2021-12-27 ルネサスエレクトロニクス株式会社 無線通信装置、無線経路制御方法及びプログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6273942B2 (ja) * 2014-03-19 2018-02-07 富士通株式会社 経路選択方法、ノード装置、中継システム、及び、プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1168838A (ja) * 1997-08-12 1999-03-09 Kokusai Denshin Denwa Co Ltd <Kdd> 経路選択方法
US6633544B1 (en) * 1998-06-24 2003-10-14 At&T Corp. Efficient precomputation of quality-of-service routes
JP2010518745A (ja) * 2007-02-07 2010-05-27 トムソン ライセンシング マルチラジオ・マルチチャネル・マルチホップ無線ネットワークのための無線・帯域幅認識型ルーティング・メトリック
JP2010178145A (ja) * 2009-01-30 2010-08-12 Oki Electric Ind Co Ltd パケット中継システム及び無線ノード

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007017515B3 (de) * 2007-04-13 2008-09-11 Siemens Ag Verfahren zur Ermittlung eines Pfaddistanzwertes sowie Netzwerkknoten
US8682612B2 (en) * 2008-12-18 2014-03-25 Abb Research Ltd Trend analysis methods and system for incipient fault prediction
GB2484915B (en) 2010-10-22 2013-10-23 Toshiba Res Europ Ltd Forwarding and routing in sensor networks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1168838A (ja) * 1997-08-12 1999-03-09 Kokusai Denshin Denwa Co Ltd <Kdd> 経路選択方法
US6633544B1 (en) * 1998-06-24 2003-10-14 At&T Corp. Efficient precomputation of quality-of-service routes
JP2010518745A (ja) * 2007-02-07 2010-05-27 トムソン ライセンシング マルチラジオ・マルチチャネル・マルチホップ無線ネットワークのための無線・帯域幅認識型ルーティング・メトリック
JP2010178145A (ja) * 2009-01-30 2010-08-12 Oki Electric Ind Co Ltd パケット中継システム及び無線ノード

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017092836A (ja) * 2015-11-16 2017-05-25 三菱電機株式会社 パケット制御装置
JP2021197576A (ja) * 2020-06-10 2021-12-27 ルネサスエレクトロニクス株式会社 無線通信装置、無線経路制御方法及びプログラム

Also Published As

Publication number Publication date
JP6241339B2 (ja) 2017-12-06
US9900240B2 (en) 2018-02-20
US20150271053A1 (en) 2015-09-24
BR102015004267A2 (pt) 2015-12-08

Similar Documents

Publication Publication Date Title
JP5021769B2 (ja) マルチラジオ・マルチチャネル・マルチホップ無線ネットワークのための無線・帯域幅認識型ルーティング・メトリック
US9699104B2 (en) Deterministic distributed network coding
Rajesh et al. GCCover Heterogeneous Wireless Ad hoc Networks
JP5939262B2 (ja) 送信制御方法、ノードおよび送信制御プログラム
US20130010615A1 (en) Rapid network formation for low-power and lossy networks
JPWO2011148583A1 (ja) バス制御装置およびバス制御装置に指示を出力する制御装置
US20120307653A1 (en) Reachability rate computation without link layer acknowledgments
JP6241339B2 (ja) 経路選択方法、ノード装置、及び、プログラム
WO2013136527A1 (ja) 経路選択方法及び無線装置
US9602386B2 (en) Node apparatus, record medium for storing control program, wireless communication system, and method for data communication
KR101058931B1 (ko) 노드 이동에 의한 링크 라이프타임을 반영한 멀티홉 라우팅장치 및 방법
JP6273942B2 (ja) 経路選択方法、ノード装置、中継システム、及び、プログラム
JP6201669B2 (ja) 通信方法、通信装置、通信プログラム、および、通信システム
JP5810899B2 (ja) 無線通信装置、無線通信プログラムおよび無線通信方法
JP5459226B2 (ja) 経路制御装置、経路制御方法、経路制御プログラム、ネットワークシステム
CN108496391B (zh) 无线网格通信网络的路由
KR101524825B1 (ko) 무선 메쉬 네트워크에서의 패킷 라우팅 방법, 패킷 라우팅 제어 장치 및 패킷 라우팅 시스템
JP6171868B2 (ja) ノード装置、経路入れ替え方法、及び、プログラム
US9749253B2 (en) Technique for implementing a latency sensitive communication protocol in a wireless mesh network
JP2018056627A (ja) 中継装置
JPWO2017183100A1 (ja) 無線通信装置および無線通信方法
KR101524472B1 (ko) 네트워크에서 다중 경로 설정 방법 및 장치
Gangwar et al. An energy optimized path selection and dynamic Cluster head selection for Wireless Mesh Network
JP2011171973A (ja) 経路計算装置
JP2011045037A (ja) 情報処理装置および情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170908

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170919

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170928

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171023

R150 Certificate of patent or registration of utility model

Ref document number: 6241339

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees