(57)【特許請求の範囲】
【請求項１】
個別のアドレスを持つ複数の通信インターフェースを有する通信装置において、
前記通信インターフェースの識別子と前記通信インターフェースを経由して到達する宛先アドレスとが関連付けられて記憶されている第１のテーブルと、
通信インターフェースの識別子と前記通信インターフェースの割当アドレスとが関連付けられて記憶されている第２のテーブルと、
前記第１のテーブルから、送信するパケットの宛先アドレスと一致する宛先アドレスに対応する通信インターフェースの識別子を候補エントリとして選択し、前記候補エントリが複数存在し、かつ前記送信するパケットに送信元アドレスの情報又は使用する通信インターフェースの識別子が含まれている場合は、前記第２のテーブルを参照して前記候補エントリから、前記送信するパケットの送信元アドレスと一致する割当アドレスの通信インターフェース、もしくは前記送信するパケット内の通信インターフェースの識別子と一致する通信インターフェースの識別子をひとつ決定し、決定した通信インターフェースの識別子に対応する通信インターフェースを用いて前記送信するパケットを送出し、前記送信するパケットに送信元アドレスの情報又は使用する通信インターフェースの識別子が含まれていない場合は、前記候補エントリの中から任意の通信インターフェースを用いて前記送信するパケットを送出するルーティング手段と
を有することを特徴とする通信装置。
【請求項２】
前記アドレスがＩＰアドレスであることを特徴とする請求項１に記載の通信装置。
【請求項３】
個別のアドレスを持つ複数の通信インターフェースを有する通信装置におけるルーティング方法であって、
前記通信インターフェースの識別子と前記通信インターフェースを経由して到達する宛先アドレスとが関連付けられて記憶されている第１のテーブルと、通信インターフェースの識別子と前記通信インターフェースの割当アドレスとが関連付けられて記憶されている第２のテーブルとを有し、
前記第１のテーブルから、送信するパケットの宛先アドレスと一致する宛先アドレスに対応する通信インターフェースの識別子を候補エントリとして選択し、前記候補エントリが複数存在し、かつ前記送信するパケットに送信元アドレスの情報又は使用する通信インターフェースの識別子が含まれている場合は、前記第２のテーブルを参照して前記候補エントリから、前記送信するパケットの送信元アドレスと一致する割当アドレスの通信インターフェースの識別子、もしくは、前記送信するパケット内の通信インターフェースの識別子と一致する通信インターフェースの識別子をひとつ決定し、決定した通信インターフェースの識別子に対応する通信インターフェースを用いて前記送信するパケットを送出し、前記送信するパケットに送信元アドレスの情報又は使用する通信インターフェースの識別子が含まれていない場合は、前記候補エントリの中から任意の通信インターフェースを用いて前記送信するパケットを送出する
ことを特徴とするルーティング方法。
【請求項４】
前記アドレスがＩＰアドレスであることを特徴とする請求項３に記載のルーティング方法。
【請求項５】
個別のアドレスを持つ複数の通信インターフェースを有し、通信インターフェースの識別子と前記通信インターフェースを経由して到達する宛先アドレスとが関連付けられて記憶されている第１のテーブルと、通信インターフェースの識別子と前記通信インターフェースの割当アドレスとが関連付けられて記憶されている第２のテーブルとを有する通信装置のプログラムであって、
前記プログラムは前記通信装置を、
前記第１のテーブルから、送信するパケットの宛先アドレスと一致する宛先アドレスに対応する通信インターフェースの識別子を候補エントリとして選択し、前記候補エントリが複数存在し、かつ前記送信するパケットに送信元アドレスの情報又は使用する通信インターフェースの識別子が含まれている場合は、前記第２のテーブルを参照して前記候補エントリから、前記送信するパケットの送信元アドレスと一致する割当アドレスの通信インターフェースの識別子、もしくは、前記送信するパケット内の通信インターフェースの識別子と一致する通信インターフェースの識別子をひとつ決定し、決定した通信インターフェースの識別子に対応する通信インターフェースを用いて前記送信するパケットを送出し、前記送信するパケットに送信元アドレスの情報又は使用する通信インターフェースの識別子が含まれていない場合は、前記候補エントリの中から任意の通信インターフェースを用いて前記送信するパケットを送出る手段として機能させることを特徴とする通信装置のプログラム。
【請求項６】
前記アドレスがＩＰアドレスであることを特徴とする請求項５に記載の通信装置のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信装置に関し、特に通信インターフェースを指定しないパケットと通信インターフェースを指定するパケットとを共存させつつ、適切な通信インターフェースを選択することができる通信装置、ルーティング方法及びプログラムに関する。
【背景技術】
【０００２】
コンピュータネットワークの中継ノード等には、通常、複数の通信経路が接続されており、従来、中継ノードがパケットを受信すると、該パケットに含まれる経路情報のうち、特に宛先アドレスのみに基づいて複数の通信経路の中から使用する通信経路を選択し、次のノードへパケットを送信していた。【０００３】
ところで、通信経路の特性、即ち遅延時間、帯域、回線品質、料金等は必ずしも同一でなく、通信経路毎に異なる場合が多い。従って、ある宛先アドレスに対して、遅延時間、帯域、回線品質、料金等の特性の異なる複数の経路が選択可能な場合、同じ宛先アドレスのパケットであっても、そのアプリケーションの種類や送信元アドレス等に応じて最も望ましい経路を選択できることが好ましい。【０００４】
しかし、前述したように、従来の中継ノードでは、受信したパケットの宛先アドレスのみに基づいて使用する通信経路を選択していたため、同じ宛先アドレスのパケットについては全て同一の通信経路が選択されてしまい、アプリケーションの種類や送信元アドレス等に応じた経路を選択することができないという問題があった。【０００５】
そこで、最も望ましい経路を選択し得る通信経路選択技術が提案されている(例えば特許文献１)。
【特許文献１】特開２０００−１１５２３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述の技術のような場合では、選択した経路、例えば選択した通信インターフェースの送信元アドレスを指定することができる、すなわちパケット生成時に送信元アドレスを指定することができる場合には、指定された通信インターフェースを選択することができる。【０００７】
しかしながら、従来からある送信元アドレスを指定しないパケットと共存する環境下では、ルーティング時に指定された通信インターフェースが反映されず、宛先アドレスのみで通信インターフェースが選択されてしまうという課題があった。【０００８】
そこで、本発明は上記課題に鑑みて発明されたものであって、その目的は通信インターフェースを指定しないパケットと通信インターフェースを指定するパケットとが共存する環境下であっても、適切な通信インターフェースを選択することができる通信装置、ルーティング方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決する第１の発明は、個別のアドレスを持つ複数の通信インターフェースを有する通信装置において、前記通信インターフェースの識別子と前記通信インターフェースを経由して到達する宛先アドレスとが関連付けられて記憶されている第１のテーブルと、通信インターフェースの識別子と前記通信インターフェースの割当アドレスとが関連付けられて記憶されている第２のテーブルと、前記第１のテーブルから、送信するパケットの宛先アドレスと一致する宛先アドレスに対応する通信インターフェースの識別子を候補エントリとして選択し、前記候補エントリが複数存在し、かつ前記送信するパケットに送信元アドレスの情報又は使用する通信インターフェースの識別子が含まれている場合は、前記第２のテーブルを参照して前記候補エントリから、前記送信するパケットの送信元アドレスと一致する割当アドレスの通信インターフェース、もしくは前記送信するパケット内の通信インターフェースの識別子と一致する通信インターフェースの識別子をひとつ決定し、決定した通信インターフェースの識別子に対応する通信インターフェースを用いて前記送信するパケットを送出し、前記送信するパケットに送信元アドレスの情報又は使用する通信インターフェースの識別子が含まれていない場合は、前記候補エントリの中から任意の通信インターフェースを用いて前記送信するパケットを送出するルーティング手段とを有することを特徴とする。
【００１０】
上記課題を解決する第２の発明は、上記第１の発明において、前記アドレスがIPアドレスであることを特徴とする。【００１１】
上記課題を解決する第３の発明は、個別のアドレスを持つ複数の通信インターフェースを有する通信装置におけるルーティング方法であって、前記通信インターフェースの識別子と前記通信インターフェースを経由して到達する宛先アドレスとが関連付けられて記憶されている第１のテーブルと、通信インターフェースの識別子と前記通信インターフェースの割当アドレスとが関連付けられて記憶されている第２のテーブルとを有し、前記第１のテーブルから、送信するパケットの宛先アドレスと一致する宛先アドレスに対応する通信インターフェースの識別子を候補エントリとして選択し、前記候補エントリが複数存在し、かつ前記送信するパケットに送信元アドレスの情報又は使用する通信インターフェースの識別子が含まれている場合は、前記第２のテーブルを参照して前記候補エントリから、前記送信するパケットの送信元アドレスと一致する割当アドレスの通信インターフェースの識別子、もしくは、前記送信するパケット内の通信インターフェースの識別子と一致する通信インターフェースの識別子をひとつ決定し、決定した通信インターフェースの識別子に対応する通信インターフェースを用いて前記送信するパケットを送出し、前記送信するパケットに送信元アドレスの情報又は使用する通信インターフェースの識別子が含まれていない場合は、前記候補エントリの中から任意の通信インターフェースを用いて前記送信するパケットを送出することを特徴とする。
【００１２】
上記課題を解決する第４の発明は、前記アドレスがIPアドレスであることを特徴とする。【００１３】
上記課題を解決する第５の発明は、個別のアドレスを持つ複数の通信インターフェースを有し、通信インターフェースの識別子と前記通信インターフェースを経由して到達する宛先アドレスとが関連付けられて記憶されている第１のテーブルと、通信インターフェースの識別子と前記通信インターフェースの割当アドレスとが関連付けられて記憶されている第２のテーブルとを有する通信装置のプログラムであって、前記プログラムは前記通信装置を、前記第１のテーブルから、送信するパケットの宛先アドレスと一致する宛先アドレスに対応する通信インターフェースの識別子を候補エントリとして選択し、前記候補エントリが複数存在し、かつ前記送信するパケットに送信元アドレスの情報又は使用する通信インターフェースの識別子が含まれている場合は、前記第２のテーブルを参照して前記候補エントリから、前記送信するパケットの送信元アドレスと一致する割当アドレスの通信インターフェースの識別子、もしくは、前記送信するパケット内の通信インターフェースの識別子と一致する通信インターフェースの識別子をひとつ決定し、決定した通信インターフェースの識別子に対応する通信インターフェースを用いて前記送信するパケットを送出し、前記送信するパケットに送信元アドレスの情報又は使用する通信インターフェースの識別子が含まれていない場合は、前記候補エントリの中から任意の通信インターフェースを用いて前記送信するパケットを送出る手段として機能させることを特徴とする。
【００１４】
上記課題を解決する第６の発明は、上記第５の発明において、前記アドレスがIPアドレスであることを特徴とする。【００１５】
本発明は、通信装置が有する各通信インターフェースに対して、予めそのアドレスと、その通信インターフェースの宛先アドレスとを関連付けてテーブルに記憶しておく。【００１６】
パケットを受信すると、そのパケットの宛先アドレスに対応する通信インターフェースをテーブルから選択する。そして、受信パケットに送信元アドレス又は通信インターフェースを指定する情報がある場合には、送信元アドレス又は通信インターフェースに対応する通信インターフェースを選択された通信インターフェースから選択し、その通信インターフェースに送出する。【００１７】
一方、受信パケットに送信元アドレス又は通信インターフェースの情報がない場合には、選択された通信インターフェースの中から任意の通信インターフェースを選択し、選択した通信インターフェースに受信パケットを送出する。
【発明の効果】
【００１８】
本発明は、通信装置が複数の通信インターフェースを装備し、かつ各通信インターフェースには個別のアドレスが割り当てられているネットワーク構成の場合においても、決定された経路(通信インターフェース)を利用して、パケットを送信することが可能となり、一方、送信元アドレスが特に格納されていない、従来技術でのルーティングを期待しているパケットに対しても、ルーティング処理を行うことができるという優れた効果を奏する。
【図面の簡単な説明】
【００１９】
【図１】図１は通信インターフェースが個別のIPアドレスを持つ場合の構成例を示したものである。
【図２】図２は図１の系における送信ノード100-2の内部構成の一例を示した図である。
【図３】図３はIPルーティング処理部1318の構成を表した図である。
【図４】図４は経路制御テーブル1321の一例を示す図である。
【図５】図５はIFアドレス管理テーブル1322の一例を示す図である。
【図６】図６はメモリ部315-2に保存される経路⇔通信インターフェース対応表1330の一例を示した図である。
【図７】図７は送信IPパケット生成データ1510の構成を示す図である。
【図８】図８は送出IPパケット1610の構成を示す図である。
【図９】図９は送信IF判定・送出処理部1320による送信IF決定のフローチャートである。
【図１０】図１０は他の送信IPパケット生成データを示す図である。
【図１１】図１１は他の送出IPパケットを示す図である。
【図１２】図１２は送信IF判定・送出処理部1320による他の送信IF決定のフローチャートである。
【図１３】図１３は経路制御テーブル1321のエントリの一例を示す図である。
【符号の説明】
【００２０】
312-2    キューイング部
313-2    スケジューリング部
314      経路状態監視部
315-2    メモリ部
1316    IPパケット生成部
1317    IPパケットキューイング部
1318    IPルーティング処理部
【発明を実施するための最良の形態】
【００２１】
本発明の実施の形態を説明する。【００２２】
図１は、本実施の形態で、通信インターフェースが個別のIPアドレスを持つ場合の構成例を示したものである。【００２３】
図1では、データ生成ノード10-2から宛先ノード11-2までの経路上に、複数の経路を持つ送信ノード100-2と受信ノード101-2がある。送信ノード100-2と受信ノード101-2の間には3つの経路がある。図１の構成例では、送信ノード100-2は送信手段として通信インターフェースであるS-IF#1 1310-1、S-IF#2 1310-2、S-IF#3 1310-3、S-IF#4 1310-4を装備している。通信インターフェースS-IF#1 1310-1〜S-IF#3 1310-3は、それぞれ異なる無線網1300-1〜1300-3に属しており、無線リンク202-4〜202-6を介してセルラーキャリア網内に位置するキャリア網ゲートウェイ1400-1〜1400-3と接続している。また、通信インターフェースS-IF#4 1310-４は、有線または無線リンク202-7を介してデータ生成ノード10-2に搭載された通信インターフェースである D-IF 1200と接続している。また、受信ノード101-2は受信手段として通信インターフェースであるR-IF 1500-1を装備している。受信ノード101-２は、通信インターフェースR-IF 1500-1と有線網102-2を介して、各キャリア網ゲートウェイ1400-1〜1400-3と接続している。【００２４】
図１の系においては、通信インターフェースS-IF#1 1310-1〜S-IF#3 1310-3はそれぞれ、Point to Point Protocol(PPP)等の手段を用いることにより個別のIPアドレスとして「100.1.2.3」、「110.1.2.3」、「120.1.2.3」が割り当てられている。また、通信インターフェースR-IF 1500-1には、固定的に設定もしくはDHCPなどの手段を用いることによりIPアドレスとして「200.7.8.9」が割り当てられている。さらに、通信インターフェースD-IF 1200には、固定的に設定もしくはDHCPなどの手段を用いることによりIPアドレスとして「192.168.2.50」が割り当てられている。【００２５】
ここで、図２に、図１の系における送信ノード100-2の内部構成の一例を示す。送信ノード100-2ではIP通信を行うために、パケットのキューイング部312-２と、スケジューリング部313-2と、経路状態監視部314と、メモリ部315-２と、IPパケット生成部1316と、IPパケットキューイング部1317と、IPルーティング処理部1318とから構成される。【００２６】
スケジューリング部313-2は、キューイング部312-2から入力データ(宛先アドレス、送信データ)を取り出し、特定の通信インターフェースを選択する。取り出したデータの転送に用いる通信インターフェース (経路)の選択は、経路状態監視部314-2が管理する経路状態を参照して行われる。経路状態監視部314-2は、既存の経路選択方法又は新規な経路選択方法により決定する。尚、経路状態の情報は、メモリ部315-2に格納される。【００２７】
IPパケット生成部1316は、スケジューリング部313-2から受け取ったデータにIPヘッダを付与することでIPパケットを生成するものである。また、IPパケットキューイング部1317は、IPパケット生成部1316が生成したIPパケットを蓄積するバッファである。また、IPルーティング処理部1318は、IPパケットキューイング部1317に蓄積されたIPパケットを取り出し、IPパケットの次の転送先を判別すると共に、通信インターフェースS-IF#1 1310-1〜S-IF#4 1310-4のうち適切なものを使用してIPパケットの送出を行うものである。【００２８】
図３は、IPルーティング処理部1318の構成を表したものである。IPルーティング処理部1318には、渡されたIPパケットの転送先を判別するために使用される経路制御テーブル1321(図４に示す)が備えられている。また、搭載されている各通信インターフェースに割り当てられているIPアドレスが記録されているIFアドレス管理テーブル1322(図５に示す)が備えられている。そして、これらの経路制御テーブル1321とIFアドレス管理テーブル1322を使用して、IPルーティング処理部1318に渡されたIPパケットの転送先を判別し、対応する通信インターフェースS-IF#1 1310-１〜S-IF#4 1310-4に向けて、該IPパケットを送出する、送信IF判定・送出処理部1320が備えられている。【００２９】
図６は、メモリ部315-2に保存される、通信経路とそれに対応する通信インターフェースの対応を保存したテーブル (以下、経路⇔通信インターフェース対応表1330)の一例を示したものである。経路⇔通信インターフェース対応表1330の各エントリには、スケジューリング部313-2および経路状態監視部314-2が意識する各通信経路の識別子である通信経路番号と、それぞれの通信経路との接続に利用している通信インターフェース名の情報が格納されている。【００３０】
図４に示される経路制御テーブル1321には一般的に、IPパケットの送信先となる宛先ネットワークIPアドレス毎に、ネットワークマスクと、そのネットワークへIPパケットを到達させるために次の転送先を示すゲートウェイIPアドレスが記述されている。そして、そのゲートウェイIPアドレスと同一のサブネットワークに接続された通信インターフェースを示す情報が記録されている。なお、実際には他に同一サブネットに属する全ての通信機器に送信を行うためのマルチキャストアドレス等が設定される場合もあるが、これについての図示および説明を省略する。【００３１】
図５に示されるIFアドレス管理テーブル1322には、送信ノードに搭載されている通信インターフェースとそれに割り当てられているIPアドレスの対応が記録されている。IFアドレス管理テーブル1322の内容は、各通信インターフェースに割り当てられるIPアドレスが変更される毎に更新される。【００３２】
本実施の形態では、受信ノード101-2は受信手段として単一の通信インターフェースであるR-IF 1500-1のみを装備しているのに対して、送信ノード100-2はそれぞれ個別のIPアドレスが割り当てられた通信インターフェースであるS-IF#1 1310-1〜S-IF#4 1310-4を装備している。そのため、経路制御テーブル1321には、宛先ネットワークIPアドレスの値が同一の「200.7.8.9」に対して、それぞれ異なるゲートウェイIPアドレスと通信インターフェースが登録されたエントリ1321-a、1321-b、1321-cが存在している。また、経路制御テーブル1321には、データ生成ノード10-2への経路情報である1321-dも存在している。【００３３】
送信IF判定・送出処理部1320は、受け取ったIPパケットのヘッダ情報と経路制御テーブル1321を用いてIPパケットの送出に使用するインターフェースを決定する、いわゆるIPルーティングと呼ばれる処理を実行する。【００３４】
本実施の形態では、図４に示すように、「宛先ネットワークIPアドレス」が重複したエントリが複数存在し、IPルーティング処理は、送出に使用するインターフェースを決定するものである。【００３５】
以降では、図１に示す本実施の形態において、スケジューリング部313-2で送信経路として、経路⇔通信インターフェース対応表1330に登録されている通信経路番号が「3」の経路が選択されたものとして、決定された経路に対応する通信インターフェースであるS-IF#2 202-5を用いてIPパケットを送出させる場合の例を示す。他の経路が選択された場合も同様の処理で実現することができる。【００３６】
スケジューリング部313-2は、通信経路として通信経路番号が「3」の経路を選択すると、該通信経路に対応する通信インターフェース名である「S-IF#2」を経路⇔通信インターフェース対応表1330から取得する。【００３７】
次に、取得した通信インターフェース名「S-IF#2」をキーとして、IPルーティング処理部1318内にあるIFアドレス管理テーブル1322を探索し、S-IF#2に割り当てられているIPアドレス「110.1.2.3」を取得する。次に、スケジューリング部313-2は、送信IPパケットを生成するための情報(以下、送信IPパケット生成データ)を作成し、IPパケット生成部1316に渡す。【００３８】
図７に、送信IPパケット生成データ1510の構成を示す。「宛先IPアドレス」として受信ノード101-2の通信インターフェース1500-1のIPアドレス「200.7.8.9」が、「送信元IPアドレス」として通信インターフェースS-IF#2 1310-2のIPアドレスである「110.1.2.3」がそれぞれ格納される。【００３９】
IPパケット生成部1316では、受け取った送信IPパケット生成データ1510を元にして、図８に示す送出IPパケット1610を作成し、IPパケットキューイング部1317に追加する。送出IPパケット1610には、受け取った送信IPパケット生成データ1510に含まれる情報を元にして、IPヘッダの「送信元IPアドレス」フィールドには通信インターフェースであるS-IF#2 1310-2のIPアドレス「110.1.2.3」が、IPヘッダの「宛先IPアドレス」フィールドには受信ノード101-2の通信インターフェースであるR-IF 1500-1のIPアドレス「200.7.8.9」が、それぞれ格納される。【００４０】
次に、IPルーティング処理部1318にある送信IF判定・送出処理部1320は、IPパケットキューイング部1317から送出IPパケット1610を取り出し、経路制御テーブル1321とIFアドレス管理テーブル1322とを用いて、送出IPパケットを受け渡す通信インターフェースを決定し、送出処理を実行する。【００４１】
図９は、本実施における送信IF判定・送出処理部1320による送信IF決定の流れを表したものである。送信IF判定・送出処理部1320は、使用している経路制御テーブル1321がエントリ数xで構成されるとき、第1の条件によって探索処理を行う際に経路制御テーブル1321の何エントリ目を処理の対象としているかを表すカウンタ値iと、第1の条件によって送信候補として選択された経路制御テーブルのエントリを格納する配列である第1の候補リストと、第1の候補リストに格納されたエントリ数を表すカウンタ値mと、第2の条件による選択処理を行う際に第1の候補リストの何エントリ目を処理の対象としているかを表すカウンタ値jと、第2の条件によって送信候補として選択された送信インターフェースを格納する配列である第2の候補リストと、第2の候補リストに格納されたエントリ数を表すカウンタ値nとを変数として用意している。まず、IPパケットキューイング部1317より送出IPパケット1610を取り出す(Step300)。そして、初期値としてカウンタ値i、jにそれぞれ「１」を、カウンタ値m、nにそれぞれ「0」を設定し(Step301)、Step302に進む。【００４２】
次に、カウンタ値iとxを比較し、第1の候補探索が完了したかどうかを判定する(Step302)。具体的には、カウンタ値iとxの値が等しくなれば第1の候補探索が完了したことになる。カウンタ値iとxの値が等しくない場合(Step302：NO)、送出IPパケット1610の宛先IPアドレスに格納されている値と、経路制御テーブルi番目のエントリの宛先ネットワークIPアドレスに格納されている値との比較を行う(Step303)。比較の結果が一致となる場合(Step303：YES)、第1の候補リストm番目のエントリに経路制御テーブルi番目のエントリの内容を複写する(Step304)。そして、カウンタ値mの値を1つ増加させる(Step305)。さらに、カウンタ値iの値を1つ増加させて(Step306)、次の経路制御テーブルエントリの処理に移る。送出IPパケット1610の宛先IPアドレスに格納されている値と、経路制御テーブルi番目のエントリの宛先ネットワークIPアドレスに格納されている値とが一致しない場合(Step303：NO)、そのままStep306へ進む。【００４３】
Step302からStep306を繰り返すことで、経路制御テーブルの第1エントリから順に各エントリについて処理が行われることになる。そして、処理が最終エントリに達すると(Step302：YES)、第1の候補リストにエントリが存在するかどうかを判定するためにStep307へ進む。【００４４】
第1の候補が存在するかどうかは、具体的にはカウンタ値mの値によって判定される。カウンタ値mの値が「0」である場合(Step307：YES)、送出IPパケット1610を送出するための通信インターフェースが存在しないため、処理を終了する(エンド)。カウンタ値mの値が「0」以外の値である場合(Step307：NO)、第1の候補が存在することになりStep308の処理に移る。次に、カウンタ値mの値が「1」であるかどうかを判断する(Step308)。カウンタ値mの値が「1」である場合(Step308：YES)、送出IPパケット1610を送出するための通信インターフェースが一意に決定されるため、第1の候補リスト1番目のエントリに記録されている通信インターフェース取得し(Step309)、取得した通信インターフェースを用いて送出IPパケット1610を送出し(Step322)、終了する(エンド)。カウンタ値mの値が「1」でない場合(Step308：NO)、送出IPパケット1610の送出に使用する通信インターフェースが一意に決定できないため、Step310へ進む。【００４５】
Step310では第2の候補探索が完了したかどうかを判定している。具体的には、カウンタ値jとカウンタ値mが等しくなれば第2の候補探索が完了したことになる。カウンタ値jとmが等しくない場合(Step：NO)、まず、第1の候補リストj番目のエントリの通信インターフェースを取得する(Step311)。次に、IFアドレス管理テーブル1322から、Step310で取得した通信インターフェースに対応する割当IPアドレスを取得する(Step312)。続いて、送出IPパケット1610の送信元IPアドレスとStep311で取得した割当IPアドレスを比較し(Step313)、送出IPパケット1610の送信元IPアドレスと割当IPアドレスが一致する場合(Step313：YES)、第2の候補リストn番目のエントリにStep311で取得した通信インターフェースを複写し(Step314)、カウンタ値nの値を1つ増加させる(Step315)。さらに、カウンタ値jの値を1つ増加させて(Step316)、第1の候補リストの次エントリの処理に移る。送出IPパケット1610の送信元IPアドレスと割当IPアドレスが一致しない場合(Step313：NO)、そのままStep316へ進む。【００４６】
Step310からStep316を繰り返すことで、第1の候補リストの第1エントリから順に各エントリについて処理が行われることになる。そして、処理が最終エントリに達すると(Step310：YES)、第2の候補リストにエントリが存在するかどうかを判定するためにStep317へ進む。【００４７】
第2の候補が存在するかどうかは、具値的にはカウンタ値nの値によって判定される。カウンタ値nの値が「0」とは、第1の候補リストに送出IPパケット1610の送出が可能な通信インターフェースが存在するが、一意には決定されていないことを意味する。カウンタ値nの値が「１」とは、送出IPパケット1610の送出が可能な通信インターフェースが一意に決定されることを意味する。カウンタ値nの値が「2」以上の場合とは、第2の候補リストに送出IPパケット1610の送出が可能な通信インターフェースが存在するが、一意に決定されていないことを意味する。【００４８】
カウンタ値nの値が「1」である場合(Step317：YES)、第2の候補リスト1番目エントリから通信インターフェースを取得し(Step318)、取得した通信インターフェースを用いて送出IPパケット1610を送出し(Step322)、終了する(エンド)。カウンタ値nの値が「1」で無い場合(Step317：NO)、Step319へ進む。【００４９】
次に、カウンタ値nの値が「0」である場合(Step319：YES)、第1の候補リストの任意のエントリから送信インターフェースを取得し(Step320)、取得した送信インターフェースを用いて送出IPパケット1610を送出し(Step322)、終了する(エンド)。カウンタ値nの値が「0」で無い場合(Step319：NO)、第2の候補リストの任意のエントリから送信インターフェースを取得し(Step321)、取得した送信インターフェースを用いて送出IPパケット1610を送出し(Step322)、終了する(エンド)。【００５０】
ここでは、送出IPパケット1610のIPヘッダ内の宛先IPアドレスには「200.7.8.9」が、送信元IPアドレスには「110.1.2.3」がそれぞれ格納されている。したがって、第1の候補としては、図13に示す経路制御テーブル1321のエントリである1321-a、1321-b、1321-cが該当し、Step307の処理を実行する段階では、第1の候補リスト1番目のエントリには経路制御テーブル1321のエントリ1321-aの内容が、第1の候補リスト２番目のエントリには経路制御テーブル1321のエントリ1321-bの内容が、第1の候補リスト3番目のエントリには経路制御テーブル1321のエントリ1321-cの内容がそれぞれ格納される。また、カウンタ値mには「3」が格納される。さらに、Step312の処理においては、j=1の場合は「100.1.2.3」が、j=2の場合は「110.1.2.3」が、j=3の場合は「120.1.2.3」が、それぞれ割当IPアドレスとして取得される。さらに、Step317の処理を実行する段階では、第2の候補リストには送信インターフェースとして「S-IF#2」のみが格納され、カウンタ値には「1」が格納される。すなわち、Step317の処理による判定の結果、Step318の処理が実行されることとなり、Step318では送信インターフェースとして「S-IF#2」が取得され、送信IF判定・送出処理部1320は、スケジューリング部313-2が選択した経路番号「3」の経路に対応する通信インターフェースであるS-IF#2 1310-2を用いて送出IPパケット1610の送出が行われることになる。【００５１】
結果として、送出IPパケット1610は、通信インターフェースであるS-IF#2 1310-2から送出され、キャリア網GW1400-3を介し、受信ノード101-2が装備する通信インターフェースであるR-IF 1500-1により受信されることとなる。【００５２】
以上に説明した手順を行うことにより、本実施の形態のような、送信ノード100-2と受信ノード101-2がそれぞれ1対1に対応しない複数の通信インターフェースを装備し、かつ各通信インターフェースには個別のIPアドレスが割り当てられているIPネットワーク構成の場合においても、スケジューリング部313-2で決定された経路を利用してIPパケットを送信することが可能となる。また、送信元IPアドレスが特に格納されていない、従来技術でのIPルーティングを期待しているIPパケットに対しても、IPルーティング処理を行うことも可能である。【００５３】
また、さらに他の実施として、送信ノード100-2の内部構成の場合において、スケジューリング部313-2が、通信経路として通信経路番号が「3」の経路を選択した後、IPパケット生成部1316に渡す送信IPパケット生成データとして図１０に示す形式とすることも可能である。【００５４】
図１０に、本実施における送信IPパケット生成データ1511を示す。スケジューリング部313-2は、送信IPパケット生成データ1511の「宛先IPアドレス」として受信ノード101-2の通信インターフェース1500-1のIPアドレス「200.7.8.9」を格納し、さらに、送信IPパケット生成データ1510の「送信元インターフェース」として、経路⇔通信インターフェース対応表1330より取得された、通信経路番号「3」に対応する通信インターフェース名「S-IF#2」を格納する。【００５５】
IPパケット生成部1316は、送信IPパケット生成データ1511を受け取ると、図１１に示す送出IPパケット1611を作成し、IPパケットキューイング部1317に追加する。送出IPパケット1611には、受け取った送信IPパケット生成データ1511に含まれる情報を元にして、IPヘッダの「送信元IPアドレス」フィールドには通信インターフェース名である「S-IF#2」が、IPヘッダの「宛先IPアドレス」フィールドには受信ノード101-2の通信インターフェースであるR-IF 1500-1のIPアドレス「200.7.8.9」が、それぞれ格納される。【００５６】
次に、IPルーティング処理部1318にある送信IF判定・送出処理部1320は、IPパケットキューイング部1317から送出IPパケット1611を取り出し、経路制御テーブル1321とIFアドレス管理テーブル1322とを用いて、送出IPパケットを受け渡す通信インターフェースを決定し、送出処理を実行する。【００５７】
図１２は、本実施における送信IF判定・送出処理部1320による送信IF決定の流れを表したものである。本実施においても、送信IF判定・送出処理部1320は、使用している経路制御テーブル1321がエントリ数xで構成されるとき、第1の条件によって探索処理を行う際に経路制御テーブル1321の何エントリ目を処理の対象としているかを表すカウンタ値iと、第1の条件によって送信候補として選択された経路制御テーブルのエントリを格納する配列である第1の候補リストと、第1の候補リストに格納されたエントリ数を表すカウンタ値mと、第2の条件による選択処理を行う際に第1の候補リストの何エントリ目を処理の対象としているかを表すカウンタ値jと、第2の条件によって送信候補として選択された送信インターフェースを格納する配列である第2の候補リストと、第2の候補リストに格納されたエントリ数を表すカウンタ値nとを変数として用意している。まず、IPパケットキューイング部1317より送出IPパケット1611を取り出す(Step400)。そして、初期値としてカウンタ値i、jにそれぞれ「１」を、カウンタ値m、nにそれぞれ「0」を設定し(Step401)、Step402に進む。【００５８】
次に、カウンタ値iとxを比較し、第1の候補探索が完了したかどうかを判定する(Step402)。具体的には、カウンタ値iとxの値が等しくなれば第1の候補探索が完了したことになる。カウンタ値iとxの値が等しくない場合(Step402：NO)、送出IPパケット1611の宛先IPアドレスに格納されている値と、経路制御テーブルi番目のエントリの宛先ネットワークIPアドレスに格納されている値との比較を行う(Step403)。比較の結果が一致となる場合(Step403：YES)、第1の候補リストm番目のエントリに経路制御テーブルi番目のエントリの内容を複写する(Step404)。そして、カウンタ値mの値を1つ増加させる(Step405)。さらに、カウンタ値iの値を1つ増加させて(Step406)、次の経路制御テーブルエントリの処理に移る。送出IPパケット1611の宛先IPアドレスに格納されている値と、経路制御テーブルi番目のエントリの宛先ネットワークIPアドレスに格納されている値とが一致しない場合(Step403：NO)、そのままStep406へ進む。【００５９】
Step402からStep406を繰り返すことで、経路制御テーブルの第1エントリから順に各エントリについて処理が行われることになる。そして、処理が最終エントリに達すると(Step402：YES)、第1の候補リストにエントリが存在するかどうかを判定するためにStep407へ進む。【００６０】
第1の候補が存在するかどうかは、具体的にはカウンタ値mの値によって判定される。カウンタ値mの値が「0」である場合(Step407：YES)、送出IPパケット1611を送出するための通信インターフェースが存在しないため、処理を終了する(エンド)。カウンタ値mの値が「0」以外の値である場合(Step407：NO)、第1の候補が存在することになりStep408の処理に移る。次に、カウンタ値mの値が「1」であるかどうかを判断する(Step408)。カウンタ値mの値が「1」である場合(Step408：YES)、送出IPパケット1611を送出するための通信インターフェースが一意に決定されるため、第1の候補リスト1番目のエントリに記録されている通信インターフェース取得し(Step409)、取得した通信インターフェースを用いて送出IPパケット1611を送出し(Step422)、終了する(エンド)。カウンタ値mの値が「1」でない場合(Step408：NO)、送出IPパケット1611の送出に使用する通信インターフェースが一意に決定できないため、Step410へ進む。【００６１】
Step410では第2の候補探索が完了したかどうかを判定している。具体的には、カウンタ値jとカウンタ値mが等しくなれば第2の候補探索が完了したことになる。カウンタ値jとmが等しくない場合(Step：NO)、まず、第1の候補リストj番目のエントリの通信インターフェースを取得する(Step411)。次に、送出IPパケット1611の送信元IPアドレスに格納されている通信インターフェースと、Step411で取得した通信インターフェースとを比較し(Step412)、一致する場合(Step412：YES)、第2の候補リストn番目のエントリにStep411で取得した通信インターフェースを複写し(Step413)、カウンタ値nの値を1つ増加させる(Step414)。さらに、カウンタ値jの値を1つ増加させて(Step415)、第1の候補リストの次エントリの処理に移る。送出IPパケット1611の送信元IPアドレスに格納されたインターフェースとStep411で取得した通信インターフェースとが一致しない場合(Step412：NO)、そのままStep415へ進む。【００６２】
Step410からStep415を繰り返すことで、第1の候補リスト1番目のエントリから順に各エントリについて処理が行われることになる。そして、処理が最終エントリに達すると(Step410：YES)、第2の候補リストにエントリが存在するかどうかを判定するためにStep417へ進む。【００６３】
第2の候補が存在するかどうかは、具値的にはカウンタ値nの値によって判定される。カウンタ値nの値が「0」とは、第1の候補リストに送出IPパケット1611の送出が可能な通信インターフェースが存在するが、一意には決定されていないことを意味する。カウンタ値nの値が「１」とは、送出IPパケット1611の送出が可能な通信インターフェースが一意に決定されることを意味する。カウンタ値nの値が「2」以上の場合とは、第2の候補リストに送出IPパケット1611の送出が可能な通信インターフェースが存在するが、一意に決定されていないことを意味する。【００６４】
カウンタ値nの値が「1」である場合(Step416：YES)、第2の候補リスト1番目のエントリから通信インターフェースを取得し(Step417)、取得した通信インターフェースを用いて送出IPパケット1611を送出し(Step421)、終了する(エンド)。カウンタ値nの値が「1」で無い場合(Step416：NO)、Step419へ進む。【００６５】
次に、カウンタ値nの値が「0」である場合(Step418：YES)、第1の候補リストの任意のエントリから送信インターフェースを取得し(Step419)、取得した送信インターフェースを用いて送出IPパケット1611を送出し(Step421)、終了する(エンド)。カウンタ値nの値が「0」で無い場合(Step418：NO)、第2の候補リストの任意のエントリから送信インターフェースを取得し(Step420)、取得した送信インターフェースを用いて送出IPパケット1611を送出し(Step421)、終了する(エンド)。【００６６】
ここでは、送出IPパケット1611のIPヘッダ内の宛先IPアドレスには「200.7.8.9」が、送信元IPアドレスには実際にはIPアドレスではない識別子である「S-IF#2」がそれぞれ格納されている。したがって、第1の候補としては、経路制御テーブル1321のエントリである1321-a、1321-b、1321-cが該当し、Step407の処理を実行する段階では、第1の候補リスト1番目のエントリには経路制御テーブル1321のエントリ1321-aの内容が、第1の候補リスト２番目のエントリには経路制御テーブル1321のエントリ1321-bの内容が、第1の候補リスト3番目のエントリには経路制御テーブル1321のエントリ1321-cの内容がそれぞれ格納される。また、カウンタ値mには「3」が格納される。さらに、Step416の処理を実行する段階では、第2の候補リストには送信インターフェースとして「S-IF#2」のみが格納され、カウンタ値には「1」が格納される。すなわち、Step417の処理による判定の結果、Step418の処理が実行されることとなり、Step418では送信インターフェースとして「S-IF#2」が取得され、送信IF判定・送出処理部1320は、スケジューリング部313-2が選択した経路番号「3」の経路に対応する通信インターフェースであるS-IF#2 1310-2を用いて送出IPパケット1611の送出が行われることになる。【００６７】
結果として、送出IPパケット1611は、通信インターフェースであるS-IF#2 1310-2から送出され、キャリア網GW1400-3を介し、受信ノード101-2が装備する通信インターフェースであるR-IF 1500-1により受信されることとなる。【００６８】
以上に説明した手順を行うことにより、本実施の形態においても、送信ノード100-2と受信ノード101-2がそれぞれ1対1に対応しない複数の通信インターフェースを装備し、かつ各通信インターフェースには個別のIPアドレスが割り当てられているIPネットワーク構成の場合においても、スケジューリング部313-2で決定された経路を利用してIPパケットを送信することが可能となる。【００６９】
また、通信インターフェースが特に指定されていない、従来技術でのIPルーティングを期待しているIPパケットに対しても、IPルーティング処理を行うことも可能である。
尚、上述の実施の形態においては、通信インターフェースS-IF#1 1310-1〜S-IF#3 1310-3は、それぞれ異なる無線網1300-1〜1300-3に属するとしたが、これに限ることなく、通信インターフェースS-IF#1 1310-1〜S-IF#3 1310-3の全部又は一部が有線網に属しても良い。
【図１】
0004623317.tif 000002
【図２】
0004623317.tif 000003
【図３】
0004623317.tif 000004
【図４】
0004623317.tif 000005
【図５】
0004623317.tif 000006
【図６】
0004623317.tif 000007
【図７】
0004623317.tif 000008
【図８】
0004623317.tif 000009
【図９】
0004623317.tif 000010
【図１０】
0004623317.tif 000011
【図１１】
0004623317.tif 000012
【図１２】
0004623317.tif 000013
【図１３】
0004623317.tif 000014