(57)【特許請求の範囲】
【請求項１】
複数のノードで構成され、前記ノードがアドホックネットワークを構成する通信システムであって、
データの送信元であるソースノードは、データの宛先であるターゲットノードまでのルートを探索するためのルート要求を送信し、
ルート要求を受信した前記ターゲットノード以外の前記ノードは、受信したルート要求である受信ルート要求に格納されたホップ数と、前記受信ルート要求の受信より前に自ノードが受信して転送したルート要求に格納されたホップ数である既受信ホップ数と、に基づいて前記受信ルート要求を転送するか否かを判定し、転送すると判定した場合は前記受信ルート要求に中継ノードとして自ノードの識別情報を付加し、付加後の前記受信ルート要求を転送し、また転送すると判定した前記受信ルート要求に格納されたホップ数を前記既受信ホップ数として保持し、さらに転送すると判定した前記受信ルート要求に格納された当該受信ルート要求を中継したルートを示すルート情報を保持し、
前記ターゲットノードは、受信したルート要求に格納されたルート情報に基づいて、自ノードから前記ソースノードまでの複数のルートを選択ルートとして選択し、前記選択ルートを格納したルート応答を前記ソースノードへ向けて送信し、
前記ルート応答を受信した前記ノードは、保持している前記ルート情報に、当該ルート応答に格納された選択ルートとノードの重複がないルートがある場合、当該ルートを受信した前記ルート応答に追加ルートとして付加し、付加後のルート応答を新たなルート応答として前記ソースノードへ向けて送信し、
前記ソースノードは、受信したルート応答に格納されたルートに基づいて、ネットワークコーディングを用いて転送を行う複数のルートを決定し、決定した複数のルートを用いて、前記データを、ネットワークコーティングにより前記ターゲットノードへ向けて送信する、
ことを特徴とする通信システム。
【請求項２】
前記ターゲットノードは、前記選択ルートとして、ソースノードとの間の最短ホップのルートと、前記最短ホップのルートと最大限ノードの重なりのないルートと、を選択する、
ことを特徴とする請求項１に記載の通信システム。
【請求項３】
前記ソースノードは、同一のルート要求に対応するルート応答に格納された前記選択ルートと前記追加ルートとの両方で構成されるルート群を、前記複数のルートとして決定する、
ことを特徴とする請求項１または２に記載の通信システム。
【請求項４】
複数のノードで構成され、前記ノードがアドホックネットワークを構成する通信システムにおける経路選択方法であって、
データの送信元であるソースノードが、データの宛先であるターゲットノードまでのルートを探索するためのルート要求を送信するルート要求送信ステップと、
ルート要求を受信した前記ターゲットノード以外の前記ノードが、受信したルート要求である受信ルート要求に格納されたホップ数と、前記受信ルート要求の受信より前に自ノードが受信して転送したルート要求に格納されたホップ数である既受信ホップ数と、に基づいて前記受信ルート要求を転送するか否かを判定し、転送すると判定した場合は前記受信ルート要求に中継ノードとして自ノードの識別情報を付加し、付加後の前記受信ルート要求を転送し、また転送すると判定した前記受信ルート要求に格納されたホップ数を前記既受信ホップ数として保持し、さらに転送すると判定した前記受信ルート要求に格納された当該受信ルート要求を中継したルートを示すルート情報を保持するルート要求中継ステップと、
前記ターゲットノードが、受信したルート要求に格納されたルート情報に基づいて、自ノードから前記ソースノードまでの複数のルートを選択ルートとして選択し、前記選択ルートを格納したルート応答を前記ソースノードへ向けて送信するルート応答送信ステップと、
前記ルート応答を受信した前記ノードが、保持している前記ルート情報に、当該ルート応答に格納された選択ルートとノードの重複がないルートがある場合、当該ルートを受信した前記ルート応答に追加ルートとして付加し、付加後のルート応答を新たなルート応答として前記ソースノードへ向けて送信するルート応答中継ステップと、
前記ソースノードが、受信したルート応答に格納されたルートに基づいて、ネットワークコーディングを用いて転送を行う複数のルートを決定し、決定した複数のルートを用いて、前記データを、ネットワークコーティングにより前記ターゲットノードへ向けて送信する経路決定ステップと、
を含むことを特徴とする経路選択方法。
【請求項５】
複数のノードで構成され、前記ノードがアドホックネットワークを構成し、データの送信元である前記ノードをソースノードとし、データの宛先である前記ノードをターゲットノードとする通信システムにおいて、前記ノードとして動作する通信装置であって、
前記ソースノードである場合、データの宛先であるターゲットノードまでのルートを探索するためのルート要求を送信し、
前記ターゲットノード以外のノードである場合、ルート要求を受信すると、受信したルート要求である受信ルート要求に格納されたホップ数と、前記受信ルート要求の受信より前に自ノードが受信して転送したルート要求に格納されたホップ数である既受信ホップ数と、に基づいて前記受信ルート要求を転送するか否かを判定し、転送すると判定した場合は前記受信ルート要求に中継ノードとして自ノードの識別情報を付加し、付加後の前記受信ルート要求を転送し、また転送すると判定した前記受信ルート要求に格納されたホップ数を前記既受信ホップ数として保持し、さらに転送すると判定した前記受信ルート要求に格納された当該受信ルート要求を中継したルートを示すルート情報を保持し、
前記ターゲットノードである場合、受信したルート要求に格納されたルート情報に基づいて、自ノードから前記ソースノードまでの複数のルートを選択ルートとして選択し、前記選択ルートを格納したルート応答を前記ソースノードへ向けて送信し、
前記ルート応答を受信した場合には、保持している前記ルート情報に、当該ルート応答に格納された選択ルートとノードの重複がないルートがある場合、当該ルートを受信した前記ルート応答に追加ルートとして付加し、付加後のルート応答を新たなルート応答として前記ソースノードへ向けて送信し、
前記ソースノードである場合、受信したルート応答に格納されたルートに基づいて、ネットワークコーディングを用いて転送を行う複数のルートを決定し、決定した複数のルートを用いて、前記データを、ネットワークコーティングにより前記ターゲットノードへ向けて送信する、
ことを特徴とする通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システムおよび経路選択方法に関する。
【背景技術】
【０００２】
通信装置（以下、ノードという）を通信路（以下、リンクという）で接続したネットワークで、発信元から宛先に向けて情報を伝送する際、従来の一般のパケット通信では、各ノードが、自身に入力された情報を所望の宛先に向けて出力する交換処理が行なわれていた。交換処理では、パケットを宛先に向けて振り分けるだけで、パケット内のユーザ情報に処理を施さない。
【０００３】
これに対し、近年注目されているネットワークコーディング技術では、各ノードは、交換処理だけでなくコーディング（符号化）も行ない、ネットワーク全体として効率的な伝送ができるように工夫している（例えば下記特許文献１および下記非特許文献１参照）。
【０００４】
ネットワークコーディングの第一の特長は、伝送の効率化すなわち帯域等の通信資源の有効利用である。これまでのネットワークコーディングの技術では、多数の宛先に向けて送信すべき情報を、広く効率的に伝達する方法が提案されている。
【０００５】
また、下記特許文献２には、ネットワークコーディングを採用する通信システムにおいて、不要な通信を可能な限り回避して高信頼性を確保する方法が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−３１６９３号公報
【特許文献２】特開２００９−２８４２７１号公報
【非特許文献】
【０００７】
【非特許文献１】R．Ahlswede  et．al．“Network  information  flow”IEEE（The  Institute  of  Electrical  and  Electronics  Engineers）  trans.  On  Information  Theory，vol．46，no．4，July，2000，pp．1204−1216
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記従来のネットワークコーディングの技術によれば、多数の宛先に効率良く伝送する方法が提案されており、特定の単一宛先に対してルートを冗長化して確実に情報を伝送することは考慮されていない、という問題があった。
【０００９】
また、上記特許文献２に記載の方法では、ネットワークコーディングで利用帯域を最大化するための各ノードでノードディスジョイントとなるルートを決定するために、対象となるネットワークのトポロジが既知である必要がある、という問題があった。ノードディスジョイントとは、複数のルートが存在した場合に、そのルート同士で重複したノードがないことを意味する。
【００１０】
本発明は、上記に鑑みてなされたものであって、ネットワークトポロジが不明な場合に、特定の単一宛先に対して、経路を冗長化したネットワークコーディングによる高信頼通信を実現することができる通信システムおよび経路選択方法を得ることを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、本発明は、複数のノードで構成され、前記ノードがアドホックネットワークを構成する通信システムであって、データの送信元であるソースノードは、データの宛先であるターゲットノードまでのルートを探索するためのルート要求を送信し、ルート要求を受信した前記ターゲットノード以外の前記ノードは、受信したルート要求である受信ルート要求に格納されたホップ数と、前記受信ルート要求の受信より前に自ノードが受信して転送したルート要求に格納されたホップ数である既受信ホップ数と、に基づいて前記受信ルート要求を転送するか否かを判定し、転送すると判定した場合は前記受信ルート要求に中継ノードとして自ノードの識別情報を付加し、付加後の前記受信ルート要求を転送し、また転送すると判定した前記受信ルート要求に格納されたホップ数を前記既受信ホップ数として保持し、さらに転送すると判定した前記受信ルート要求に格納された当該受信ルート要求を中継したルートを示すルート情報を保持し、前記ターゲットノードは、受信したルート要求に格納されたルート情報に基づいて、自ノードから前記ソースノードまでの複数のルートを選択ルートとして選択し、前記選択ルートを格納したルート応答を前記ソースノードへ向けて送信し、前記ルート応答を受信した前記ノードは、保持している前記ルート情報に、当該ルート応答に格納された選択ルートとノードの重複がないルートがある場合、当該ルートを受信した前記ルート応答に追加ルートとして付加し、付加後のルート応答を新たなルート応答として前記ソースノードへ向けて送信し、前記ソースノードは、受信したルート応答に格納されたルートに基づいて、ネットワークコーディングを用いて転送を行う複数のルートを決定し、決定した複数のルートを用いて、前記データを、ネットワークコーティングにより前記ターゲットノードへ向けて送信する、ことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ネットワークトポロジが不明な場合に、特定の単一宛先に対して、経路を冗長化したネットワークコーディングによる高信頼通信を実現することができる、という効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、ノードの機能構成例を示す図である。
【図２】図２は、通信システムの構成例を示す図である。
【図３】図３は、ルート要求ＲＲＥＱパケットの伝搬の一例を示す図である。
【図４】図４は、ＲＲＥＱ転送処理手順の一例を示すフローチャートである。
【図５−１】図５−１は、管理テーブルの一例を示す図である。
【図５−２】図５−２は、管理テーブルの一例を示す図である。
【図５−３】図５−３は、管理テーブルの一例を示す図である。
【図５−４】図５−４は、管理テーブルの一例を示す図である。
【図５−５】図５−５は、管理テーブルの一例を示す図である。
【図５−６】図５−６は、管理テーブルの一例を示す図である。
【図５−７】図５−７は、管理テーブルの一例を示す図である。
【図５−８】図５−８は、管理テーブルの一例を示す図である。
【図６】図６は、ＲＲＥＰの伝搬の一例を示す図である。
【図７】図７は、ＲＲＥＰ転送処理手順の一例を示すフローチャートである。
【図８−１】図８−１は、ＲＲＥＰがソースノードまで到達した後にノード１０１〜１０８が保持する管理テーブルの一例を示す図である。
【図８−２】図８−２は、ＲＲＥＰ受信後の管理テーブルの一例を示す図である。
【図８−３】図８−３は、ＲＲＥＰ受信後の管理テーブルの一例を示す図である。
【図８−４】図８−４は、ＲＲＥＰ受信後の管理テーブルの一例を示す図である。
【図８−５】図８−５は、ＲＲＥＰ受信後の管理テーブルの一例を示す図である。
【図８−６】図８−６は、ＲＲＥＰ受信後の管理テーブルの一例を示す図である。
【図８−７】図８−７は、ＲＲＥＰ受信後の管理テーブルの一例を示す図である。
【図８−８】図８−８は、ＲＲＥＰ受信後の管理テーブルの一例を示す図である。
【発明を実施するための形態】
【００１４】
以下に、本発明にかかる通信システムおよび経路選択方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１５】
実施の形態．
図１は、本発明にかかる実施の形態の通信装置（以下、ノードという）１０の機能構成例を示す図である。本実施の形態のノード１０は移動可能な通信装置であり、図１に示すように、アンテナ１１と、所定の無線送受信処理を行う無線通信部１２と、ルーティング処理を行うルート構築部１３と、パケットを符号化する符号化部１４と、パケットを復号化する復号化部１５と、ルーティング情報や受信データ等を保持しておくための記憶手段であるメモリ１６と、で構成されている。なお、本実施の形態では、ノード１０を移動可能な通信装置としているが、ノード１０は移動しない通信装置であってもよい。
【００１６】
図２は、本実施の形態の通信システムの構成例を示す図である。本実施の形態の通信システムは、ノード１０１〜１０８で構成される。ノード１０１〜１０８は、それぞれ図１で示したノード１０と同様の構成を有する。また、ノード１０１〜１０８は、アドホックネットワークを構成する。なお、ここでは、ノード数が８の場合を例に説明するが、通信システムを構成するノード数はこれに限らず何台としてもよい。
【００１７】
つぎに、本実施の形態の動作を説明する。ここでは、本実施の形態の通信システムすなわち本実施の形態のアドホックネットワークにおいて、新規にノード１０１をソースノードとし、ノード１０８をターゲットノードとするトラフィックを送信する手続きを説明する。なお、本実施の形態のアドホックネットワークでは、リアクティブルーティングプロトコルによる経路探索を実施する。
【００１８】
ソースノードであるノード１０１では、新規にターゲットノードであるノード１０８に対して送信するデータが生じると、ノード１０８までのトラフィック送信ルート（データ送信経路）を探索するために、ルート構築部１３がルート要求ＲＲＥＱ（Route  Request）パケットを作成し、無線通信部１２およびアンテナ１１を介して近隣ノードへブロードキャストする。具体的には、ルート構築部１３は、作成したルート要求ＲＲＥＱパケットをメモリ１６へ格納し、無線通信部１２はメモリ１６に格納されたルート要求ＲＲＥＱパケットを読み出して、読み出したパケットに所定の無線送信処理を実施し、処理後のパケットをアンテナ１１経由で無線信号として送出する。
【００１９】
ルート要求ＲＲＥＱパケットには、ソースノードＩＤ（Identifier），ターゲットノードＩＤ，メッセージＩＤ，ＲＲＥＱＩＤ，ホップノードＩＤが記載されている。ルート要求ＲＲＥＱパケットのメッセージＩＤとしては、パケットがＲＲＥＱであることを示す値が格納され、ＲＲＥＱＩＤはルートのループを防ぐためにＲＲＥＱを識別するための番号が格納される。また、ホップノードＩＤは当該ＲＲＥＱパケットを転送したノードＩＤが記載されている。ルート要求ＲＲＥＱパケットを受信したノードでは、ルート構築部１３が、アンテナ１１および無線通信部１２経由で受信したルート要求ＲＲＥＱパケットに対してＲＲＥＱ転送処理をする。
【００２０】
図３は、ルート要求ＲＲＥＱパケットの伝搬の一例を示す図である。図３は、上述のようにノード１０１がノード１０８へのトラフィック送信ルートを探索するためのルート要求ＲＲＥＱパケットを送信した場合のルート要求ＲＲＥＱパケットの伝搬の様子を示している。各矢印は、ルート要求ＲＲＥＱパケットの伝搬方向を示し、矢印に付されている括弧内は、それまでにルート要求ＲＲＥＱパケットが経由したノード（すなわち経路）を示している。なお、括弧内の数値は、各ノードの識別子を示し、ここではノードＮ（Ｎ＝１０１，１０２，…，１０８）の識別子をＮとして示している。
【００２１】
たとえば、ノード１０１には、ノード１０２とノード１０３が隣接しており、ノード１０１から送信されたルート要求ＲＲＥＱパケットは、ノード１０２およびノード１０３で受信される。ノード１０２は、ノード１０６および１０４に受信したルート要求ＲＲＥＱパケットを転送する。この際、ノード１０２は、ホップノードＩＤには、自ノードのＩＤを追加して転送する。以降、同様に順次転送が行なわれ、ノード１０８までルート要求ＲＲＥＱパケットが到着する。
【００２２】
図４は、本実施の形態のＲＲＥＱ転送処理手順の一例を示すフローチャートである。ノード１０１〜１０８では、ルート構築部１３が、ルート要求ＲＲＥＱパケット（以下、ＲＲＥＱという）を受信する（ステップＳ１１）と、当該ＲＲＥＱを転送処理の対象ＲＲＥＱとし、当該ＲＲＥＱに記載されている、ＲＲＥＱＩＤとホップノードＩＤ（そのＲＲＥＱがこれまで経由したノードＩＤのリスト）とを対応付けてメモリ１６の管理テーブル（ルーティング管理テーブル）に記録する（ステップＳ１２）。なお、この際、受信したＲＲＥＱのソースノードＩＤとターゲットノードＩＤともＲＲＥＱＩＤと対応付けて管理テーブルに格納する。また、受信したＲＲＥＱのターゲットノードＩＤを自身のＩＤと比較し、自身がターゲットノードであるか（自身宛のＲＲＥＱか）否かを判断する（ステップＳ１３）。
【００２３】
自身宛のＲＲＥＱでない場合（ステップＳ１３  Ｎｏ）、管理テーブルを参照し、これまでに受信したＲＲＥＱのＲＲＥＱＩＤ（管理テーブルに記録されているＲＲＥＱＩＤのうち、処理対象のＲＲＥＱに対応する情報を除くＲＲＥＱＩＤ）に、処理対象のＲＲＥＱのＲＲＥＱＩＤと一致するＩＤがあるか否かを判定する（ステップＳ１４）。
【００２４】
これまでに受信したＲＲＥＱのＲＲＥＱＩＤに処理対象のＲＲＥＱのＲＲＥＱＩＤと一致するＩＤがある場合（ステップＳ１４  Ｙｅｓ）、一致したＲＲＥＱＩＤに対応するホップ数を管理テーブルから読み出し、処理対象のＲＲＥＱに記載されているホップ数（受信ＲＲＥＱのホップ数）が読み出したホップ数（既受信ＲＲＥＱのホップ数）以下であるか否かを判定する（ステップＳ１５）。
【００２５】
受信ＲＲＥＱのホップ数が既受信ＲＲＥＱのホップ数以下である場合（ステップＳ１５  Ｙｅｓ）、自身のノードＩＤを処理対象のＲＲＥＱのホップノードＩＤとして追記し、追記した後のＲＲＥＱを無線通信部１２およびアンテナ１１経由でブロードキャストにより送信し（ステップＳ１６）、ＲＲＥＱ転送処理を終了する。
【００２６】
ステップＳ１３で、自身宛のＲＲＥＱであると判断した場合（ステップＳ１３  Ｙｅｓ）は、そのＲＲＥＱは転送せずに、ＲＲＥＱ転送処理を終了する。また、ステップＳ１４で、これまでに受信したＲＲＥＱのＲＲＥＱＩＤに処理対象のＲＲＥＱのＲＲＥＱＩＤと一致するＩＤがないと判断した場合は（ステップＳ１４  Ｎｏ）、ステップＳ１６へ進む。
【００２７】
また、ステップＳ１５で、受信ＲＲＥＱのホップ数が既受信ＲＲＥＱのホップ数より大きいと判断した場合（ステップＳ１５  Ｎｏ）、処理対象のＲＲＥＱを破棄し（ステップＳ１７）、ＲＲＥＱ転送処理を終了する。
【００２８】
以上のように、本実施の形態では、各ノードは、同一のＲＲＥＱＩＤのＲＲＥＱを複数回受信した場合、受信したＲＲＥＱのホップ数が、既に受信した同一のＲＲＥＱＩＤのＲＲＥＱのホップ数以下の場合に、受信したパケットを転送する。
【００２９】
なお、上述の例では、受信したＲＲＥＱの情報（ホップ数、ＲＲＥＱＩＤ等）をステップＳ１２で管理テーブルに書き込むようにしているが、これに限らず、ステップＳ１６の直前等に受信したＲＲＥＱについての情報を管理テーブルに書き込む等、受信したＲＲＥＱについての情報を管理テーブルに格納できれば上記の手順以外でもよい。
【００３０】
例えば、図３のノード１０４は、ノード１０２、ノード１０３からそれぞれＲＲＥＱを受信するが、ＲＲＥＱに記載されているホップノード数がいずれも２であるため、どちらのＲＲＥＱもブロードキャストすることで、選択可能なルートを増やす。一方、ノード１０６はノード１０２とノード１０５からそれぞれＲＲＥＱを受信するが、ノード１０２からのＲＲＥＱに記載されているホップノード数が２に対して、ノード１０５からのＲＲＥＱはホップノード数が４であるため、ノード１０２からのＲＲＥＱのみブロードキャストすることで、ＲＲＥＱの送信数を削減する。
【００３１】
図５−１〜５−８は、ノード１０１〜ノード１０８が保持する管理テーブルの一例を示す図である。図５−１〜図５−８は、図３の例で示したようにノード１０１からノード１０８へのＲＲＥＱが伝播した後の管理テーブルを示している。図５−１はノード１０１が、図５−２はノード１０２が、図５−３はノード１０３が、図５−４はノード１０４が、図５−５はノード１０５が、図５−６はノード１０６が、図５−７はノード１０７が、図５−８はノード１０８が、それぞれ保持する管理テーブルを示している。各ノードが保持する管理テーブルは、ソースノードＩＤ（ソース），ターゲットノードＩＤ（ターゲット），ＲＲＥＱＩＤ，自ノードまでのディスジョイントなルートの有無（disjoint），ホップノードＩＤ（ソースノード（図５−１）ではホップノードは無いためターゲットノードまでのルート）で構成される。
【００３２】
ソースノードであるノード１０１では、ソースノードＩＤとして自身のＩＤ（この例では１０１）を格納し、ターゲットノードＩＤとしてＲＲＥＱで送信するターゲットノードＩＤ（この例では１０８）を格納する。また、ＲＲＥＱＩＤは、ＲＲＥＱを識別するための数値（ここでは一例として「１」とする）を格納する。disjointおよびルートについては、自身がソースノードであることから情報は格納しない。
【００３３】
ＲＲＥＱを受信する各ノードは、受信したＲＲＥＱに格納されたソースノードＩＤ（ソース），ターゲットノードＩＤ，ＲＲＥＱＩＤ，ホップノードＩＤを管理テーブルに格納する。なお、ここでは、同一のＲＲＥＱＩＤのＲＲＥＱの経路（ホップノード）について、ソースノードからそのノードまでにディスジョイントなルートが存在する場合に、当該ノードをディスジョイントなノードとする。自ノードまでのディスジョイントなルートの有無（disjoint）については、ソースノードから自ノードまでのルートにディスジョイントなノードが存在する場合に、当該ノードのノードＩＤを記載する。
【００３４】
ターゲットノードであるノード１０８では、ルート構築部１３が、同一のＲＲＥＱＩＤのＲＲＥＱのうち最初に到着したＲＲＥＱを受信してから一定時間待機した後、管理テーブルのホップノードＩＤに登録されているルートを記載したルート応答ＲＲＥＰ（Route  Reply）パケット（以下、ＲＲＥＰという）を作成し無線通信部１２およびアンテナ１１経由でソースノード１０１へ向けて送信する。一定時間待機するのは、同一のＲＲＥＱＩＤの他のＲＲＥＱ（他の経路で到着するＲＲＥＱ）がないかを確認するためである。待機している間に、他の経路を経由した同一ＲＲＥＱＩＤのＲＲＥＱが到着した場合には、それらの他の経路を経由したＲＲＥＱに基づいてさらに管理テーブルに情報が追加される。
【００３５】
ノード１０８では、上述のルート応答ＲＲＥＰパケットの送信の際、自身が保持する管理テーブルにソースノード１０１からターゲットノード１０８までの複数のルートが存在する場合は、最短ホップのルートと、その最短ホップのルートと最大限ノードディスジョイントなルート（最短ホップのルートと最大限ノードの重なりのないルート）と、の２つのルートを選択し、それぞれのルート用にＲＲＥＰを作成して各々の選択ルートで送信する。ＲＲＥＰには、そのＲＲＥＰが送信されるルート（ホップノードＩＤ）が記載され、また宛先として返信先であるノード１０１が記載される。またＲＲＥＰには、どのＲＲＥＱについての返信が識別できるように対応するＲＲＥＱのＲＲＥＱＩＤも記載されているとする。
【００３６】
図６は、ＲＲＥＰの伝搬の一例を示す図である。図７は、ＲＲＥＰを受信したノードのＲＲＥＰ転送処理手順の一例を示すフローチャートである。図６に示す例では、図３で示したようにソースノード１０１からＲＲＥＱをターゲットノードであるノード１０８が受信した場合に、ノード１０８からノード１０１への返信であるＲＲＥＰが各ノードで転送される様子を示している。
【００３７】
ターゲットノードであるノード１０８は、自身の管理テーブルに基づいてソースノード（ノード１０１）へのルートを選択する。この場合、ノード１０８が保持する管理テーブルに格納されている２つのルートはホップ数が同じであり、また互いにノードディスジョイントなルートであることから、この２つのルートをソースノード（ノード１０１）へのルートとして選択する（この２つのルートが最短ホップのルートと、その最短ホップのルートと最大限ノードディスジョイントなルートと、に対応する）。そして、ルート（ホップノードＩＤ）として１０１−１０２−１０６−１０８が記載されているＲＲＥＰをノード１０６へ、ルートとして１０１−１０３−１０７−１０８が記載されているＲＲＥＰをノード１０７へそれぞれ無線通信部１２およびアンテナ１１を経由して送信する。
【００３８】
ＲＲＥＰを受信したノードは、図７に示すＲＲＥＰ転送処理を実施する。ノード１０１〜１０８では、ＲＲＥＰを受信すると、ルート構築部１３が、受信したＲＲＥＰに記載のホップノードＩＤを管理テーブルに登録し（ステップＳ２２）し、自身宛のＲＲＥＰか否かを判定する（ステップＳ２３）。なお、ステップＳ２２で管理テーブルに登録する際に、ノード１０１から自ノードのまえの間のルートは登録されているため、対応するルートをＲＥＥＰに格納されたルートに更新する。例えば、ノード１０７では、１０１−１０３のルートは既に登録されているため、このルートの代わりに１０１−１０３−１０７−１０８を登録する。
【００３９】
自身宛のＲＲＥＰであると判定した場合（ステップＳ２３  Ｙｅｓ）、ＲＲＥＰ転送処理を終了する。自身宛のＲＲＥＰでないと判定した場合（ステップＳ２３  Ｎｏ）、ルート構築部１３は、受信したＲＲＥＰにＤフラグがセットしてあるか否かを判定する（ステップＳ２４）。Ｄフラグは、ＲＲＥＰに対してターゲットノード以外のノードでディスジョイントなルートをＲＲＥＰにより通知したか否かを判定するフラグである。例えば、Ｄフラグを２値のフラグとし、Ｄフラグの値が１の場合にセットされているとし、Ｄフラグの値が０の場合にセットされていないとする。
【００４０】
受信したＲＲＥＰにＤフラグがセットされていない場合（ステップＳ２４  Ｎｏ）、ルート構築部１３は、受信したＲＲＥＰに記載されたルートに対して、自ノードからソースノードまでの間でディスジョイントなルートを、自身の管理テーブルに保持しているか否かを判定する（ステップＳ２５）。ディスジョイントなルートを、自身の管理テーブルに保持していると判定した場合（ステップＳ２５  Ｙｅｓ）、ルート構築部１３は、当該ディスジョイントなルートにターゲットノードまでのルート（受信したＲＲＥＰが経由したルート）を追加した新たなルートを生成し、この新たなルートを記載したＲＲＥＰを新たに作成する（ステップＳ２６）。また、管理テーブルの当該ディスジョイントなルートを、新たなルート（ターゲットまでのルートを含むルート）に更新する。そして、受信したＲＲＥＰと新たに作成したＲＲＥＰとにそれぞれＤフラグをセットし（ステップＳ２７）、ＤフラグをセットしたそれぞれのＲＲＥＰを、各々に記載のルートの次ノードへ無線通信部１２およびアンテナ１１経由で送信し（ステップＳ２８）、ＲＲＥＰ転送処理を終了する。
【００４１】
ＲＲＥＰにＤフラグがセットしてある場合（ステップＳ２４  Ｙｅｓ）、ステップＳ２８へ進む。この場合、ステップＳ２８では、ルート構築部１３は、受信したＲＲＥＰに記載のルートの次ノードに対して、受信したＲＲＥＰを無線通信部１２およびアンテナ１１経由で転送する。また、ステップＳ２５でディスジョイントなルートを、自身の管理テーブルに保持していないと判断した場合（ステップＳ２５  Ｎｏ）、ステップＳ２８へ進む。この場合、ステップＳ２８では、ルート構築部１３は、受信したＲＲＥＰに記載のルートの次ノードに対して、受信したＲＲＥＰを無線通信部１２およびアンテナ１１経由で転送する。
【００４２】
図７の例で、ノード１０６では、ノード１０８から１０１−１０２−１０６−１０８のルートが記載されたＲＲＥＰを受信する。ノード１０６の管理テーブルには、図５−６に示すように、１０１−１０２−１０６−１０８のルートに対して自ノードからソースノードの間でディスジョイントなルート１０１−１０３−１０４−１０５が存在する。このため、ノード１０６は、このディスジョイントなルートにターゲットノードまでのルートを追加した新たなルート１０１−１０３−１０４−１０５−１０６−１０８を記載したＲＲＥＰを作成する。そして、受信したＲＲＥＰと、新たに作成したＲＲＥＰのそれぞれにＤフラグをセットし、それぞれのルートへ転送する。
【００４３】
また、図６では、各リンクを通過するＲＲＥＰに記載されているルート（ホップノードＩＤ）を括弧内に記載している。また、Ｄフラグがセットされている場合にＤと記載している。図６の例では、ノード１０６およびノード１０７では、ＲＲＥＰに記載されているルートに対してディスジョイントなルートが存在するため、Ｄフラグがセットされ、受信したＲＲＥＰに記載されているルートと、ディスジョイントなルートの２つにそれぞれＲＲＥＰが転送される。
【００４４】
図８−１〜図８−８は、ＲＲＥＰを受信した後にノード１０１〜１０８が保持する管理テーブルの一例を示す図である。図８−１はノード１０１が、図８−２はノード１０２が、図８−３はノード１０３が、図８−４はノード１０４が、図８−５はノード１０５が、図８−６はノード１０６が、図８−７はノード１０７が、図８−８はノード１０８が、それぞれ保持する管理テーブルを示している。
【００４５】
ソースノード１０１は、図８−１に示すように、ターゲットノード１０８までの利用可能なルートとして、ノード１０６までディスジョイントであるルート１０１−１０２−１０６−１０８とルート１０１−１０３−１０４−１０５−１０６−１０８とを保持し、またノード１０７までディスジョイントなルートであるルート１０１−１０３−１０７−１０８とルート１０１−１０２−１０４−１０５−１０７−１０８とを保持している。
【００４６】
そして、以上の手順によりターゲットノード１０８までのルートを取得したソースノード１０１は、ターゲットノード１０８へデータトラフィックを送信する場合に、管理テーブルに格納されているディスジョイントなノード１０６、１０７までネットワークコーディングによるデータ転送を行う。そして、ノード１０６，１０７以降のノードは、自身が受信した符号化されたパケットを、ターゲットノード１０８まで転送する。
【００４７】
ソースノード１０１は、自身の管理テーブルのルート（ホップノードＩＤ）を参照し、ディスジョイントなノード１０６までに利用可能なルート（ホップノードおよびリンク）と、ディスジョイントなノード１０７（ホップノードおよびリンク）までのルートと、の論理和をとり、この論理和をネットワークコーティングに用いるルートとする。すなわち、この論理和のうち複数のルートにより重複して用いられるノードを符号化ノードとする。なお、ネットワークコーティングに用いるルートは、データトラフィックの送信に先立ち、ソースノード１０１から、ネットワークコーティングに用いるルート上の各ノードに通知されるとする。
【００４８】
各ノード１０１〜１０８では、ネットワークコーティングに用いるルートに基づいて、通常のネットワークコーディングと同様に、自ノードへのデータの入力リンクが１つの場合は受信したデータをそのまま送信し、自ノードへのデータの入力リングが複数の場合には、複数の入力リンクから受信したデータに対して所定の符号化を行って送信する。
【００４９】
具体的には、ソースノード１０１は、例えば、図示しないデータ生成部が生成してメモリ１６に書き込まれたデータａ，データｂを、ルート構築部１３がメモリ１６から読み出して２つの出力リンク（ノード１０２との間のリンク，ノード１０３との間のリンク）にそれぞれ無線通信部１２およびアンテナ１１経由で送信する。
【００５０】
そして、中継ノードであるノード１０２〜１０７は、アンテナ１１経由で受信したデータを無線通信部１２がメモリ１６へ書き込む。ルート構築部１３は、上述のソースノード１０１から通知されたネットワークコーティングに用いるルートに基づいて、自ノードへのデータの入力リンク数を保持している。ルート構築部１３は、自ノードへの入力リンク数が１つの場合には、メモリ１６へ書き込まれたデータをそのまま無線通信部１２およびアンテナ１１経由で次ノードへ転送する。
【００５１】
自ノードへのデータの入力リンク数が複数の場合は、ルート構築部１３は、その複数の入力リンクから受信してメモリ１３に書き込まれた受信したデータ（複数の入力リンク分）を符号化部１４へ出力し、符号化部１４は、受信したデータに対して所定の符号化処理を行った後に、メモリ１６へ書き込む。そして、ルート構築部１３は、符号化後のデータを読み出して、無線通信部１２およびアンテナ１１経由で次ノードへ送信する。符号化部１４が行なう符号化方式はどのような方式を用いてもよく、排他的論理和としてもよいし、排他的論理和以外の符号化方式を行なうこととし、符号化方式が送信データに付加されるような方式でもよい。
【００５２】
また、ターゲットノード１０８では、自身への入力リンク分の受信したデータがメモリ１６へ書き込まれると、復号化部１５が、メモリ１６へ書き込まれた受信したデータを復号する。このようにして、ターゲットノード１０８は、ソースノード１０１から送信されたデータを得ることができる。
【００５３】
なお、本実施の形態では、中継ノード（ノード１０２〜ノード１０７）は、ＲＲＥＱを受信する度にＲＲＥＱ転送処理を行う例を説明したが、これに限らず、例えば、ＲＲＥＱ受信後所定の時間、転送を行なわず待機することにより、同一のＲＲＥＱＩＤを有する複数ＲＲＥＱを受信した後に、同一のＲＲＥＱＩＤのＲＲＥＱをまとめて転送処理を行っても良い。この場合、上述の例と同様に、ＲＲＥＱを受信した順に管理テーブルにそのＲＲＥＱのホップ数を格納しておき、ＲＲＥＱの受信のたびに既受信のＲＲＥＱ（同一ＲＲＥＱＩＤのＲＲＥＱ）のホップ数を超える場合にはＲＲＥＱを破棄するようにしてもよいし、同一のＲＲＥＱＩＤの複数ＲＲＥＱについてホップ数の少ない順に所定の個数分ＲＲＥＱを選択して転送し、選択されなかったＲＲＥＱを破棄するようにしてもよい。
【００５４】
このように、本実施の形態では、ソースノード１０１は、ターゲットノード１０８へデータトラフィックを送信する場合に、転送したＲＲＥＱに記載されたホップノード数を管理テーブルに格納し、新たにＲＲＥＱを受信した場合には、ＲＲＥＱに記載されたホップノード数と管理テーブルに記載のホップノード数を比較し、管理テーブルのホップノード以下の場合にＲＲＥＱを転送するようにした。そのため、管理テーブルのホップノード数より少なければＲＲＥＱを破棄することで、データ送信に利用可能なルートを増加させつつ、ＲＲＥＱの送信数を削減することができる。
【００５５】
また、ターゲットノードは、ソースノードからターゲットノードまでの最大限ディスジョイントな複数のルートを発見し、さらにこれら複数のルート上のノードが、そのルートに対してディスジョイントなルートを持つノード（上述の例ではノード１０６，１０７）を発見し、ソースノード１０１に通知するようにした。また、ディスジョイントなノード（上述の例ではノード１０６、１０７）以降は、符号化されたパケットをそのままノード１０８へ転送し、ノード１０８が受信したデータを復号化するようにした。そのため、ノード１０６，１０７までネットワークコーディングによるパケット送信を行い、複数経路でのパケット送信による冗長性を付加しつつ中間ノードまでのパケット送信効率を最大化することができる。したがって、ネットワークトポロジが予め不明な場合でも、特定の単一宛先に対してネットワークコーディングによる経路冗長化により高信頼通信を実現することができる。
【産業上の利用可能性】
【００５６】
以上のように、本発明にかかる通信システムおよび経路選択方法は、ネットワークコーディングを採用する通信システムに有用であり、特に、ネットワークトポロジィが不明な通信システムに適している。
【符号の説明】
【００５７】
１０，１０１〜１０８  ノード
１１  アンテナ
１２  無線通信部
１３  ルート構築部
１４  符号化部
１５  復号化部
１６  メモリ
【図１】
0005430490.tif 000002
【図２】
0005430490.tif 000003
【図３】
0005430490.tif 000004
【図４】
0005430490.tif 000005
【図５−１】
0005430490.tif 000006
【図５−２】
0005430490.tif 000007
【図５−３】
0005430490.tif 000008
【図５−４】
0005430490.tif 000009
【図５−５】
0005430490.tif 000010
【図５−６】
0005430490.tif 000011
【図５−７】
0005430490.tif 000012
【図５−８】
0005430490.tif 000013
【図６】
0005430490.tif 000014
【図７】
0005430490.tif 000015
【図８−１】
0005430490.tif 000016
【図８−２】
0005430490.tif 000017
【図８−３】
0005430490.tif 000018
【図８−４】
0005430490.tif 000019
【図８−５】
0005430490.tif 000020
【図８−６】
0005430490.tif 000021
【図８−７】
0005430490.tif 000022
【図８−８】
0005430490.tif 000023