JP5884919B2 - ネットワーク装置および送信プログラム - Google Patents

ネットワーク装置および送信プログラム Download PDF

Info

Publication number
JP5884919B2
JP5884919B2 JP2014545473A JP2014545473A JP5884919B2 JP 5884919 B2 JP5884919 B2 JP 5884919B2 JP 2014545473 A JP2014545473 A JP 2014545473A JP 2014545473 A JP2014545473 A JP 2014545473A JP 5884919 B2 JP5884919 B2 JP 5884919B2
Authority
JP
Japan
Prior art keywords
packet
node
adjacent
processing unit
route
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.)
Active
Application number
JP2014545473A
Other languages
English (en)
Other versions
JPWO2014073040A1 (ja
Inventor
山田 健二
健二 山田
裕一 稲生
裕一 稲生
達也 曽根田
達也 曽根田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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
Application granted granted Critical
Publication of JP5884919B2 publication Critical patent/JP5884919B2/ja
Publication of JPWO2014073040A1 publication Critical patent/JPWO2014073040A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/26Route discovery packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update
    • H04W40/28Connectivity information management, e.g. connectivity discovery or connectivity update for reactive routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1886Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with traffic restrictions for efficiency improvement, e.g. involving subnets or subdomains
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update
    • H04W40/246Connectivity information discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、ネットワーク装置等に関する。
アドホックネットワークにおいて、ノードが持つルーティングテーブルの情報を、Hellowパケットを使って伝搬させ、経路情報を構築する技術がある。この技術は、プロアクティブ型の経路構築方法に基づくものである。以下の説明では適宜、ルーティングテーブルをRTと表記する。
例えば、プロアクティブ型の経路構築方法は、ハードウェアリソースが十分でない場合に、何らかの方法によってRTの情報量を削減する。例えば、GW(Gate Way)向けの上り方面は、プロアクティブ型の経路構築方法を利用し、下り方向は、上り方向で構築した経路を逆順に辿るパケットを送信して、経路構築を行う。
一方、RTの情報を伝搬させない経路構築方法として、通信前に経路を作成するリアクティブ型の経路構築方法がある。リアクティブ型の経路構築方法は、通信前に経路要求(RREQ)をフラッディングして宛先に通知し、RREQを受信した宛先ノードは、経路応答(RREP)をRREQの送信元ノードに返信する。
例えば、RREQを受信したノードは、RREQの送信元ノードの情報と、RREQの転送元ノードとを関連付けしてRTに登録できる。この為、RREQを受信したノードは、RREQの送信元にRREPを転送することが可能となる。リアクティブ型の経路構築方法は、通信開始時にフラッディングを実施する。
国際公開第2009/130918号
しかしながら、上述した従来技術では、フラッディングによるデータパケット送信により、アドホックネットワークの通信帯域が圧迫されるという問題がある。
リアクティブ型の経路構築方法は、通信開始時にフラッディングを実施するため、通信帯域を圧迫してしまう。
また、プロアクティブ型の経路構築方法は、パケットの宛先情報がRTに存在しない場合に、かかる宛先情報を設定したブロードキャストパケットを作成してフラッディングを行うことになり、通信帯域を圧迫してしまう。
図27、図28、図29は、従来技術の問題を説明するための図である。図27に示すように、このアドホックネットワークは、サーバ60、GW70、ノード10A〜10Zを有する。ノード10A〜10Zをまとめて適宜、ノード10と表記する。サーバ60およびGW70は、ネットワーク50を介して相互に接続される。ノード10は、隣接ノードと無線通信によって相互に接続される。GW70は、隣接ノードと無線通信によって相互に接続される。例えば、GW70は、ノード10A,10B,10C,10D,10Eと相互に接続される。例えば、GW70のRTの宛先には、ノード10A,10B,10C,10D,10E,10F,10G,10H,10L,10Oが登録されているものとする。
GW70は、サーバ60からパケットを受信し、パケットの宛先がRTに登録されている場合には、RTに基づいてパケットを転送する。例えば、パケットの宛先がノード10Oである場合には、図28に示すように、GW10はパケットをノード10Bに転送する。例えば、ノード10Bに転送されたパケットは、ノード10Gを介して、ノード10Oに転送される。
これに対して、GW70は、サーバ60からパケットを受信し、パケットの宛先がRTに登録されていない場合には、フラッディングにてデータ送信を行う。例えば、パケットの宛先がノード10Mの場合には、図29に示すように、フラッディングによりデータ送信が行われる。すなわち、GW70は、宛先をノード10Mに設定して、ブロードキャストのパケットを生成し、ブロードキャストを行う。ブロードキャストのパケットを受信した各ノード10は、かかるパケットを再度ブロードキャストする。各ノード10がそれぞれブロードキャストすることで、パケットがノード10Mに到達する。
上記のように、プロアクティブ型の経路構築方法では、パケットの宛先情報がRTに存在しない場合に、図29に示したフラッディングが発生すると、通信帯域を圧迫してしまう。
1つの側面では、フラッディングによるデータパケットの送信割合を削減できるネットワーク装置および送信プログラムを提供することを目的とする。
第1の案では、ネットワーク装置は、経路要求パケット送信部および送信制御部を有する。経路要求パケット送信部は、他のノードの宛先情報が設定された自ネットワーク装置のルーティングテーブルに、パケットの宛先情報が存在しない場合に、パケットの宛先情報を設定した経路要求パケットを隣接ノードにブロードキャストする。送信制御部は、経路要求パケットに対応する経路応答パケットを他のノードから受信した場合に、経路応答パケットの送信元ノードを転送先に設定してパケットを送信する。送信制御部は、経路応答パケットを受信しない場合には、パケットの宛先情報を設定したパケットをフラッディングにより送信する。
本発明の1実施態様によれば、フラッディングの送信割合を削減できるという効果を奏する。
図1は、本実施例1に係るネットワーク装置の構成を示す機能ブロック図である。 図2は、本実施例2に係るアドホックネットワークの構成を示す図である。 図3は、本実施例2に係る隣接RREQパケットのデータ構造の一例を示す図である。 図4は、本実施例2に係る隣接RREPパケットのデータ構造の一例を示す図である。 図5は、本実施例2に係るデータパケットのデータ構造の一例を示す図である。 図6は、本実施例2に係るハローパケットのデータ構造の一例を示す図である。 図7は、データパケットの処理シーケンスの一例を示す図(1)である。 図8は、データパケットの処理シーケンスの一例を示す図(2)である。 図9は、GW向けの上り方向の経路構築の処理シーケンスの一例を示す図である。 図10は、GW向けの上り方向の経路構築で生成されるRTの一例を示す図である。 図11は、下り方向の経路構築の処理シーケンスの一例を示す図である。 図12は、下り方向の経路構築で生成されるRTの一例を示す図である。 図13は、下り方向の経路構築を行う場合のデータパケットの送信経路の一例を示す図である。 図14は、本実施例2に係るGWの構成を示す機能ブロック図である。 図15は、分岐処理部の処理手順を示すフローチャートである。 図16は、リンクテーブルのデータ構造の一例を示す図である。 図17は、ルーティングテーブルのデータ構造の一例を示す図である。 図18は、FID管理テーブルのデータ構造の一例を示す図である。 図19は、データパケット処理部の処理手順を示すフローチャート(1)である。 図20は、データパケット処理部の処理手順を示すフローチャート(2)である。 図21は、タイマ処理の処理手順の一例を示す図である。 図22は、隣接パケット処理部の処理手順を示すフローチャートである。 図23は、隣接RREPによる経路決定処理を示すフローチャート(1)である。 図24は、隣接RREPによる経路決定処理を示すフローチャート(2)である。 図25は、その他の実施例を説明するための図である。 図26は、送信プログラムを実行するコンピュータの一例を示す図である。 図27は、従来技術の問題を説明するための図である。 図28は、従来技術の問題を説明するための図である。 図29は、従来技術の問題を説明するための図である。
以下に、本発明にかかるネットワーク装置および送信プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
本実施例にかかるシステムの構成について説明する。図1は、本実施例1に係るネットワーク装置の構成を示す機能ブロック図である。図1に示すように、このネットワーク装置80は、ルーティングテーブル81、経路要求パケット送信部82、送信制御部83を有する。
ルーティングテーブル81は、アドホックネットワークに含まれる他のノードの宛先情報が設定された情報である。
経路要求パケット送信部82は、ルーティングテーブル81に、パケットの宛先情報が存在しない場合に、パケットの宛先情報を設定した経路要求パケットを隣接ノードにブロードキャストする処理部である。
送信制御部83は、経路要求パケットに対応する経路応答パケットを他のノードから受信した場合に、経路応答パケットの送信元ノードを転送先に設定してパケットを送信する。送信制御部83は、経路応答パケットを受信しない場合には、パケットの宛先情報を設定したパケットをフラッディングにより送信する。
本実施例1に係るネットワーク装置80の効果について説明する。ネットワーク装置80は、ルーティングテーブル81に、パケットの宛先情報が存在しない場合に、パケットの宛先情報を設定した経路要求パケットを隣接ノードにブロードキャストする。ネットワーク装置80は、経路要求パケットに対応する経路応答パケットを他のノードから受信した場合に、経路応答パケットの送信元ノードを転送先に設定してパケットを送信する。また、ネットワーク装置80は、経路応答パケットを受信しない場合には、パケットの宛先情報を設定したパケットをフラッディングにより送信する。このため、ルーティングテーブル81にパケットの宛先情報が存在しない場合のフラッディングの割合を削減することができ、アドホックネットワークの通信帯域を圧迫することを防止できる。
本実施例2に係るアドホックネットワークについて説明する。図2は、本実施例2に係るアドホックネットワークの構成を示す図である。図2に示すように、このアドホックネットワークは、サーバ60、GW100、ノード200A〜200Zを有する。ノード200A〜ノード200Zをまとめて適宜、ノード200と表記する。
サーバ60およびGW100は、ネットワーク50を介して相互に接続される。GW100は、隣接ノードと無線通信によって相互に接続される。例えば、GW100は、ノード200A,200B,200C,200D,300Eと相互に接続される。例えば、GW100のルーティングテーブルの宛先には、ノード10A,10B,10C,10D,10E,10F,10G,10H,10L,10Oが登録されているものとする。以下の説明において、ルーティングテーブルを適宜、RTと表記する。
GW100、ノード200A〜200Zは、ネットワーク装置の一例である。
GW100は、サーバ60からパケットを受信し、パケットの宛先情報が自身のRTに存在しない場合には、パケットの宛先情報を設定した隣接RREQパケットを隣接ノードにブロードキャストする。
GW100は、隣接RREQパケットに対応する隣接RREPパケットを受信した場合には、隣接RREPパケットの送信元ノードを転送先に設定してデータパケットを送信する。これに対して、GW100は、隣接RREPパケットを受信しない場合には、データパケットをフラッディングにより送信する。
ノード200は、GW100または他のノードから隣接RREQパケットを受信し、隣接RREQパケットに設定された宛先情報が、自身のRTに存在する場合には、隣接RREPパケットを、隣接RREQパケットの送信元に送信する。これに対して、ノード200は、隣接RREQパケットに設定された宛先情報が、自身のRTに存在しない場合には、隣接RREPパケットを送信しない。
本実施例2のGW100、ノード200は、隣接RREQパケット、隣接RREPパケット、データパケット、ハロー(Hello)パケット等を送受信する。以下において、隣接RREQパケット、隣接RREPパケット、データパケット、ハローパケットのデータ構造の一例について順に説明する。
隣接RREQパケットのデータ構造の一例について説明する。図3は、本実施例2に係る隣接RREQパケットのデータ構造の一例を示す図である。図3に示すように、隣接RREQは、ヘッダ部と、ペイロード部とを有する。ヘッダ部は、GD、GS、LD、LS、TYPE、Lenghtを有する。ペイロード部は、GD、FIDを有する。
隣接RREQパケットのヘッダ部について説明する。GDは、宛先アドレスを示し、ブロードキャストアドレスが設定される。例えば、ブロードキャストアドレスは全て「1」となる。GSは、隣接RREQパケットの送信元アドレスを示し、例えば、GW100のアドレスが設定される。LDは、隣接RREQパケットの転送先アドレスを示し、ブロードキャストアドレスが設定される。LSは、隣接RREQパケットの転送元アドレスが設定される。TYPEは、パケットの種別を示す。隣接RREQパケットのTYPEは、「隣接RREQ」となる。Lenghtは、ペイロード部のGDおよびFIDを加算した長さを示す。
隣接RREQパケットのペイロード部について説明する。ペイロード部のGDには、自真のRTに存在しない宛先アドレスが設定される。FIDは、隣接RREQパケットを一意に識別する情報が設定される。
隣接RREPパケットのデータ構造の一例について説明する。図4は、本実施例2に係る隣接RREPパケットのデータ構造の一例を示す図である。図4に示すように、隣接RREPは、ヘッダ部と、ペイロード部とを有する。ヘッダ部は、GD、GS、LD、LS、TYPE、Lenghtを有する。ペイロード部は、GD、FIDを有する。
隣接RREPパケットのヘッダ部について説明する。GDは、宛先アドレスを示し、隣接RREQパケットの送信元アドレスが設定される。GSは、隣接RREPパケットの送信元アドレスが設定される。LDは、隣接RREPパケットの送信元アドレスが設定される。LSは、隣接RREPパケットの送信元アドレスが設定される。TYPEは、パケットの種別を示す。隣接RREPパケットのTYPEは、「隣接RREP」となる。
隣接RREPパケットのペイロード部について説明する。ペイロード部のGDには、隣接RREQパケットのペイロード部のGDのアドレスが設定される。FIDには、隣接RREQパケットのFIDの情報が設定される。
データパケットのデータ構造の一例について説明する。図5は、本実施例2に係るデータパケットのデータ構造の一例を示す図である。図5に示すように、データパケットは、GD、GS、LD、LS、TYPE、FID、TTL、DATAを有する。GDは、宛先アドレスを示す。GSは、送信元アドレスを示す。LDは、転送先アドレスを示す。LSは、転送元アドレスを示す。TYPEは、パケットの種別を示す。データパケットのTYPEは、「Data」となる。FIDは、データパケットを一意に識別する情報が設定される。TTL(Time To Live)は、パケットの有効期間を示す値が格納される。DATAは、例えば、ユーザデータが格納される。
ハローパケットのデータ構造の一例について説明する。図6は、本実施例2に係るハローパケットのデータ構造の一例を示す図である。図6に示すように、ハローパケットは、GD、GS、LD、LS、TYPE、GWフラグ、Hopを有する。GDには、GW100のアドレスが設定される。GSは、送信元アドレスを示す。LDは、ハローパケットの転送先アドレスを示す。LSは、ハローパケットの転送元アドレスを示す。TYPEは、パケットの種別を示す。ハローパケットのTYPEは、「Hello」となる。GWフラグは、ハローパケットの送信元が、GW100であるか否かを示す情報である。ハローパケットの送信元がGW100の場合には、GWフラグは「オン(on)」となる。ハローパケットの送信元がGW100以外の場合には、GWフラグは「オフ(off)」となる。Hopは、GW100までのHop数を示す。
次に、図2に示したアドホックネットワークの処理シーケンスの一例について説明する。図7および図8は、パケットの処理シーケンスの一例を示す図である。例えば、図7では、GW100のRTにノード200Mのエントリ登録が無く、ノード200AのRTにノード200Mのエントリ登録があるものとする。また、ノード200A,200B,200C,200D,200EをGW100の隣接ノードとする。
図7に示すように、サーバ60はノード200M宛のデータをGW100に送信する(ステップS10)。GW100は、ノード200MがRTに存在しない場合に、隣接RREQパケットを生成する(ステップS11)。ステップS11において、GW100は、隣接RREQパケットのペイロード部のGDにノード200Mのアドレスを設定する。
GW100は、隣接RREQパケットを1ホップ(Hop)ブロードキャストする(ステップS12)。ステップS12の1ホップのブロードキャストにより、隣接RREQパケットが、GW100に隣接するノード200A、200B,200C,200D,200E,200Lに送信される。
ノード200B,200C,200D,200E,200Lは、ノード200MがRTに存在しないため、何もしない(ステップS13)。ノード200Aは、ノード200MがRTに存在するため、隣接RREPパケットを生成する(ステップS14)。ノードAは、隣接RREPパケットをGW100に送信する(ステップS15)。
GW100は、ユニキャストのデータパケットを生成し、データパケットのGDにノード200Mのアドレスを設定し、LDにノード200Aのアドレスを設定する(ステップS16)。GW100は、データパケットをノード200Aにユニキャストする(ステップS17)。
ノード200Aは、GW100から受信したデータパケットをノード200Lに転送する(ステップS18)。ステップS18において、ノード200Aは、データパケットのGDにノード200Mのアドレスを設定し、LDにノード200Lのアドレスを設定する。
ノード200Lは、ノード200Aから転送されたデータパケットをノード200Mに転送する(ステップS19)。ステップS19において、ノード200Lは、データパケットのGDに「ノード200M」を設定し、LDに「ノード200M」を設定する。そして、ノード200Mは、データパケットを、ノード200A、200Lを介して受信する(ステップS20)。
図7に示したように、GW100は、パケットの宛先が自身のRTに存在しない場合に、該宛先を問い合わせる隣接RREQパケットをブロードキャストする。GW100は、宛先をRTに有するノード200から隣接RREPパケットを受信した場合に、隣接RREPパケットの送信元をデータパケットの転送先とする。このため、フラッディングを行わず、データパケットを宛先に送信することができる。
次に、図8について説明する。例えば、図8では、GW100のRTにノード200Mのエントリ登録が無く、ノード200A,200B,200C,200D,200EのRTにノード200Mのエントリ登録が無いものとする。また、ノード200A,200B,200C,200D,200EをGW100の隣接ノードとする。
図8に示すように、サーバ60はノード200M宛のデータをGW100に送信する(ステップS31)。GW100は、ノード200MがRTに存在しない場合に、隣接RREQを生成する(ステップS32)。ステップS32において、GW100は、隣接RREQパケットのペイロード部のGDに「ノード200M」を設定する。
GW100は、隣接RREQパケットを1ホップ(Hop)ブロードキャストする(ステップS33)。ステップS33の1ホップのブロードキャストにより、隣接RREQパケットが、GW100に隣接するノード200A、200B,200C,200D,200E,200Lに送信される。
ノード200A,200B,200C,200D,200E,200Lは、ノード200MがRTに存在しないため、何もしない(ステップS34)。
GW100は、タイムアウト後に、ブロードキャストのデータパケットを生成し、ブロードキャストする(ステップS35)。ステップS35において、GWは、データパケットのGDに「ノード200M」を設定し、LDにブロードキャストアドレスを設定することで、ブロードキャストのデータパケットを生成する。
各ノード200A〜200E,ノードLがそれぞれ1回だけブロードキャストする(ステップS36)。そして、ノード200Mは、自分宛のデータパケットを取り込む(ステップS37)。
図8に示したように、GW100は、パケットの宛先が自身のRTに存在しない場合に、該宛先を問い合わせる隣接RREQパケットをブロードキャストする。そして、GW100は、タイムアウト前に、隣接RREPを受信しない場合には、フラッディングによってデータパケットを送信する。
次に、GW100向けの上り方向の経路構築の処理シーケンスの一例について説明する。図9は、GW向けの上り方向の経路構築の処理シーケンスの一例を示す図である。図9では一例として、GW100,ノード200A,200Bを用いて説明する。図10は、GW向けの上り方向の経路構築で生成されるRTの一例を示す図である。図10において、RT201Aは、ノード200AのRTである。RT201Bは、ノード200BのRTである。
図9に示すように、GW100は、ハローパケットを生成する(ステップS41)。ステップS41において、GW100は、LSにGW100のアドレスを設定し、LDにブロードキャストアドレスを設定する。ブロードキャストアドレスを適宜、BCと表記する。また、GW100は、TYPEを「Hello」に設定し、GWフラグを「オン」に設定する。GW100は、GDにGW100のアドレスを設定する。また、GW100は、Hopを「0」に設定する。
GW100は、ハローパケットを送信する(ステップS42)。ノード200Aは、ハローパケットを受信し、RTにエントリを追加する(ステップS43)。ステップS43において、ノード200Aは、RT201AのGDにGW100のアドレス、LDにGW100のアドレス、Hopに「1」を追加する。ノード200Aは、ハローパケットのHopの値に1を加算した値「1」を、RT201AのHopに追加する。
ノード200Aは、ハローパケットを生成する(ステップS44)。ステップS44において、ノード200Aは、LSにノード200Aのアドレスを設定し、LDにBCを設定する。ノード200Aは、TYPEを「Hello」に設定し、GWフラグを「オン」に設定する。ノード200Aは、GDにGW100のアドレスを設定する。また、GW100は、RT201AのHopの値「1」を、ハローパケットのHopに設定する。
ノード200Aは、ハローパケットを送信する(ステップS45)。ノード200Bは、ハローパケットを受信し、RTにエントリを追加する(ステップS46)。ステップS46において、ノード200Bは、RT201BのGDにGW100のアドレス、LDにノード200Aのアドレス、Hopに「2」を追加する。ノード200Aは、ハローパケットのHopの値に1を加算した値「2」を、RT201BのHopに追加する。
ノード200が、図9に示した処理を繰り返し実行することで、GW100向けの上り方向の経路情報が構築される。
次に、下り方向の経路構築の処理シーケンスの一例について説明する。図11は、下り方向の経路構築の処理シーケンスの一例を示す図である。図11では一例として、ノード200O,200N,200Q,200Yを用いて説明する。図12は、下り方向の経路構築で生成されるRTの一例を示す図である。図12において、RT201Yは、ノード200YのRTである。RT201Qは、ノード200QのRTである。RT201Nは、ノード200NのRTである。ノード200のRTには、GW100の宛先が登録されているものとする。
ノード100O,200N,200Q,200Yは、GW100向けの上り方向の経路構築により、GW100の宛先情報をRTに有しているものとする。下記に説明するように、ノード200は、GW100宛にデータパケットを送信することで、下り方向の経路構築を行う。
図11に示すように、ノード200Yは、データパケットを生成する(ステップS51)。ステップS51において、ノード200Yは、データパケットのLSにノード200Yのアドレスを設定し、LDにノード200Qのアドレスを設定する。ノード200Yは、TYPEを「Data」に設定する。ノード200Yは、GDにGW100のアドレスを設定し、GSにノード200Yのアドレスを設定する。ノード200Yは、TTLに初期値10を設定する。
ノード200Yは、データパケットを送信する(ステップS52)。ノード200Qは、データパケットを受信し、RT201Qにエントリを追加する(ステップS53)。ステップS53において、ノード200Qは、RT201QのGDにノード200Yのアドレス、LDにノード200Yのアドレス、Hopに「1」を追加する。ノード200Qは、TTLの初期値「10」からデータパケットの「TTL−1」の値「9」を、減算することで、Hop「1」を算出する。
ノード200Qは、データパケットを生成する(ステップS54)。ステップS54において、ノード200Qは、LSにノード200Qのアドレスを設定し、LDにノード200Nのアドレスを設定する。ノード200Qは、TYPEを「Data」に設定する。ノード200Qは、GDにGW100のアドレスを設定し、GSにノード200Yのアドレスを設定する。ノード200Qは、TTLに、ノード200Yから受信したデータパケットのTTLから1減算した値「9」を設定する。
ノード200Qは、データパケットを送信する(ステップS55)。ノード200Nは、データパケットを受信し、RT201Qにエントリを追加する(ステップS56)。ステップS56において、ノード200Nは、RT201Qにノード200Yのアドレス、LDにノード200Qのアドレス、Hopに「2」を追加する。ノード200Nは、TTLの初期値「10」からデータパケットの「TTL−1」の値「8」を減算することで、Hop「2」を算出する。
ノード200Nは、データパケットを生成する(ステップS57)。ステップS57において、ノード200Nは、LSにノード200Nのアドレスを設定し、LDにノード200Oのアドレスを設定する。ノード200Nは、TYPEを「DATA」に設定する。ノード200Nは、GDにGW100のアドレスを設定し、GSにノード200Yのアドレスを設定する。TTLに、ノード200Qから受信したデータパケットのTTLから1減算した値「8」を設定する。
ノード200Nは、データパケットを送信する(ステップS58)。ノードOは、データパケットを受信し、RT201Oにエントリを追加する(ステップS59)。ステップS59の詳細な説明は省略する。
上記のように、各ノード200が、GW100宛のデータパケットを送信することで、各ノード200のRTに各宛先が登録される。図13は、下り方向の経路構築を行う場合のデータパケットの送信経路の一例を示す図である。図13に示すように、送信経路30a,30b,30c,30d,30e,30fによってデータパケットがGW100に到達したとする。そうすると、例えば、ノード200AのRTには、GW100,ノード200L,200Mのエントリが登録される。ノード200BのRTには、GW100,ノード200G,200N,200O,200P,200Q,200R,200Yのエントリが登録される。ノード200CのRTには、GW100のエントリが登録される。ノード200DのRTには、GW100,ノード200F,ノード200H,ノード200I,200T,200W,200Z,200U,200Vのエントリが登録される。ノードEのRTには、GW100,ノード200J,200K,200S,200Xのエントリが登録される。
次に、本実施例2に係るGW100およびノード200の構成について説明する。GW200およびノード200の構成は同様であるため、ここでは、GW100の構成について説明する。図14は、本実施例2に係るGWの構成を示す機能ブロック図である。
図14に示すように、このGW100は、受信部101、分岐処理部102、リンクテーブル103、ルーティングテーブル104、自ノード情報テーブル105、FID管理テーブル106、ハローパケット処理部107を有する。また、GW100は、ハローパケット生成部108、宛先処理部109、上位層処理部110、FID生成部111、データパケット処理部112、隣接パケット処理部113、送信部114を有する。
受信部101は、他のノード200から送信されたパケットを受信する処理部である。
分岐処理部102は、パケットの種別を基にして、パケットをハローパケット処理部107、データパケット処理部112、隣接パケット処理部113に出力する。分岐処理部102は、パケットのTYPEが「Hello」の場合には、パケットをハローパケット処理部107に出力する。分岐処理部102は、パケットのTYPEが「DATA」または「DATA ACK」の場合には、パケットをデータパケット処理部112に出力する。分岐処理部102は、パケットのTYPEが「隣接RREQ」または「隣接RREP」の場合には、パケットを隣接パケット処理部113に出力する。
分岐処理部102の処理手順について説明する。図15は、分岐処理部の処理手順を示すフローチャートである。図15に示すように、分岐処理部102は、受信したパケットのTYPEが「Hello」であるか否かを判定する(ステップS101)。分岐処理部102は、パケットのTYPEが「Hello」の場合には(ステップS101,Yes)、ハローパケット処理部107にパケットを出力する(ステップS102)。
一方、分岐処理部102は、パケットのTYPEが「Hello」ではない場合には(ステップS101,No)、パケットのTYPEが「DATA」または「DATA ACK」であるか否かを判定する(ステップS103)。分岐処理部102は、パケットのTYPEが「DATA」または「DATA ACK」である場合には(ステップS103,Yes)、データパケット処理部112にパケットを出力する(ステップS104)。
一方、分岐処理部102は、パケットのTYPEが「DATA」または「DATA ACK」ではない場合には(ステップS103,No)、パケットのTYPEが「隣接RREQ」または「隣接RREP」であるか否かを判定する(ステップS105)。分岐処理部102は、パケットのTYPEが「隣接RREQ」または「隣接RREP」である場合には(ステップS105,Yes)、隣接パケット処理部113にパケットを出力する(ステップS106)。
一方、分岐処理部102は、パケットのTYPEが「隣接RREQ」または「隣接RREP」ではない場合には(ステップS105,No)、パケットを破棄する(ステップS107)。
リンクテーブル103は、GW100の隣接ノードの情報を保持するテーブルである。図16は、リンクテーブルのデータ構造の一例を示す図である。例えば、図16に示すように、リンクテーブル103は、隣接ノードのLDと、受信信号強度(RSSI:Received Signal Strength Indication)とを対応付けて記憶する。
ルーティングテーブル104は、パケットの宛先に送信するための転送先を保持するテーブルである。図17は、ルーティングテーブルのデータ構造の一例を示す図である。例えば、図17に示すように、ルーティングテーブル104は、GD、LD、Hopを対応付ける。GDは、パケットの宛先アドレスが登録される。LDは、パケットの宛先に送信するための転送先のアドレスが登録される。Hopは、パケットの宛先に至るまでのHop数を示す。図17に示す例では、パケットの宛先がノード200Lの場合には、パケットの転送先がノード200Aとなる。
自ノード情報テーブル105は、自ノードに関する各種の情報を保持する。
FID管理テーブル106は、データパケットの再送、ループ検出、バックトラックを行うための情報を保持する。図18は、FID管理テーブルのデータ構造の一例を示す図である。図18に示すように、このFID管理テーブル106は、GS、FID、データパケット、状態、受信信号強度(RSSI)を対応付けて記憶する。GSは、パケットの送信元アドレスを示す。FIDは、パケットを一意に識別する情報である。データパケットは、データパケットのデータである。状態は、パケットの状態を示すものである。例えば、隣接RREPパケットの待ち状態である場合には、状態は「隣接RREPパケット待ち」となる。受信信号強度は、隣接RREPパケットを受信した場合の受信信号強度を示す。
ハローパケット処理部107は、ハローパケットの情報を基にして、リンクテーブル103およびルーティングテーブル104を更新する処理部である。
ハローパケット処理部107が、リンクテーブル103を更新する処理について説明する。ハローパケット処理部107は、ハローパケットのLSを、リンクテーブル103のLDに設定し、受信信号強度と対応付ける。ハローパケット処理部107は、ハローパケットの受信信号強度を計測し、リンクテーブル103に設定する。
ハローパケット処理部107が、ルーティングテーブル104を更新する処理について説明する。ハローパケット処理部107は、図9に示したGW向けの上り方向の経路構築と同様の手法により、ルーティングテーブ104を更新する。
ハローパケット生成部108は、周期的に自ノード情報105とルーティングテーブル104からハローパケットを生成し、生成したハローパケットを、送信部114に出力する。ハローパケット生成部108が、ハローパケットを生成する処理は、図9に示したGW向けの上り方向の経路構築および図11に示した下り方向の経路構築と同様である。
宛先処理部109は、パケットの宛先と、リンクテーブル103、ルーティングテーブル104とを比較して、転送先を決定する処理部である。例えば、宛先処理部109は、複数の転送先が、ルーティングテーブル104に存在する場合には、リンクテーブル103の受信信号強度の大きい方のノードを優先的に転送先として選択しても良い。
上位層処理部110は、データパケットを使った通信の最終処理を行う処理部である。
FID生成部111は、データパケットを一意に識別するFIDを生成する処理部である。FIDと送信元アドレスとの組みにより、パケットが一意に特定される。
データパケット処理部112は、データパケットを受信した場合に各種の処理を実行する処理部である。データパケット処理部112は、自ノード宛のデータパケットを受信した場合、または、最初のブロードキャストデータを受信した場合には、上位層処理部110に通知する。データパケット処理部112は、同一のデータパケットを重複して受信した場合には、データパケットを破棄する。
データパケット処理部112は、データパケットの宛先が自ノード以外の場合に、FID管理テーブル106を参照し、再送・ループ検出・バックトラックの検出を行う。また、データパケット処理部112は、データパケットを転送する場合には、宛先処理部109から転送先を取得して送信部114に通知する。
ここで、データパケット処理部112の処理について具体的に説明する。図19および図20は、データパケット処理部の処理手順を示すフローチャートである。図19および図20では、データパケットをDPと表記する。図19に示すように、データパケット処理部112は、メッセージを受信したか否かを判定する(ステップS201)。
データパケット処理部112は、メッセージを受信していない場合には(ステップS201,No)、所定時間待機し(ステップS202)、タイマ処理を実行し(ステップS203)、ステップS21に移行する。
データパケット処理部112は、メッセージを受信した場合には(ステップS201,Yes)、分岐処理部102からの依頼であるか否かを判定する(ステップS204)。
データパケット処理部112は、分岐処理部102からの依頼ではない場合には(ステップS204,No)、上位層処理部110からの依頼であるか否かを判定する(ステップS205)。データパケット処理部112は、上位層処理部110からの依頼ではない場合には(ステップS205,No)、隣接パケット処理部113からの依頼であるか否かを判定する(ステップS206)。
データパケット処理部112は、隣接パケット処理部113からの依頼ではない場合には(ステップS206,No)、DPを破棄し(ステップS208)、ステップS201に移行する。一方、データパケット処理部112は、隣接パケット処理部113からの依頼の場合には(ステップS206,Yes)、受け取ったDPを送信部114に出力し(ステップS207)、ステップS201に移行する。ステップS207において、データパケット処理部112が、隣接パケット処理部113から取得するDPのLDには、他のノード200から得られる隣接RREPパケットのLSが、設定されている。
ステップS205の説明に戻る。データパケット処理部112は、上位層処理部110からの依頼である場合には(ステップS205,Yes)、DPのパラメータを設定する(ステップS209)。ステップS209において、データパケット処理部112は、DPのGSに自ノードのアドレスを設定し、GDに上位層処理部110に指定された宛先アドレスを設定する。データパケット処理部112は、DPのLSに自ノードのアドレスを設定し、HopにHop数の初期値を設定する。データパケット処理部112は、DPのFIDに、FID生成部111で生成されたFIDの情報を設定する。
データパケット処理部112は、宛先処理部109を利用して、宛先に対するエントリがRT104にあるかを検索する(ステップS210)。
データパケット処理部112は、エントリがない場合には(ステップS211,No)、FID管理テーブル106にエントリを登録する(ステップS212)。データパケット処理部112は、隣接RREQパケットの作成を、隣接パケット処理部113に依頼し(ステップS213)、ステップS201に移行する。
一方、データパケット処理部112は、エントリがある場合には(ステップS211,Yes)、DPのLDに転送先を設定し(ステップS214)、FID管理テーブル106にエントリを登録する(ステップS215)。データパケット処理部112は、DPを送信部114に出力し(ステップS216)、ステップS201に移行する。
ステップS204の説明に戻る。データパケット処理部112は、分岐処理部102からの依頼である場合には(ステップS204,Yes)、受信したDPのLDが自ノードのアドレスであるか否かを判定する(ステップS217)。データパケット処理部112は、DPのLDが自ノードのアドレスではない場合には(ステップS217,No)、DPを破棄し(ステップS218)、ステップS201に移行する。
一方、データパケット処理部112は、DPのLDが自ノードのアドレスである場合には(ステップS217,Yes)、RTエントリ登録処理を実行する(ステップS219)。ステップS219において、データパケット処理部112は、図11に示した下り方向の経路構築と同様の手法により、RTにエントリを登録する。
データパケット処理部112は、DPに含まれるGSとFIDとの組みに対応するエントリを、FID管理テーブル106から検索する(ステップS220)。データパケット処理部112は、エントリがない場合には(ステップS221,No)、FID管理テーブル106にエントリを作成する(ステップS222)。データパケット処理部112は、ACKを作成し、送信部114に出力する(ステップS223)。
データパケット処理部112は、受信したDPのGDが自ノードのアドレスであるか否かを判定する(ステップS224)。データパケット処理部112は、受信したDPのGDが自ノードのアドレスである場合には(ステップS224,Yes)、上位層処理部110にDPを出力し(ステップS225)、ステップS201に移行する。
一方、データパケット処理部112は、受信したDPのGDが自ノードのアドレスでは無い場合には(ステップS224,No)、ステップS229に移行する。
ステップS221の説明に戻る。データパケット処理部112は、エントリがある場合には(ステップS221,Yes)、前回の転送先のプライオリティを下げる(ステップS226)。データパケット処理部112は、ACKを作成し、送信部114に出力する(ステップS227)。
データパケット処理部112は、受信したDPのGDが自ノードのアドレスであるか否かを判定する(ステップS228)。データパケット処理部112は、受信したDPのGDが自ノードのアドレスである場合には(ステップS228,Yes)、ステップS218に移行する。
一方、データパケット処理部112は、受信したDPのGDが自ノードのアドレスではない場合には(ステップS228,No)、宛先処理部109を利用し、DPのGDをキーにRT104を検索する(ステップS229)。データパケット処理部112は、図20のステップS230に移行する。
図20において、データパケット処理部112は、RT104にエントリがない場合には(ステップS231,No)、隣接RREQパケットの作成を隣接パケット処理部113に依頼し、図19のステップS201に移行する。
一方、データパケット処理部112は、RT104にエントリがある場合には(ステップS230,Yes)、転送先LDを決定する(ステップS232)。データパケット処理部112は、DPのLDに転送先を設定し、DPのLSに自ノードアドレスを設定し、DPのHop数を更新する(ステップS233)。データパケット処理部112は、DPを送信部114に出力し(ステップS234)、図19のステップS201に移行する。
次に、図19のステップS203に示したタイマ処理の処理手順について説明する。図21は、タイマ処理の処理手順の一例を示す図である。図21に示すように、データパケット処理部112は、未処理の隣接RREPパケット待ちのエントリを、FID管理テーブル106から取得する(ステップS251)。
データパケット処理部112は、エントリが無い場合には(ステップS252,No)、タイマ処理を終了する。一方、データパケット処理部112は、エントリがある場合には(ステップS252,Yes)、タイムアウトしたか否かを判定する(ステップS253)。
データパケット処理部112は、タイムアウトしていない場合には(ステップS253,No)、ステップS255に移行する。
一方、データパケット処理部112は、タイムアウトした場合には(ステップS253,Yes)、経路決定処理を実行する(ステップS254)。ステップS254において、データパケット処理部112は、DPの宛先にブロードキャストアドレスを設定し、宛先を返却する。また、データパケット処理部112は、DPの宛先にFID管理テーブル106のエントリのLSを設定し、宛先を返却する。
データパケット処理部112は、FID管理テーブル106のエントリを処理済みにし(ステップS255)、ステップS251に移行する。
図14の説明に戻る。隣接パケット処理部113は、他のノード200から受信する隣接RREQパケット、隣接RREPパケットを処理する処理部である。隣接パケット処理部113は、パケットの宛先がRT104に存在しない場合に、パケットの宛先を設定した隣接RREQパケットを隣接ノードにブロードキャストする。隣接パケット処理部113は、隣接RREQパケットに対応する隣接RREPパケットを受信した場合には、隣接RREPパケットの送信元ノードを転送先に設定してデータパケットを送信する。これに対して、隣接パケット処理部113は、隣接RREPパケットを受信しない場合には、データパケットをフラッディングにより送信する。
また、隣接パケット処理部113は、他のノード200から隣接RREQパケットを受信し、隣接RREQパケットに設定された宛先が、RT104に存在する場合には、隣接RREPパケットを、隣接RREQパケットの送信元のノードに送信する。これに対して、ノード200は、隣接RREQパケットに設定された宛先情が、RT104に存在しない場合には、隣接RREPパケットを送信しない。
隣接パケット処理部113の処理について具体的に説明する。図22は、隣接パケット処理部の処理手順を示すフローチャートである。図22に示すように、隣接パケット処理部113は、メッセージを受信したか否かを判定する(ステップS301)。隣接パケット処理部113は、メッセージを受信していない場合には(ステップS301,No)、所定時間待機し(ステップS302)、タイマ処理を実行し(ステップS303)、ステップS301に移行する。
一方、隣接パケット処理部113は、メッセージを受信した場合には(ステップS301,Yes)、分岐処理部102からの依頼であるか否かを判定する(ステップS304)。隣接パケット処理部113は、データパケット処理部112からの依頼である場合には(ステップS304,No)、隣接RREQパケットに設定するGDとFIDとの情報を、FID管理テーブル106から取得する(ステップS305)。ステップS304において、データパケット処理部112からの依頼があった場合には、データパケットのGDが、RT104に存在しないことを意味する。
隣接パケット処理部113は、隣接RREQパケットを作成し、ペイロード部にGD、FIDを設定する(ステップS306)。隣接パケット処理部113は、隣接RREQパケットを送信部114に出力し(ステップS307)、ステップS301に移行する。
ステップS304の説明に戻る。隣接パケット処理部113は、分岐処理部102からの依頼である場合には(ステップS304,Yes)、パケットの種別が「隣接RREQ」であるか否かを判定する(ステップS308)。
隣接パケット処理部113は、パケットの種別が「隣接RREP」である場合には(ステップS308,No)、隣接RREPパケットのペイロード部のGDとFIDとの組みが、FID管理テーブル106に登録されているか否かを判定する(ステップS309)。隣接パケット処理部113は、FID管理テーブル106に登録済みでない場合には(ステップS310,No)、ステップS301に移行する。
一方、隣接パケット処理部113は、FID管理テーブル106に登録済みである場合には(ステップS310,Yes)、隣接RREPによる経路決定処理を行う(ステップS311)。隣接パケット処理部113は、宛先が決定したか否かを判定する(ステップS312)。隣接パケット処理部113は、宛先が決定していない場合には(ステップS312,No)、ステップS301に移行する。
一方、隣接パケット処理部113は、宛先が決定した場合には(ステップS312,Yes)、DPをデータパケット処理部112に出力し(ステップS313)、ステップS301に移行する。
ステップS308の説明に戻る。隣接パケット処理部113は、種別が「隣接RREQ」である場合には(ステップS308,Yes)、ステップS314に移行する。隣接パケット処理部113は、隣接RREQパケットのペイロード部のGDとFIDとの組みが、FID管理テーブル106に登録されているか否かを判定する(ステップS315)。
隣接パケット処理部113は、FID管理テーブル106に登録済みの場合には(ステップS315,Yes)、ステップS301に移行する。
一方、隣接パケット処理部113は、FID管理テーブル106に登録済みでない場合には(ステップS315,No)、隣接RREQパケットのペイロード部のGDとFIDとの組みをFID管理テーブル106に登録する(ステップS316)。
隣接パケット処理部113は、隣接RRPQのペイロード部のGDがRT104に登録されているか否かを判定する(ステップS317)。隣接パケット処理部113は、RT104に登録されていない場合には(ステップS318,No)、ステップS301に移行する。
一方、隣接パケット処理部113は、RT104に登録されている場合には(ステップS318,Yes)、隣接RREQパケットを基に隣接RREPパケットを生成し、送信部114に出力する(ステップS319)。ステップS319を具体的に説明する。隣接パケット処理部113は、隣接RREPパケットのGDに隣接RREQパケットの送信元アドレスを設定する。隣接パケット処理部113は、隣接RREPパケットのGSに、自ノードのアドレスを設定する。隣接パケット処理部113は、隣接RREPパケットのLDに、隣接RREQパケットの送信元アドレスを設定する。隣接パケット処理部113は、隣接RREPパケットのLSに、自ノードのアドレスを設定する。隣接パケット処理部113は、隣接RREPパケットのTYPEに「隣接RREP」を設定し、Lengthに、ペイロードの大きさを設定する。隣接パケット処理部113は、隣接RREQパケットのペイロードの情報を、隣接RREPパケットのペイロードに設定する。
次に、図22のステップS313で示した隣接RREPによる経路決定処理の一例について説明する。図23および図24は、隣接RREPによる経路決定処理を示すフローチャートである。隣接パケット処理部113は、図23および図24の処理を順に実行する。
図23に示すように、隣接パケット処理部113は、宛先(LD)をクリアし(ステップS351)、隣接RREPパケットのRSSIは閾値以上か否かを判定する(ステップS352)。隣接パケット処理部113は、隣接RREPパケットのRSSIは閾値未満の場合には(ステップS352,No)、宛先が決定しない状態で、処理を終了する。
一方、隣接パケット処理部113は、隣接RREPパケットのRSSIは閾値以上の場合には(ステップS352,Yes)、宛先(LD)に、隣接RREPパケットのLSを設定して(ステップS353)、処理を終了する。
図24に示すように、隣接パケット処理部113は、隣接RREPパケットのRSSIは、閾値以上であるか否かを判定する(ステップS361)。隣接パケット処理部113は、閾値未満の場合には(ステップS361,No)、処理を終了する。
隣接パケット処理部113は、閾値以上の場合には(ステップS361,Yes)、FID管理テーブル106のエントリの受信信号強度よりも、隣接RREPパケットの受信信号強度の品質が良いかを判定する(ステップS362)。
隣接パケット処理部113は、隣接RREPパケットの受信信号強度が悪い場合には(ステップS363,No)、処理を終了する。一方、隣接パケット処理部113は、隣接RREPパケットの受信信号強度が良い場合には(ステップS363,Yes)、FID管理テーブル106のGSとRSSIを更新する(ステップS364)。
図14の説明に戻る。送信部114は、データパケット処理部112、隣接パケット処理部113、ハローパケット生成部108から取得する各種のパケットを送信する処理部である。
次に、GW100が、ノード200Mにデータパケットを送信する場合の処理シーケンスについて説明する。但し、GW100のRT104には、ノード200Mの宛先が登録されていないものとする。また、FID管理テーブル106に対応するエントリが登録されていないものとする。この場合には、GW100の各処理部は、下記に示すように、(1−1)〜(1−8)を順に実行する。
(1−1)データパケット処理部112は、宛先処理部109から転送先がない旨の通知を受け、FID管理テーブル106にエントリを作成する。(1−2)データパケット処理部112は、FID生成部111から、FIDを取得する。
(1−3)データパケット処理部113は、FID管理テーブル106にエントリのGS、FIDに、GW100のアドレス、FID生成部111から取得したFIDをそれぞれ登録する。(1−4)データパケット処理部113は、FID管理テーブル106にエントリのパケットデータに、ノード200Mに送信するパケットを登録する。
(1−5)隣接パケット処理部113は、隣接RREQパケットを生成し、ペイロードのGDにノード200Mのアドレスを設定し、FIDに、FID生成部111から取得したFIDを設定する。(1−6)データパケット処理部112は、FID管理テーブル106にエントリの状態を「隣接RREP待ち」に設定する。
(1−7)データパケット処理部112は、図示しない隣接RREP待ちタイマをセットする。(1−8)隣接パケット処理部113は、隣接RREQパケットを送信部114に出力し、かかる隣接RREQパケットが隣接ノードにブロードキャストされる。
続いて、上記(1−8)の処理を実行した後に、ノード200Aから隣接RREPパケットを受信した場合のGW100の処理シーケンスについて説明する。この場合には、GW100の各処理部は、下記のように(2−1)〜(2−6)の処理を順に実行する。
(2−1)隣接パケット処理部113は、隣接RREPパケットのGSとFIDとをキーにして、対応するFID管理テーブル106のエントリを取得する。(2−2)隣接パケット処理部113は、エントリに登録されたデータパケットを取得し、データパケットのLDに、隣接RREPパケットの送信元であるノード200Aのアドレスを設定する。また、隣接パケット処理部113は、データパケットのGSおよびLSに自ノードのアドレスを設定する。また、データパケットのGDに宛先ノードであるノード200Mのアドレスを設定する。そして、隣接パケット処理部113は、データパケットを、データパケット処理部112に出力する。
(2−3)データパケット処理部112は、図示しない隣接RREP待ちタイマをリセットする。(2−4)データパケット処理部112は、FID管理テーブル106のエントリの状態を「ACK待ち」に設定する。
(2−5)データパケット処理部112は、図示しないACK待ちタイマをセットする。(2−6)データパケット処理部112は、データパケットを送信部114に出力する。
この結果、GW100からユニキャストのデータパケットがノード200Aに送信される。データパケットを受信したノード200Aは、自身のRTのエントリに従い、データパケットをノード200Lに転送する。ノード200Lは、自身のRTのエントリに従い、データパケットをノード200Mに転送する。これにより、ノード200Mは、GW100からのデータパケットを受信する。
次に、本実施例2に係るアドホックネットワークの効果について説明する。例えば、GW100は、パケットの宛先が自身のRTに存在しない場合に、該宛先を問い合わせる隣接RREQパケットをブロードキャストする。GW100は、宛先をRTに有するノード200から隣接RREPパケットを受信した場合に、隣接RREPパケットの送信元をデータパケットの転送先とする。このため、フラッディングを行わず、データパケットを宛先に送信することができる。
また、ノード200は、他のノードまたはGW100から隣接RREQパケットを受信し、隣接RREQパケットに設定された宛先が、自ノードのRTに存在する場合には、隣接RREQパケットの送信元のノードに隣接RREPパケットを送信する。このため、自装置のRTに該当する宛先のエントリがある場合に、GW100によるブロードキャストを防止することができる。
次に、その他の実施例について説明する。図25は、その他の実施例を説明するための図である。図7で説明した処理シーケンスでは、GW100が、ノード200Aから隣接RREPパケットを受信した場合について説明した。図25では、ノード200Aおよびノード200Bから隣接RREPパケットを受信した場合について説明する。この場合には、例えば、GW100は、各隣接RREPパケットのうち、受信信号強度の大きい方を採用し、採用した隣接RREPパケットの送信元ノードに、データパケットをユニキャストする。
なお、GW100のRTにノード200Mのエントリ登録が無く、ノード200A,200BのRTにノード200Mのエントリ登録があるものとする。また、ノード200A,200B,200C,200D,200EをGW100の隣接ノードとする。
図25に示すように、サーバ60はノード200M宛のデータをGW100に送信する(ステップS70)。GW100は、ノード200MがRTに存在しない場合に、隣接RREQパケットを生成する(ステップS71)。ステップS71において、GW100は、隣接RREQパケットのペイロード部のGDにノード200Mのアドレスを設定する。
GW100は、隣接RREQパケットを1ホップ(Hop)ブロードキャストする(ステップS72)。ステップS12の1ホップのブロードキャストにより、隣接RREQパケットが、GW100に隣接するノード200A、200B,200C,200D,200E,200Lに送信される。
ノード200C,200D,200E,200Lは、ノード200MがRTに存在しないため、何もしない(ステップS73)。ノード200Bは、ノード200MがRTに存在するため、隣接RREPパケットを生成する(ステップS74)。ノード200Bは、隣接RREPパケットをGW100に送信する(ステップS75)。ステップS75において、ノード200Bは、隣接RREPパケットを送信した後に、タイマを起動させる。
ノード200Aは、ノード200MがRTに存在するため、隣接RREPパケットを生成する(ステップS76)。ノード200Aは、隣接RREPパケットをGW100に送信する(ステップS77)。ステップS77において、ノード200Aは、隣接RREPパケットを送信した後に、タイマを起動させる。
GW100は、ユニキャストのデータパケットを生成し、データパケットのGDにノード200Mのアドレスを設定し、LDにノード200Aのアドレスを設定する(ステップS78)。ステップS78において、GW100は、ノード200Aから受信した隣接RREPパケットの受信信号強度と、ノード200Bから受信した隣接RREPパケットの受信信号強度とを比較する。例えば、GW100は、ノード200Aから受信した隣接RREPパケットの受信信号強度の方が大きい場合に、LDにノード200Aのアドレスを設定する。
GW100は、データパケットをノード200Aにユニキャストする(ステップS79)。ノード200Aは、GW100から受信したデータパケットをノード200Lに転送する(ステップS80)。ステップS80において、ノード200Aは、データパケットのGDにノード200Mのアドレスを設定し、LDにノード200Lのアドレスを設定する。また、ノード200Aは、起動したタイマを停止する。
ノード200Lは、ノード200Aから転送されたデータパケットをノード200Mに転送する(ステップS81)。ステップS81において、ノード200Lは、データパケットのGDにノード200Mのアドレスを設定し、LDにノード200Mのアドレスを設定する。そして、ノード200Mは、データパケットを、ノード200A,200Lを介して受信する(ステップS82)。
なお、ノード200Bは、タイマ満了し、タイムアウトする。この場合に、ノード200Bは、ノード200Mのエントリを、ノード200BのRTから削除する(ステップS83)。なお、ノード200Bは、ノード200Mのエントリを削除する代わりに、RTのエントリの入れ替えが発生した場合に、優先して削除可能なエントリとして設定しても良い。
このように、GW100は、複数の隣接ノードから隣接RREPパケットを受信した場合には、受信信号強度が最大となる隣接RREPパケットの送信元ノードを転送先に設定してパケットを送信する。このため、GW100は、通信品質のより良い経路を利用して、パケットを宛先に送信することができる。
次に、上記の実施例に示したGW100またはノード200と同様の機能を実現する送信プログラムを実行するコンピュータの一例を説明する。図26は、送信プログラムを実行するコンピュータの一例を示す図である。
図26に示すように、コンピュータ300は、各種演算処理を実行するCPU301と、ユーザからのデータの入力を受け付ける入力装置302と、ディスプレイ303を有する。また、コンピュータ300は、記憶媒体からプログラム等を読取る読み取り装置304と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインタフェース装置305とを有する。また、コンピュータ300は、各種情報を一時記憶するRAM306と、ハードディスク装置307を有する。そして、各装置301〜307は、バス308に接続される。
ハードディスク装置307は、例えば、経路要求パケット送信プログラム307a、送信制御プログラム307b、応答プログラム307cを有する。CPU301は、各プログラム307a〜307cを読み出してRAM306に展開する。
経路要求パケット送信プログラム307aは、経路要求パケット送信プロセス306aとして機能する。送信制御プログラム307bは、送信制御プロセス306bとして機能する。応答プログラム307cは、応答プロセス306cとして機能する。
例えば、経路要求パケット送信プロセス306aは、経路要求パケット送信部82、隣接パケット処理部113等に対応する。送信制御プロセス306bは、送信制御部82、隣接パケット処理部113等に対応する。応答プロセス306cは、隣接パケット処理部113等に対応する。
なお、各プログラム307a〜307cについては、必ずしも最初からハードディスク装置307に記憶させておかなくてもよい。例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ200がこれらから各プログラム307a〜307bを読み出して実行するようにしてもよい。
ところで、本実施例2で説明した隣接パケット処理部113は、経路要求パケット送信部、送信制御部、応答部の一例である。隣接パケット処理部113を、経路要求パケット送信部、送信制御部、応答部によって構成しても良い。
80 ネットワーク装置
81 ルーティングテーブル
82 経路要求パケット送信部
83 送信制御部

Claims (4)

  1. アドホックネットワークに含まれる宛先情報が設定された自ネットワーク装置のルーティングテーブルに、パケットの宛先情報が存在しない場合に、前記パケットの宛先情報を設定した経路要求パケットを隣接ノードにブロードキャストする経路要求パケット送信部と、
    前記経路要求パケットに対応する経路応答パケットを他のノードから受信した場合に、前記経路応答パケットの送信元ノードを転送先に設定して前記パケットを送信し、
    前記経路応答パケットを受信しない場合には、前記パケットの宛先情報を設定したパケットをフラッディングにより送信する送信制御部と
    を有することを特徴とするネットワーク装置。
  2. 前記アドホックネットワークに含まれる他のノードから経路要求パケットを受信し、該経路要求パケットに設定された宛先情報が、自ネットワーク装置のルーティングテーブルに存在する場合には、経路要求パケットの送信元のノードに経路応答パケットを送信し、
    経路要求パケットに設定されたパケットの宛先情報が、自ネットワーク装置のルーティングテーブルに存在しない場合には、経路応答パケットの送信を行わない応答部を更に有することを特徴とする請求項1に記載のネットワーク装置。
  3. 前記送信制御部は、複数の隣接ノードから経路応答パケットを受信した場合には、受信信号強度が最大となる経路応答パケットの送信元ノードを転送先に設定して前記パケットを送信することを特徴とする請求項1または2に記載のネットワーク装置。
  4. コンピュータに、
    アドホックネットワークに含まれる宛先情報が設定された自ネットワーク装置のルーティングテーブルに、パケットの宛先情報が存在しない場合に、前記パケットの宛先情報を設定した経路要求パケットを隣接ノードにブロードキャストし、
    前記経路要求パケットに対応する経路応答パケットを他のノードから受信した場合に、前記経路応答パケットの送信元ノードを転送先に設定して前記パケットを送信し、
    前記経路応答パケットを受信しない場合には、前記パケットの宛先情報を設定したパケットをフラッディングにより送信する
    各処理を実行させることを特徴とする送信プログラム。
JP2014545473A 2012-11-06 2012-11-06 ネットワーク装置および送信プログラム Active JP5884919B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/078754 WO2014073040A1 (ja) 2012-11-06 2012-11-06 ネットワーク装置および送信プログラム

Publications (2)

Publication Number Publication Date
JP5884919B2 true JP5884919B2 (ja) 2016-03-15
JPWO2014073040A1 JPWO2014073040A1 (ja) 2016-09-08

Family

ID=50684178

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014545473A Active JP5884919B2 (ja) 2012-11-06 2012-11-06 ネットワーク装置および送信プログラム

Country Status (4)

Country Link
US (1) US20150215199A1 (ja)
JP (1) JP5884919B2 (ja)
CN (1) CN104737589A (ja)
WO (1) WO2014073040A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6149597B2 (ja) * 2013-08-14 2017-06-21 富士通株式会社 ノード装置、データ中継方法、及び、プログラム
CN107171883B (zh) 2016-03-08 2020-04-28 华为技术有限公司 检测转发表的方法、装置和设备
JP6665793B2 (ja) * 2017-01-17 2020-03-13 京セラドキュメントソリューションズ株式会社 アドホックネットワーク経路構築システム、ノード、センターノード及びアドホックネットワーク経路構築方法
CN114079994A (zh) * 2020-08-11 2022-02-22 东芝泰格有限公司 通信系统、通信装置和通信方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004336799A (ja) * 2003-05-09 2004-11-25 Samsung Electronics Co Ltd アドホックネットワークにおけるツリー構造を利用したルーティング経路設定方法およびルーティング経路設定装置
JP2005260299A (ja) * 2004-03-09 2005-09-22 Thinktube Ltd 移動通信装置及び移動通信プログラム
JP2012015679A (ja) * 2010-06-30 2012-01-19 Fujitsu Ltd 伝送システム、伝送装置、宛先管理装置、制御ユニット、伝送制御プログラム及び同プログラムを記録したコンピュータ読み取り可能な記録媒体

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7433691B1 (en) * 2002-03-25 2008-10-07 Meshnetworks, Inc. System and method for enabling an access point in an ad-hoc wireless network with fixed wireless routers and wide area network (WAN) access points to identify the location of subscriber device
US7539191B1 (en) * 2002-12-12 2009-05-26 Packet Design, Inc. System and method for securing route processors against attack
US7295533B2 (en) * 2004-03-08 2007-11-13 Lucent Technologies Inc. Method for location tracking using vicinities
US7848278B2 (en) * 2006-10-23 2010-12-07 Telcordia Technologies, Inc. Roadside network unit and method of organizing, managing and maintaining local network using local peer groups as network groups
CN100512226C (zh) * 2006-12-07 2009-07-08 中国科学院计算技术研究所 在传感器网络中形成精细汇聚梯度的方法
CN101022457B (zh) * 2007-03-12 2012-01-04 北京交通大学 无线多跳网络音频、数据传输节点设备
US7916666B2 (en) * 2007-04-03 2011-03-29 Itt Manufacturing Enterprises, Inc. Reliable broadcast protocol and apparatus for sensor networks
US8320302B2 (en) * 2007-04-20 2012-11-27 Elster Electricity, Llc Over the air microcontroller flash memory updates
JP4888598B2 (ja) * 2008-04-25 2012-02-29 富士通株式会社 ノード装置及びプログラム
CN101335701B (zh) * 2008-07-10 2011-03-16 华南理工大学 一种多跳无线自组织网络的按需路由动态维护方法
US8699377B2 (en) * 2008-09-04 2014-04-15 Trilliant Networks, Inc. System and method for implementing mesh network communications using a mesh network protocol
KR101552932B1 (ko) * 2008-10-09 2015-09-14 엘지전자 주식회사 네트워크를 통한 통신 방법 및 그 단말기
CN201682587U (zh) * 2010-05-26 2010-12-22 上海安杰瑞电子科技发展有限公司 一种高清视频网络延伸的移动系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004336799A (ja) * 2003-05-09 2004-11-25 Samsung Electronics Co Ltd アドホックネットワークにおけるツリー構造を利用したルーティング経路設定方法およびルーティング経路設定装置
JP2005260299A (ja) * 2004-03-09 2005-09-22 Thinktube Ltd 移動通信装置及び移動通信プログラム
JP2012015679A (ja) * 2010-06-30 2012-01-19 Fujitsu Ltd 伝送システム、伝送装置、宛先管理装置、制御ユニット、伝送制御プログラム及び同プログラムを記録したコンピュータ読み取り可能な記録媒体

Also Published As

Publication number Publication date
WO2014073040A1 (ja) 2014-05-15
US20150215199A1 (en) 2015-07-30
CN104737589A (zh) 2015-06-24
JPWO2014073040A1 (ja) 2016-09-08

Similar Documents

Publication Publication Date Title
Belding‐Royer Hierarchical routing in ad hoc mobile networks
Gupta et al. An adaptive protocol for reliable multicast in mobile multi-hop radio networks
KR100513282B1 (ko) 에드 혹 네트워크에서의 패스 엠티유를 이용하여 데이터를 송신하는 데이터 송신 노드 및 송신 방법
Song et al. Content centric peer data sharing in pervasive edge computing environments
Alshanyour et al. Bypass AODV: improving performance of ad hoc on-demand distance vector (AODV) routing protocol in wireless ad hoc networks
US20050169238A1 (en) Obtaining routing information
WO2017133230A1 (zh) 一种传输路径的更新方法、终端和系统
US8774130B2 (en) Access point, L2 switch and method of supporting multicast handover using the access point and L2 switch
JP5884919B2 (ja) ネットワーク装置および送信プログラム
Khan et al. An algorithmic approach for core election in mobile ad-hoc network
Sra et al. QoS in mobile ad-hoc networks
Chowdhury et al. Leveraging content connectivity and location awareness for adaptive forwarding in NDN-based mobile ad hoc networks
US10609620B1 (en) Multi-hop power management in a wireless mesh network
US11070467B1 (en) Expedited route recovery and load balancing in a multi-radio mesh network
CN112449311B (zh) 通信方法、设备及系统
JP2007524258A (ja) モバイルピアツーピアネットワーク構築
Chavan et al. Design and implementation of event-based multicast AODV routing protocol for ubiquitous network
US11723101B1 (en) Mobile ad-hoc network data concurrency
Al-Nahari et al. Receiver-based ad hoc on demand multipath routing protocol for mobile ad hoc networks
Shams Shafigh et al. Developing a fuzzy logic based on demand multicast routing protocol
Sahu et al. Quality of service based multicasting routing protocols for MANETs: a survey
US20100054195A1 (en) Efficient Deallocation of Network Resources Based on Network Node Location Extrapolation
WO2022067538A1 (zh) 网元发现方法、装置、设备及存储介质
Bhargavi et al. A hybrid secure routing scheme for MANETS
Wang et al. A distributed data caching framework for mobile ad hoc networks

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151210

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160125

R150 Certificate of patent or registration of utility model

Ref document number: 5884919

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150