(57)【特許請求の範囲】
【請求項１】
受信パケットを処理するための処理規則を要求する複数のノードと、
前記要求に応じて、前記受信パケットに対応する処理規則を決定し、決定した処理規則を前記複数のノードの少なくとも１つに通知する制御装置とを有し、
前記複数のノードのいずれか１つは、所定の通信の宛先アドレスを取得するための第一のパケットを前記制御装置に転送し、
前記制御装置は、前記宛先アドレスの決定に応じて、前記宛先アドレスに送信される第二のパケットを処理するための処理規則を決定し、決定した処理規則を前記複数のノードの少なくとも１つに通知する
通信システム。 
【請求項２】
前記制御装置は、前記宛先アドレスの決定に応じて、前記第二のパケットを処理するための処理規則を予め決定する、請求項１に記載の通信システム。 
【請求項３】
前記ノードは、受信パケットに対応する処理規則が存在しない場合に、前記制御装置に処理規則を要求し、
前記制御装置は、前記ノードが前記第二のパケットを処理するための処理規則を要求する前に、前記宛先アドレスの決定に応じて、前記第二のパケットに対応する処理規則を前記複数のノードの少なくとも１つに通知する
請求項１又は２に記載の通信システム。 
【請求項４】
前記第二のパケットを処理するための処理規則として、前記第二のパケットを前記第一のパケットの送信元装置から前記所定の通信の宛先装置まで転送する経路に対応する処理規則を決定する
請求項１乃至３のいずれかに記載の通信システム。 
【請求項５】
前記宛先アドレスを記憶するサーバを有し、
前記制御装置は、前記第一のパケットの受信に応じて、前記サーバから前記宛先アドレスを取得し、前記取得したアドレスを前記第一のパケットの送信元装置に通知する
請求項１乃至４のいずれかに記載の通信システム。 
【請求項６】
前記サーバは、
前記所定の通信の宛先装置に関する情報と、宛先アドレスとを対応付けて記憶し、
前記制御装置は、
前記宛先装置に関する情報を含む第一のパケットの受信に応じて、前記宛先装置に関する情報に対応する宛先アドレスを前記サーバから取得し、取得した宛先アドレスを前記第一のパケットの送信元装置に通知する
請求項５に記載の通信システム。 
【請求項７】
前記サーバは、
前記所定の通信の宛先ホスト名と宛先アドレスとを対応付けて記憶し、
前記制御装置は、
前記宛先ホスト名を含む第一のパケットの受信に応じて、前記宛先ホスト名に対応する宛先アドレスを前記サーバから取得し、取得した宛先アドレスを前記第一のパケットの送信元装置に通知する
請求項５又は６に記載の通信システム。 
【請求項８】
複数のノードの少なくとも１つから、受信パケットを処理するための処理規則の要求を受信する受信手段と、
前記受信パケットに対応する処理規則を決定する決定手段と、
前記決定した処理規則を前記複数のノードの少なくとも１つに通知する通知手段とを有し、
前記受信手段は、前記複数のノードのいずれかから、所定の通信の宛先アドレスを取得するための第一のパケットを受信し、
前記決定手段は、前記宛先アドレスの決定に応じて、前記宛先アドレスに送信される第二のパケットを処理するための処理規則を決定し、
前記通知手段は、前記決定した処理規則を前記複数のノードの少なくとも１つに通知する
制御装置。 
【請求項９】
前記決定手段は、前記宛先アドレスの決定に応じて、前記第二のパケットを処理するための処理規則を予め決定する
請求項８に記載の制御装置。 
【請求項１０】
複数のノードの少なくとも１つから、受信パケットを処理するための処理規則の要求を受信するステップと、
前記受信パケットに対応する処理規則を決定するステップと、
前記決定した処理規則を前記複数のノードの少なくとも１つに通知するステップと、
前記ノードから、所定の通信の宛先アドレスを取得するための第一のパケットを受信するステップと、
前記宛先アドレスの決定に応じて、前記宛先アドレスに送信される第二のパケットを処理するための処理規則を決定するステップと、
前記決定した処理規則を前記複数のノードの少なくとも１つに通知するステップとを含む
制御方法。 
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願についての記載）
本発明は、日本国特許出願：特願２０１２−０４６４２５号（２０１２年３月２日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、通信ネットワークに関し、通信の経路を設定する技術に関する。
【背景技術】
【０００２】
ネットワークを介して接続された装置同士がパケットを送受信する場合、送信元の装置（以下、「送信元装置」とする。）は、データが格納されたパケット（以下、「データパケット」とする。）の送信に先立ち、送信先の装置（以下、「送信先装置」とする。）のアドレスを取得する場合がある。  
【０００３】
特許文献１では、送信元装置が、ＡＲＰ（Ａｄｒｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）を用いて、送信先装置のＭＡＣアドレスを取得することが開示されている。特許文献１において、送信先装置のＭＡＣアドレスが分からない送信元装置は、送信先装置のＩＰアドレスを含むブロードキャストパケットを送信する。該ブロードキャストパケットに含まれるＩＰアドレスが割り当てられている装置は、自装置のＭＡＣアドレスを含むレスポンスパケットを送信元装置に送信する。これによって、送信元装置は、送信先装置のＭＡＣアドレスを取得できる。  
【０００４】
一方、複数のノードにおけるパケットの転送経路の制御を制御装置が集中して行う、集中管理型のネットワークの経路制御手法がある。このような集中管理型の技術の例として、オープンフロー（ＯｐｅｎＦｌｏｗ）技術がある。  
【０００５】
特許文献２には、オープンフロー技術を用いた集中管理型の経路制御手法が開示されている。特許文献２に記載のオープンフロー技術は、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御を行い、負荷分散や経路の最適化を行うものである。  
【０００６】
特許文献２において，転送ノードとして機能するスイッチは、パケットの経路を計算するコントローラ（制御装置）との通信用のセキュアチャネルを備え、コントローラが設定するフローテーブルに従って動作する。フローテーブルでは、パケットのヘッダ情報に照合するマッチングルール（照合規則）と、そのマッチングルールに適合するパケットに適用する処理の内容を記述したアクション（Ａｃｔｉｏｎ）との組が定義されている。アクションは、パケットを特定のインターフェイスへ転送する処理などである。  
【０００７】
特許文献２に記載のスイッチは、端末からパケットを受信すると、フローテーブルから、受信したパケットのヘッダ情報に適合するマッチングルールを持つフローエントリ（処理規則）を検索する。検索の結果、受信したパケットに適合するフローエントリが見つかった場合、スイッチは、そのフローエントリのアクションフィールドに記述された処理内容（例えば、受信したパケットを特定のインターフェイスへの転送すること）を実施する。
【０００８】
一方、検索の結果、パケットに適合するフローエントリが見つからない場合、スイッチは、コントローラに対して、受信したパケットに対するフローエントリの設定を要求する。
コントローラは、該要求に応じて、該受信したパケットの経路を計算し、計算した経路に関係するスイッチに対して、該経路を用いた転送を実現するフローエントリを通知する。
フローエントリの通知を受けたスイッチは、フローテーブルを更新し、更新後のフローテーブルのフローエントリに記述された処理内容、すなわち受信したパケットの転送を実施する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平５−５６０５０号公報
【特許文献２】特表２０１０−５４１４２６号公報
【発明の概要】
【００１０】
上記の特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明者によってなされたものである。
送信元装置は、送信すべきデータが発生した場合、（１）送信先装置のアドレスを要求するパケットを送信し、該要求したアドレスを取得した後に、（２）取得したアドレスを宛先としてデータパケットを送信する。  
【００１１】
一方、特許文献２が開示する関連技術において、スイッチは、アドレスの取得に用いるパケットと、取得したアドレスを宛先とするデータパケットとについて、ヘッダ情報が異なることから、異なるフローに属するものと認識する。そのため、スイッチは、アドレスの取得に用いるパケットとデータパケットのそれぞれについて、コントローラに対してフローエントリの設定を要求する。  
【００１２】
したがって、コントローラは、アドレスの取得に用いるパケットとデータパケットのそれぞれについてエントリを計算する必要があり、コントローラの計算負荷増大の要因となるという問題がある。
【課題を解決するための手段】
【００１３】
本発明の第１の態様による通信システムは、受信パケットを処理するための処理規則を要求する複数のノードと、前記要求に応じて、前記受信パケットに対応する処理規則を決定し、決定した処理規則を前記複数のノードの少なくとも１つに通知する制御装置とを有し、前記ノードは、所定の通信の宛先アドレスを取得するための第一のパケットを前記制御装置に転送し、前記制御装置は、前記宛先アドレスの決定に応じて、前記宛先アドレスに送信される第二のパケットを処理するための処理規則を決定し、決定した処理規則を前記複数のノードの少なくとも１つに通知することを特徴とする。  
【００１４】
本発明の第２の態様による制御装置は、複数のノードと接続し、前記複数のノードの少なくとも１つから、受信パケットを処理するための処理規則の要求を受信する受信手段と、前記受信パケットに対応する処理規則を決定する決定手段と、前記決定した処理規則を前記複数のノードの少なくとも１つに通知する通知手段とを有し、前記受信手段は、前記ノードから、所定の通信の宛先アドレスを取得するための第一のパケットを受信し、前記決定手段は、前記宛先アドレスの決定に応じて、前記宛先アドレスに送信される第二のパケットを処理するための処理規則を決定し、前記通知手段は、前記決定した処理規則を前記複数のノードの少なくとも１つに通知することを特徴とする。  
【００１５】
本発明の第３の態様による制御方法は、複数のノードと接続する制御装置が実行する制御方法であって、前記複数のノードの少なくとも１つから、受信パケットを処理するための処理規則の要求を受信するステップと、前記受信パケットに対応する処理規則を決定するステップと、前記決定した処理規則を前記複数のノードの少なくとも１つに通知するステップと、前記ノードから、所定の通信の宛先アドレスを取得するための第一のパケットを受信するステップと、前記宛先アドレスの決定に応じて、前記宛先アドレスに送信される第二のパケットを処理するための処理規則を決定するステップと、前記決定した処理規則を前記複数のノードの少なくとも１つに通知するステップとを有することを特徴とする。
本発明の第４の態様によるプログラムは、複数のノードの少なくとも１つから、受信パケットを処理するための処理規則の要求を受信する処理と、前記受信パケットに対応する処理規則を決定する処理と、前記決定した処理規則を前記複数のノードの少なくとも１つに通知する処理と、前記ノードから、所定の通信の宛先アドレスを取得するための第一のパケットを受信する処理と、前記宛先アドレスの決定に応じて、前記宛先アドレスに送信される第二のパケットを処理するための処理規則を決定する処理と、
前記決定した処理規則を前記複数のノードの少なくとも１つに通知する処理と、をコンピュータに実行させる。 
また、かかるプログラムを記録した非一時的なコンピュータ読み取り可能な記録媒体（non-transitory computer-readable storage medium）が提供される。
【発明の効果】
【００１６】
本発明に係る通信システム、制御装置、制御方法、および、プログラムによれば、スイッチ（ないしノード）からコントローラへの問合せを削減することにより、コントローラの計算負荷を低減することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第一の実施態様におけるネットワークシステムの構成例を示す図である。
【図２】第一の実施形態におけるノードの構成例を示す図である。
【図３】第一の実施形態におけるコントローラの構成例を示す図である。
【図４】第一の実施形態におけるノードの動作例を示す図である。
【図５】第一の実施形態におけるコントローラの動作例を示す図である。
【図６】第一の実施形態における動作例を示すシーケンス図である。
【図７】第二の実施形態におけるネットワークシステムの構成例を示す図である。
【図８】第二の実施態様におけるコントローラの構成例を示す図である。
【図９】第二の実施形態におけるアドレステーブルの構成例を示す図である。
【図１０】第三の実施形態におけるコントローラの構成例を示す図である。
【図１１】第三の実施形態における動作例を示すシーケンス図である。
【図１２】第四の実施形態におけるコントローラの構成例を示す図である。
【図１３】第四の実施形態における動作例を示すシーケンス図である。
【図１４】第五の実施形態におけるネットワークシステムの構成例を示す図である。
【図１５】第五の実施形態におけるテーブルの構成例を示す図である。
【図１６】第五の実施態様における動作例を示すシーケンス図である。
【発明を実施するための形態】
【００１８】
[第一の実施形態]
以下では、実施形態について、図面を用いて説明する。  
【００１９】
図１は、第一の実施形態のネットワークシステムの構成例を示す図である。  
【００２０】
第一の実施形態では、コントローラＣ１が、複数のノードＲ１又はＲ２からの要求に応じて、パケットの転送経路を制御する。このような集中管理型の関連技術の一例として、上述した通り、オープンフロー技術がある。本発明を実施するためには、オープンフロー技術を適用してもよいし、他の集中管理型の技術であってもよい。以下では、本発明にオープンフロー技術を適用した場合の実施形態を説明する。なお，本発明を実施するためには、コントローラ（制御装置）が複数のノードにおけるパケットの転送経路を集中制御できればよく、本発明がオープンフロー技術に限定されるものではない。  
【００２１】
図１に示すように、第一の実施形態のネットワークシステムは、パケットの転送を行うノードＲ１及びＲ２を含む。また、該ネットワークシステムは、ノードＲ１又はＲ２からの要求に応じて、パケットの転送経路を制御するコントローラＣ１を含む。  
【００２２】
ノードＲ１又はＲ２は、コントローラＣ１と通信するために、コントローラＣ１との間にセキュリティが確保された通信チャネルを確立する（図１の点線）。そして、ノードＲ１又はＲ２は、コントローラＣ１から適宜追加または書き換えられるフローエントリ（つまり、パケットを処理するための処理規則）に従って受信したパケットを処理する。  
【００２３】
ノードＲ１及びＲ２の構成例を図２に示す。  
【００２４】
パケット受信手段１０がパケットを受信し、パケット処理手段１１は、コントローラＣ１から通知されるフローエントリに応じて、受信したパケットを処理する。フローエントリ要求手段１２は、受信パケットに対応するフローエントリが存在しない場合、パケットを処理するためのフローエントリを、コントローラＣ１に要求する。フローエントリ記憶部１３は、パケットに適用する処理と、前記処理を適用するパケットを特定するための照合規則とを対応付けたフローエントリを記憶する。フローエントリ変更手段１４は、コントローラＣ１から通知されるフローエントリに基づいて、フローエントリ記憶部１１のフローエントリを変更する。  
【００２５】
パケット処理手段１１は、フローエントリ記憶部１３を参照して、パケット受信手段１０で受信したパケットに適合する照合規則を持つフローエントリを検索する。そして、受信したパケットに対応するフローエントリが存在する場合、パケット処理手段１１は、対応するフローエントリに基づいて、受信したパケットを処理する。  
【００２６】
受信したパケットに対応するフローエントリが存在しない場合、フローエントリ要求手段１２は、セキュアチャネルを介して、コントローラＣ１に受信したパケットを処理するためのフローエントリを要求する。フローエントリ変更手段１４は、要求に応じてコントローラＣ１から通知されるフローエントリを、フローエントリ記憶部１３に格納する。  
【００２７】
コントローラＣ１は、図３に示すように、セキュアチャネルを介してノードと通信する通信手段２０を有する。  
【００２８】
コントローラＣ１の通信手段２０は、少なくとも１つのノードからフローエントリの要求を受信する。例えば、通信手段２０は、ノードＲ１が受信したパケットを処理するためのフローエントリの要求をノードＲ１から受信する。  
【００２９】
また、通信手段２０は、フローエントリ決定手段２１が決定したフローエントリをノードに通知する。すなわち、通信手段２０は、第一のフローエントリを第一のノードに通知し、第二のフローエントリを複数のノードうちの少なくとも１つのノードに通知する。例えば、通信手段２０は、該第一のフローエントリをノードＲ１に通知し、該第二のフローエントリをノードＲ２に通知する。  
【００３０】
コントローラＣ１は、ノードから所定の通信の宛先アドレスの取得に用いる第一のパケットを受信する。コントローラＣ１は、第一のパケットに基づいて宛先アドレスが決定されたことに応じて、その宛先アドレスに送信される第二のパケットに対応するフローエントリを予め決定するフローエントリ決定手段２１を有する。ノードは、第二のパケットに対応するフローエントリが存在しない場合、コントローラＣ１にフローエントリの設定を要求する。しかし、本発明では、コントローラＣ１がアドレス取得を要求するパケット（第一のパケット）に基づいてアドレスが解決されたことに応じて、そのアドレス宛に送信されるパケットに対応するフローエントリを、予めノードに通知する。よって、取得したアドレス宛のパケットに対する要求が、ノードからコントローラＣ１に送信される頻度を低減できる。  
【００３１】
コントローラＣ１は、アドレス取得を要求するパケットを送信したノードに対して、応答パケット（取得されたアドレスを通知するためのパケット）を送信する。応答パケットを受信したノードは、応答パケットがアドレス取得の要求元の端末に届くように、応答パケットを転送する。例えば、ノードは、アドレス取得を要求するパケットを受信したポートに、応答パケットを転送する。  
【００３２】
フローエントリ決定手段２１は、アドレス取得のためのパケット（第一のパケット）に対応するフローエントリを決定し、ノードに通知してもよい。アドレス取得のためのパケットに対応するフローエントリとは、例えば、アドレス取得のためのパケットに対する応答パケットの転送経路を指定するフローエントリである。  
【００３３】
アドレスの取得に用いる第一のパケットは、例えば、アドレスを要求するために送信されるパケットを意味する。例えば、送信すべきデータが発生した端末が、そのデータの送信先のアドレスを要求するために送信するパケットである。  
【００３４】
例えば、端末が、ＡＲＰ（Ａｄｒｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）において、データの送信先のＭＡＣアドレスを取得するために送信するＡＰＲ・Ｒｅｑｕｅｓｔは、アドレスの取得に用いる第一のパケットに該当する。なお、ＡＲＰは、ＩＰｖ４において、ＩＰアドレスからそれに対応するＭＡＣアドレスを得るために用いられるプロトコルである。  
【００３５】
例えば、端末が、ＮＤ（Ｎｅｉｇｈｂｏｒ  Ｄｉｓｃｏｖｅｒｙ）において、データの送信先のＭＡＣアドレスを取得するために送信するＮＳ（Ｎｅｉｇｈｂｏｒ  Ｓｏｌｉｃｉｔａｔｉｏｎ）パケットは、アドレスの取得に用いる第一のパケットに該当する。なお、ＮＤは、ＩＰｖ６において、ＩＰアドレスからそれに対応するＭＡＣアドレスを得るために用いられるプロトコルである。  
【００３６】
例えば、端末が、ネームサーバに対して、データの送信先のＭＡＣアドレスを取得するために送信する名前解決要求は、アドレスの取得に用いる第一のパケットに該当する。なお、ネームサーバは、例えば、ＤＮＳ（Ｄｏｍａｉｎ  Ｎａｍｅ  Ｓｙｓｔｅｍ）や、ＷＩＮＳ（Ｗｉｎｄｏｗｓ（登録商標）  Ｎａｍｅ  Ｓｙｓｔｅｍ）である。  
【００３７】
なお、アドレスの取得に用いる第一のパケットは、上記の例に限られず、アドレスを要求するために送信されるパケットであれば、どのようなパケットであってもよい。  
【００３８】
第一の実施形態において、ノードＲ１が、アドレスの取得に用いる第一のパケットを受信した際の動作例について、図４を用いて説明する。  
【００３９】
ステップ１０（Ｓ１０）において、ノードＲ１のパケット受信手段１０は、アドレスの取得に用いる第一のパケットを受信する。  
【００４０】
ステップ１１（Ｓ１１）において、ノードＲ１のパケット処理手段１１は、第一のパケットに対応するフローエントリが、フローエントリ記憶部１３に記憶されているか否かを判定する。  
【００４１】
判定の結果、フローエントリが登録されている場合には、ステップ１２（Ｓ１２）において、パケット処理手段１１は、パケット受信手段１０で第一のパケットをフローエントリに応じて処理する。  
【００４２】
判定の結果、フローエントリが登録されていない場合には、ステップ１３（Ｓ１３）において、フローエントリ要求手段１２が、コントローラＣ１に対して、アドレスの取得に用いる第一のパケットに対するフローエントリの設定を要求する。  
【００４３】
ステップ１４（Ｓ１４）において、フローエントリ変更手段１４が、コントローラＣ１から通知されるフローエントリを、フローエントリ記憶部１３に登録する。そして、ステップ１２（Ｓ１２）において、パケット処理手段１１は、第一のパケットを、通知されるフローエントリに応じて処理する。  
【００４４】
第一の実施形態において、コントローラＣ１が、アドレス取得のためのパケット（第一のパケット）をノードＲ１から受信した場合の動作例について、図５を用いて説明する。
【００４５】
コントローラＣ１は、ノードＲ１から、アドレス取得のためのパケットを受信する（ステップＳ２０）。例えば、ノードＲ１に接続する端末が、通信相手となるサーバ等の宛先アドレスを取得するために、アドレス取得のためのパケットを送信する。アドレス取得のためのパケットを受信したノードＲ１は、そのパケットを、コントローラＣ１に転送する。
【００４６】
アドレス取得のためのパケットを受信すると、コントローラＣ１は、宛先アドレスを取得するための処理を行う（ステップ２１）。なお、コントローラＣ１は、他の装置にアドレス取得を要求することで宛先アドレスを解決してもよい。  
【００４７】
コントローラＣ１は、宛先アドレスが決定されたことに応じて、当該宛先アドレスに送信されるパケット（第二のパケット）を処理するためのフローエントリを決定し（ステップＳ２２）、決定したエントリを対応するノードに通知する（ステップＳ２３）。コントローラＣ１は、例えば、宛先アドレスに対応する通信相手までの経路のうち最短の経路や、輻輳が少ない経路を、第二のパケットの転送経路として決定する。コントローラＣ１は、決定した経路に対応する処理内容を規定するフローエントリを決定する。例えば、コントローラＣ１は、送信元の端末、ノードＲ１、ノードＲ２、通信相手のサーバの順でパケットを転送する経路を決定する。この場合、コントローラＣ１は、Ｒ２との接続リンクに対応するポートから第二のパケットを転送することを指示するフローエントリをノードＲ１に通知し、通信相手のサーバとの接続リンクに対応するポートから第二のパケットを転送することを指示するフローエントリをノードＲ２に通知する。  
【００４８】
図６は、第一の実施形態の動作例を示すシーケンス図である。図６は例示であって、本発明の動作は、図６に記載された例に限定されない。  
【００４９】
ノードＲ１に接続する端末は、通信の宛先となるサーバのアドレスを取得するため、アドレス取得のためのパケット（第一のパケット）をノードＲ１に送信する。  
【００５０】
ノードＲ１は、アドレス取得のためのパケットを、コントローラＣ１に転送する。  
【００５１】
コントローラＣ１は、端末の通信相手となるサーバの宛先アドレスを取得し、応答パケットにより、取得した宛先アドレスを端末に通知する。応答パケットは、ノードＲ１を経由して端末に送信される。  
【００５２】
コントローラＣ１は、宛先アドレスが決定されたことに応じて、当該宛先アドレスに対して送信されるパケット（第二のパケット）の処理方法を規定したフローエントリを、ノードＲ１とＲ２に通知する。つまり、コントローラＣ１は、ノードＲ１およびＲ２が第二のパケットを受信する前に、予め、第二のパケットに対応するフローエントリをノードに通知する。  
【００５３】
ノードＲ１およびＲ２は、コントローラＣ１から通知されたフローエントリに従って、第二のパケットを転送する。第二のパケットの処理方法を規定したフローエントリが予め通知されているので、ノードＲ１およびＲ２は、コントローラＣ１に対してフローエントリの設定要求をすることなく、パケットを転送できる。  
【００５４】
上記の通り、第一の実施形態では、コントローラＣ１がフローエントリを予め設定することで、ノードによるフローエントリの設定要求を削減できる。したがって、本発明の第一の実施形態では、コントローラＣ１の負荷を低減することができる。
［第二の実施形態］
第二の実施形態は、コントローラＣ１が、送信先装置のアドレス記憶するアドレステーブルを有する実施形態である。  
【００５５】
図７は、第二の実施形態のネットワークシステムの構成例である。  
【００５６】
送信元装置１及び送信先装置２は、例えば、端末やサーバであり、互いにデータパケットを送受信する。送信元装置１は、送信すべきデータパケットが発生した場合、そのデータパケットの送信先である送信先装置２のアドレスを要求するパケット（アドレスの取得に用いる第一のパケット）を送信する。  
【００５７】
図８は、第二の実施形態における、コントローラＣ１の構成例である。図８に示すように、コントローラＣ１は、送信先装置２のアドレス記憶するアドレステーブル２２を有する。なお、ノードＲ１及びＲ２の構成例は、第一の実施形態と同様である。  
【００５８】
アドレステーブル２２は、送信先装置２に関する情報と該送信先装置２のアドレスとを対応付けて記憶する。例えば、アドレステーブル２２は、送信先装置２の第一のアドレスと該送信先装置２の第二のアドレスとを対応付けて記憶する。例えば、アドレステーブル２２は、送信先装置２のＩＰアドレスと該送信先装置２のＭＡＣアドレスとを対応付けて記憶する。  
【００５９】
図９は、アドレステーブル２２が、例えば、送信先装置２のＩＰアドレスと該送信先装置２のＭＡＣアドレスとを対応付けて記憶する場合におけるアドレステーブル２２の構成例である。アドレステーブル２２は、例えば、送信先装置２となり得る複数の装置のそれぞれについて、ＩＰアドレスとＭＡＣアドレスとを対応付けて記憶している。  
【００６０】
アドレステーブル２２における対応関係は、例えば、事前に登録してもよい。また、アドレステーブル２２における対応関係は、例えば、コントローラＣ１が定期的に収集してもよい。また、アドレステーブル２２における対応関係は、例えば、送信元装置１からのアドレスの取得に用いるパケットを受信する毎に、収集してもよい。なお、アドレステーブル２２における対応関係は、例示した方法に限られず、どのような方法で登録・収集してもよい。  
【００６１】
第二の実施形態において、フローエントリ決定手段２１は、アドレステーブル２２を参照して、第一のパケットにより要求された、送信先装置２のアドレスを検索する。第一のパケットには送信先装置２の第一のアドレスが格納されており、フローエントリ決定手段２１は、送信先装置２の第一のアドレスに対応する第二のアドレスを検索する。フローエントリ決定手段２１は、検索した送信先装置２のアドレスに基づいて、該アドレスを宛先とする第二のパケットを処理するためのフローエントリを決定する。  
【００６２】
第二の実施形態において、フローエントリ決定手段２１は、アドレスの取得に用いる第一のパケットを送信した送信元装置１に対して、送信先装置２のアドレスを通知するパケット（レスポンスパケット）を作成するように構成してもよい。この場合において、フローエントリ決定手段２１は、第一のパケットが要求するアドレスをアドレステーブル２２から検索し、検索したアドレスが格納されたレスポンスパケットを作成する。フローエントリ決定手段２１は、通信手段２０を介して、作成したレスポンスパケットをノードＲ１に送信する。ノードＲ１は、該レスポンスパケットを送信元装置１に送信する。
［第三の実施形態］
本発明の第三の実施形態では、コントローラＣ１が、ＡＲＰ（Ａｄｒｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）処理手段を有する。なお、ＡＲＰは、ＩＰアドレスからそれに対応するＭＡＣアドレスを得るために用いられるプロトコルである。
【００６３】
本発明の第三の実施形態のネットワークシステムの構成例は、図７と同様である。  
【００６４】
図１０は、第三の実施形態における、コントローラＣ１の構成例である。図１０に示すように、コントローラＣ１は、ＡＲＰ処理手段２３を有する。なお、ノードＲ１及びＲ２の構成例は、図２と同様である。  
【００６５】
ＡＲＰ処理手段２３は、ＩＰアドレスとＭＡＣアドレスの対応関係を記録するＡＲＰテーブル２４を含む。ＡＲＰテーブル２４は、例えば、送信先装置２のＩＰアドレスと該送信先装置２のＭＡＣアドレスとを対応付けて記憶する。ＡＲＰテーブル２４は、例えば、送信先装置２となり得る複数の装置のそれぞれについて、ＩＰアドレスとＭＡＣアドレスとを対応付けて記憶する。  
【００６６】
ＡＲＰテーブル２４におけるＩＰアドレスとＭＡＣアドレスとの対応関係は、例えば、事前に設定する、定期的に収集する、又は、ＡＲＰ  Ｒｅｑｕｅｓｔの受信ごとに収集する等の方法で構築される。なお、ＡＲＰテーブル２４における対応関係は、例示した方法に限られない。  
【００６７】
フローエントリ決定手段２１は、（１）ＡＲＰ  Ｒｅｑｕｅｓｔに対して送信先装置２のＭＡＣアドレスを解決し、（２）ＭＡＣアドレスの決定に応じて、当該ＭＡＣアドレスに対して送信されるパケットを処理するためのフローエントリを決定する。  
【００６８】
第三の実施形態において、フローエントリ決定手段２１は、ＡＲＰ  Ｒｅｑｕｅｓｔを送信した送信元装置１に対して、送信先装置２のアドレスを通知するＡＲＰ  Ｒｅｐｌｙを作成するように構成してもよい。この場合において、フローエントリ決定手段２１は、ＡＲＰテーブル２４をから検索されたＭＡＣアドレスが格納されたＡＲＰ  Ｒｅｐｌｙを作成する。フローエントリ決定手段２１は、通信手段２０を介して、作成したＡＲＰ  ＲｅｐｌｙをノードＲ１に送信する。ノードＲ１は、該ＡＲＰ  Ｒｅｐｌｙを送信元装置１に転送する。  
【００６９】
フローエントリ決定手段２１がＡＲＰ  Ｒｅｐｌｙを作成する場合、フローエントリ決定手段２１は、該ＡＲＰ  Ｒｅｐｌｙを処理するフローエントリを決定するように構成してもよい。例えば、フローエントリ決定手段２１は、ＡＲＰ  Ｒｅｐｌｙの送信経路に対応するフローエントリを決定する。フローエントリ決定手段２１は、送信手段２０を介して、ＡＲＰ  Ｒｅｐｌｙを処理するフローエントリを、ノードＲ１に通知する。ノードＲ１は、通知されたフローエントリに従って、ＡＲＰ  Ｒｅｐｌｙを処理する。  
【００７０】
図１１は、第三の実施形態の動作例を示すシーケンス図である。  
【００７１】
送信元装置１は、ノードＲ１を介して、送信先装置２のＩＰアドレスを格納したＡＲＰ  Ｒｅｑｕｅｓｔを送信する。  
【００７２】
ノードＲ１は、ＡＲＰ  Ｒｅｑｕｅｓｔを受信すると、コントローラＣ１にＡＲＰ  Ｒｅｑｕｅｓｔを転送する。  
【００７３】
コントローラＣ１は、ＡＲＰテーブル２４を参照し、ＡＲＰ  Ｒｅｑｕｅｓｔに含まれているＩＰアドレスに対応するＭＡＣアドレスを検索する。コントローラＣ１は、検索されたＭＡＣアドレスを、ＡＲＰ  Ｒｅｐｌｙとして送信元装置１に通知する。ＡＲＰ  Ｒｅｐｌｙは、ノードＲ１を経由して送信元装置１に通知される。  
【００７４】
コントローラＣ１は、ＭＡＣアドレスが決定されたことに応じて、当該ＭＡＣアドレス宛のパケット（第二のパケット）を処理するためのフローエントリを決定する。コントローラＣ１は、決定したフローエントリを、ノードＲ１及びＲ２に通知する。
［第四の実施形態］
第四の実施形態では、コントローラＣ１が、ＮＤ（Ｎｅｉｇｈｂｏｒ  Ｄｉｓｃｏｖｅｒｙ）処理手段を有する。なお、ＮＤは、ＩＰｖ６において、ＩＰアドレスからそれに対応するＭＡＣアドレスを得るために用いられるプロトコルである。  
【００７５】
第四の実施形態のネットワークシステムの構成例は、図７と同様である。  
【００７６】
図１２は、第四の実施形態における、コントローラＣ１の構成例である。図１２に示すように、コントローラＣ１は、ＮＤ処理手段２５を有する。なお、第四の実施形態において、ノードＲ１及びＲ２の構成例は、図２と同様である。  
【００７７】
ＮＤ処理手段２５は、ＩＰアドレスとＭＡＣアドレスの対応関係を記録するＮＤテーブル２６を含む。ＮＤテーブル２６は、例えば、送信先装置２のＩＰアドレスと該送信先装置２のＭＡＣアドレスとを対応付けて記憶する。ＮＤテーブル２６は、例えば、送信先装置となり得る複数の装置のそれぞれについて、ＩＰアドレスとＭＡＣアドレスとを対応付けて記憶する。  
【００７８】
ＮＤテーブル２６におけるＩＰアドレスとＭＡＣアドレスとの対応関係は、例えば、事前に設定する、定期的に収集する、又は、ＮＳ（Ｎｅｉｇｈｂｏｒ  Ｓｏｌｉｃｉｔｉｔａｔｉｏｎ）パケットの受信毎に収集する、等の方法で構築される。なお、ＮＤテーブル２６における対応関係は、例示した方法に限られない。  
【００７９】
フローエントリ決定手段２１は、ＮＤテーブル２６を参照して、ＮＳパケットのペイロードに格納された送信先装置２のＩＰアドレスに対応するＭＡＣアドレスを取得する。  
【００８０】
フローエントリ決定手段２１は、（１）ＮＳパケットに対して送信先装置２のＭＡＣアドレスを決定し、（２）ＭＡＣアドレスの決定に応じて、当該ＭＡＣアドレスに対して送信されるパケットを処理するためのフローエントリを決定する。  
【００８１】
第四の実施形態において、フローエントリ決定手段２１は、ＮＳパケットを送信した送信元装置１に対して送信先装置２のアドレスを通知するためのＮＡ（Ｎｅｉｇｈｂｏｒ  Ａｄｖｅｔｉｓｅｍｅｎｔ）パケットを作成するように構成してもよい。この場合、フローエントリ決定手段２１は、ＮＤテーブル２６から検索されたＭＡＣアドレスが格納されたＮＡパケットを作成する。フローエントリ決定手段２１は、通信手段２０を介して、作成したＮＡパケットをノードＲ１に送信する。ノードＲ１は、該ＮＡパケットを送信元装置１に送信する。  
【００８２】
フローエントリ決定手段２１がＮＡパケットを作成する場合、フローエントリ決定手段２１は、該ＮＡパケットを処理するフローエントリを決定してもよい。例えば、フローエントリ決定手段２１は、ＮＡパケットの送信経路に対応するフローエントリを決定する。フローエントリ決定手段２１は、送信手段２０を介して、ＮＡパケットを処理するフローエントリを、ノードＲ１に通知する。ノードＲ１は、通知されたフローエントリに従って、ＮＡパケットを処理する。  
【００８３】
図１３は、第四の実施形態の動作例を示すシーケンス図である。  
【００８４】
送信元装置１は、ノードＲ１を介して、送信先装置２のＩＰアドレスをペイロードに格納したＮＳパケットを送信する。  
【００８５】
ノードＲ１は、ＮＳパケットを受信すると、コントローラＣ１にＮＳパケットを転送する。  
【００８６】
コントローラＣ１は、ＮＤテーブル２６を参照し、ＮＳパケットに含まれているＩＰアドレスに対応するＭＡＣアドレスを検索する。コントローラＣ１は、検索されたＭＡＣアドレスを、ＮＡパケットとして送信元装置１に通知する。ＮＡパケットは、ノードＲ１を経由して送信元装置１に通知される。  
【００８７】
コントローラＣ１は、ＭＡＣアドレスが決定されたことに応じて、当該ＭＡＣアドレス宛のパケット（第二のパケット）を処理するためのフローエントリを決定する。コントローラＣ１は、決定したフローエントリを、ノードＲ１及びＲ２に通知する。
［第五の実施形態］
第五の実施形態では、送信元装置１が、送信先装置２のホスト名から、送信先装置２のＩＰアドレス又はＭＡＣアドレスを取得する。  
【００８８】
図１４は、第五の実施形態のネットワークシステムの構成例を示す図である。
【００８９】
図１４に示すとおり、第五の実施形態において、該ネットワークシステムは、送信先装置２のホスト名から、送信先装置２のＩＰアドレス又はＭＡＣアドレスを解決するネームサーバ３を有する。  
【００９０】
ネームサーバ３は、ホスト名を格納した名前解決要求を受信すると、ホスト名に該当するＩＰアドレス又はＭＡＣアドレスを格納した名前解決応答を返信する。ネームサーバ３は、例えば、ＤＮＳ（Ｄｏｍａｉｎ  Ｎａｍｅ  Ｓｙｓｔｅｍ）、又は、ＷＩＮＳ（Ｗｉｎｄｏｗｓ  Ｎａｍｅ  Ｓｙｓｔｅｍ）である。なお、ネームサーバ３は、ホスト名から、ＩＰアドレス又はＭＡＣアドレスを通知する装置であれば、どのような装置であってもよい。  
【００９１】
ネームサーバ３は、ホスト名と、ＩＰアドレス又はＭＡＣアドレスとを対応付けて記憶するテーブル３１と、テーブル３１を参照して、ホスト名からアドレスを検索する名前解決処理手段３０とを有する。図１５は、テーブル３１の構成例を示す図である。図１５に示すように、テーブル３１は、例えば、装置のホスト名と該装置のＩＰアドレスとを対応付けて記録する。  
【００９２】
コントローラＣ１は、ノードから名前解決要求を受信すると、その要求をネームサーバ３に転送する。  
【００９３】
ネームサーバ３は、送信先装置２のホスト名を格納した名前解決要求を受信すると、テーブル３１を参照して、該ホスト名に対応するＩＰアドレス又はＭＡＣアドレスを検索する。ネームサーバ３は、コントローラＣ１に対して、ホスト名に対応したＩＰアドレス又はＭＡＣアドレスを格納した名前解決応答を送信する。コントローラＣ１は、名前解決応答を、名前解決要求を送信した送信元装置１に向けて送信する。  
【００９４】
第五の実施形態のノードＲ１・Ｒ２及びコントローラＣ１の構成例は図２と同様である。
【００９５】
図１６は、第五の実施形態の動作例を示すシーケンス図である。  
【００９６】
送信元装置１は、接続するノードＲ１に、送信先装置２のホスト名を指定した名前解決要求を送信する。  
【００９７】
ノードＲ１は、名前解決要求を受信すると、コントローラＣ１に名前解決要求を転送する。  
【００９８】
コントローラＣ１は、ネームサーバ３に名前解決を要求する。  
【００９９】
ネームサーバ３は、名前解決要求で指定されたホスト名に対応するアドレスを検索する。
ネームサーバ３は、検索したアドレスを、名前解決応答としてコントローラＣ１に通知する。  
【０１００】
コントローラＣ１は、名前解決応答を、送信元装置１に向けて送信する。  
【０１０１】
コントローラＣ１は、ホスト名に対応するアドレスが解決されたことに応じて、当該アドレス宛に送信されるパケット（第二のパケット）に対応するフローエントリを決定する。
コントローラＣ１は、決定したフローエントリを、ノードＲ１およびＲ２に通知する。
【０１０２】
以上、本発明の好適な実施形態を説明したが、本発明は、上記した実施形態に限定されるものではない。特に、方法（その方法のステップ）はプログラムによって実装してもよいし、ノード、コントロール装置、サーバ、これらの構成要素を含む全システムの要素は当該プログラムによって動作可能な少なくと１つのコンピュータによって実装することができる。  
【０１０３】
なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態および実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態の各要素、各実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【０１０４】
１  送信元装置
２  送信先装置
３  ネームサーバ
１０  パケット受信手段（ユニット）
１１  パケット処理手段（ユニット）
１２  フローエントリ要求手段（ユニット）
１３  フローエントリ記憶部
１４  フローエントリ変更手段（ユニット）
２０  通信手段
２１  フローエントリ決定手段（ユニット）
２２  アドレステーブル
２３  ＡＲＰ処理手段（ユニット）
２４  ＡＲＰテーブル
２５  ＮＤ処理手段（ユニット）
２６  ＮＤテーブル
３０  名前解決処理手段（ユニット）
３１  テーブル  
【図１】
0005971348.tif 000002
【図２】
0005971348.tif 000003
【図３】
0005971348.tif 000004
【図４】
0005971348.tif 000005
【図５】
0005971348.tif 000006
【図６】
0005971348.tif 000007
【図７】
0005971348.tif 000008
【図８】
0005971348.tif 000009
【図９】
0005971348.tif 000010
【図１０】
0005971348.tif 000011
【図１１】
0005971348.tif 000012
【図１２】
0005971348.tif 000013
【図１３】
0005971348.tif 000014
【図１４】
0005971348.tif 000015
【図１５】
0005971348.tif 000016
【図１６】
0005971348.tif 000017