(57)【要約】  制御装置が、少なくとも１以上の通信ノードを制御する広域ネットワークにおいて、トラフィック発生地点からトラフィック受信地点に至るまでフロー制御の一貫性を維持する通信システムを提供する。通信システムは、パケットを処理するための処理規則に応じて、受信したパケットを処理する複数の通信ノードと、複数の通信ノードに対して、処理規則を設定する制御装置と、を含む。さらに、制御装置は、パケットのヘッダ情報を変更するための第１の処理規則を第１の通信ノードに設定したことに応じて、変更後のヘッダ情報を含むパケットを処理するための第２の処理規則を第２の通信ノードに設定する。
2014126094.tif 000002
【特許請求の範囲】
【請求項１】
パケットを処理するための処理規則に応じて、受信したパケットを処理する複数の通信ノードと、
前記複数の通信ノードに対して、前記処理規則を設定する制御装置と、を含み、
前記制御装置は、パケットのヘッダ情報を変更するための第１の処理規則を第１の通信ノードに設定したことに応じて、変更後のヘッダ情報を含むパケットを処理するための第２の処理規則を第２の通信ノードに設定する通信システム。
【請求項２】
前記複数の通信ノードのそれぞれは、パケットのヘッダ情報と照合するための照合規則を有する処理規則に応じて、受信したパケットを処理し、
前記制御装置は、前記パケットのヘッダ情報を変更するための第１の処理規則を前記第１の通信ノードに設定したことに応じて、前記変更後のヘッダ情報を照合規則とする前記第２の処理規則を前記第２の通信ノードに設定する請求項１の通信システム。
【請求項３】
前記第１及び第２の通信ノードは、前記パケットの転送経路に含まれ、
前記第２の通信ノードは、前記転送経路において、前記第１の通信ノードの次の転送先の通信ノードである請求項１又は２の通信システム。
【請求項４】
前記制御装置は、変更後のヘッダ情報を含む前記パケットを前記転送経路に転送するための第２の処理規則を、前記第２の通信ノードに設定する請求項３の通信システム。
【請求項５】
前記制御装置は、
前記パケットのヘッダ情報を変更するための第１の処理規則を前記第１の通信ノードに設定する第１の設定部と、
前記第１の設定部が前記第１の処理規則を設定したことに応じて、前記第２の処理規則を前記第２の通信ノードに設定する第２の設定部と、
を備える請求項１乃至４のいずれか一項に記載の通信システム。
【請求項６】
前記制御装置は、前記パケットに含まれる前記変更後のヘッダ情報を、変更前のヘッダ情報に戻すための第３の処理規則を、第３の通信ノードに設定する請求項１乃至５のいずれか一項に記載の通信システム。
【請求項７】
前記制御装置は、前記第１の処理規則として、前記パケットのヘッダ情報を、前記照合規則として利用されているヘッダ情報とは異なるヘッダ情報に変更するための処理規則を、前記第１の通信ノードに設定する請求項２乃至６のいずれか一項に記載の通信システム。
【請求項８】
複数の通信ノードに対して、パケットを処理するための処理規則を設定する複数の制御装置を含むネットワークを複数有し、
第１のネットワークに含まれる第１の制御装置が、前記第１のネットワークに含まれる第１の通信ノードに、パケットのヘッダ情報を変更するための第１の処理規則を設定し、
第２のネットワークに含まれる第２の制御装置が、前記第１の制御装置が前記第１の処理規則を設定したことに応じて、前記第２のネットワークに含まれる第２の通信ノードに、変更後のヘッダ情報を含む前記パケットを処理するための第２の処理規則を設定する通信システム。
【請求項９】
前記複数の通信ノードのそれぞれは、パケットのヘッダ情報と照合するための照合規則を含む処理規則に応じて、受信したパケットを処理し、
前記第２の制御装置は、前記第１の制御装置が前記第１の処理規則を設定したことに応じて、前記変更後のヘッダ情報を照合規則とする前記第２の処理規則を前記第２の通信ノードに設定する請求項８の通信システム。
【請求項１０】
前記第１及び第２の通信ノードは、それぞれ前記第１及び第２のネットワークの端点に位置する通信ノードであり、
前記第１の通信ノードと前記第２の通信ノードとは、互いに接続している請求項８又は９の通信システム。
【請求項１１】
前記第１のネットワークに含まれる第１の制御装置に、前記第１の処理規則を前記第１の通信ノードに設定させる第１の設定部と、
前記第２のネットワークに含まれる第２の制御装置に、前記第２の処理規則を前記第２の通信ノードに設定させる第２の設定部と、
を備える設定装置をさらに含む請求項８乃至１０のいずれか一項に記載の通信システム。
【請求項１２】
前記第２の制御装置は、前記第２のネットワークに含まれる少なくとも１つの通信ノードに対して、前記パケットに含まれる前記変更後のヘッダ情報を変更前のヘッダ情報に戻すための第３の処理規則を設定する請求項８乃至１１のいずれか一項に記載の通信システム。
【請求項１３】
前記第２の制御装置は、前記第２のネットワークに含まれる通信ノードであって、第３のネットワークに含まれる第３の通信ノードと互いに接続する通信ノードに対して、前記第３の処理規則を設定する請求項１２の通信システム。
【請求項１４】
前記第１の制御装置は、前記第１の処理規則として、前記パケットのヘッダ情報を、前記第２のネットワークにおいて前記照合規則として利用されているヘッダ情報とは異なるヘッダ情報に変更するための処理規則を設定する請求項９の通信システム。
【請求項１５】
前記変更後のヘッダ情報は、前記複数のネットワークにおいて前記パケットが属するフローを一意に識別するための識別子を含む請求項８乃至１４のいずれか一項に記載の通信システム。
【請求項１６】
前記第１の制御装置は、前記複数のネットワークのそれぞれに含まれる複数の通信ノードの少なくとも１つに設定される処理規則であって、前記パケットのヘッダ情報を変更するための処理規則を、通信ノードに設定する制御装置に対して通知する請求項８乃至１５のいずれか一項に記載の通信システム。
【請求項１７】
前記第１の制御装置は、前記複数のネットワークのそれぞれに含まれる複数の通信ノードの少なくとも１つに設定される処理規則であって、変更後のヘッダ情報を含む前記パケットを処理するための処理規則を、前記処理規則を通信ノードに設定する制御装置に対して通知する請求項８乃至１６のいずれか一項に記載の通信システム。
【請求項１８】
前記第１の制御装置は、前記複数のネットワークのそれぞれに含まれる複数の通信ノードの少なくとも１つに設定される処理規則であって、前記パケットに含まれる前記変更後のヘッダ情報を変更前のヘッダ情報に戻すための処理規則を、前記処理規則を通信ノードに設定する制御装置に対して通知する請求項８乃至１７のいずれか一項に記載の通信システム。
【請求項１９】
パケットを処理するための処理規則に応じて、受信したパケットを処理する複数の通信ノードを含む通信システムにおける通信方法であって、
パケットのヘッダ情報を変更するための第１の処理規則を第１の通信ノードに設定する工程と、
前記第１の処理規則の設定に応じて、変更後のヘッダ情報を含むパケットを処理するための第２の処理規則を第２の通信ノードに設定する工程と、
を含む通信方法。
【請求項２０】
前記パケットに含まれる前記変更後のヘッダ情報を、変更前のヘッダ情報に戻すための第３の処理規則を、第３の通信ノードに設定する工程をさらに含む請求項１９の通信方法。
【請求項２１】
第１の通信ノードから第２の通信ノードへパケットが転送される第１のネットワークを制御する制御装置であって、
前記第１の通信ノードが受信したパケットのヘッダ情報を書き換える第１のパケット処理規則を前記第１の通信ノードに設定すると共に、前記書き換えられたヘッダ情報を含むパケットを処理するための第２のパケット処理規則を前記第２の通信ノードに設定する制御装置。
【請求項２２】
前記制御装置は、前記第２の通信ノードに設定されている、パケットを識別するための第１の識別条件と、前記第２の通信ノードに対して新たに設定しようとする、パケットを識別するための第２の識別条件と、が一致する場合に、前記第１及び第２のパケット処理規則を前記第１及び第２の通信ノードに設定する請求項２１の制御装置。
【請求項２３】
前記制御装置は、前記第２の通信ノードを含む通信ノードに、前記第１の処理規則により書き換えられたヘッダ情報を、書き換え前のヘッダ情報に戻す第３のパケット処理規則を設定する請求項２１又は２２の制御装置。
【請求項２４】
前記制御装置は、前記第１のネットワークと異なる第２のネットワークを制御する制御装置に対して、前記第１のパケット処理規則により書き換えられるヘッダ情報を通知する請求項２１乃至２３のいずれか一項に記載の制御装置。
【請求項２５】
第１の通信ノードから第２の通信ノードへパケットが転送される第１のネットワークを制御する制御装置の制御方法であって、
前記第１の通信ノードが受信したパケットのヘッダ情報を書き換える第１のパケット処理規則を前記第１の通信ノードに設定する工程と、
前記書き換えられたヘッダ情報を含むパケットを処理するための第２のパケット処理規則を前記第２の通信ノードに設定する工程と、
を含む制御装置の制御方法。
【請求項２６】
前記第２の通信ノードに設定されている、パケットを識別するための第１の識別条件と、前記第２の通信ノードに対して新たに設定しようとする、パケットを識別するための第２の識別条件と、が一致するか否かを判定する工程をさらに含み、
前記第１及び第２の識別条件が一致する場合に、前記第１及び第２のパケット処理規則は前記第１及び第２の通信ノードに設定される請求項２５の制御装置の制御方法。
【請求項２７】
前記第２の通信ノードを含む通信ノードに、前記第１の処理規則により書き換えられたヘッダ情報を、書き換え前のヘッダ情報に戻す第３のパケット処理規則を設定する工程をさらに含む請求項２５又は２６の制御装置の制御方法。
【請求項２８】
前記第１のネットワークと異なる第２のネットワークを制御する制御装置に対して、前記第１のパケット処理規則により書き換えられるヘッダ情報を通知する工程をさらに含む請求項２５乃至２７のいずれか一項に記載の制御装置の制御方法。
【請求項２９】
第１の通信ノードから第２の通信ノードへパケットが転送される第１のネットワークを制御する制御装置を制御するコンピュータに実行させるプログラムであって、
前記第１の通信ノードが受信したパケットのヘッダ情報を書き換える第１のパケット処理規則を前記第１の通信ノードに設定する処理と、
前記書き換えられたヘッダ情報を含むパケットを処理するための第２のパケット処理規則を前記第２の通信ノードに設定する処理と、
を実行させるプログラム。
【請求項３０】
前記第２の通信ノードに設定されている、パケットを識別するための第１の識別条件と、前記第２の通信ノードに対して新たに設定しようとする、パケットを識別するための第２の識別条件と、が一致するか否かを判定する処理をさらに実行させ、
前記第１及び第２の識別条件が一致する場合に、前記第１及び第２のパケット処理規則は前記第１及び第２の通信ノードに設定される請求項２９のプログラム。
【請求項３１】
前記第２の通信ノードを含む通信ノードに、前記第１の処理規則により書き換えられたヘッダ情報を、書き換え前のヘッダ情報に戻す第３のパケット処理規則を設定する処理をさらに実行させる請求項２９又は３０のプログラム。
【請求項３２】
前記第１のネットワークと異なる第２のネットワークを制御する制御装置に対して、前記第１のパケット処理規則により書き換えられるヘッダ情報を通知する処理をさらに実行させる請求項２９乃至３１のいずれか一項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願についての記載］
本発明は、日本国特許出願：特願２０１３−０２５４０７号（２０１３年２月１３日出願）に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、通信システム、通信方法、制御装置、制御装置の制御方法及びプログラムに関する。特に、制御装置からの指示に従ってパケットを転送する通信ノードを含む通信システム、通信方法、制御装置、制御装置の制御方法及びプログラムに関する。
【背景技術】
【０００２】
非特許文献１、２に示すとおり、近年、オープンフロー（ＯｐｅｎＦｌｏｗ）という技術が提案されている。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。転送ノードとして機能するオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加又は書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するルール（ＦｌｏｗＫｅｙ；マッチングキー）と、処理内容を定義したアクション（Ａｃｔｉｏｎ）と、フロー統計情報（Ｓｔａｔｓ）との組が定義される。【０００３】
図１１は、非特許文献２において開示されているアクション名とアクションの内容に関する定義の一例である。図１１を参照すると、ＯＵＴＰＵＴは、パケットを指定ポート（インターフェース）に出力するアクションであることが分かる。また、ＳＥＴ＿ＶＬＡＮ＿ＶＩＤからＳＥＴ＿ＴＰ＿ＤＳＴまでのアクションは、それぞれ、パケットヘッダのフィールドを修正するアクションであることが分かる。【０００４】
例えば、オープンフロースイッチは、最初のパケット（ｆｉｒｓｔ  ｐａｃｋｅｔ）を受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するルール（ＦｌｏｗＫｅｙ）を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、受信パケットに対して、当該エントリのアクションフィールドに記述された処理内容を実施する。一方、検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに受信パケットを転送し、受信パケットの送信元・宛先に基づいたパケット転送経路の決定を依頼する。依頼を受けたオープンフローコントローラは、パケット転送経路を計算し、オープンフロースイッチに応答する。オープンフロースイッチは、オープンフローコントローラから、パケット転送経路を実現するフローエントリを受け取ってフローテーブルを更新する。【０００５】
また、上述のようにオープンフロースイッチはオープンフローコントローラからのフローエントリ設定によってパケットの処理方法を決定する。このように、オープンフローは、オープンフローコントローラによるオープンフロースイッチの制御によって、パケットの制御を照合規則（マッチ条件）によって規定されるフローの制御として実現する。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Nick McKeownほか７名、"OpenFlow: Enabling Innovation in Campus Networks"、［online］、［平成25年2月1日検索］、インターネット〈URL：http://www.openflowswitch.org//documents/openflow-wp-latest.pdf〉
【非特許文献２】"OpenFlow Switch Specification" Version 1.0.0. (Wire Protocol 0x01) ［平成25年2月1日検索］、インターネット〈URL：http://www.openflowswitch.org/documents/openflow-spec-v1.0.0.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００７】
なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。【０００８】
非特許文献１、２に開示されるオープンフローは、新たにオープンフロースイッチに設定するフローエントリが、既に設定済みのフローエントリと競合を起こす可能性がある。より具体的には、新たに設定するフローエントリに含まれる照合規則と、既に設定されているフローエントリに含まれる照合規則とが重複する場合がある。この場合、オープンフロースイッチは、受信パケットをいずれのフローエントリで処理するべきか判断ができず、例えば、受信パケットを、該受信パケットを処理するためのフローエントリではなく、異なるフローに属する他のパケットを処理するためのフローエントリによって処理してしまう可能性がある。すなわち、非特許文献１、２に開示されるオープンフロースイッチでは、受信パケットに対して、適切でないフローエントリがヒットし、意図しない処理が実行される可能性がある。【０００９】
本発明は、受信パケットに対して、適切でないフローエントリがヒットし、意図しない処理が実行されることを防止することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の第１の視点によれば、パケットを処理するための処理規則に応じて、受信したパケットを処理する複数の通信ノードと、前記複数の通信ノードに対して、前記処理規則を設定する制御装置と、を含み、前記制御装置は、パケットのヘッダ情報を変更するための第１の処理規則を第１の通信ノードに設定したことに応じて、変更後のヘッダ情報を含むパケットを処理するための第２の処理規則を第２の通信ノードに設定する通信システムが提供される。【００１１】
本発明の第２の視点によれば、複数の通信ノードに対して、パケットを処理するための処理規則を設定する複数の制御装置を含むネットワークを複数有し、第１のネットワークに含まれる第１の制御装置が、前記第１のネットワークに含まれる第１の通信ノードに、パケットのヘッダ情報を変更するための第１の処理規則を設定し、第２のネットワークに含まれる第２の制御装置が、前記第１の制御装置が前記第１の処理規則を設定したことに応じて、前記第２のネットワークに含まれる第２の通信ノードに、変更後のヘッダ情報を含む前記パケットを処理するための第２の処理規則を設定する通信システムが提供される。【００１２】
本発明の第３の視点によれば、パケットを処理するための処理規則に応じて、受信したパケットを処理する複数の通信ノードを含む通信システムにおける通信方法であって、パケットのヘッダ情報を変更するための第１の処理規則を第１の通信ノードに設定する工程と、前記第１の処理規則の設定に応じて、変更後のヘッダ情報を含むパケットを処理するための第２の処理規則を第２の通信ノードに設定する工程と、を含む通信方法が提供される。
なお、本方法は、複数の通信ノードを含む通信システムという、特定の機械に結びつけられている。【００１３】
本発明の第４の視点によれば、第１の通信ノードから第２の通信ノードへパケットが転送される第１のネットワークを制御する制御装置であって、前記第１の通信ノードが受信したパケットのヘッダ情報を書き換える第１のパケット処理規則を前記第１の通信ノードに設定すると共に、前記書き換えられたヘッダ情報を含むパケットを処理するための第２のパケット処理規則を前記第２の通信ノードに設定する制御装置が提供される。【００１４】
本発明の第５の視点によれば、第１の通信ノードから第２の通信ノードへパケットが転送される第１のネットワークを制御する制御装置の制御方法であって、前記第１の通信ノードが受信したパケットのヘッダ情報を書き換える第１のパケット処理規則を前記第１の通信ノードに設定する工程と、前記書き換えられたヘッダ情報を含むパケットを処理するための第２のパケット処理規則を前記第２の通信ノードに設定する工程と、を含む制御装置の制御方法が提供される。
なお、本方法は、複数の通信ノードを含むネットワークを制御する制御装置という、特定の機械に結びつけられている。【００１５】
本発明の第６の視点によれば、第１の通信ノードから第２の通信ノードへパケットが転送される第１のネットワークを制御する制御装置を制御するコンピュータに実行させるプログラムであって、前記第１の通信ノードが受信したパケットのヘッダ情報を書き換える第１のパケット処理規則を前記第１の通信ノードに設定する処理と、前記書き換えられたヘッダ情報を含むパケットを処理するための第２のパケット処理規則を前記第２の通信ノードに設定する処理と、を実行させるプログラムが提供される。
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント（ｎｏｎ−ｔｒａｎｓｉｅｎｔ）なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１６】
本発明の各視点によれば、受信パケットに対して、適切でないフローエントリがヒットし、意図しない処理が実行されることを防止することに寄与する通信システム、通信方法、制御装置、制御装置の制御方法及びプログラムが、提供される。
【図面の簡単な説明】
【００１７】
【図１】一実施形態の概要を説明するための図である。
【図２】第１の実施形態に係る通信システムの構成の一例を示す図である。
【図３】制御装置２０の内部構成の一例を示す図である。
【図４】通信ノード１０−１及び１０−２に設定されるパケット処理規則の一例を示す図である。
【図５】第１の実施形態に係る制御装置２０の動作の一例を示す図である。
【図６】通信ノード１０−１及び１０−２に設定されるパケット処理規則の一例を示す図である。
【図７】第３の実施形態に係る通信システムの構成の一例を示す図である。
【図８】制御装置４０の内部構成の一例を示す図である。
【図９】第３の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図１０】通信ノード１０−３〜１０−５に設定されるパケット処理規則の一例を示す図である。
【図１１】非特許文献２において開示されているアクション名とアクションの内容に関する定義の一例である。
【発明を実施するための形態】
【００１８】
初めに、図１を用いて一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。
【００１９】
上述のように、非特許文献１、２に開示されたオープンフローでは、制御装置と複数の通信ノードからなるネットワークにおける一貫したフロー制御は保証されず、新たに通信ノードに設定する照合規則が、設定済みの照合規則と競合を起こす可能性がある。即ち、本来であれば別のフローとして扱うべきトラフィックが同一に扱われてしまい、本来の転送先とは異なる宛先へ転送されてしまう事態が生じる可能性がある。そのため、制御装置が、少なくとも１以上の通信ノードを制御する広域ネットワークにおいて、トラフィック発生地点からトラフィック受信地点に至るまでフロー制御の一貫性を維持する通信システム等が、望まれる。
【００２０】
そこで、一例として図１に示す通信システムを提供する。図１に示す通信システムは、複数の通信ノード（例えば、第１の通信ノード１００−１と第２の通信ノード１００−２）と、複数の通信ノードを制御する制御装置１０１と、を含んで構成される。複数の通信ノードのそれぞれは、パケットを処理するための処理規則に応じて、受信したパケットを処理する。制御装置１０１は、複数の通信ノードに対して、処理規則を設定することで、複数の通信ノードからなるネットワークを制御する。さらに、制御装置１０１は、パケットのヘッダ情報を変更するための第１の処理規則を第１の通信ノード１００−１に設定したことに応じて、変更後のヘッダ情報を含むパケットを処理するための第２の処理規則を第２の通信ノード１００−２に設定する。
【００２１】
制御装置１０１は、既にネットワークに設定されている既存のフローと、新たに設定しようとするフローと、が混合する可能性がある場合に、これらのフローの衝突を回避する処理規則を第１の通信ノード１００−１に設定する。より詳細には、制御装置１０１は、第１の通信ノード１００−１に対して、第１の通信ノード１００−１が受信したパケットのヘッダ情報を書き換えさせる処理規則を設定する。パケットのヘッダ情報は、通信ノード１００−１及び１００−２において、パケットを識別するための情報として使用されるため、第１の通信ノード１００−１が、パケットのヘッダ情報を書き換えることで、既存のフローに収容されるパケットと、新たに設定されるフローに収容されるパケットを識別できる。その結果、通信ノード１００−２において、各フローに収容されるパケットを正しく識別でき、フローの混合を防止する。さらに、非特許文献１、２に開示されるオープンフローでは、パケットのヘッダ情報が変化すると、ヘッダ情報の変化の前後で異なるフローに属するものとして認識される。そこで、制御装置１０１は、第１の通信ノード１００−１がヘッダ情報を書き換えたパケットを、第２の通信ノード１００−２において処理可能となるように、第２の処理規則を第２の通信ノード１００−２に設定する。その結果、図１に示す通信システムは、トラフィック発生地点からトラフィック受信地点に至るまで、フロー制御の一貫性を維持できる。
【００２２】
以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。
【００２３】
［第１の実施形態］
第１の実施形態について、図面を用いてより詳細に説明する。
【００２４】
図２は、本実施形態に係る通信システムの構成の一例を示す図である。
【００２５】
図２を参照すると、ネットワーク間の接続を実現する通信ノード１０−１〜１０−３と、通信ノード１０−１〜１０−３から構成されるネットワークを制御する制御装置２０と、端末３０−１〜３０−４と、を含む構成が示されている。例えば、制御装置２０はオープンフローコントローラに相当し、通信ノード１０−１〜１０−３はオープンフロースイッチに相当する。なお、以降の説明において、通信ノード１０−１〜１０−３を特に区別する必要のないときは「通信ノード１０」と表記する。
【００２６】
通信ノード１０は、それぞれ、パケットのヘッダ情報と照合するための照合規則を含むパケット処理規則に応じて、受信したパケットを処理する。
【００２７】
制御装置２０は、通信ノード１０−１〜１０−３と図中の破線で示される制御用の通信チャネルを介して接続されている。また、通信ノード１０−１には端末３０−１及び３０−２が、通信ノード１０−２、通信ノード１０−３には、それぞれ、端末３０−３、端末３０−４が接続されている。なお、図２に示す通信システムは例示であって、通信ノードの数や通信ノード間の接続等を限定する趣旨ではない。通信ノードの数等は、任意に選択できる。
【００２８】
制御装置２０は、通信ノード１０からの問い合わせに応じて、又は、制御装置２０が制御対象とするネットワークのトポロジ変動に応じてフロー制御を行う。あるいは、制御装置２０は、ネットワークを管理するユーザからの指示、新規ホストの登録等の状況変化、外部装置からの経路設定命令、等に応じてフロー制御を行ってもよい。
【００２９】
制御装置２０から通信ノード１０に対するフロー制御は、フローを識別するためのパケット識別条件（照合規則；マッチングキー）と、当該パケット識別条件に該当するパケットの取り扱いを定めるパケット処理方法（アクション）と、を通信ノード１０に設定することで行われる。なお、パケット識別条件及びパケット処理方法は、制御装置２０が自ら計算してもよいし、外部から入力する形態でもよい。
【００３０】
次に、本実施形態に係る通信システムの動作について概説する。ここでは、端末３０−１から端末３０−４にパケットを送信する場合を考える。
【００３１】
端末３０−１から端末３０−４にパケットを送信する場合、図２に示す一点鎖線で示されるように、通信ノード１０−１、１０−２、１０−３というパケット転送経路が使用される。そのため、制御装置２０は、通信ノード１０−１〜１０−３にパケットを転送するためのパケット処理規則を設定する必要がある。その際、制御装置２０は、通信ノード１０−１に対して、以下の内容を持つパケット処理規則を設定する。
通信ノード１０−２に対してパケットを転送するパケット処理規則。
パケットのヘッダ情報を書き換えるパケット処理規則。
【００３２】
なお、通信ノード１０−１が書き換えるパケットヘッダのフィールドには、送信元ＭＡＣアドレス、宛先ＭＡＣアドレス、送信元ＩＰアドレス、宛先ＩＰアドレス、トランスポート層プロトコルに使用するポート番号、等が挙げられる。あるいは、上記以外のフィールドを変更してもよい。
【００３３】
ここで、上述の通信ノード１０−１に設定したパケット処理規則を考慮せずに、制御装置２０から通信ノード１０−２に対してパケット処理規則を設定すると問題が生じる。より具体的には、このような場合、通信ノード１０−２は、通信ノード１０−１においてヘッダ情報が書き換えられたパケットと、ヘッダ情報が書き換えられる前のパケットを、同一のフローに収容できない。
【００３４】
そこで、制御装置２０では、通信ノード１０−１が書き換えたヘッダ情報に合致するように、通信ノード１０−２に設定するパケット識別条件を計算し、パケット処理規則として通信ノード１０−２に設定する。なお、通信ノード１０−２に設定するパケット処理規則において、通信ノード１０−１において書き換えられたヘッダ情報を、書き換え前の値に復元する処理を追加してもよい。
【００３５】
また、制御装置２０は、通信ノード１０−３に対して、通信ノード１０−２においてヘッダ情報が復元されるならば、当該復元されたヘッダ情報に基づいて、パケット識別条件を計算し、端末３０−４にパケットを転送させるパケット処理規則を設定する。あるいは、制御装置２０は、通信ノード１０−２においてヘッダ情報が復元されていなければ、通信ノード１０−１が書き換えたヘッダ情報に基づいて、パケット識別条件及びパケット処理方法を計算し、パケット処理規則として通信ノード１０−３に設定する。
【００３６】
通信ノード１０−１〜１０−３に対して、上記のような設定を行うことで、ヘッダ情報はネットワークの任意のノードにおいて、一時的又はネットワークの転送中継続して異なる値に変更される。その結果、パケット識別条件が一致することで、フローの混合が起こるような状況であったとしても、各通信ノードでは、フローを一意に識別することができ、正しいフローにパケットを収容できる。
【００３７】
図３は、制御装置２０の内部構成の一例を示す図である。
【００３８】
図３を参照すると、制御装置２０は、トポロジ管理部２１と、経路決定部２２と、フロー計算部２３と、フローデータベース（ＤＢ）２４と、処理規則計算部２５と、処理規則設定部２６と、制御メッセージ処理部２７と、ノード通信部２８と、を含んで構成される。なお、制御装置２０に含まれる各部は、制御装置２０に搭載されたコンピュータに、そのハードウェアを用いて、後に詳述する処理を実行させるコンピュータプログラムにより実現することもできる。
【００３９】
トポロジ管理部２１は、ネットワークのトポロジ情報を収集すると共に、収集したトポロジ情報を管理する手段である。
【００４０】
経路決定部２２は、パケット転送に使用する経路を決定する手段である。経路決定部２２は、パケットヘッダに記載された宛先ＩＰアドレス等を参照することで、パケット転送経路を決定する。なお、制御装置２０は、経路決定部２２におけるパケット転送経路の計算に代えて、パケット転送経路を外部から入力してもよい。
【００４１】
フロー計算部２３は、制御装置２０が制御対象とするネットワークで制御すべきフローを計算し、管理する手段である。フロー計算部２３の詳細は、後述する。
【００４２】
フローＤＢ２４は、フロー計算部２３がアクセス可能なデータベースであり、制御装置２０から通信ノード１０に対して既に設定したフローに関する情報を記憶する。
【００４３】
処理規則計算部２５は、経路決定部２２により決定されたパケット転送経路を分解し、各通信ノード１０に設定すべきパケット処理規則（パケット識別条件及びパケット処理方法）を計算する。処理規則計算部２５は、計算したパケット処理規則をフロー計算部２３に出力する。
【００４４】
処理規則設定部２６は、通信ノード１０に対するパケット処理規則の設定を、制御メッセージ処理部２７に依頼する手段である。
【００４５】
制御メッセージ処理部２７は、通信ノード１０への制御内容を制御メッセージとして変換する、又は、通信ノード１０からの制御メッセージを解析し処理する手段である。
【００４６】
ノード通信部２８は、通信ノード１０との通信を実現する手段である。
【００４７】
フロー計算部２３は、フロー判定部２３１と、フロー変換部２３２と、フロー結合部２３３と、フロー復元部２３４と、を含んで構成される。
【００４８】
フロー判定部２３１は、処理規則計算部２５により計算されたパケット識別条件が、各通信ノード１０に既に設定されてパケット識別条件と衝突（重複）するか否か（フローの混合が生じるか否か）を判定する手段である。
【００４９】
フロー変換部２３２は、新たなフローを設定する際に、フロー判定部２３１においてパケット識別条件が衝突すると判定された場合に、ヘッダ情報の書き換えを実行する通信ノードの決定と、当該ヘッダ情報の書き換え値を決定する手段である。フロー変換部２３２における処理の結果得られるパケット処理方法を、フロー変換規則と表記し、以降の説明を行う。
【００５０】
フロー結合部２３３は、パケット転送経路に含まれる通信ノードにおいてヘッダ情報の書き換えが行われたパケットが、次転送先の通信ノードにおいて転送可能となるようにパケット識別条件を計算する手段である。フロー結合部２３３における処理の結果得られるパケット識別条件を、フロー結合規則と表記し、以降の説明を行う。
【００５１】
フロー復元部２３４は、パケット転送経路の終端やフロー結合規則を設定する通信ノード、その他任意の通信ノードにおいてヘッダ情報を書き換え前の値に戻すパケット処理方法を計算する手段である。フロー復元部２３４における処理の結果得られるパケット処理方法を、フロー復元規則と表記し、以降の説明を行う。
【００５２】
次に、本実施形態に係る通信システムの動作について説明する。
【００５３】
ここでは、図２における端末３０−１から端末３０−４に特定のトラフィックを転送するためのフローが既に設定されている状況下において、同様の特徴を持つトラフィックを新たに、端末３０−２から端末３０−３に転送するためのフローを設定する場合を例に取り、通信システムの動作を説明する。なお、端末３０−１から端末３０−４へのフローをフローＦ０１、端末３０−２から端末３０−３へのフローをフローＦ０２とする。
【００５４】
図２において、端末３０−１から端末３０−４へパケットを転送するために用いられるパケット転送経路は、上述のように、通信ノード１０−１〜１０−３である。また、通信ノード１０−３が受信したパケットは、端末３０−４と接続しているインターフェイスに出力される。一方、端末３０−２から端末３０−３へパケットを転送するために用いられるパケット転送経路は、通信ノード１０−１及び１０−２である。通信ノード１０−２が受信したパケットは、端末３０−３と接続しているインターフェイスに出力される。これら２つのパケット転送経路に含まれる通信ノードの一部は、それぞれフローＦ０１とＦ０２にて共用される。即ち、通信ノード１０−１及び１０−２は、２つのパケット転送経路が共に使用する通信ノードである。
【００５５】
図４は、通信ノード１０−１及び１０−２に設定されるパケット処理規則の一例を示す図である。なお、図４に示すパケット処理規則では、フローの混合が生じる。以下、フローの混合が生じる理由の説明をする。
【００５６】
通信ノード１０−１においては、それぞれのフローに収容されるパケットを入力するインターフェイスが異なるため（即ち、トラフィックの発生地点が違うため）、パケットを受け付けたインターフェイスの情報を使用することで、フローＦ０１とＦ０２を識別できる（図４（ａ）参照）。しかし、通信ノード１０−２では、パケットを入力するインターフェイスを含めて、パケットの識別条件が同一となる場合がある（図４（ｂ）参照）。そのような場合、通信ノード１０−２では、フローＦ０１とＦ０２を識別できず、パケットがどちらかのフローに混合されてしまう。
【００５７】
そこで、制御装置２０は、フローの混合を回避するため、パケット転送経路上における通信ノード１０−２へのパケット転送元となる通信ノード１０−１に、ヘッダ情報を書き換えさせるパケット処理方法（フロー変換規則）を設定する。
【００５８】
図５は、本実施形態に係る制御装置２０の動作の一例を示す図である。
【００５９】
ステップＳ０１において、経路決定部２２は、通信ノード１０からパケット転送経路の決定に関する依頼を受け付けると、パケット転送経路を決定する。ここでは、通信ノード１０−１から受信パケットを受け付け、通信ノード１０−１及び１０−２を使用するパケット転送経路（フローＦ０２）が定まるとする。
【００６０】
ステップＳ０２において、処理規則計算部２５は、前ステップで定まったパケット転送経路に含まれる通信ノードのそれぞれに設定すべきパケット処理規則（パケット識別条件及びパケット処理方法）を計算する。ここでは、通信ノード１０−１及び通信ノード１０−２に対するパケット処理規則が、それぞれ計算される。
【００６１】
ステップＳ０３において、フロー判定部２３１は、制御装置２０が制御対象とするネットワークに設定済みのフローに関する情報をフローＤＢ２４から取得する。
【００６２】
ステップＳ０４において、フロー判定部２３１は、処理規則計算部２５が計算した各通信ノードにおけるパケット識別条件と、ステップＳ０３において取得した設定済みフローに関する情報から得られる各通信ノードにおけるパケット識別条件と、を比較し、パケット識別条件の衝突が生じるか否かを判定する。より具体的には、各通信ノードにおいて、処理規則計算部２５により計算されたパケット識別条件と既に設定されているパケット識別条件が一致すれば、パケット識別条件の衝突が生じると判定される。
【００６３】
例えば、図４（ａ）を参照すると、通信ノード１０−１においては、入力ポートに関する判定条件が異なるため、フローＦ０１及びＦ０２のパケット識別条件は異なると判定される。一方、図４（ｂ）を参照すると、通信ノード１０−２においては、フローＦ０１及びＦ０２のパケット識別条件は一致するため、パケット識別条件の衝突が生じていると判定される。
【００６４】
パケット識別条件の衝突が生じなければ（ステップＳ０４、Ｎｏ分岐）、制御装置２０は、処理規則設定部２６及び制御メッセージ処理部２７を介して、処理規則計算部２５が計算したパケット処理規則を通信ノード１０に設定する（ステップＳ０５）。
【００６５】
一方、パケット識別条件の衝突が生じている場合（ステップＳ０４、Ｙｅｓ分岐）に、制御装置２０は、ステップＳ０６〜Ｓ０８に係る処理を実行する。
【００６６】
ステップＳ０６において、フロー変換部２３２は、パケット識別条件の衝突を回避するパケット処理規則（フロー変換規則）を計算する。図６は、通信ノード１０−１及び１０−２に設定されるパケット処理規則の一例を示す図である。処理規則計算部２５が計算したパケット処理規則を通信ノード１０−１及び１０−２に設定すると、通信ノード１０−２におけるパケット識別条件が衝突するためフローの混合が生じる可能性があるのは上述のとおりである。
【００６７】
そこで、フロー変換部２３２は、パケット識別条件の衝突が生じる通信ノードへのパケット転送元となる通信ノードを特定する。ここでは、通信ノード１０−１が特定される。さらに、フロー変換部２３２は、新たに設定するフローに収容されるパケットヘッダの一部を書き換えるパケット処理方法を計算する。
【００６８】
例えば、図６（ａ）を参照すると、フローＦ０２に収容されるパケットを転送する際には、宛先ＩＰアドレスを書き換える処理がパケット処理方法として計算される。なお、ヘッダ情報の書き換えは、宛先ＩＰアドレスに限定されるものではない。他のフィールドを書き換えても良いし、複数のフィールドを書き換えてもよい。即ち、書き換え後のヘッダ情報から得られるパケット識別条件と、既に設定済みのフローにおいて使用されているパケット識別条件と、が衝突しなければよい。
【００６９】
ステップＳ０７において、フロー結合部２３３は、書き換え後のヘッダ情報に応じて、通信ノードに設定するパケット識別条件（フロー結合規則）を計算する。例えば、図６（ａ）を参照すると、通信ノード１０−１はフローＦ０２に収容されるパケットのヘッダ情報を書き換える。より具体的には、フローＦ０２に収容されるパケットの宛先ＩＰアドレスに係るフィールドは、ｘｘ．ｙｙ．ｚｚ．１に書き換えられる。
【００７０】
フロー結合部２３３は、書き換え後のヘッダ情報に応じて、ヘッダ情報が書き換えられたパケットを受信する通信ノードに設定するパケット識別条件を計算する。より具体的には、図６（ｂ）を参照すると、通信ノード１０−２におけるフローＦ０２についてのパケット識別条件は、宛先ＩＰアドレスが、ｘｘ．ｙｙ．ｚｚ．１と計算される。
【００７１】
ステップＳ０８において、制御装置２０は、処理規則設定部２６及び制御メッセージ処理部２７を使用して、フロー変換規則及びフロー結合規則を含むパケット処理規則を、各通信ノード１０に設定する。より具体的には、制御装置２０は、通信ノード１０−１に対して、フローＦ０２に収容されるべきパケットを通信ノード１０−２に転送すること、及び、当該パケットの宛先ＩＰアドレスを書き換えること、を内容とするパケット処理規則を設定する。
【００７２】
さらに、制御装置２０は、通信ノード１０−２に対しては、通信ノード１０−１におけるヘッダ情報の書き換えに対応したパケット識別条件を設定すること、及び、フローＦ０２に収容されるパケットを端末３０−３に転送すること、を内容とするパケット処理規則を設定する。
【００７３】
なお、通信ノード１０−１が書き換えたヘッダ情報を復元する処理は、パケット識別条件の衝突が回避された後であれば、任意の通信ノードで実施することができる。例えば、図６（ｂ）に示すように、通信ノード１０−２において、パケットの復元を行ってもよい。即ち、図６（ｂ）に示す例では、通信ノード１０−２に対して、フロー結合規則とフロー復元規則が設定される。
【００７４】
また、図５のステップＳ０８において、通信ノード１０−１に対するパケット処理規則の設定と、通信ノード１０−２に対するパケット処理規則の設定を並列して行っている。しかし、フロー結合規則の設定を、フロー変換規則の設定に先立って行えば、通信ノード１０−１におけるフローの変換（ヘッダ情報の書き換え）が最初に実行されることが防止され、通信ノード１０−２から制御装置２０に対する問い合わせを削減できる。
【００７５】
さらに、図６（ｂ）において、通信ノード１０−２にフロー復元規則を設定したが、端末３０−３が、ヘッダ情報の書き換えられたパケットを正常に受信できる（パケットを破棄しない）場合には、ヘッダ情報の復元は不要となる。
【００７６】
本実施形態に係る通信システムは、共通の通信インフラ上に複数のネットワークを仮想的に構築し、仮想ネットワーク上に個別にサービス環境を構築する際、特にＩａａＳ（インフラストラクチャ・アズ・ア・サービス）やＮａａＳ（ネットワーク・アズ・ア・サービス）のようなクラウドサービスの提供する場合に有益である。
【００７７】
以上のように、本実施形態に係る制御装置２０は、本来異なるフローに収容されるべきパケットが、類似する特徴を持つために、フローの混合を生じさせる場合であっても、各フローを正確に識別可能となる。その結果、本実施形態に係る通信システムでは、フローの混合を防止できる。
【００７８】
［第２の実施形態］
続いて、第２の実施形態について図面を参照して詳細に説明する。
【００７９】
なお、本実施形態に係る制御装置２０ａの構成については、第１の実施形態に係る制御装置２０と同一である。そのため、制御装置２０ａに関する図３に相当する説明は省略する。
【００８０】
制御装置２０と制御装置２０ａとの相違点は、フロー計算部２３におけるパケット識別条件の計算方法である。本実施形態に係る制御装置２０ａでは、設定済みのパケット識別条件と競合しないようなパケット識別条件を計算する際、フローを一意に識別可能な識別子を定義することで計算処理を簡略化する。
【００８１】
制御装置２０ａは、ネットワークにフローを設定する際、フローを一意に識別可能なフロー識別子を、フローに割り当てる。このフロー識別子は、フローの発生順序に基づく番号でもよいし、当該フローに対応するパケット識別条件（パケットヘッダ）やその他情報から計算されたハッシュ値であってもよい。即ち、フローを一意に識別可能な値であれば、任意の方法で識別子を決定できる。
【００８２】
制御装置２０ａは、第１の実施形態において説明したフロー変換規則及びフロー結合規則の計算におけるパケットヘッダの変更ルールとして、上記のフロー識別子を用いる。つまり、制御装置２０ａは、ネットワークにおいて新たにフローを設定する際、新たに設定するフローと設定済みのフローの間に、パケット識別条件の衝突が生じる場合に、フロー変換規則として、パケットヘッダ内部にフロー識別子を書き込むようなパケット処理規則を設定する。
【００８３】
さらに、フロー結合規則として、フロー識別子をパケット識別条件として含むパケット処理規則を、フロー変換規則が設定された通信ノードの次転送先ノードに設定する。なお、新たに設定するフローと既存のフローとの間で、パケット識別条件の衝突が生じる場合だけではなく、ネットワークの運用開始の当初からフロー識別子を設定してもよい。
【００８４】
以上のように、本実施形態に係る制御装置２０ａでは、パケット識別条件の計算に代えて、フロー識別子によりフローを識別する。その結果、フロー変換規則及びフロー結合規則の計算を簡略化できる。
【００８５】
［第３の実施形態］
続いて、第３の実施形態について図面を参照して詳細に説明する。
【００８６】
図７は、本実施形態に係る通信システムの構成の一例を示す図である。
【００８７】
図７を参照すると、通信ノード１０−１〜１０−３及びこれらの通信ノードを制御する制御装置４０−１を含むネットワーク５０と、通信ノード１０−４〜１０−６及びこれらの通信ノードを制御する制御装置４０−２を含むネットワーク５１と、を含む構成が示されている。制御装置４０−１は通信ノード１０−１〜１０−３と図中の点線で示される制御用の通信チャネルで接続されている。同様に、制御装置４０−２は通信ノード１０−４〜１０−６と図中の点線で示される制御用の通信チャネルで接続されている。なお、以降の説明において、制御装置４０−１及び４０−２を特に区別する必要のないときは「制御装置４０」と表記する。同様に、通信ノード１０−１〜１０−６を特に区別する必要のないときは「通信ノード１０」と表記する。
【００８８】
通信ノード１０−３と１０−４はリンクによってネットワーク間を接続している。また、通信ノード１０−１、１０−２、１０−５及び１０−６は、それぞれ、端末３０−１〜３０−４と接続されている。なお、図７に示す通信システムは例示であって、通信ノードの数や通信ノード間の接続等を限定する趣旨ではない。通信ノードの数等は、任意に選択できる。
【００８９】
図８は、制御装置４０の内部構成の一例を示す図である。なお、図８において図３と同一の構成要素には同一の符号を付し、その説明を省略する。制御装置２０と制御装置４０の相違点は、フロー変換規則通信部２９を備える点と、フロー計算部２３の動作が異なる点である。
【００９０】
フロー変換規則通信部２９は、フロー計算部２３によって計算されるフロー変換規則を、他のネットワークを制御する制御装置に対して通知する手段である。また、フロー変換規則通信部２９は、他の制御装置が通知するフロー変換規則を受信する手段でもある。フロー変換規則通信部２９は、通信ノード１０を介して他の制御装置４０と通信するが、制御装置４０同士で直接、通信しても良い。
【００９１】
フロー計算部２３は、第１の実施形態において説明した機能に加えて、隣接するネットワークにおいてヘッダ情報が書き換えられたパケット（フロー変換規則により処理されたパケット）を、自らが制御対象とするネットワークにて転送可能とするようにパケット識別条件を計算する機能を備える。さらに、フロー計算部２３は、フロー変換規則が通知された他の制御装置が、当該フロー変換規則は既に、他の制御装置が制御対象とするネットワークに含まれる通信ノードに設定されている旨の応答（後述するエラー通知）を受け取った場合には、フロー変換規則を再計算する機能を備える。
【００９２】
なお、トポロジ管理部２１が収集し、管理するトポロジ情報は、制御装置４０が制御対象とするネットワークのトポロジ情報に限定してもよいし、他の制御装置が制御対象とするネットワークのトポロジ情報にまで拡張してもよい。さらに、経路決定部２２が決定するパケット転送経路は、制御装置４０が制御対象とするネットワーク内のパケット転送経路に限定しも良いし、他の制御装置が制御対象とするネットワークまで含めてパケット転送経路を計算してもよい。
【００９３】
次に、本実施形態に係る通信システムの動作について説明する。
【００９４】
ここでは、図７における端末３０−１から端末４０−４に特定のトラフィックを転送するためのフローが既に設定されている状況下において、同様の特徴を持つトラフィックを新たに、端末３０−２から端末３０−３に転送するためのフローを設定する場合を例に取り、通信システムの動作を説明する。なお、端末３０−１から端末３０−４へのフローをフローＦ０３、端末３０−２から端末３０−３へのフローをフローＦ０４とする。また、通信ノード１０−２〜１０−５において、それぞれのフローにおけるパケット識別条件は、第１の実施形態と同様に、同一とする。
【００９５】
図７において、端末３０−１から端末３０−４へのパケット転送に用いられるパケット転送経路は、通信ノード１０−１〜１０−６である。また、通信ノード１０−６が受信したパケットは、端末３０−４と接続しているインターフェイスに出力される。一方、端末３０−２から端末３０−３へパケット転送に用いられるパケット転送経路は、通信ノード１０−２〜１０−５である。通信ノード１０−５が受信したパケットは、端末３０−３と接続しているインターフェイスに出力される。
【００９６】
これら２つのパケット転送経路に含まれる通信ノードの一部は、それぞれフローＦ０３とＦ０４にて共用される。即ち、通信ノード１０−１〜１０−５は、２つのパケット転送経路が共に使用する通信ノードである。また、これらの通信ノードにおけるパケット識別条件が同一であるため、通信ノード１０−２〜１０−５では、フローＦ０３とＦ０４が識別できず、パケットはどちらかのフローに混合される可能性がある。
【００９７】
これらの通信ノードのうち、通信ノード１０−２及び１０−３においては、制御装置４０−１が、入力地点の異なる同種のフローを識別し、転送可能なパケット処理規則を通信ノード１０−２に設定することでフローの混合を回避できる。より具体的には、第１の実施形態において説明したヘッダ情報を書き換える方法を適用してもよいし、他の方法を用いてもよい。あるいは、例えば、各ネットワークへのパケット入力時にパケットヘッダの先頭にさらに別種のパケットヘッダを付加するカプセル化の技術や、パケットヘッダの内部に転送に使用すべきパケット転送経路の情報を埋め込むソースルーティングのような技術を適用することもできる。
【００９８】
しかし、通信ノード１０−３と通信ノード１０−４を接続するリンクは、異なるネットワークを接続するリンクであり、制御装置４０−１は通信ノード１０−４にパケット処理規則を設定する権限を有さない。
【００９９】
そこで、制御装置４０−１は、通信ノード１０−３に設定されているパケット識別条件と、新たに設定しようとするパケット識別条件と、が衝突するか否かを判定する。パケット識別条件が衝突するパケット処理規則が存在する場合には、新たにフローを設定するとフローの混合が発生する。そのような場合に、制御装置４０−１は、通信ノード１０−３に、パケットのヘッダ情報を書き換えさせ、フローを変換する。
【０１００】
図９は、本実施形態に係る通信システムの動作の一例を示すシーケンス図である。図１０は、通信ノード１０−３〜１０−５に設定されるパケット処理規則の一例を示す図である。ここでは、制御装置４０−１及び４０−２が、フローＦ０４を実現するパケット処理規則を通信ノード１０−３及び１０−４に設定する場合について説明する。なお、フロー変換規則及びフロー復元規則におけるパケット識別条件は、ネットワーク毎に異なる場合がある。これは、ネットワーク毎に異なる方法でフロー制御を実行する場合があり、それに伴ってパケット識別条件も異なるからである。ネットワークの内部の制御方法としては、ＶＬＡＮタグによりパケットを識別するネットワークや、ＳｏｕｒｃｅＦｌｏｗを採用するネットワーク、パケットをカプセル化するネットワーク、エッジの通信ノードだけにオープンフローを採用し、コアの通信ノードにはＭＰＬＳを使用するネットワークなどがある。
【０１０１】
また、パケットのヘッダ情報の変更に用いる値をラベルと呼称すると、制御装置は、例えば、ネットワークの境界の通信ノードではネットワーク間用のラベルを用いてパケットのヘッダ情報を変更し、ネットワーク内部の通信ノードではネットワーク内部のラベルを用いてパケットのヘッダ情報を変更することにより、フローエントリの衝突回避を実行してもよい。この場合も、ネットワークのエッジの通信ノードの処理規則のパケット識別条件と、ネットワーク内部の通信ノードの処理規則のパケット識別条件とが異なることとなる。
【０１０２】
図１０（ａ）では、制御装置４０−１が通信ノード１０−３に設定するフローＦ０４を実現するパケット処理規則のパケット識別条件を、フローＦ０４と示す。また、図１０（ｃ）では、制御装置４０−２が通信ノード１０−５に設定するフローＦ０４を実現するパケット処理規則のパケット識別条件を、フローＦ０４と示す。なお、図１０（ａ）と図１０（ｃ）とに示すフローＦ０４を実現するパケット処理規則のパケット識別条件は、フローＦ０４と同じ記号で示しているが、上記のとおりネットワークが異なるとフロー制御の方法が異なる場合があり、それに伴ってパケット識別条件も異なる場合があるため、その内容は異なる場合がある。
【０１０３】
図９を参照すると、初めに、制御装置４０−１は自らが制御対象とするネットワークに設定済みのフローに関する情報をフローＤＢ２４から取得する。その後、第１の実施形態において説明したように、新たに設定しようとするパケット識別条件が、既に設定済みのパケット処理規則と衝突するか否かを判定する。パケット識別条件が衝突していれば、パケット識別条件の衝突を回避するパケット識別条件を計算する（ステップＳ１０１）。
【０１０４】
その後、制御装置４０−１は、計算したパケット識別条件を、フロー変換規則通信部２９を介して、自らが制御するネットワーク５０に含まれる通信ノードに設定することを予定するフロー変換規則として制御装置４０−２に通知する（ステップＳ１０２）。即ち、制御装置４０−１は、制御装置４０−２に対して、通知したパケット識別条件を、通信ノード１０−４に設定するパケット処理規則のパケット識別条件として使用するように依頼する。
【０１０５】
制御装置４０−２では、制御装置４０−１から通知されたフロー変換規則により計算されるパケット識別条件が、通信ノード１０−４に設定されているパケット識別条件と衝突するか否かを判定する（ステップＳ２０１）。
【０１０６】
パケット識別条件が衝突していれば、制御装置４０−２は、制御装置４０−１に対してエラー通知を行う（ステップＳ２０２）。パケット識別条件が衝突していなければ、制御装置４０−２は、制御装置４０−１に対して成功通知を行う（ステップＳ２０３）。
【０１０７】
制御装置４０−２からエラー通知を受けた制御装置４０−１は、パケット識別条件を再計算（ステップＳ１０３）し、再計算したパケット識別条件を変換ルールとして制御装置４０−２に通知する（ステップＳ１０２）。
【０１０８】
制御装置４０−２から成功通知を受けた制御装置４０−１は、通信ノード１０−３に設定するフロー変換規則を計算する（ステップＳ１０４）。その後、フロー変換規則は通信ノード１０−３に設定される（ステップＳ１０５）。例えば、図１０（ａ）を参照すると、制御装置４０−１は、通信ノード１０−３に対して、フローＦ０４に収容されるパケットを通信ノード１０−４に転送する共に、ヘッダ情報を書き換えるパケット処理方法を設定する。
【０１０９】
制御装置４０−２は、制御装置４０−１から通知されたパケット識別条件が衝突していなければ、当該パケット識別条件を通信ノード１０−４に設定するパケット識別条件とし、フロー結合規則を計算する（ステップＳ２０４）。その後、フロー結合規則は通信ノード１０−４に設定される（ステップＳ２０５）。例えば、図１０（ｂ）を参照すると、フローＦ０４に対応するパケット識別条件において、宛先ＩＰアドレスがｘｘ．ｙｙ．ｚｚ．１に設定される。
【０１１０】
なお、通信ノード１０−４において、フローＦ０３及びＦ０４のパケット識別条件が異なって設定されているため、これらを異なるフローとして取り扱うことができる。また、通信ノード１０−４に対して、第１の実施形態において説明したように、フロー復元規則を設定してもよい。その場合には、制御装置４０−１は、ステップＳ１０１において計算したパケット識別条件の通知（ステップＳ１０２）の際に、又は、ステップＳ１０２とは異なるタイミングで、変更前のヘッダ情報の値を制御装置４０−２に通知する。但し、上述のように、フロー復元規則を設定する通信ノードは、通信ノード１０−４に限定されず、他の通信ノードに設定してもよい。例えば、図１０（ｃ）のように、通信ノード１０−５に対してフロー復元規則を設定してもよい。このように、ネットワーク５１に含まれる通信ノード、又は、ネットワーク５１の境界に位置する通信ノードにおいて、ヘッダ情報を復元できる。あるいは、ヘッダ情報の復元に係る処理を、ネットワーク５０及び５１とは異なるネットワークにおいて実行してもよい。
【０１１１】
本実施形態では、第１の実施形態において説明した方法を用いて、ネットワークの境界においてパケット識別条件が衝突する場合の動作について、このような衝突を回避する方法を説明した。しかし、第２の実施形態において説明した方法を用いて、フローを一意に識別可能な識別子を割り当て、当該識別子をフロー変換規則及びフロー結合規則の計算に用いてもよい。
【０１１２】
また、本実施形態では、２つの異なるネットワーク５０及び５１を例示して、通信システムの説明を行ったが、ネットワークの数を限定する趣旨ではない。通信システムは、３以上のネットワークと、これらのネットワークを制御する制御装置を含んで構成されてもよい。その場合には、物理的には同一の制御装置が、上述した制御装置４０−１及び４０−２の役割を担うことがある。例えば、制御装置４０−２は、制御装置４０−１からフロー変換規則を受信し、自らが制御対象とするネットワーク５１に含まれる通信ノードにパケットを処理規則する共に、他のネットワークを制御する制御装置に対してフロー変換規則を通知する。
【０１１３】
さらに、フロー変換規則、フロー結合規則及びフロー復元規則の計算に用いる値は制御装置間の通知によって決定したが、別途、調整機構を持つ装置を用意してもよい。さらに、制御装置間の通知や調整装置との通信にはノードを経由したデータプレーンでの通信を行ってもよいし、別途管理用のネットワークを用意してもよい。
【０１１４】
さらにまた、隣接するネットワークの制御装置間でフロー変換規則、フロー結合規則及びフロー復元規則の計算に用いる値を通知せず、パケットを最初に受け取るネットワークの制御装置など特定のネットワークの制御装置が、代表して値を決定し、通知してもよい。例えば、図７において、制御装置４０−１が、制御装置４０−２が制御対象とするネットワーク５１に含まれる通信ノード１０４〜１０−６に設定するフロー変換規則、フロー結合規則又はフロー復元規則を計算し、制御装置４０−２に通知してもよい。即ち、制御装置４０−１は、複数のネットワーク５０及び５１に含まれる複数の通信ノード１０−１〜１０−６の少なくとも１つに設定されるパケット処理規則であって、パケットのヘッダ情報を変更するための処理規則（フロー変換規則及びフロー復元規則）やヘッダ情報が書き換えられた後のパケットを処理するための処理規則（フロー結合規則）を、制御装置４０−２に通知してもよい。このように、特定の制御装置（例えば、制御装置４０−１）が、代表して処理規則を計算し、他の制御装置（例えば、制御装置４０−２）に通知することで、それぞれの制御装置で使用される処理規則を通知元である制御装置が制御できる。
【０１１５】
以上のように、本実施形態に係る通信システムでは、同様の特徴を持つトラフィックを個別に制御したい場合において、ネットワークを跨がった制御が可能となる。本実施形態に係る通信システムは、例えば、複数の拠点をまたがる共通の通信インフラ上に、複数のネットワークを仮想的に構築し、仮想ネットワーク上に個別にサービス環境を構築する場合、特に広域クラウドサービスを提供する際に有益である。
【０１１６】
上記の実施形態の一部又は全部は、以下のようにも記載され得るが、以下には限られない。
【０１１７】
［形態１］
上述の第１の視点に係る通信システムのとおりである。
［形態２］
前記複数の通信ノードのそれぞれは、パケットのヘッダ情報と照合するための照合規則を有する処理規則に応じて、受信したパケットを処理し、
前記制御装置は、前記パケットのヘッダ情報を変更するための第１の処理規則を前記第１の通信ノードに設定したことに応じて、前記変更後のヘッダ情報を照合規則とする前記第２の処理規則を前記第２の通信ノードに設定する形態１の通信システム。
［形態３］
前記第１及び第２の通信ノードは、前記パケットの転送経路に含まれ、
前記第２の通信ノードは、前記転送経路において、前記第１の通信ノードの次の転送先の通信ノードである形態１又は２の通信システム。
［形態４］
前記制御装置は、変更後のヘッダ情報を含む前記パケットを前記転送経路に転送するための第２の処理規則を、前記第２の通信ノードに設定する形態３の通信システム。
［形態５］
前記制御装置は、
前記パケットのヘッダ情報を変更するための第１の処理規則を前記第１の通信ノードに設定する第１の設定部（第１の設定手段）と、
前記第１の設定部が前記第１の処理規則を設定したことに応じて、前記第２の処理規則を前記第２の通信ノードに設定する第２の設定部（第２の設定手段）と、
を備える形態１乃至４のいずれか一に記載の通信システム。
［形態６］
前記制御装置は、前記パケットに含まれる前記変更後のヘッダ情報を、変更前のヘッダ情報に戻すための第３の処理規則を、第３の通信ノードに設定する形態１乃至５のいずれか一に記載の通信システム。
［形態７］
前記制御装置は、前記第１の処理規則として、前記パケットのヘッダ情報を、前記照合規則として利用されているヘッダ情報とは異なるヘッダ情報に変更するための処理規則を、前記第１の通信ノードに設定する形態２乃至６のいずれか一に記載の通信システム。
［形態８］
上述の第２の視点に係る通信システムのとおりである。
［形態９］
前記複数の通信ノードのそれぞれは、パケットのヘッダ情報と照合するための照合規則を含む処理規則に応じて、受信したパケットを処理し、
前記第２の制御装置は、前記第１の制御装置が前記第１の処理規則を設定したことに応じて、前記変更後のヘッダ情報を照合規則とする前記第２の処理規則を前記第２の通信ノードに設定する形態８の通信システム。
［形態１０］
前記第１及び第２の通信ノードは、それぞれ前記第１及び第２のネットワークの端点に位置する通信ノードであり、
前記第１の通信ノードと前記第２の通信ノードとは、互いに接続している形態８又は９の通信システム。
［形態１１］
前記第１のネットワークに含まれる第１の制御装置に、前記第１の処理規則を前記第１の通信ノードに設定させる第１の設定部（第１の設定手段）と、
前記第２のネットワークに含まれる第２の制御装置に、前記第２の処理規則を前記第２の通信ノードに設定させる第２の設定部（第２の設定手段）と、
を備える設定装置をさらに含む形態８乃至１０のいずれか一に記載の通信システム。
［形態１２］
前記第２の制御装置は、前記第２のネットワークに含まれる少なくとも１つの通信ノードに対して、前記パケットに含まれる前記変更後のヘッダ情報を変更前のヘッダ情報に戻すための第３の処理規則を設定する形態８乃至１１のいずれか一に記載の通信システム。
［形態１３］
前記第２の制御装置は、前記第２のネットワークに含まれる通信ノードであって、第３のネットワークに含まれる第３の通信ノードと互いに接続する通信ノードに対して、前記第３の処理規則を設定する形態１２の通信システム。
［形態１４］
前記第１の制御装置は、前記第１の処理規則として、前記パケットのヘッダ情報を、前記第２のネットワークにおいて前記照合規則として利用されているヘッダ情報とは異なるヘッダ情報に変更するための処理規則を設定する形態９の通信システム。
［形態１５］
前記変更後のヘッダ情報は、前記複数のネットワークにおいて前記パケットが属するフローを一意に識別するための識別子を含む形態８乃至１４のいずれか一に記載の通信システム。
［形態１６］
前記第１の制御装置は、前記複数のネットワークのそれぞれに含まれる複数の通信ノードの少なくとも１つに設定される処理規則であって、前記パケットのヘッダ情報を変更するための処理規則を、通信ノードに設定する制御装置に対して通知する形態８乃至１５のいずれか一に記載の通信システム。
［形態１７］
前記第１の制御装置は、前記複数のネットワークのそれぞれに含まれる複数の通信ノードの少なくとも１つに設定される処理規則であって、変更後のヘッダ情報を含む前記パケットを処理するための処理規則を、前記処理規則を通信ノードに設定する制御装置に対して通知する形態８乃至１６のいずれか一に記載の通信システム。
［形態１８］
前記第１の制御装置は、前記複数のネットワークのそれぞれに含まれる複数の通信ノードの少なくとも１つに設定される処理規則であって、前記パケットに含まれる前記変更後のヘッダ情報を変更前のヘッダ情報に戻すための処理規則を、前記処理規則を通信ノードに設定する制御装置に対して通知する形態８乃至１７のいずれか一に記載の通信システム。
［形態１９］
上述の第３の視点に係る通信方法のとおりである。
［形態２０］
前記パケットに含まれる前記変更後のヘッダ情報を、変更前のヘッダ情報に戻すための第３の処理規則を、第３の通信ノードに設定する工程をさらに含む形態１９の通信方法。
［形態２１］
上述の第４の視点に係る制御装置のとおりである。
［形態２２］
前記制御装置は、前記第２の通信ノードに設定されている、パケットを識別するための第１の識別条件と、前記第２の通信ノードに対して新たに設定しようとする、パケットを識別するための第２の識別条件と、が一致する場合に、前記第１及び第２のパケット処理規則を前記第１及び第２の通信ノードに設定する形態２１の制御装置。
［形態２３］
前記制御装置は、前記第２の通信ノードを含む通信ノードに、前記第１の処理規則により書き換えられたヘッダ情報を、書き換え前のヘッダ情報に戻す第３のパケット処理規則を設定する形態２１又は２２の制御装置。
［形態２４］
前記制御装置は、前記第１のネットワークと異なる第２のネットワークを制御する制御装置に対して、前記第１のパケット処理規則により書き換えられるヘッダ情報を通知する形態２１乃至２３のいずれか一に記載の制御装置。
［形態２５］
上述の第５の視点に係る制御装置の制御方法のとおりである。
［形態２６］
前記第２の通信ノードに設定されている、パケットを識別するための第１の識別条件と、前記第２の通信ノードに対して新たに設定しようとする、パケットを識別するための第２の識別条件と、が一致するか否かを判定する工程をさらに含み、
前記第１及び第２の識別条件が一致する場合に、前記第１及び第２のパケット処理規則は前記第１及び第２の通信ノードに設定される形態２５の制御装置の制御方法。
［形態２７］
前記第２の通信ノードを含む通信ノードに、前記第１の処理規則により書き換えられたヘッダ情報を、書き換え前のヘッダ情報に戻す第３のパケット処理規則を設定する工程をさらに含む形態２５又は２６の制御装置の制御方法。
［形態２８］
前記第１のネットワークと異なる第２のネットワークを制御する制御装置に対して、前記第１のパケット処理規則により書き換えられるヘッダ情報を通知する工程をさらに含む形態２５乃至２７のいずれか一に記載の制御装置の制御方法。
［形態２９］
上述の第６の視点に係るプログラムのとおりである。
［形態３０］
前記第２の通信ノードに設定されている、パケットを識別するための第１の識別条件と、前記第２の通信ノードに対して新たに設定しようとする、パケットを識別するための第２の識別条件と、が一致するか否かを判定する処理をさらに実行させ、
前記第１及び第２の識別条件が一致する場合に、前記第１及び第２のパケット処理規則は前記第１及び第２の通信ノードに設定される形態２９のプログラム。
［形態３１］
前記第２の通信ノードを含む通信ノードに、前記第１の処理規則により書き換えられたヘッダ情報を、書き換え前のヘッダ情報に戻す第３のパケット処理規則を設定する処理をさらに実行させる形態２９又は３０のプログラム。
［形態３２］
前記第１のネットワークと異なる第２のネットワークを制御する制御装置に対して、前記第１のパケット処理規則により書き換えられるヘッダ情報を通知する処理をさらに実行させる形態２９乃至３１のいずれか一に記載のプログラム。
【０１１８】
なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【０１１９】
１０、１０−１〜１０−６、１００−１、１００−２  通信ノード
２０、２０ａ、４０、４０−１、４０−２、１０１  制御装置
２１  トポロジ管理部
２２  経路決定部
２３  フロー計算部
２４  フローデータベース（ＤＢ）
２５  処理規則計算部
２６  処理規則設定部
２７  制御メッセージ処理部
２８  ノード通信部
２９  フロー変換規則通信部
３０−１〜３０−４  端末
５０、５１  ネットワーク
２３１  フロー判定部
２３２  フロー変換部
２３３  フロー結合部
２３４  フロー復元部
【図１】
2014126094.tif 000003
【図２】
2014126094.tif 000004
【図３】
2014126094.tif 000005
【図４】
2014126094.tif 000006
【図５】
2014126094.tif 000007
【図６】
2014126094.tif 000008
【図７】
2014126094.tif 000009
【図８】
2014126094.tif 000010
【図９】
2014126094.tif 000011
【図１０】
2014126094.tif 000012
【図１１】
2014126094.tif 000013
【国際調査報告】
2014126094.tif 000014
2014126094.tif 000015