(57)【要約】  通信システムは、情報処理装置と中継装置を備える。中継装置は、情報処理装置宛のデータを含むパケットの転送先である転送先装置を識別する情報を記憶し、転送先装置を含む第１のネットワークと第２のネットワークの間の通信を中継する。中継装置は、生成部と送信部を備える。生成部は、第２のネットワーク中の送信元から、情報処理装置宛のデータを含む第１のデータパケットを受信すると、中継装置が送信元を第２のネットワークに含まれる装置から特定する際に用いる装置索引値を生成する。送信部は、第１のデータパケットに装置索引値と第２のネットワークを識別するネットワーク索引値とを付加した第２のデータパケットを、転送先装置に送信する。
2015151184.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置と、
前記情報処理装置宛のデータを含むパケットの転送先である転送先装置を識別する情報を記憶し、前記転送先装置を含む第１のネットワークと第２のネットワークの間の通信を中継する中継装置を備え、
前記中継装置は、
前記第２のネットワーク中の送信元から、前記情報処理装置宛のデータを含む第１のデータパケットを受信すると、前記中継装置が前記送信元を前記第２のネットワークに含まれる装置から特定する際に用いる装置索引値を生成する生成部と、
前記第１のデータパケットに前記装置索引値と前記第２のネットワークを識別するネットワーク索引値とを付加した第２のデータパケットを、前記転送先装置に送信する送信部
を備えることを特徴とする通信システム。
【請求項２】
前記情報処理装置を前記転送先装置として記憶する第１の中継装置は、第２の中継装置から受信した第３のデータパケットに、前記第２の中継装置の特定に用いる第２の装置索引値と第２のネットワーク索引値との組み合わせを付した第４のデータパケットを、前記情報処理装置に転送する転送部を備え、
前記情報処理装置は、
前記第４のデータパケットを受信する受信部と、
前記第１の中継装置を前記情報処理装置を含むネットワーク中で識別する際に用いる第１の装置索引値、前記情報処理装置を含むネットワークを識別する第１のネットワーク索引値、および、前記組み合わせを、前記情報処理装置から前記受信パケット中のデータを生成した通信装置に至る経路の情報として記憶する記憶部
を備えることを特徴とする請求項１に記載の通信システム。
【請求項３】
前記情報処理装置は、
前記第３のデータパケット中のデータを生成した通信装置に宛てて送信する送信データを含む送信パケットの転送先を、前記第１の装置索引値と前記第１のネットワーク索引値とを用いて、前記第１の中継装置に決定する第１の決定部と、
前記送信データと前記組み合わせを含めた第１の送信パケットを生成する生成部
を備え、
前記第１の中継装置は、
前記第１の送信パケットを受信すると、前記組み合わせ中の前記第２のネットワーク索引値を用いて、前記第１の送信パケットから前記組み合わせを削除した第２の送信パケットの転送先のネットワークを決定する第２の決定部と
前記第２の装置索引値を用いて、前記第２の中継装置を、前記第２の送信パケットの転送先として特定する特定部を備え、
前記送信部は、前記第２の送信パケットを前記第２の中継装置に向けて送信する
ことを特徴とする請求項２に記載の通信システム。
【請求項４】
前記情報処理装置と前記第１の中継装置の間の通信は第１のプロトコルを用いて行われ、前記第１の中継装置と前記第２の中継装置の間の通信は第２のプロトコルを用いて行われる場合に、前記第１の送信パケットは、前記組み合わせ、前記送信データ、前記第１のプロトコルに対応した第１のヘッダを含み、
前記第２の決定部は、前記組み合わせ中の前記第２のネットワーク索引値を用いて、前記送信データの転送に前記第２のプロトコルに対応した第２のヘッダを用いることを決定し、
前記特定部は、前記第２の装置索引値を用いて、前記第２のヘッダ中の宛先を前記第２の中継装置に特定し
前記第２の送信パケットは、前記第２のヘッダを用いて前記第２の中継装置に送信される
ことを特徴とする請求項３に記載の通信システム。
【請求項５】
前記第１の中継装置が備える前記生成部は、前記第２の装置索引値のビット長が、前記第２の中継装置のアドレスのビット長より短くなるように、前記第２の装置索引値を生成する
ことを特徴とする請求項２〜４のいずれか１項に記載の通信システム。
【請求項６】
複数のネットワークの間の通信を中継する中継装置であって、
情報処理装置宛のデータを含むパケットの転送先である転送先装置を識別する情報を記憶する記憶部と、
前記転送先装置を含む第１のネットワークとは異なる第２のネットワーク中の送信元から、前記情報処理装置宛のデータを含む第１のデータパケットを受信すると、前記中継装置が前記送信元を前記第２のネットワークに含まれる装置から特定する際に用いる装置索引値を生成するとともに、前記装置索引値を前記第１のデータパケットに付加する付加部と、
前記装置索引値を付加した前記第１のデータパケットに、前記第２のネットワークを識別するネットワーク索引値を付加した第２のデータパケットを、前記転送先装置に送信する送受信部
を備えることを特徴とする中継装置。
【請求項７】
前記送受信部は、前記情報処理装置が前記第１のデータパケット中のデータを生成した通信装置に宛てて送信する送信データ、前記装置索引値、前記ネットワーク索引値を含む第１の送信パケットを受信し、
前記中継装置は、
前記ネットワーク索引値を用いて、前記装置索引値と前記ネットワーク索引値とを前記第１の送信パケットから削除した第２の送信パケットを転送するネットワークを、前記第２のネットワークに決定する決定部と、
前記装置索引値を用いて、前記第２の送信パケットの宛先を前記送信元に特定する特定部
を備えることを特徴とする請求項６に記載の中継装置。
【請求項８】
前記第１のネットワーク中の通信は第１のプロトコルを用いて行われ、前記第２のネットワーク中の通信は第２のプロトコルを用いて行われる場合、前記第１の送信パケットは、前記装置索引値、前記ネットワーク索引値、前記送信データ、および、前記第１のプロトコルに対応した第１のヘッダを含み、
前記決定部は、前記ネットワーク索引値を用いて、前記送信データの転送に前記第２のプロトコルに対応した第２のヘッダを用いることを決定し、
前記特定部は、前記装置索引値を用いて、前記第２のヘッダ中の宛先が前記送信元であることを特定する
ことを特徴とする請求項７に記載の中継装置。
【請求項９】
前記付加部は、前記装置索引値のビット長が、前記送信元に割り当てられたアドレスのビット長より短くなるように、前記装置索引値を生成する
ことを特徴とする請求項６〜８のいずれか１項に記載の中継装置。
【請求項１０】
複数のネットワークの間の通信を中継する中継装置に、
情報処理装置宛のデータを含むパケットの転送先である転送先装置を含む第１のネットワークとは異なる前記第２のネットワーク中の送信元から、前記情報処理装置宛のデータを含む第１のデータパケットを受信し、
前記中継装置が前記送信元を前記第２のネットワークに含まれる装置から特定する際に用いる装置索引値を生成し、
前記第１のデータパケットに、前記装置索引値と前記第２のネットワークを識別するネットワーク索引値とを付加した第２のデータパケットを、前記転送先装置に送信する
処理を行わせることを特徴とする通信プログラム。
【請求項１１】
前記情報処理装置が前記第１のデータパケット中のデータを生成した通信装置に宛てて送信する送信データ、前記装置索引値、前記ネットワーク索引値を含む第１の送信パケットを受信し、
前記ネットワーク索引値を用いて、前記装置索引値と前記ネットワーク索引値とを前記第１の送信パケットから削除した第２の送信パケットを転送するネットワークを、前記第２のネットワークに決定し、
前記装置索引値を用いて、前記第２の送信パケットの転送先を特定する
処理を前記中継装置に行わせることを特徴とする請求項１０に記載の通信プログラム。
【請求項１２】
複数のネットワークの間の通信を中継する中継装置が、
情報処理装置宛のデータを含むパケットの転送先である転送先装置を含む第１のネットワークとは異なる前記第２のネットワーク中の送信元から、前記情報処理装置宛のデータを含む第１のデータパケットを受信し、
前記中継装置が前記送信元を前記第２のネットワークに含まれる装置から特定する際に用いる装置索引値を生成し、
前記第１のデータパケットに、前記装置索引値と前記第２のネットワークを識別するネットワーク索引値とを付加した第２のデータパケットを、前記転送先装置に送信する
処理を行うことを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システムに関する。
【背景技術】
【０００２】
複数のネットワークを含むシステムにおいて、ネットワークで使用されるプロトコルが互いに異なる場合がある。図１に示すセンサネットワークシステムには、センサを搭載した通信装置（センサノード）のネットワークと、センサから得られたデータを処理するサーバを有するネットワークが含まれる。図１の例では、センサネットワークでアドホックネットワーク用のルーティングプロトコルが使用され、サーバを含むネットワークではInternet Protocol（ＩＰ）が使用されている。図１に示すセンサノードがサーバにパケットを送信する場合、センサノードは、アドホックネットワーク用のルーティングプロトコルを用いてゲートウェイ（ＧＷ）宛てのパケットを生成する。センサノードが生成するパケットのペイロードには、サーバ宛てのデータと、最終的な宛先がサーバであることを示す情報が含まれている。ゲートウェイは、受信したパケットのペイロードを読み込むことにより、最終的な宛先がＩＰネットワーク中のサーバであることを認識する。するとゲートウェイは、サーバ宛てのデータをペイロードに含むパケットを生成し、生成したパケットをＩＰプロトコルにより、サーバに送信する。ゲートウェイから変換後のパケットが送信されることにより、サーバは、センサノードからのデータを受信する。ここで、センサノードに搭載されているアプリケーションでは、サーバ宛のデータの宛先としてゲートウェイを指定するように設定される。逆にサーバからセンサノードにデータを送信するときも、サーバのアプリケーションでは、センサノード宛のデータの宛先としてゲートウェイを指定するように設定されることになる。また、ゲートウェイでは、データを解析して、データの宛先がゲートウェイ以外の装置であるかを判定することになる。このため、図１に示すシステムで使用するアプリケーションを開発する場合、センサノード、ゲートウェイ、サーバのそれぞれで異なる設定が行われる。なお、図１の例では、アドホックネットワークとＩＰネットワークがゲートウェイを介して接続されている場合を例として説明したが、パケットの送信経路に含まれるネットワークの数は任意である。【０００３】
そこで、送信装置が自ノードから宛先ノードに至るまでに経由する全てのノードのアドレスを含む経路情報を送信パケット中に含め、各中継ノードが経路情報を用いて送信先を特定しながら転送するシステムが提案されている（例えば、特許文献１）。さらに、関連する技術としてマルチホップ通信を行うネットワーク中で、過去に送信したパケットの宛先、または、中継経路情報を送信した送信元を履歴として格納する無線通信装置も考案されている。この無線通信装置は、送信するパケットの宛先に対する送信履歴がある場合、パケットの宛先と履歴とを用いて中継処理を行うことを示す情報をパケットに付与して中継処理を行う（例えば、特許文献２）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１５７７５２号公報
【特許文献２】特開２０１１−０５５０７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
他のネットワーク中の装置にパケットを送信しようとする装置が最終的な宛先までの経路に含まれている装置のアドレスをパケットに含めて送信するシステムでは、経由するノードの数が膨大になると、経路情報の大きさが大きくなってしまう。このため、経路の長さによって、１つのパケットで送信できるデータが制限されてしまう。また、送信履歴を使用する方式は、同一のネットワーク中での転送処理での送信履歴を用いており、プロトコルが異なるネットワーク間での中継処理には適用できない。【０００６】
本発明は、１つの側面として、パケットに含まれる経路情報のデータ量を削減することを目的とする。
【課題を解決するための手段】
【０００７】
１つの態様では、通信システムは、情報処理装置と中継装置を備える。中継装置は、情報処理装置宛のデータを含むパケットの転送先である転送先装置を識別する情報を記憶し、転送先装置を含む第１のネットワークと第２のネットワークの間の通信を中継する。中継装置は、生成部と送信部を備える。生成部は、第２のネットワーク中の送信元から、情報処理装置宛のデータを含む第１のデータパケットを受信すると、中継装置が送信元を第２のネットワークに含まれる装置から特定する際に用いる装置索引値を生成する。送信部は、第１のデータパケットに装置索引値と第２のネットワークを識別するネットワーク索引値とを付加した第２のデータパケットを、転送先装置に送信する。
【発明の効果】
【０００８】
１つの側面として、パケットに含まれる経路情報のデータ量を削減することができる。
【図面の簡単な説明】
【０００９】
【図１】センサネットワークシステムの例を示す図である。
【図２】実施形態に係る通信システムの例を示す図である。
【図３】中継装置の構成の例を示す図である。
【図４】ハードウェア構成の例を示す図である。
【図５】パケットのフォーマットの例を示す図である。
【図６】振り分けテーブルの例を示す図である。
【図７】転送先テーブルと振り分けテーブルの対応例を示す図である。
【図８】サーバ宛のパケットの転送処理の例を説明する図である。
【図９】転送先テーブルの更新方法の例を説明する図である。
【図１０】転送先テーブルの更新方法の例を説明する図である。
【図１１】転送情報の記憶方法の例を示す図である。
【図１２】サーバから送信されたパケットの転送処理の例を説明する図である。
【図１３】転送情報処理部の処理の例を説明するフローチャートである。
【図１４】ディスパッチャでの処理の例を説明するフローチャートである。
【図１５】受信パケット中のデータを転送するときの処理の例を説明するフローチャートである。
【図１６】３つの異なるプロトコルを用いたシステムの具体例を示す図である。
【図１７】パケットのフォーマットの変換例を示す図である。
【図１８】パケットのフォーマットの変換例を示す図である。
【発明を実施するための形態】
【００１０】
図２は、実施形態に係る通信システムの例を示す。図２の例では、システム中に、ネットワークＮＥ１、ネットワークＮＥ２、ネットワークＮＥ３の３つのネットワークが含まれている。図２の例では、ネットワークＮＥ１の索引値がＡであり、ネットワークＮＥ２の索引値がＢ、ネットワークＮＥ３の索引値がＣであるものとする。以下、ネットワークに割り当てられた索引値を、「ネットワーク索引値」と記載することがあるものとする。なお、ネットワーク索引値は、ネットワークの識別子よりも少ないビット数で表せるように設定されている。ネットワークＮＥ１、ネットワークＮＥ２、ネットワークＮＥ３の各々で使用されているプロトコルは互いに異なっている。以下の説明では、ネットワークＮＥ１ではプロトコルα、ネットワークＮＥ２ではプロトコルβ、ネットワークＮＥ３ではプロトコルγがルーティングに使用されているものとする。また、ネットワークＮＥ１には、サーバ（情報処理装置）が含まれているものとする。
【００１１】
図２では、各ネットワーク中に含まれている通信装置の一部を示しており、各通信装置には、その通信装置を一意に特定するための識別子が付されている。例えば、識別子として、アドレスが使用される。図２では、分かりやすくするために「Ｎ」というアルファベットと数字の組合せを用いて、通信装置の識別子を表わす。さらに、読みやすくするために、その識別子が割り当てられた装置自身を指す場合は、識別子の前に「ノード」という文字列を付すものとする。例えば、「Ｎ９」は、Ｎ９という識別子を指し、「ノードＮ９」は「Ｎ９」という識別子が割り当てられた通信装置を指すものとする。
【００１２】
システム中の通信装置は、１つ以上のネットワークに属している。通信装置のうち、プロトコルが異なるネットワーク間を中継している装置を、中継装置と記載することがある。例えば、ノードＮ９は、ネットワークＮＥ１とネットワークＮＥ２の両方に属しており、ネットワークＮＥ１とネットワークＮＥ２の間のゲートウェイとして動作するため、中継装置である。同様に、ノードＮ５は、ネットワークＮＥ２とネットワークＮＥ３の両方に属しているので、ネットワークＮＥ２とネットワークＮＥ３の間のゲートウェイとして動作する。
【００１３】
ゲートウェイとして動作する通信装置（中継装置）は、サーバ宛のデータを含むパケットの転送先の装置（転送先装置）を識別する情報を保持している。図２の例では、ノードＮ５にとっての転送先装置はノードＮ９であり、ノードＮ９にとっての転送先装置はサーバである。中継装置以外の各通信装置は、サーバ宛の情報を同じネットワークに属している中継装置に送信する。以下、ノードＮ３がサーバ宛のパケットを送信する場合を例として説明する。
【００１４】
（ａ１）ノードＮ３は、ネットワークＮＥ３に属しているので、サーバ宛のパケットを、ノードＮ５に送信する。ノードＮ３がノードＮ５に送信するパケットの例をパケットＰ３に示す。パケットＰ３には、プロトコルγを用いたヘッダとペイロードが含まれる。ペイロード中には、データの生成を行った通信装置がノードＮ３であることと、サーバ宛のパケットであることを示す情報が含まれているものとする。
【００１５】
（ａ２）ノードＮ５は、サーバ宛のパケットＰ３を受信すると、ペイロード中の情報から、サーバ宛のデータが含まれていると判定する。すると、ノードＮ５は、パケットＰ３の送信元であるノードＮ３に対して、ノードＮ５がネットワークＮＥ３中の装置の中からノードＮ３を識別するために使用する索引値を割り当てる。以下、中継装置がサーバ宛のパケットの送信元に割り当てる索引値を、「装置索引値」と記載することがある。なお、装置索引値は、送信元の通信装置をその通信装置が属するネットワーク中で識別できるように割り当てられるので、送信元の通信装置に割り当てられているアドレスよりも短いビット数で表されるものとする。図２の例では、ノードＮ５はノードＮ３に対してｃという装置索引値を割り当てたものとする。
【００１６】
（ａ３）ノードＮ５は、パケットＰ３に含まれているペイロードに、パケットＰ３の送信元であるノードＮ３の装置索引値ｃと、ネットワークＮＥ３のネットワーク索引値Ｃを含める。さらに、ノードＮ５にとっての転送先装置であるノードＮ９にパケットを転送するためのヘッダをペイロードに付加することにより、パケットＰ２を生成する。ノードＮ５は、パケットＰ２をノードＮ９に送信する。
【００１７】
（ａ４）ノードＮ９は、パケットＰ２を受信すると、ペイロード中の情報から、サーバ宛のデータが含まれていると判定する。ノードＮ９にとっては、ネットワークＮＥ２中の装置でサーバ宛のパケットを送信してきた装置はノードＮ５である。そこで、手順（ａ２）で説明した処理と同様の処理により、ノードＮ５に装置索引値を割り当てる。以下、ノードＮ５に割り当てられた装置索引値をｂとする。
【００１８】
（ａ５）ノードＮ９は、パケットＰ２に含まれているペイロードに、パケットＰ２の送信元であるノードＮ５の装置索引値ｂと、ネットワークＮＥ２のネットワーク索引値Ｂを含める。ノードＮ９にとっての転送先装置はサーバであるので、サーバにパケットを転送するためのヘッダを処理後のペイロードに付加することにより、パケットＰ１を生成する。ノードＮ９は、パケットＰ１をサーバに送信する。
【００１９】
（ａ６）サーバがパケットＰ１を受信すると、同様に、ネットワークＮＥ１中で、ノードＮ９に装置索引値を割り当てる。図２の例では、ノードＮ９の装置索引値はａであるものとする。サーバは、受信したパケットのペイロード中の索引値の組み合わせと、パケットをサーバに送信してきた中継装置を特定するための情報を、パケット中のデータを生成した通信装置にパケットを送信する際の転送に使用する情報（転送情報）として記憶する。図２の例では、サーバは、パケットＰ１のペイロード中の索引値の組み合わせ、ノードＮ９の装置索引値ａ、および、ネットワークＮＥ１のネットワーク索引値Ａを、ノードＮ３にパケットを送信する際の転送情報として記憶する。転送情報は、テーブルＴ１に示すように、サーバからのパケットの宛先となる通信装置の識別子に対応付けて記憶される。なお、通信装置の識別子は、手順（ａ１）で通信装置がペイロードに含めた情報である。図２の例では、ノードＮ３宛てのパケットの転送に使用する転送情報として、先頭から、ｃ、Ｃ、ｂ、Ｂ、ａ、Ａの順に６つの情報が含まれる。
【００２０】
（ａ７）次に、転送情報の使用方法について説明する。サーバは、ノードＮ３にパケットを送信するとき、テーブルＴ１に保持している転送情報を用いて、パケットの宛先を決定できる。例えば、サーバは、転送情報の末尾から２つの情報ａとＡを用いて、ノードＮ３宛てのデータを含むパケットの転送先をノードＮ９に決定できる。また、サーバが転送情報をノードＮ３宛てのデータと共にペイロード中に含め、サーバ自身が使用した索引値の組み合わせを削除すると、ノードＮ９には、転送情報として、ｃ、Ｃ、ｂ、Ｂを含むパケットが送信される。ノードＮ９は、ペイロード中の転送情報の末尾から、装置索引値＝ｂ、ネットワーク索引値Ｂを得るので、パケットの転送先をノードＮ５に決定できる。このため、ノードＮ９は、ノードＮ９が使用した索引値をペイロードから削除した後、プロトコルβに対応したヘッダを用いてノードＮ５宛てにパケットを転送する。ノードＮ５は、受信したパケット中の転送情報が、装置索引値＝ｃ、ネットワーク索引値Ｃであることから、パケットの転送先をノードＮ３に決定する。ノードＮ５は、ノードＮ５が使用した索引値を削除した後のペイロードにプロトコルγに対応したヘッダを付してノードＮ３に送信する。
【００２１】
このように、中継装置は、パケット中に含まれているデータの送信元を、中継装置自身が属するネットワーク中で識別するための索引値を用いて特定できるようにする。また、装置索引値やネットワーク索引値を表わすために使用されるビット数は、中継装置等のアドレスを記載するために使用するビット数よりも小さい。このため、転送回数が増えても、アドレスを用いて転送先が指定される場合に比べて、転送情報が大きくなりにくく、パケット中に含められるデータの量が制限される恐れがない。従って、実施形態に係るシステムでは、プロトコルの異なるネットワーク間の通信であっても、効率的にデータが送受信できる。なお、少なくとも１つのネットワークにおいてネットワーク中の装置に装置索引値が設定されていれば、経路中の全ての中継装置のアドレスが指定される場合に比べて、経路の情報の通知に使用されるビット数は小さくなる。このため、中継装置に搭載されているメモリの容量や中継装置の処理能力に合わせて、経路中の一部のネットワークでは装置索引値を中継装置のアドレスと同じ値にしても良い。装置索引値がアドレスと同じ値に設定されたネットワークにおいては、装置索引値と装置のアドレスを対応付ける情報が作成されないので、中継装置に搭載されているメモリが少なくてすむ。
【００２２】
さらに、このシステムでは、サーバ側の装置から転送先のネットワークが通知されるため、各中継装置は、転送処理に使用するプロトコルの情報をネットワークごとに管理できる。つまり、中継装置は、転送先ごとに転送処理に使用するプロトコルや転送先を記憶しないので、転送処理に際して中継装置が保持する情報量も少なくてすむ。なお、隣接するネットワーク間でプロトコルが異ならない場合においても、実施形態にかかる通信システムが適用され得る。
【００２３】
＜装置構成＞
図３は、中継装置１０の構成の例を示す。図３の例では、プロトコルが異なる２つのネットワークを中継している中継装置１０の場合を示しているが、中継装置１０は任意の数のネットワークを中継することができる。
【００２４】
中継装置１０は、送受信部１１（１１ａ、１１ｂ）、パケット処理部２０、転送情報処理部４０（４０ａ、４０ｂ）、ディスパッチャ５０、記憶部６０、アプリケーション処理部７０を備える。パケット処理部２０は、転送処理部２１（２１ａ、２１ｂ）とルーティングテーブル２２（２２ａ、２２ｂ）を有する。転送情報処理部４０は、転送先特定部４１と送信元付加部４２を有する。ディスパッチャ５０は、転送元情報付加部５１と決定部５２を有する。記憶部６０は、振り分けテーブル６１、転送先テーブル６２（６２ａ、６２ｂ）を備える。
【００２５】
送受信部１１は、他の通信装置や中継装置１０との間でパケットを送受信する。ここで、送受信部１１ａがパケットを送受信する装置が属するネットワークは、送受信部１１ｂがパケットを送受信する装置の属するネットワークとは異なる。以下、送受信部１１ａを介して中継装置１０が通信する装置を含むネットワークをネットワークＡ、送受信部１１ｂを介して通信する装置を含むネットワークをネットワークＢとする。送受信部１１ａは、ネットワークＡ中の装置から受信したパケットを転送処理部２１ａに出力し、転送処理部２１ａから入力されたパケットを他の装置に送信する。同様に、送受信部１１ｂは、ネットワークＢ中の装置から受信したパケットを転送処理部２１ｂに出力し、転送処理部２１ｂから入力されたパケットを他の装置に送信する。
【００２６】
転送処理部２１ａは、送受信部１１ａから入力されたパケット中のペイロードと、ヘッダ中の送信元アドレスを送信元付加部４２ａに出力する。なお、以下の説明において、ヘッダは、ネットワーク層のヘッダを指すものとする。また、転送処理部２１ａは、転送先特定部４１ａから入力されたデータを含むパケットの転送先を、ルーティングテーブル２２ａを用いて特定する。ルーティングテーブル２２ａには、ネットワークＡに含まれている装置に関する経路情報が保持されている。転送処理部２１ｂも転送処理部２１ａと同様の処理を、送受信部１１ｂ、転送先特定部４１ｂ、送信元付加部４２ｂとの間で行う。また、ルーティングテーブル２２ｂには、ネットワークＢ中の装置への経路情報が含まれており、転送処理部２１ｂでの転送処理の際に使用される。
【００２７】
送信元付加部４２ａは、入力されたペイロード中にサーバ宛のデータが含まれているかを判定する。サーバ宛のデータが含まれている場合、送信元付加部４２ａは、転送処理部２１ａから通知された装置のアドレスに対応する索引値を、転送先テーブル６２ａから取得する。ここで、転送先テーブル６２ａは、ネットワークＡに含まれている装置のアドレスと索引値が一意に対応付けられたテーブルであり、サーバから送信されたパケットの転送先の決定に使用される。転送先テーブル６２の具体例については、後述する。
【００２８】
送信元付加部４２ａは、転送先テーブル６２ａから索引値を取得すると、取得した索引値を転送情報の末尾に付加する。一方、転送先テーブル６２ａに、転送処理部２１ａから通知された装置に対応する索引値が含まれていない場合、送信元付加部４２ａは、通知された装置に対する索引値を決定し、決定した値を転送情報の末尾に付加する。さらに、送信元付加部４２ａは、決定した索引値を、転送処理部２１ａから通知された装置のアドレスに対応付けて転送先テーブル６２ａに登録する。送信元付加部４２ａは、転送情報の追加処理が終わると、処理後の転送情報をデータと共に転送元情報付加部５１に出力する。一方、パケットがサーバから送信されたものである場合、送信元付加部４２ａは、転送情報を変更せずに、データと転送情報を決定部５２に出力する。
【００２９】
なお、転送情報処理部４０ｂが転送処理部２１ｂからデータを入力された場合の処理は、転送情報処理部４０ａが転送処理部２１ａからデータを入力された場合の処理と同様である。
【００３０】
転送元情報付加部５１は、サーバ宛のパケット中のデータに付されている転送情報に、パケットが転送されてきたネットワークの索引値を付加する。転送元情報付加部５１は、例えば、送信元付加部４２ａから入力されたデータに対応付けられた転送情報の末尾に、送受信部１１ａが属するネットワーク（ネットワークＡ）に対応付けられた索引値を付加する。転送元情報付加部５１は、転送情報を付加すると、振り分けテーブル６１を用いて、データと転送情報の出力先を決定する。振り分けテーブル６１の具体例と転送元情報付加部５１の処理の詳細については後述する。転送元情報付加部５１は、データの出力先を、転送先特定部４１（４１ａ、４１ｂ）、アプリケーション処理部７０のいずれかから選択し、選択した出力先に、転送情報と共にデータを出力する。
【００３１】
決定部５２は、入力されたデータに対応付けられた転送情報の末尾から、ネットワーク索引値を抽出する。決定部５２は、得られたネットワーク索引値を用いて、データと転送情報の出力先を決定する。データの出力先が決定すると、決定部５２は、決定部５２自身が振り分けテーブル６１を参照するために使用したネットワーク索引値を転送情報から削除する。決定部５２は、ネットワーク索引値の削除後の転送情報を、データと共に、選択した転送先特定部４１に出力する。
【００３２】
転送先特定部４１ｂは、転送元情報付加部５１からデータと転送情報が入力されると、入力されたデータ等の宛先を、転送先テーブル６２ｂを参照して決定する。転送先特定部４１ｂは、決定した宛先のアドレスと共に、転送元情報付加部５１から入力されたデータと転送情報を、転送処理部２１ｂに出力する。一方、決定部５２からデータと転送情報が入力されると、転送先特定部４１ｂは、転送情報の末尾の装置索引値をキーとして、転送先テーブル６２ｂを検索し、ヒットした装置をデータ等の宛先に決定する。転送先特定部４１ｂは、転送先テーブル６２ｂの検索に使用した装置索引値を転送情報から削除する。転送先特定部４１ｂは、装置索引値を削除した後の転送情報とデータを、転送先テーブル６２ｂを用いて決定した装置のアドレスと共に、転送処理部２１ｂに出力する。なお、転送先特定部４１ａも、転送元情報付加部５１や決定部５２からデータと転送情報が入力されると、転送先テーブル６２ａを用いて転送先特定部４１ｂと同様の処理を行う。
【００３３】
サーバや中継装置１０以外の通信装置も、図３と同様の構成をとることができる。なお、サーバや中継装置１０以外の通信装置の場合、それらの装置が含まれているネットワークで使用されているプロトコル以外のプロトコルの処理は行わない。このため、サーバまたは中継装置１０以外の通信装置は、送受信部１１、転送処理部２１、ルーティングテーブル２２、転送情報処理部４０、転送先テーブル６２を１つずつ備える。
【００３４】
アプリケーション処理部７０は、入力されたデータを、アプリケーションを用いて処理する。図３の例では、図を見やすくするためにアプリケーション処理部７０が１つ備えられている場合を例として説明しているが、中継装置１０に含まれているアプリケーション処理部７０の数は任意である。また、中継装置１０以外の通信装置やサーバにおいても、アプリケーション処理部７０の数は任意である。アプリケーション処理部７０は、個々のアプリケーション処理部７０を一意に特定できるように識別子（モジュールＩＤ）を保持しているものとする。モジュールＩＤの使用方法については後述する。
【００３５】
図４は、ハードウェア構成の例を示す。サーバ、中継装置１０、中継装置１０以外の通信装置のいずれも、プロセッサ３０１、Read Only Memory（ＲＯＭ）３０２、Random Access Memory（ＲＡＭ）３０３、通信インタフェース３０４、バス３０８を備える。通信装置や中継装置１０のうちで、サーバに通知するデータを測定している装置は、さらに、センサ３０６とアクチュエータ３０７も備える。プロセッサ３０１は、Central Processing Unit（ＣＰＵ）を含む任意の処理回路とすることができる。プロセッサ３０１は、パケット処理部２０、転送情報処理部４０、ディスパッチャ５０、アプリケーション処理部７０を実現する。
【００３６】
プロセッサ３０１は、例えば、ＲＯＭ３０２に記憶されたプログラムを読み込んで、実行することができる。ＲＡＭ３０３は、記憶部６０を実現する。ＲＡＭ３０３は、プロセッサ３０１の動作により得られたデータや、プロセッサ３０１の処理に用いられるデータも、適宜、記憶する。通信インタフェース３０４は、他の装置との通信に使用され、送受信部１１として動作する。バス３０８は、プロセッサ３０１、ＲＯＭ３０２、ＲＡＭ３０３、通信インタフェース３０４などの各部品を、相互にデータの送受信が可能になるように接続する。中継装置１０を含む通信装置は、例えば、コンピュータなどで実現されることがある。
【００３７】
＜実施形態＞
以下、実施形態に係るシステムでの処理の例を説明する。ここで、実施形態に係るシステムでは、パケットの送受信は、サーバとサーバ以外の装置の間で行われるものとする。従って、サーバ以外の通信装置が送信元となっているパケットの宛先は、サーバである。このため、例えば、サーバではないノードＮ２とノードＮ４が通信しようとする場合、ノードＮ２とノードＮ４は、サーバを介して通信する。
【００３８】
〔パケットフォーマット〕
図５は、パケットのフォーマットの例を示す図である。ネットワーク中で送受信されるパケットは、図５のＦ１に示すように、ヘッダ、送信元情報、データ、および、転送情報を備える。ヘッダは、そのパケットが出力されるネットワークで使用されているプロトコルに対応したフォーマットのヘッダである。例えば、図２のノードＮ５が図２のネットワークＮＥ３から受信するパケットのヘッダは、プロトコルγを用いて、宛先をノードＮ５に設定したヘッダである。一方、ノードＮ５がネットワークＮＥ２に出力するパケットのヘッダは、プロトコルβを用いて生成されたヘッダである。
【００３９】
送信元情報は、通信方向情報、送信元アドレス、送信元モジュールＩＤを含む。通信方向情報は、パケットがサーバ宛のパケットと、サーバ以外の装置に宛てられたパケットのいずれであるかを特定する情報である。以下の説明では、サーバ宛のパケットでは、通信方向情報の値は０に設定され、サーバ以外の装置宛のパケットでは、通信方向情報の値は１に設定されているものとする。送信元アドレスは、データを生成した装置に割り当てられたアドレスである。
【００４０】
送信元アドレスは、システム中の装置を一意に特定できるように任意の方法で決定されたアドレスであるものとする。以下の説明では、各装置には、その装置が属するネットワーク以外のネットワークに含まれている装置との間でも、異なる値であって、アプリケーション処理部７０で識別子として用いられるアドレスが割り当てられているとする。以下の説明では、一例として、各装置にアルファベットのＮの後に数字を続けた文字列を、アプリケーション処理部７０で使用されている識別子とし、さらに、送信アドレスに設定され得る値としても使用する。なお、送信元情報中の送信元アドレスは、データを生成した装置を認識するために各装置のアプリケーション処理部７０やディスパッチャ５０が使用するので、実際のルーティングに適用可能なアドレスでなくても良い。換言すると、送信元アドレスは、ルーティングに使用されるプロトコルには関係なく、システム全体で統一された方式を用いて、アプリケーション処理部７０やディスパッチャ５０がシステム内の装置を一意に特定できるように設定される。また、アプリケーション処理部７０での処理は、パケットの転送に使用されるプロトコルには依存しない。
【００４１】
転送情報は、パケットの転送の際に使用される経路情報である。転送情報は、サーバ宛のパケットの転送処理の過程で生成され、サーバ以外の装置に宛てたパケットの転送経路の特定に使用される。このため、図２のノードＮ５のように、中継装置として動作する装置がＦ１に示すパケットを受信すると、Ｆ２に示すように、パケット中の転送情報を変更する。転送情報の生成や変更の具体例については後述する。
【００４２】
〔ネットワークの例〕
図６は、振り分けテーブル６１の例を示す。以下の説明では、テーブルの参照番号の後に、アンダースコアを挟んで、テーブルを保持している通信装置の符号の末尾に含まれる数字を記載する。例えば、ノードＮ１が保持している振り分けテーブル６１には、「６１＿１」という番号を付している。同様に、以下の説明では、処理を行っている装置の特定を容易にするために、テーブル以外の参照番号の場合でも、参照番号の末尾に、アンダースコアを挟んで通信装置の符号の末尾の数字を記載する。例えば、ノードＮ１が保持するディスパッチャ５０の参照番号は「５０＿１」とし、ノードＮ５が保持する転送情報処理部４０ｂの参照番号は「４０ｂ＿５」とする。
【００４３】
いずれの装置が保持する振り分けテーブル６１でも、索引値（ｉｎｄｅｘ）に対応付けて、対応領域とポインタが格納されている。対応領域は、索引値に対応付けられたネットワークを示している。対応領域は、サーバ宛のパケットの転送元の特定や、サーバから送信されたパケットの転送先の特定に使用される。なお、対応領域がアプリケーション処理部７０である場合は、その装置自身が宛先となっているデータが入力されたことを示している。
【００４４】
各装置は、振り分けテーブル６１に、デフォルト（ｄｅｆａｕｌｔ）の対応領域を保持している。デフォルトの対応領域は、デフォルトの対応領域がパケットの出力先として選択されるとサーバ宛のパケットの転送経路となるように予め設定されている。例えば、図６に示すネットワークにおいて、ノードＮ１０がサーバであるとする。すると、ノードＮ５が保持する振り分けテーブル６１＿５でのデフォルトの対応領域は、ネットワークＮＥ２である。また、ノードＮ９が保持する振り分けテーブル６１＿９でのデフォルトの対応領域は、ネットワークＮＥ１である。このように、いずれのネットワークでも、そのネットワーク中のデフォルトの対応領域に出力すると、パケットがノードＮ１０に到達するように設定されている。
【００４５】
ポインタは、対応領域に応じて参照する転送先テーブル６２の特定に使用する。図７に転送先テーブル６２と振り分けテーブル６１の対応例を示す。例えば、ノードＮ１は、図７中の振り分けテーブル６１＿１と転送先テーブル６２＿１を保持する。このため、転送元情報付加部５１＿１や決定部５２＿１は、振り分けテーブル６１＿１を参照することにより、パケットの出力先のネットワークを決定できる。パケットの出力先のネットワークが決定されると、決定されたネットワークに対応付けられたポインタの値で特定される転送先テーブル６２を用いて、転送先の装置が特定される。転送先テーブル６２は、初期状態では、各ネットワーク中でのデフォルトルート以外の宛先が含まれていないが、通信処理の過程で新たな情報が加えられることがある。なお、転送先テーブル６２に新たな情報の追加が可能であるかの設定は、その転送先テーブル６２を管理する送信元付加部４２が予め認識しているものとする。転送先テーブル６２の変更方法の例については後述する。
【００４６】
転送先テーブル６２において、デフォルトルートは、デフォルトルートが選択されたときにパケットがサーバに到達するように設定されるものとする。例えば、ノードＮ１から送信されたサーバ宛のパケットは、ノードＮ５を介してネットワークＮＥ２に向けて転送される。このため、ノードＮ１が保持する振り分けテーブル６１＿１では、デフォルトの転送先がノードＮ５に設定されている。また、ノードＮ５においては、ネットワークＮＥ３に対応する転送先テーブル６２ａ＿５でのデフォルトの転送先がノードＮ５自身に設定され、ネットワークＮＥ２に対応する転送先テーブル６２ｂ＿５でのデフォルトの転送先がノードＮ９に設定される。
【００４７】
〔サーバ宛のパケットの転送処理〕
以下、図８を参照しながら、サーバ宛のパケットの転送処理の例を説明する。図８は、ノードＮ１がサーバ（ノードＮ１０）宛てにパケットを送信した場合を示している。なお、図８は、ネットワークＮＥ３では装置索引値が各装置のアドレスと同じ値である場合を例として説明する。
【００４８】
（ｂ１）ノードＮ１中のセンサ３０６＿１での測定結果がアプリケーション処理部７０＿１に入力されたとする。すると、アプリケーション処理部７０＿１は、サーバとして動作しているノードＮ１０のアプリケーション処理部７０＿１０にセンサ３０６＿１での測定結果を通知するためのデータを生成する。アプリケーション処理部７０＿１は、生成したデータの宛先がサーバであることを示す情報と共に、データを転送元情報付加部５１＿１に出力する。
【００４９】
（ｂ２）転送元情報付加部５１＿１は、生成したデータを送信するために、サーバ宛のデータであることを示す送信元情報を生成する。転送元情報付加部５１＿１は、データがサーバ宛であるので、通信方向情報を０に設定する。さらに、データがノードＮ１のアプリケーション処理部７０＿１で生成されたことを示すために、ノードＮ１に割り当てられたアドレスを送信元アドレスに設定し、送信元モジュールＩＤをアプリケーション処理部７０に割り当てられた索引値に設定する。なお、ここで、転送元情報付加部５１＿１は、データの生成を行った装置がノードＮ１であることをアプリケーションのレベルで通知するために、送信元情報の送信元アドレスを設定している。このため、送信元情報中のアドレスは、プロトコルα〜γのいずれにも対応していない形式で記述されていても、ノードＮ１とノードＮ１０の各々のアプリケーション処理部７０やディスパッチャ５０において使用可能な識別子であればよい。
【００５０】
転送元情報付加部５１＿１は、アプリケーション処理部７０＿１から入力されたデータ等に対応付ける転送情報として、アプリケーション処理部７０＿１に対応付けられた索引値を振り分けテーブル６１＿１から取得する。図６、図７に示すように、振り分けテーブル６１＿１では、アプリケーション処理部７０に対応付けられた索引値は０である。そこで、転送元情報付加部５１＿１は、転送情報に索引値＝０を設定する。
【００５１】
次に、転送元情報付加部５１＿１は、振り分けテーブル６１＿１を用いて、パケットの出力先を決定する。サーバ宛のデータを含むパケットの出力先は、振り分けテーブル６１＿１のうち、デフォルト値に対応付けられている対応領域である。そこで、転送元情報付加部５１＿１は、パケットの出力先をネットワークＮＥ３とする。転送元情報付加部５１は、パケットの出力先で使用されているプロトコルの処理を行う転送先特定部４１に、データ、送信元情報、転送情報を出力する。ノードＮ１は、ネットワークＮＥ３だけに属しているので、転送元情報付加部５１＿１は、データ、送信元情報、転送情報を、転送先特定部４１＿１に出力する。さらに、転送元情報付加部５１＿１は、対応領域に対応付けられたポインタ値も、転送先特定部４１＿１に出力する。この例では、ポインタ値として、Ｐｏ１が転送先特定部４１＿１に出力される。
【００５２】
（ｂ３）転送先特定部４１＿１は、パケットをサーバに送信するために、ネットワークＮＥ３でのパケットの転送先を求める。転送先特定部４１＿１は、転送元情報付加部５１＿１から通知されたポインタ値に対応付けられた転送先テーブル６２を参照することにより、転送先を決定する。この例では、ポインタ値＝Ｐｏ１が通知されているので、転送先特定部４１＿１は、転送先テーブル６２＿１（図７）を参照する。送信元情報中に通信方向情報＝０という情報が含まれているので、転送先特定部４１＿１は、転送先テーブル６２＿１にデフォルトの転送先として設定されているノードを転送先に指定する。図７の例では、ノードＮ５が転送先となる。そこで、転送先特定部４１＿１は、転送元情報付加部５１＿１から入力されたデータ、送信元情報、転送情報を、宛先がノードＮ５であることを表わす情報と共に、転送処理部２１＿１に出力する。
【００５３】
転送処理部２１＿１は、宛先がノードＮ５であることを示すヘッダをプロトコルγに従って生成し、転送先特定部４１＿１から入力されたデータ、送信元情報、転送情報を含むペイロードに付加する。このとき、転送処理部２１＿１は、適宜、ネットワークＮＥ３内でのルーティングのための情報を、ルーティングテーブル２２から取得する。転送処理部２１＿１は、得られたパケットＰ１１を送受信部１１＿１に出力する。送受信部１１＿１は、パケットＰ１１を、ノードＮ５に向けて送信する。ここで、パケットＰ１１に含まれている転送情報を、図８中のＰＦ１１に示す。
【００５４】
（ｂ４）パケットＰ１１は、ネットワークＮＥ３中を転送されることにより、ノードＮ５に転送される。
【００５５】
（ｂ５）ノードＮ５の送受信部１１ａ＿５は、パケットＰ１１を受信し、パケットＰ１１を転送処理部２１ａ＿５に出力する。転送処理部２１ａ＿５は、パケットＰ１１のペイロードを、パケットＰ１１の送信元アドレスと共に、送信元付加部４２ａ＿５に出力する。送信元付加部４２ａ＿５は、入力されたペイロードの送信元情報に含まれている通信方向情報がサーバ宛を示しているかを判定する。パケットＰ１１には、送信元情報中に通信方向情報＝０という情報が含まれているので、送信元付加部４２ａ＿５は、サーバ宛のデータの転送処理中であると判定する。
【００５６】
ここで、ネットワークＮＥ３では装置索引値として各装置のアドレスと同じ値が使用されるため、送信元付加部４２ａ＿５には、転送先テーブル６２ａ＿５への新たな情報の追加を禁止する設定が行われているとする。すると、送信元付加部４２ａ＿５は、転送処理部２１ａ＿５から通知されたアドレス自体を、転送情報の末尾に追加する。このため、送信元付加部４２ａ＿５の処理により、転送情報は「０、Ｎ１」となる。送信元付加部４２ａ＿５は、データおよび送信元情報と共に、処理後の転送情報を、転送元情報付加部５１ａ＿５に出力する。
【００５７】
（ｂ６）転送元情報付加部５１＿５は、送信元付加部４２ａ＿５からデータ等が入力されると、送信元情報中の通信方向情報を特定する。パケットＰ１１中の通信方向情報は０に設定されているので、転送元情報付加部５１＿５は、サーバに転送するデータを取得したと判定する。そこで、転送元のネットワーク索引値を転送情報に付加するための処理を開始する。転送元情報付加部５１＿５は、データ等を入力してきた転送情報処理部４０ａ＿５を介して通信しているネットワークの索引値を、振り分けテーブル６１＿５（図７）から特定する。ここでは、転送元情報付加部５１＿５は、送信元付加部４２ａ＿５からデータ等が入力されたので、ネットワークＮＥ３に対応付けられているネットワーク索引値である２を、転送情報に追加する。このため、転送情報は、図８のＰＦ１２に示す通りになる。
【００５８】
次に、転送元情報付加部５１＿５は、振り分けテーブル６１＿５を用いて、データの出力先を決定する。サーバ宛のデータの出力先は、振り分けテーブル６１＿５のうち、デフォルト値に対応付けられている対応領域であるため、転送元情報付加部５１＿５は、パケットの転送先のネットワークをネットワークＮＥ２に決定する。転送元情報付加部５１＿５は、パケットの転送先のネットワーク中でのパケットの宛先を決定する転送先特定部４１ｂ＿５に、データ、送信元情報、転送情報を出力する。さらに、転送元情報付加部５１＿５は、出力先のネットワークに対応するポインタ値がＰｏ２であることも、転送先特定部４１ｂ＿５に出力する。
【００５９】
（ｂ７）転送先特定部４１ｂ＿５には、ポインタ値＝Ｐｏ２が通知され、さらに、転送先特定部４１ｂ＿５に入力された送信元情報中に通信方向情報＝０という情報が含まれている。そこで、転送先特定部４１ｂ＿５は、転送先テーブル６２ｂ＿５（図７）にデフォルトルートとして設定された転送先であるノードＮ９を、ネットワークＮＥ２での宛先に決定する。転送先特定部４１ｂ＿５は、データ、送信元情報、転送情報ＰＦ１２を、パケットの宛先がノードＮ９であることを表わす情報と共に、転送処理部２１ｂ＿５に出力する。転送処理部２１ｂ＿５での処理は、手順（ｂ３）で述べた転送処理部２１＿１の処理と同様であるが、転送処理部２１ｂ＿５が使用するプロトコルはプロトコルβである。以下、転送処理部２１ｂ＿５の処理により生成されたパケットをＰ１２とする。パケットＰ１２は、送受信部１１ｂ＿５を介して、ネットワークＮＥ２中を、ノードＮ９に向けて転送される。
【００６０】
（ｂ８）ノードＮ９がパケットＰ１２を受信すると、送信元がノードＮ５であることが送信元付加部４２ａ＿９に通知される。また、パケットＰ１２中のデータ、送信元情報、および、転送情報も送信元付加部４２ａ＿９に入力される。送信元付加部４２ａ＿９に送信元の情報や、パケットＰ１２中のデータ、送信元情報、転送情報が入力されるときに行われる処理は、手順（ｂ５）と同様である。
【００６１】
図９は、転送先テーブル６２の更新方法の例を説明する図である。以下の説明では、ノードＮ９がパケットＰ１２を受信したときに、ノードＮ９には、転送先テーブル６２ａ＿９と６２ｂ＿９が保持されているものとする。また、ノードＮ９の送信元付加部４２ａ＿９には、転送先テーブル６２ａ＿９への新たな情報の追加を禁止する設定が行われていないものとする。
【００６２】
送信元付加部４２ａ＿９は、転送処理部２１ａ＿９から通知されたアドレスをキーとして、転送先テーブル６２ａ＿９中の情報を検索する。この例では、ノードＮ５のアドレスをキーとした検索が行われる。しかし、転送先テーブル６２ａ＿９には、ノードＮ５に対応付けられた索引値がないため、いずれのエントリもヒットしない。そこで、送信元付加部４２ａ＿９は、ノードＮ５に対応する索引値を、転送先テーブル６２ａ＿９中に登録されている他のノードと同じ索引値にならないように生成し、ノードＮ５の索引値を転送先テーブル６２ａ＿９に登録する。例えば、送信元付加部４２ａ＿９は、ノードＮ５の索引値を１に決定したとすると、転送先テーブル６２ａ＿９を転送先テーブル６２ｃ＿９に更新する。
【００６３】
さらに、送信元付加部４２ａ＿９は、ノードＮ５の索引値を転送情報の末尾に追加する。すると、送信元付加部４２ａ＿９の処理により、転送情報は、「０、Ｎ１、２、１」となる。送信元付加部４２ａ＿９は、データおよび送信元情報と共に、処理後の転送情報を、転送元情報付加部５１＿９に出力する。
【００６４】
（ｂ９）転送元情報付加部５１＿９は、データを取得したネットワークの情報を転送情報に加えるために、データが転送されてきたネットワークの索引値を、振り分けテーブル６１＿９（図９）から特定する。ここでは、送信元付加部４２ａ＿９からデータ等が入力されたので、転送元情報付加部５１＿９は、ネットワークＮＥ２に対応付けられているネットワーク索引値である２を、転送情報に追加する。このため、転送情報は、図８のＰＦ１３に示す通りになる。
【００６５】
さらに、転送元情報付加部５１＿９は、送信元付加部４２ａ＿９から入力された送信元情報中の通信方向情報を用いて、サーバへの転送対象となるデータを取得したと判定する。すると、転送元情報付加部５１＿９は、振り分けテーブル６１＿９のデフォルト値に対応付けられている対応領域であるネットワークＮＥ１を、パケットの送信先に決定する。ネットワークＮＥ１にデータを出力するために、転送元情報付加部５１＿９は、転送先特定部４１ｂ＿９に、データ、送信元情報、転送情報を出力する。さらに、転送元情報付加部５１＿９は、出力先に対応するポインタ値がＰｏ４であることも、転送先特定部４１ｂ＿９に出力する。
【００６６】
（ｂ１０）転送先特定部４１ｂ＿９には、ポインタ値＝Ｐｏ４が通知され、さらに、転送先特定部４１ｂ＿９に入力された送信元情報中に通信方向情報＝０という情報が含まれている。そこで、転送先特定部４１ｂ＿９は、転送先テーブル６２ｂ＿９（図９）にデフォルトルートとして設定された転送先であるノードＮ１０を、ネットワークＮＥ１での宛先に決定する。転送先特定部４１ｂ＿９は、データ、送信元情報、転送情報ＰＦ１３を、パケットの宛先がノードＮ１０であることを表わす情報と共に、転送処理部２１ｂ＿９に出力する。転送処理部２１ｂ＿９での処理は、手順（ｂ３）で述べた転送処理部２１＿１の処理と同様であるが、転送処理部２１ｂ＿９が使用するプロトコルはプロトコルαである。以下、転送処理部２１ｂ＿９の処理により生成されたパケットをＰ１３とする。パケットＰ１３は、送受信部１１ｂ＿９を介して、ネットワークＮＥ１中を、ノードＮ１０に向けて転送される。
【００６７】
（ｂ１１）ノードＮ１０がパケットＰ１３を受信すると、送信元がノードＮ９であることを示す情報、パケットＰ１３中のデータ、送信元情報、転送情報が送信元付加部４２＿１０に入力される。送信元付加部４２＿１０に送信元の情報や、パケットＰ１３中のデータ、送信元情報、転送情報が入力されるときに行われる処理は、手順（ｂ５）と同様である。
【００６８】
図１０は、ノードＮ１０で行われる転送先テーブル６２の更新の例を示す。以下、ノードＮ１０がパケットＰ１３を受信したとき、ノードＮ１０は、転送先テーブル６２＿１０ａを有しているものとする。また、送信元付加部４２＿１０には、転送先テーブル６２＿１０ａへの新たな情報の追加を禁止する設定が行われていないものとする。送信元付加部４２＿１０は、パケットＰ１３の送信元であるノードＮ９のアドレスが転送先テーブル６２＿１０ａ中に含まれていない場合、図９を参照しながら説明した方法と同様に、ノードＮ９の索引値を生成する。さらに、送信元付加部４２＿１０は、ノードＮ９の索引値を転送先テーブル６２に登録する。例えば、ノードＮ９の索引値が２に決定されたとすると、転送先テーブル６２＿１０ａは転送先テーブル６２＿１０ｂに更新される。
【００６９】
さらに、送信元付加部４２＿１０は、ノードＮ９の索引値を転送情報の末尾に追加するので、転送情報は、「０、Ｎ１、２、１、２、２」となる。送信元付加部４２＿１０は、データおよび送信元情報と共に、処理後の転送情報を、転送元情報付加部５１＿１０に出力する。
【００７０】
（ｂ１２）転送元情報付加部５１＿１０は、データを取得したネットワークの情報を転送情報に加えるために、データが転送されてきたネットワークＮＥ１の索引値を、転送情報の末尾に加える。索引値の特定方法は、手順（ｂ９）と同様である。このため、転送情報は、図８のＰＦ１４に示す通りになる。転送元情報付加部５１＿１０は、送信元付加部４２＿１０から入力された送信元情報中の通信方向情報を用いて、サーバ（ノードＮ１０）宛てのデータを取得したと判定する。すると、転送元情報付加部５１＿１０は、振り分けテーブル６１＿１０のデフォルト値に対応付けられている対応領域であるアプリケーション処理部７０＿１０を、データの出力先に決定する。転送元情報付加部５１＿１０は、データ、送信元情報、転送情報を、アプリケーション処理部７０＿１０に出力する。アプリケーション処理部７０＿１０は、入力されたデータから、ノードＮ１のセンサ３０６＿１での計測結果を取得し、適宜、計測結果を用いた処理を行うことができる。さらに、アプリケーション処理部７０＿１０は、得られた転送情報と送信元情報を用いて、ノードＮ１への経路を記憶する。
【００７１】
図１１は、転送情報の記憶方法の例を示す。サーバにおいて、アプリケーション処理部７０は、送信元情報中の送信元アドレスと送信元モジュールＩＤに対応付けて、転送情報を記憶する。図１１は、手順（ｂ１２）でアプリケーション処理部７０に入力された情報Ｄ１と、アプリケーション処理部７０が保持するテーブル７１を示す。アプリケーション処理部７０に入力された情報Ｄ１は、転送情報ＰＦ１４、パケットＰ１３に含まれていたデータ、送信元情報である。アプリケーション処理部７０が記憶する転送情報は、サーバからのパケットの送信の際に、宛先の装置に至る経路情報として使用される。このため、図１１に示すテーブル７１では、宛先アドレスの欄に、送信元情報中の送信元アドレスが記録される。同様に、宛先モジュールＩＤは、送信元情報中の送信元モジュールＩＤに設定される。このため、アプリケーション処理部７０では、宛先アドレスがノードＮ１のアドレスであり、かつ、送信元モジュールＩＤが０のときに使用する転送情報として、転送情報ＰＦ１４が記録される。
【００７２】
なお、これまでの説明では、簡略化するために、各装置中で１つのアプリケーション処理部７０が動作している場合について説明しているが、各装置で動作するアプリケーション処理部７０の数は、使用されるアプリケーションの数に応じて任意に変更されうる。このため、送信元モジュールＩＤは、データを生成したアプリケーションの特定に使用されている。アプリケーション処理部７０＿１０が送信元アドレスだけでなく送信元モジュールＩＤにも対応付けて転送情報を記録するのは、転送情報を用いて送信するデータを使用するアプリケーションも、転送情報で特定できるためである。
【００７３】
〔サーバから送信されたパケットの転送処理〕
図１２を参照しながら、ノードＮ１０がノードＮ１にパケットを送信する場合を例として、サーバからパケットが送信される場合の処理やサーバから送信されたパケットの処理の例を説明する。図１２の例においても、ノードＮ１０がサーバとして動作しているものとする。なお、以下で説明する処理は、サーバが過去にパケットを受信したことのある装置に対してパケットを送信する場合に行うことができる。
【００７４】
（ｃ１）ノードＮ１０のアプリケーション処理部７０＿１０は、ノードＮ１のセンサ３０６＿１から得られた測定値を処理した結果、ノードＮ１のアクチュエータ３０７＿１に対する操作を行うことを決定したとする。また、以下の例では、アプリケーション処理部７０＿１に対して、アクチュエータ３０７＿１に対する処理を要求することによって、ノードＮ１０が間接的にアクチュエータ３０７＿１を操作することができるものとする。この場合、アプリケーション処理部７０＿１０は、アクチュエータ３０７＿１の処理をアプリケーション処理部７０＿１に要求するためのデータ等を、ノードＮ１のアプリケーション処理部７０＿１宛てに生成する。さらに、アプリケーション処理部７０＿１０は、データに付すための送信元情報を生成すると共に、宛先がノードＮ１であることを示す転送情報を検索する。送信元情報には、サーバ以外の装置に宛てたパケットであることを示すために、通信方向情報＝１の情報が含まれる。さらに、アプリケーション処理部７０＿１０は、送信元情報中の送信元装置と送信元モジュールＩＤを設定する。
【００７５】
アプリケーション処理部７０＿１０は、図１１を参照しながら説明した方法で記憶している情報から、宛先アドレスがノードＮ１に割り当てられた識別子であるエントリを特定する。さらに、アプリケーション処理部７０＿１０は、これから送信するパケットに含めるデータをノードＮ１中で処理するアプリケーションを識別するモジュールＩＤが、ヒットしたエントリの宛先モジュールＩＤと一致しているかについても判定する。すなわち、アプリケーション処理部７０＿１０は、宛先アドレスと宛先モジュールＩＤの組み合わせが、ノードＮ１中のアプリケーション処理部７０＿１を表わしているエントリ中の転送情報ＰＦ１４を特定する。アプリケーション処理部７０は、データ、送信元情報、特定した転送情報ＰＦ１４を、決定部５２＿１０に出力する。
【００７６】
（ｃ２）決定部５２＿１０は、アプリケーション処理部７０＿１０から入力された転送情報の末尾に含まれているネットワーク索引値を取得する。なお、決定部５２＿１０が取得したネットワーク索引値は、ノードＮ１から送信されてきたデータを含むパケットをノードＮ１０が処理したときに付されたネットワーク索引値である。図１２の例では、決定部５２＿１０は、ネットワーク索引値＝１を取得する。決定部５２＿１０は、取得した索引値をキーとして、振り分けテーブル６１＿１０（図１０）を検索することにより、入力されたデータを送信するために使用するネットワークを特定する。図１０の例では、ネットワーク索引値＝１は、ネットワークＮＥ１と、ポインタ値＝Ｐｏ６に対応付けられている。決定部５２＿１０は、転送情報から、ネットワークの特定に使った索引値を削除する。このため、転送情報は、「０、Ｎ１、２、１、２、２」となる。さらに、決定部５２＿１０は、索引値の削除後の転送情報を、データおよび送信元情報と共に、転送先特定部４１＿１０に出力する。このとき、決定部５２＿１０は、ポインタ値＝Ｐｏ６も合わせて転送先特定部４１＿１０に通知する。
【００７７】
（ｃ３）決定部５２＿１０から転送情報等が入力されると、転送先特定部４１＿１０は、転送情報の末尾の装置索引値をキーとして、通知されたポインタ値に対応付けられた転送先テーブル６２を検索する。ここでは、通知されたポインタ値がＰｏ６であるため、検索対象は転送先テーブル６２＿１０ｂ（図１０）となる。取得した転送情報の末尾の装置索引値は２であるので、転送先特定部４１＿１０は、ネットワークＮＥ１中のノードＮ９を、転送先に決定する。その後、転送先特定部４１＿１０は、転送先テーブル６２＿１０ｂの検索に使用した装置索引値を転送情報から削除するので、転送情報は、図１２のＰＦ１３に示す通りになる。転送先特定部４１＿１０は、転送情報ＰＦ１３、データ、および、送信元情報を、パケットの宛先がノードＮ９であることを示す情報と共に、転送処理部２１＿１０に出力する。
【００７８】
転送処理部２１＿１０は、宛先がノードＮ９であることを示すヘッダをプロトコルαに従って生成し、転送先特定部４１＿１０から入力されたデータ、送信元情報、転送情報ＰＦ１３を含むペイロードに付加することにより、パケットＰ１５を生成する。このとき、転送処理部２１＿１０は、ネットワークＮＥ１内でのルーティングのための情報を、適宜、ルーティングテーブル２２＿１０から取得する。転送処理部２１＿１０は、得られたパケットＰ１５を送受信部１１＿１０に出力する。送受信部１１＿１０は、パケットＰ１５を、ノードＮ９に向けて送信する。
【００７９】
（ｃ４）ノードＮ９の送受信部１１ｂ＿９は、パケットＰ１５を受信し、パケットＰ１５を転送処理部２１ｂ＿９に出力する。転送処理部２１ｂ＿９は、ペイロードを送信元付加部４２ｂ＿９に出力する。さらに、転送処理部２１ｂ＿９は、ヘッダからパケットＰ１５の送信元の情報を抽出し、送信元付加部４２ｂ＿９に通知する。
【００８０】
送信元付加部４２ｂ＿９は、入力されたペイロードからデータ、送信元情報、および転送情報を抽出し、送信元情報中の通信方向情報がサーバ宛を示しているかを判定する。パケットＰ１５の送信元情報には通信方向情報＝１という情報が含まれているので、送信元付加部４２ｂ＿９は、サーバから送信されたデータの転送処理中であると判定する。そこで、送信元付加部４２ｂ＿９は、ペイロードから得られた送信元情報、データ、および、転送情報ＰＦ１３を、決定部５２＿９に出力する。さらに、送信元付加部４２ｂ＿９は、サーバから送信されたデータの転送処理中には経路情報を作成しないので、転送処理部２１ｂ＿９から通知された送信元の情報を破棄する。
【００８１】
（ｃ５）決定部５２＿９は、送信元付加部４２ｂ＿９から入力された転送情報ＰＦ１３の末尾に含まれているネットワーク索引値を取得する。ここで、決定部５２＿９が取得するネットワーク索引値は、ノードＮ１から送信されてきたサーバ宛のパケットをノードＮ９が受信したときに決定部５２＿９が付したネットワーク索引値である。図１２の例では、決定部５２＿９は、ネットワーク索引値＝２を取得する。決定部５２＿９は、取得した索引値と振り分けテーブル６１＿９（図９）を用いて、ネットワークＮＥ２にデータを含むパケットを送信することと、ネットワークＮＥ２についての転送先テーブル６２のポインタ値がＰｏ５であることを特定する。さらに、決定部５２＿９は、転送情報ＰＦ１３から、ネットワークの特定に使った索引値を削除することにより、転送情報を「０、Ｎ１、２、１」に更新する。
【００８２】
ネットワークＮＥ２にデータを送信するための処理は、転送情報処理部４０ａ＿９などで行われている。そこで、決定部５２＿９は、更新後の転送情報を、データおよび送信元情報と共に、転送先特定部４１ａ＿９に出力する。このとき、決定部５２＿９は、ポインタ値＝Ｐｏ５も合わせて転送先特定部４１ａ＿９に通知する。
【００８３】
（ｃ６）転送情報等が入力されると、転送先特定部４１ａ＿９は、転送情報の末尾の装置索引値をキーとして、通知されたポインタ値Ｐｏ５に対応づけられた転送先テーブル６２ｃ＿９（図９）を参照する。転送先特定部４１ａ＿９が転送情報から取得した装置索引値は１であるので、転送先テーブル６２ｃ＿９より、転送先特定部４１ａ＿９は、ネットワークＮＥ２中のノードＮ５を、転送先に決定する。その後、転送先特定部４１ａ＿９は、転送先の検索に使用した装置索引値を転送情報から削除するので、転送情報は、図１２のＰＦ１２に示す通りになる。転送先特定部４１ａ＿９は、転送情報ＰＦ１２、データ、および、送信元情報を、パケットの宛先がノードＮ５であることを示す情報と共に、転送処理部２１ａ＿９に出力する。
【００８４】
転送処理部２１ａ＿９での処理は、手順（ｃ３）での転送処理部２１＿１０の処理と同様であるが、ヘッダを生成するときに使用されるプロトコルはプロトコルβである。転送処理部２１ａ＿９によって生成されるパケットを、以下、パケットＰ１６と記載する。パケットＰ１６は、ネットワークＮＥ２中を、送受信部１１ａ＿９よりノードＮ５に向けて送信される。
【００８５】
（ｃ７）ノードＮ５がパケットＰ１６を受信すると、手順（ｃ４）で説明したノードＮ９での処理と同様の処理が行われる。このため、パケットＰ１６中のペイロードが送信元付加部４２ｂ＿５に入力される。送信元付加部４２ｂ＿５は、入力されたペイロード中の通信方向情報がサーバ宛のデータであることを示しているかを判定する。パケットＰ１６の送信元情報には通信方向情報＝１という情報が含まれているので、送信元付加部４２ｂ＿５は、サーバから送信されたデータの転送処理中であると判定する。そこで、送信元付加部４２ｂ＿５は、ペイロードから得られた送信元情報、データ、および、転送情報ＰＦ１３を、決定部５２＿５に出力する。
【００８６】
（ｃ８）決定部５２＿５は、送信元付加部４２ｂ＿５から入力された転送情報ＰＦ１２の末尾に含まれているネットワーク索引値を取得する。図１２の例では、決定部５２＿５は、ネットワーク索引値＝２を取得する。決定部５２＿５は、取得した索引値と振り分けテーブル６１＿５（図７）を用いて、ネットワークＮＥ３にデータを含むパケットを送信することと、ネットワークＮＥ３についての転送先テーブル６２のポインタ値がＰｏ３であることを特定する。さらに、決定部５２＿５は、転送情報ＰＦ１２から、ネットワークの特定に使った索引値を削除することにより、転送情報を「０、Ｎ１」に更新する。
【００８７】
ネットワークＮＥ３にデータを送信するための処理は、転送情報処理部４０ａ＿５などで行われている。そこで、決定部５２＿５は、更新後の転送情報を、データおよび送信元情報と共に、転送先特定部４１ａ＿５に出力する。
【００８８】
ここで、手順（ｂ５）で説明したように、送信元付加部４２ａ＿５には、転送先テーブル６２ａ＿５への新たな情報の追加を禁止する設定が行われていることを、決定部５２＿５が予め記憶しているとする。この場合、ノードＮ５は、ネットワークＮＥ３に含まれている装置について索引値を設定していないので、転送情報には索引値が含まれていない。従って、転送情報処理部４０ａ＿５は、転送先を決定するときに転送先テーブル６２ａ＿５を参照しないため、決定部５２＿５は、ポインタ値を転送先特定部４１ａ＿５に通知しない。
【００８９】
（ｃ９）転送情報等が入力されると、転送先特定部４１ａ＿５は、転送情報の末尾の情報を取得する。ここで、転送先特定部４１ａ＿５は、ネットワークＮＥ３中の装置に対して索引値を設定していない。そのため、転送先特定部４１ａ＿５は、転送情報から、宛先とする装置のアドレスを取得する。図１２の例では、転送先特定部４１ａ＿５は、ノードＮ１のアドレスを取得する。さらに、転送先特定部４１ａ＿５は、転送情報からノードＮ１のアドレスを削除することにより、転送情報をＰＦ１１に更新する。転送先特定部４１ａ＿５は、転送情報ＰＦ１１、データ、および、送信元情報を、パケットの宛先がノードＮ１であることを示す情報と共に、転送処理部２１ａ＿５に出力する。
【００９０】
転送処理部２１ａ＿５での処理は、手順（ｃ３）での転送処理部２１＿１０の処理と同様であるが、ヘッダを生成するときに使用されるプロトコルはプロトコルγである。転送処理部２１ａ＿５によって生成されるパケットを、以下、パケットＰ１７と記載する。パケットＰ１７は、ネットワークＮＥ３中を、送受信部１１ａ＿５よりノードＮ１に向けて送信される。
【００９１】
（ｃ１０）ノードＮ１は、転送情報Ｐ１１が含まれているパケットを受信する。転送先特定部４１＿１は、送信元情報を用いてサーバからのパケットを受信したと判定すると、パケットのペイロードを決定部５２＿１に出力する。決定部５２＿１は、転送情報Ｐ１１と振り分けテーブル６１＿１を用いて、データをアプリケーション処理部７０＿１に出力する。このため、アプリケーション処理部７０＿１は、アプリケーション処理部７０＿１０で生成されたデータを処理することができる。アプリケーション処理部７０＿１は、アプリケーション処理部７０＿１０からのデータを処理し、適宜、アクチュエータ３０７＿１に対しての処理を行う。
【００９２】
図１３は、転送情報処理部４０の処理の例を説明するフローチャートである。図１３では、転送情報処理部４０に他の装置から受信したパケット中のデータが入力された場合に行われる処理の例が示されている。なお、図１３は処理の一例であり、例えば、ステップＳ３とＳ４は互いに順序を入れ替えても良い。送信元付加部４２は、送受信部１１や転送処理部２１を介して、受信パケットのペイロードと、受信パケットの送信元のアドレスを取得する（ステップＳ１）。送信元付加部４２は、送信元情報中の通信方向情報を用いて、取得したペイロードにサーバ宛のデータが含まれているかを判定する（ステップＳ２）。取得したペイロードにサーバ宛のデータが含まれている場合、送信元付加部４２は、送信元の索引値が転送先テーブル６２に含まれているかを判定する（ステップＳ２でＹｅｓ）。転送先テーブル６２に送信元に対応付けられた索引値がない場合、送信元付加部４２は、送信元に対応する索引値を転送先テーブル６２に追加する（ステップＳ３）。さらに、送信元付加部４２は、転送情報に、送信元の装置に対応付けられた装置索引値を追加する（ステップＳ４）。その後、送信元付加部４２は、送信元情報、データ、更新後の転送情報を、ディスパッチャ５０に出力する（ステップＳ５）。一方、取得したペイロードにサーバ宛のデータが含まれていない場合、送信元付加部４２は、送信元情報、データ、更新後の転送情報を、ディスパッチャ５０に出力する（ステップＳ２でＮｏ、ステップＳ５）。
【００９３】
図１４は、ディスパッチャ５０での処理の例を説明するフローチャートである。ディスパッチャ５０は、受信パケットのペイロードに含まれている送信元情報、データ、転送情報を取得する。ここで、サーバ宛のデータ等は、転送元情報付加部５１が取得し、サーバからサーバ以外の装置に送信されたパケットに含まれているデータ等は決定部５２が取得するものとする（ステップＳ１１、Ｓ１２）。転送元情報付加部５１は、パケットの送信元を含むネットワークのネットワーク索引値を、転送情報の末尾に追加する（ステップＳ１２でＹｅｓ、ステップＳ１３）。さらに、転送元情報付加部５１は、自ノードがサーバであるかを判定する（ステップＳ１４）。ここで、転送元情報付加部５１は、自ノードがサーバであるかを、振り分けテーブル６１においてデフォルトに設定されている対応領域がアプリケーション処理部７０であるかで判定するものとする。自ノードがサーバではない場合、転送元情報付加部５１は、振り分けテーブル６１のデフォルトに示された対応領域に対応付けられた転送先特定部４１に、入力された送信元情報、データ、更新後の転送情報を出力する（ステップＳ１４でＮｏ、ステップＳ１７）。一方、自ノードがサーバである場合、転送元情報付加部５１は、入力された送信元情報、データ、更新後の転送情報を、アプリケーション処理部７０に出力する（ステップＳ１４でＹｅｓ、ステップＳ１８）。
【００９４】
一方、決定部５２は、サーバで生成されたデータと共に送信されてきた転送情報の末尾から索引値を取得し、取得した索引値を転送情報から削除する（ステップＳ１２でＮｏ、ステップＳ１５）。決定部５２は、取得した索引値を用いて、自ノード宛のデータを取得したかを判定する（ステップＳ１６）。ここで、決定部５２は、自ノード宛のデータであるかを、取得した索引値に対応する対応領域がアプリケーション処理部７０であるかで判定するものとする。索引値が振り分けテーブル６１でアプリケーション処理部７０に対応付けられている場合、決定部５２は、自ノード宛のデータを取得したと判定し、送信元情報とデータをアプリケーション処理部７０に出力する（ステップＳ１６でＹｅｓ、ステップＳ１９）。一方、索引値が振り分けテーブル６１でアプリケーション処理部７０に対応付けられていない場合、決定部５２は、取得した索引値に対応付けられた転送先特定部４１に、データと更新後の転送情報を出力する（ステップＳ１６でＮｏ、ステップＳ２０）。
【００９５】
図１５は、受信パケット中のデータを転送するときの処理の例を説明するフローチャートである。転送先特定部４１は、決定部５２か転送元情報付加部５１からデータ、送信元情報、転送情報を取得する（ステップＳ３１）。転送先特定部４１は、送信元情報中の通信方向情報を用いて、サーバ宛のデータが入力されたかを判定する（ステップＳ３２）。取得したペイロードにサーバ宛のデータが含まれていない場合、転送先特定部４１は、転送情報の末尾から索引値を取得し、取得した索引値を転送情報から削除する（ステップＳ３２でＮｏ、ステップＳ３３）。さらに、転送先特定部４１は取得した索引値に対応付けられた装置を宛先に指定して、送信元情報、データ、転送情報を転送処理部２１に出力する。転送処理部２１は、転送先特定部４１から通知された装置宛のヘッダをペイロードに付して、送受信部１１を介した送信処理を行う（ステップＳ３４）。なお、ペイロードには、送信元情報、データ、転送情報が含まれている。一方、取得したペイロードにサーバ宛のデータが含まれている場合、転送先特定部４１は、転送先テーブル６２においてデフォルトに設定されている装置を宛先に指定し、データや転送情報等を含むペイロードを転送処理部２１に出力する（ステップＳ３５）。このため、転送処理部２１等の処理により、転送先テーブル６２でデフォルトに設定されている装置に、パケットが送信される。
【００９６】
このように、ネットワーク間を中継する装置は、パケット中に含まれている索引値を用いて転送先のネットワークと、転送先のネットワークでのパケットの宛先を特定することができる。換言すると、ネットワーク間を中継する装置には、サーバ側の装置から転送先のネットワークが通知されるため、中継装置は、転送処理に使用するプロトコルの情報を隣接するネットワークごとに管理できる。従って、中継装置は、転送先ごとに転送処理に使用するプロトコルや転送先を記憶しないので、転送処理に際して中継装置が保持する情報量が少なくてすむ。
【００９７】
また、転送情報では、装置のアドレスの代わりに装置索引値が使用されるので、転送情報を用いると、中継装置等のアドレスを用いて経路の全体を指定する場合に比べて、経路の情報の通知に使用されるビット数が小さくてすむ。このため、転送情報を用いると、中継装置等のアドレスを用いて経路の全体を指定する場合に比べて、１つのパケット中に含めるデータの量を大きくすることができる。従って、実施形態に係るシステムでは、プロトコルの異なるネットワーク間の通信であっても、効率的にデータが送受信できる。
【００９８】
なお、以上の例では、センサ３０６を備える装置がサーバに測定値を通知し、サーバからのパケットに基づいてアクチュエータ３０７に対する処理を行う場合を例として説明したが、これは一例に過ぎない。他の用途に使用されるパケットの送受信でも、同様に転送処理が行われる。
【００９９】
＜適用例＞
図１６は、３つの異なるプロトコルを用いたシステムの具体例を示す。なお、図１６では、全てのネットワークにおいて、装置のアドレスとは異なる装置索引値が設定されているものとする。図１６では、システム中に、サーバ８１、ゲートウェイ（ＧＷ）８３、メータボックス８５、メータ８６（８６ａ〜８６ｃ）が含まれている。サーバ８１とゲートウェイ８３の間には、ＩＰネットワーク８２があり、ゲートウェイ８３とメータボックス８５の間には、アドホックネットワーク８４があるものとする。ここで、図１６では、サーバ８１やゲートウェイ８３を見やすくするためにネットワークの外にサーバ８１とゲートウェイ８３を書いているが、サーバ８１はＩＰネットワーク８２に含まれているものとする。さらに、ゲートウェイ８３のポートのうちの少なくとも１つはＩＰネットワーク８２に属し、ゲートウェイ８３のポートの他の１つはアドホックネットワーク８４に含まれているものとする。さらに、メータボックス８５とメータ８６ａ〜８６ｃの間では、Universal Asynchronous Receiver Transmitter（ＵＡＲＴ）による通信が行われるものとする。
【０１００】
図１７、図１８は、パケットのフォーマットの変換例を示す図である。以下、図１７と図１８を参照しながら、メータ８６ｃからサーバ８１へのパケットの送信が行われた後で、サーバ８１が転送情報を用いてメータ８６ｃにパケットを送信する場合のパケットの変換の例を示す。
【０１０１】
（ｄ１）サーバ８１のアプリケーション処理部７０＿８１は、メータ８６ｃ宛のデータを生成すると、送信元情報を生成する。さらに、アプリケーション処理部７０＿８１は、メータ８６ｃに対応付けられた転送情報を検索し、得られた転送情報を、生成したデータ及び送信元情報と共に、決定部５２＿８１に出力する。以下の説明では、得られた転送情報は、先頭から順に、以下の情報要素が含まれている。
メータ８６ｃのアプリケーションの索引値
メータ８６ｃの装置索引値
ＵＡＲＴによるメータボックス８５とメータ８６ｃの間のネットワークの索引値
メータボックス８５の装置索引値
アドホックネットワーク８４のネットワーク索引値
ゲートウェイ８３の装置索引値
ＩＰネットワーク８２のネットワーク索引値
【０１０２】
（ｄ２）決定部５２＿８１は、アプリケーション処理部７０＿８１から入力された転送情報から末尾のネットワーク索引値を取得することにより、入力されたデータがＩＰネットワーク８２に送信されることを特定する。決定部５２＿８１は、送信元情報、データ、転送情報の順に接続することにより、送信パケットのペイロードを生成する。このとき、決定部５２＿８１は、使用したネットワーク索引値を削除した後の転送情報をペイロードの生成に使用する。決定部５２＿８１は、生成したペイロードを転送先特定部４１＿８１に出力する。転送先特定部４１＿８１が取得するペイロード中の転送情報の要素は、先頭から以下のとおりである。
メータ８６ｃのアプリケーションの索引値
メータ８６ｃの装置索引値
ＵＡＲＴによるメータボックス８５とメータ８６ｃの間のネットワークの索引値
メータボックス８５の装置索引値
アドホックネットワーク８４のネットワーク索引値
ゲートウェイ８３の装置索引値
【０１０３】
（ｄ３）転送先特定部４１＿８１は、転送情報の末尾がゲートウェイ８３の装置索引値であることから、送信するパケットの宛先をゲートウェイ８３に決定する。転送先特定部４１＿８１は、入力されたペイロードの転送情報から、ゲートウェイ８３の装置索引値を削除した後で、ペイロードを転送処理部２１＿８１に出力する。転送処理部２１＿８１は、ゲートウェイ８３へのパケットの送信を行うために、ペイロードの先頭に、ＥｔｈｅｒヘッダとＩＰヘッダを付し、送受信部１１＿８１を介してゲートウェイ８３に送信する。
【０１０４】
（ｄ４）ゲートウェイ８３は、ＩＰネットワーク８２に接続しているポートを介してサーバからのパケットを受信する。ＩＰネットワーク８２との間の通信に使用されるパケット処理部２０ｂ＿８３は、ＥｔｈｅｒヘッダとＩＰヘッダを削除した後のペイロードを、ＩＰネットワーク８２との間の通信に使用される送信元付加部４２ｂ＿８３に出力する。送信元付加部４２ｂ＿８３は、通信方向情報を用いてサーバから送信されたパケットを受信したと判定すると、ペイロードを決定部５２＿８３に出力する。
【０１０５】
（ｄ５）決定部５２＿８３が取得するペイロード中の転送情報の要素は、先頭から以下のとおりである。
メータ８６ｃのアプリケーションの索引値
メータ８６ｃの装置索引値
ＵＡＲＴによるメータボックス８５とメータ８６ｃの間のネットワークの索引値
メータボックス８５の装置索引値
アドホックネットワーク８４のネットワーク索引値
【０１０６】
そこで、決定部５２＿８３は、転送情報の末尾がアドホックネットワーク８４のネットワーク索引値であることから、入力されたペイロードをアドホックネットワーク８４との通信に使用されている転送先特定部４１ａ＿８３に出力する。このとき、決定部５２＿８３は、ペイロードからアドホックネットワーク８４のネットワーク索引値を削除するので、以下の転送情報が、転送先特定部４１ａ＿８３に出力される。
メータ８６ｃのアプリケーションの索引値
メータ８６ｃの装置索引値
ＵＡＲＴによるメータボックス８５とメータ８６ｃの間のネットワークの索引値
メータボックス８５の装置索引値
【０１０７】
転送先特定部４１ａ＿８３は、転送情報の末尾がメータボックス８５の装置索引値であることから、送信するパケットの宛先をメータボックス８５に決定する。転送先特定部４１ａ＿８３は、入力されたペイロードの転送情報から、メータボックス８５の装置索引値を削除した後で、ペイロードを転送処理部２１ａ＿８３に出力する。
【０１０８】
（ｄ６）転送処理部２１ａ＿８３は、メータボックス８５へのパケットの送信を行うために、ペイロードの先頭に、８０２．１１ヘッダとアドホックヘッダを付し、送受信部１１ａ＿８３を介してメータボックス８５に送信する。
【０１０９】
（ｄ７）メータボックス８５は、アドホックネットワーク８４に接続しているポートを介してパケットを受信する。アドホックネットワーク８４との間の通信に使用されるパケット処理部２０ｂ＿８５は、８０２．１１ヘッダとアドホックヘッダを削除した後のペイロードを、アドホックネットワーク８４との間の通信に使用される送信元付加部４２ｂ＿８５に出力する。送信元付加部４２ｂ＿８５は、通信方向情報を用いてサーバから送信されたパケットを受信したと判定すると、ペイロードを決定部５２＿８５に出力する。決定部５２＿８５が取得するペイロード中の転送情報の要素は、先頭から以下のとおりである。
メータ８６ｃのアプリケーションの索引値
メータ８６ｃの装置索引値
ＵＡＲＴによるメータボックス８５とメータ８６ｃの間のネットワークの索引値
【０１１０】
（ｄ８）決定部５２＿８５は、転送情報の末尾がＵＡＲＴによるメータボックス８５とメータ８６ｃの間のネットワークの索引値であることから、入力されたメータ８６ｃとの通信に使用されている転送先特定部４１ａ＿８５に出力する。このとき、決定部５２＿８５は、ペイロードからＵＡＲＴによるメータボックス８５とメータ８６ｃの間のネットワークの索引値を削除するので、以下の転送情報が、転送先特定部４１ａ＿８５に出力される。
メータ８６ｃのアプリケーションの索引値
メータ８６ｃの装置索引値
【０１１１】
転送先特定部４１ａ＿８５は、転送情報の末尾がメータ８６ｃの装置索引値であることから、送信するパケットの宛先をメータ８６ｃに決定する。転送先特定部４１ａ＿８５は、入力されたペイロードの転送情報から、メータ８６ｃの装置索引値を削除した後で、ペイロードを転送処理部２１ａ＿８５に出力する。
【０１１２】
（ｄ９）転送処理部２１ａ＿８５は、メータ８６ｃへのパケットの送信を行うために、ペイロードの先頭に、ＵＡＲＴヘッダを付し、送受信部１１を介してメータ８６ｃに送信する。
【０１１３】
（ｄ１０）メータ８６ｃは、メータボックス８５に接続しているポートを介してパケットを受信する。メータボックス８５との間の通信に使用されるパケット処理部２０＿８６ｃは、ＵＡＲＴヘッダを削除した後のペイロードを、メータボックス８５との間の通信に使用される送信元付加部４２＿８６ｃに出力する。送信元付加部４２＿８６ｃは、通信方向情報を用いてサーバから送信されたパケットを受信したと判定すると、ペイロードを決定部５２＿８６ｃに出力する。決定部５２＿８６ｃが取得するペイロード中の転送情報の要素は、メータ８６ｃのアプリケーションの索引値である。そこで、決定部５２＿８６ｃは、ペイロードから送信元情報と転送情報を除去し、データをアプリケーション処理部７０＿８６ｃに出力する。
【０１１４】
＜その他＞
なお、本発明は上記の実施形態に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
【０１１５】
上記の説明では、サーバ宛のパケットがネットワーク間で中継されるたびに、中継処理を行う装置が、転送情報の末尾にネットワーク索引値と装置索引値を付す場合を例として説明したが、ネットワーク索引値と装置索引値が追加される位置は転送情報の先頭でも良い。すると、サーバ側から送信されるパケットの経路情報として使用されるとき、サーバからのホップ数が小さい中継装置１０ほど、転送装置の先頭側の情報を用いて、転送処理を行う。
【０１１６】
図３では、パケット処理部２０に含まれている各転送処理部２１が使用するルーティングテーブル２２を転送処理部２１の外に図示したが、ルーティングテーブル２２が保持される位置は、プロトコルによって様々に変形されうる。例えば、ルーティングテーブル２２はプロトコルによって、転送処理部２１の内部に保持されていても良い。さらに、ルーティングに２種類のプロトコルが使用される場合などは、パケット処理部２０にあるルーティングテーブル２２と転送処理部２１の内部に保持しているルーティングテーブル２２の２種類を使用しても良い。
【符号の説明】
【０１１７】
１０  中継装置
１１  送受信部
２０  パケット処理部
２１  転送処理部
２２  ルーティングテーブル
４０  転送情報処理部
４１  転送先特定部
４２  送信元付加部
５０  ディスパッチャ
５１  転送元情報付加部
５２  決定部
６０  記憶部
６１  振り分けテーブル
６２  転送先テーブル
７０  アプリケーション処理部
８１  サーバ
８２  ＩＰネットワーク
８３  ゲートウェイ
８４  アドホックネットワーク
８５  メータボックス
８６  メータ
３０１  プロセッサ
３０２  ＲＯＭ
３０３  ＲＡＭ
３０４  通信インタフェース
３０６  センサ
３０７  アクチュエータ
３０８  バス
【図１】
2015151184.tif 000003
【図２】
2015151184.tif 000004
【図３】
2015151184.tif 000005
【図４】
2015151184.tif 000006
【図５】
2015151184.tif 000007
【図６】
2015151184.tif 000008
【図７】
2015151184.tif 000009
【図８】
2015151184.tif 000010
【図９】
2015151184.tif 000011
【図１０】
2015151184.tif 000012
【図１１】
2015151184.tif 000013
【図１２】
2015151184.tif 000014
【図１３】
2015151184.tif 000015
【図１４】
2015151184.tif 000016
【図１５】
2015151184.tif 000017
【図１６】
2015151184.tif 000018
【図１７】
2015151184.tif 000019
【図１８】
2015151184.tif 000020
【国際調査報告】
2015151184.tif 000021
2015151184.tif 000022