(57)【要約】【課題】コストを増大させることなく、仮想ノードがもたらす負荷分散効果を損なわずに転送回数の少ないノード間通信を実現するパケット転送方法を得ること。【解決手段】本発明は、複数の仮想制御装置を備える制御装置を含みオーバレイネットワークを構成する通信システムにおいて、固有の識別番号が付与されかつ識別番号に基づき識別番号空間における管理領域が個別に割り当てられている仮想制御装置におけるパケット転送方法であって、識別番号に基づき転送先のリストである転送情報を生成し、同一の制御装置に属する全ての仮想制御装置間で共有可能に保持するステップと、受信データに含まれる最終的な宛先を示す宛先識別番号が自装置の管理領域でない場合（Ｓ１  ＮＯ）に、前記宛先識別番号に基づき転送情報の中から転送先を選択するステップ（Ｓ２〜Ｓ５）と、選択した転送先に受信データを転送する転送ステップ（Ｓ６）と、を含む。【選択図】        図６
2008219644.tif 000002
【特許請求の範囲】
【請求項１】
複数の仮想制御装置を備える制御装置を含みオーバレイネットワークを構成する通信システムにおいて、固有の識別番号が付与されかつ前記識別番号に基づき識別番号空間における管理領域が個別に割り当てられている仮想制御装置におけるパケット転送方法であって、
前記識別番号に基づき転送先のリストである転送情報を生成し、生成した転送情報を、同一の制御装置に属する全ての仮想制御装置間で共有可能に保持する転送情報生成ステップと、
前記全ての仮想制御装置のうちのデータを受信した仮想制御装置が、受信データに含まれる最終的な宛先を示す宛先識別番号が自装置の管理領域でない場合に、前記宛先識別番号に基づき、前記共有可能に保持された転送情報の中から転送先を選択する転送先選択ステップと、
前記データを受信した仮想制御装置が前記選択した転送先に受信データを転送する転送ステップと、
を含むことを特徴とするパケット転送方法。
【請求項２】
前記転送情報生成ステップにおいては、各仮想制御装置が、固有の識別情報に基づきそれぞれ前記転送情報を生成することを特徴とする請求項１に記載のパケット転送方法。
【請求項３】
前記転送情報生成ステップにおいては、同一制御装置に属する仮想制御装置のなかで自装置の次に前記識別番号が大きい仮想制御装置の識別番号未満の識別番号を持つ転送先の転送情報を生成することを特徴とする請求項２に記載のパケット転送方法。
【請求項４】
前記転送先選択ステップにおいては、前記宛先識別番号が前記次に識別番号が大きい仮想制御装置の識別番号未満である場合には、自装置の転送情報に基づき転送先を選択し、一方、前記宛先識別番号が前記次に識別番号が大きい仮想制御装置の識別番号以上である場合には、同一制御装置に属する仮想制御装置のうちの、前記宛先識別番号以下で最大の識別番号を有する仮想制御装置の転送情報に基づいて転送先を選択することを特徴とする請求項３に記載のパケット転送方法。
【請求項５】
前記転送情報生成ステップにおいては、仮想制御装置ごとに生成された転送先のリストを統合して、１つの転送情報を生成することを特徴とする請求項１に記載のパケット転送方法。
【請求項６】
前記転送先選択ステップにおいては、前記転送情報のなかから、前記宛先識別番号以下で最大の識別番号を持つ転送先を選択することを特徴とする請求項１〜５のいずれか１つに記載のパケット転送方法。
【請求項７】
前記仮想制御装置に接続する端末からマルチキャストグループの配信要求があった場合に、前記全ての仮想制御装置が保持し、マルチキャストグループの配信を受けている配下の端末が格納されている、配信情報を検索し、前記配信要求のあったマルチキャストグループと同一のマルチキャストグループの配信情報が検索結果として得られた場合には、得られた配信情報に前記端末を追加する配信設定処理ステップ、
をさらに含むことを特徴とする請求項１〜６のいずれか１つに記載のパケット転送方法。
【請求項８】
前記配信情報を、仮想制御装置ごとに保持し、
前記配信設定処理ステップにおいては、仮想制御装置ごとに配信情報を検索することを特徴とする請求項７に記載のパケット転送方法。
【請求項９】
前記全ての仮想制御装置の配信情報を統合して１つの配信情報として保持することを特徴とする請求項７に記載のパケット転送方法。
【請求項１０】
オーバレイネットワークを構成し、固有の識別番号に基づき識別番号空間における管理領域が個別に割り当てられている複数の仮想制御装置を備える制御装置であって、
前記各仮想制御装置が、
前記識別番号に基づき転送先のリストである転送情報を生成し、生成した転送情報を、同一の制御装置に属する全ての仮想制御装置間で共有可能に保持する制御情報管理手段と、
受信データに含まれる最終的な宛先を示す宛先識別番号が自装置の管理領域でない場合に、前記宛先識別番号に基づき、前記共有可能に保持された転送情報の中から転送先を選択して転送する演算手段と、
を備えることを特徴とする制御装置。
【請求項１１】
オーバレイネットワークを構成し、固有の識別番号に基づき識別番号空間における管理領域が個別に割り当てられている複数の仮想制御装置を備える制御装置であって、
前記識別番号に基づき仮想制御装置ごとに生成された転送先のリストである転送情報を統合して１つの転送情報として保持する制御情報管理手段と、
を備え、
前記仮想制御装置が、
受信データに含まれる最終的な宛先を示す宛先識別番号が自装置の管理領域でない場合に、前記宛先識別番号に基づき、前記共有可能に保持された転送情報の中から転送先を選択して転送する演算手段と、
を備えることを特徴とする制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オーバレイネットワークにおけるパケット転送方法に関するものである。
【背景技術】
【０００２】
オーバレイネットワークにおいてノード間通信およびデータ（コンテンツデータなど）の分散配置をスケーラブルに行う方法として、分散ハッシュテーブル（ＤＨＴ：Distributed  Hash  Table）方式がある。その代表的な一例であるＣｈｏｒｄシステムでは、ネットワークを構成するノードとそこに配置するデータの双方にハッシュ関数を用いて固定長のＩＤ（Identifier）値（識別番号）を割り当てる。各々のデータは、ＩＤ値が最も近くなるノードによって管理されるようにして、データが分散して配置されるようにしている。
【０００３】
このとき、ハッシュ関数の性質によってノードはＩＤ空間上にまんべんなく配置される。しかし、ＩＤ空間上で隣接するノード同士の間隔、すなわちＩＤ空間上で隣接するノード間のＩＤ値の間隔は一定ではなくばらつきが生じる。各ノードに配置されるデータ数の期待値は、ノードの隣接するノード間のＩＤ値の間隔に比例すると考えられるため、この間隔のばらつきによってノード間に負荷の偏りが発生することになる。
【０００４】
これを緩和する方法として、たとえば下記非特許文献１では、一つのノードに複数のＩＤ値を割り当てて、それぞれを仮想的なノードとして動作することにより負荷を均等化するという手法が提案されている。複数の仮想ノードを束ねることによって、ノード間のＩＤ値の間隔のばらつきが平均化されて物理的なノードごとの負荷の偏りを緩和することができる。
【０００５】
【非特許文献１】”Chord:A  Scalable  Peer-to-Peer  Lookup  Service  for  Internet  Applications"，Proc.  ACM  SIGCOMM，2001
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来の非特許文献１の技術によれば、仮に一つの物理ノードにｎ個の仮想ノードを割り当てたとすると、システムに参加するノードの総数がｎ倍に増加することになる。一組のノード間の通信に必要な転送回数の平均はノード総数に対しておよそ対数オーダーで増加する。対数オーダーでの緩やかな増加であるため、スケーラビリティは損なわれないが、分散ハッシュテーブルの探索を頻繁に行うシステムでは転送回数がネットワークのコストに大きく影響するため、転送回数の増加を可能な限り抑えることが望ましい。
【０００７】
一方、一般的にＤＨＴシステムにおいて、各々のノードが転送に利用可能なノード間リンクの本数を増やすと、一組のノード間通信にかかる平均転送回数は減少する。したがって、単純にリンクの本数を増加させるだけでも平均転送回数を抑えることはできる。しかしながら、リンクの本数を増やすとその維持・管理にかかるコストも増大するため、リンクの本数を増やすという対応には限界があり、転送回数の増加を抑えることは困難であるという問題があった。
【０００８】
本発明は、上記に鑑みてなされたものであって、コストを増大させることなく、仮想ノードがもたらす負荷分散効果を損なわずに転送回数の少ないノード間通信を実現するパケット転送方法および制御装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明は、複数の仮想制御装置を備える制御装置を含みオーバレイネットワークを構成する通信システムにおいて、固有の識別番号が付与されかつ前記識別番号に基づき識別番号空間における管理領域が個別に割り当てられている仮想制御装置におけるパケット転送方法であって、前記識別番号に基づき転送先のリストである転送情報を生成し、生成した転送情報を、同一の制御装置に属する全ての仮想制御装置間で共有可能に保持する転送情報生成ステップと、前記全ての仮想制御装置のうちのデータを受信した仮想制御装置が、受信データに含まれる最終的な宛先を示す宛先識別番号が自装置の管理領域でない場合に、前記宛先識別番号に基づき、前記共有可能に保持された転送情報の中から転送先を選択する転送先選択ステップと、前記データを受信した仮想制御装置が前記選択した転送先に受信データを転送する転送ステップと、を含むことを特徴とする。
【発明の効果】
【００１０】
この発明によれば、同一の物理ノードに属する仮想ノード間で転送情報を共有し、さらに転送情報の重複部分を削除するようにしたので、コストを増大させることなく、仮想ノードがもたらす負荷分散効果を損なわずに転送回数の少ないノード間通信を実現するという効果を奏する。
【発明を実施するための最良の形態】
【００１１】
以下に、本発明にかかるパケット転送方法および制御装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１２】
実施の形態１．
図１は、本発明にかかる制御装置の実施の形態１の機能構成例を示す図である。図１に示すように、本実施の形態の制御装置１は、外部ネットワークへデータを送信する送信処理部２と、外部ネットワークからデータを受信する受信処理部３と、受信データを仮想制御装置５−１〜５−４のいずれかに転送する共通処理部４と、仮想制御装置５−１〜５−４と、仮想制御装置５−１〜５−４間を接続するインタフェース９と、で構成される。また、仮想制御装置５−ｉ（ｉ＝１〜４）は、受信データを解析する演算処理部６−ｉと、パケットの転送情報などの制御情報を保持する制御情報管理部７−ｉと、オーバレイネットワーク上に分散配置されたコンテンツデータのうち自仮想ノードに割り当てられたデータを保持するコンテンツ管理部８−ｉと、で構成される。
【００１３】
図２は、本実施の形態の制御装置１と通信端末１０−１〜１０−５を接続して構築されるオーバレイネットワークの一例を示す図である。図２において、制御装置１−１〜１−５は、それぞれ図１に示した制御装置１と同様の機能構成を有する。制御装置１−１〜１−５のそれぞれの間には論理的な通信路が設定されており、片方向または双方向の通信が可能である。また、たとえば、制御装置１−１と通信端末１０−１，制御装置１−３と通信端末１０−２のように、通信端末１０−１〜１０−５とそれぞれ接続されている制御装置１−１〜１−５との間にも、論理的な通信路が設定されており、片方向または双方向の通信が可能である。
【００１４】
本実施の形態のオーバレイネットワークにおいては、Ｃｈｏｒｄシステムを適用することとし、各ノード（ここでは仮想制御装置）および各コンテンツデータにＩＤ（IDentifier）値が割り当てられる。各データは、そのデータに割り当てられたＩＤ値と、最も近いＩＤ値を持つ仮想制御装置が管理する。そして、本実施の形態における送受信データには、最終宛先を示す宛先ＩＤが含まれているものとする。なお、ここでは、宛先ＩＤとは、コンテンツ取得要求の場合には取得を要求するコンテンツデータのＩＤとし、制御情報（制御装置の追加など）の場合にはその制御情報の最終送信先の制御装置のＩＤとする。
【００１５】
ここで、本実施の形態の制御装置１の動作を説明するために、まず、仮想化を行わない単独制御装置を例にあげて動作を説明する。図３は、単独制御装置１１の機能構成例を示す図である。図１の制御装置１と同様の機能のものは、同一の番号を付して説明を省略する。単独制御装置１１は、図１の制御装置１の仮想制御装置５−１〜５−４，共通処理部４に替えて、演算処置部６ａ，制御情報管理部７，コンテンツ管理部８を備えている。制御情報管理部７，コンテンツ管理部８は、それぞれ制御情報管理部７−ｉ，コンテンツ管理部８−ｉと同様の機能を備える。
【００１６】
まず、Ｃｈｏｒｄシステムにおける一般的な転送方法の一例について説明する。Ｃｈｏｒｄシステムにおいては、ＩＤ空間（ＩＤサークル）上で自装置のＩＤから時計回りにみて最初に存在する制御装置をsuccessorとよび、逆周りに最初に存在する制御装置をpredecessorとよぶ。各制御装置は、predecessorのＩＤより大きく自分ＩＤ以下となるＩＤ空間を自制御装置の管理領域とし、管理領域内のＩＤをもつコンテンツデータなどを管理する。また、各制御装置は、送信されたデータが効率的に宛先の制御装置に転送されるように、「自ＩＤ＋２i-1（ｉ＝１〜ｍの自然数、ｍはＩＤのビット数）」のＩＤを持つｍ個の制御装置への転送情報（Ｃｈｏｒｄシステムでは一般にfinger  tableとよばれる）を保持している。そして、各制御装置は、管理領域外の宛先ＩＤのデータを受信した場合は、finger  tableのなかから、宛先ＩＤより小さく、かつ、宛先に最も近いＩＤを持つ転送先を選択し、選択した転送先にその受信データを転送する。
【００１７】
たとえば、端末が、コンテンツを取得したい場合には、そのコンテンツデータのＩＤ（以下、コンテンツＩＤという）を含んだコンテンツ取得要求を送信する。そして、その取得要求はコンテンツＩＤに基づいて、順次、そのコンテンツＩＤにより近いＩＤをもつ制御装置に転送されていき、最終的にそのコンテンツＩＤを管理する制御装置（最終宛先）に転送される。そのコンテンツＩＤを管理する制御装置は、コンテンツデータの所在などの情報を送信元の端末などに送信する。このようにして、端末は、コンテンツデータを取得することができるようになる。
【００１８】
つづいて、単独制御装置１１の動作について説明する。単独制御装置１１においても、制御情報管理部７が、上記のＣｈｏｒｄシステムにおける一般的な転送方法の一例と同様に、転送情報と、successor，predecessorの情報を保持している。また、ここでは、制御装置１１のコンテンツ管理部８は、自装置の管理領域内のコンテンツを保持しているものとする。
【００１９】
まず、単独制御装置１１は、外部ネットワークに接続されており、受信処理部３が外部ネットワーク経由でデータを受信する。そして、演算処理部６ａは、受信データを解析して、宛先ＩＤが自制御装置の管理領域のＩＤであるか否かを判断する。自制御装置の管理領域のＩＤである場合、演算処理部６ａは、受信データが制御情報については制御情報管理部７へ、コンテンツ取得要求についてはコンテンツ管理部８へ、それぞれ受信データを転送する。
【００２０】
受信データがコンテンツ取得要求であった場合には、コンテンツ管理部８は、演算処理部６ａから転送された受信データに含まれるコンテンツ取得要求に従い、コンテンツデータを演算処理部６ａに出力する。演算処理部６ａは、コンテンツ取得要求の送信元を宛先とし、コンテンツデータを、送信処理部２および外部ネットワーク経由で送信する。
【００２１】
受信データが制御要求であった場合には、制御情報管理部７は演算処理部６ａから転送された受信データに含まれる制御要求の内容を反映する。たとえば、関連する制御装置の追加があった場合に、転送情報の書き換えを行う。
【００２２】
一方、演算処理部６ａが、宛先ＩＤが自制御装置の管理領域のＩＤでないと判断した場合には、その受信データの宛先ＩＤに基づいて転送先を選択し、選択した転送先に受信データを送信処理部２経由で転送する。このときの転送方法は、上述のＣｈｏｒｄシステムにおける一般的な転送方法とする。
【００２３】
ここでは、単独制御装置１１のコンテンツ管理部８は、自装置の管理領域内のコンテンツを保持しているものとするが、コンテンツデータを別の制御装置等に格納して、コンテンツ管理部８は自装置の管理領域内のコンテンツの所在のみを管理するようにしてもよい。
【００２４】
つづいて、仮想化について説明する。図４は、物理的に１つの制御装置を４つの仮想制御装置として動作させる場合の機能構成例を示す図である。仮想制御装置５−１〜５−４には、ＣｈｏｒｄシステムにおけるＩＤが割り当てられている。それぞれ図４に示す制御装置１２は、インタフェース９を備えていないが、それ以外は図１の制御装置１と同様である。図４において、図１と同様の機能のものは同一の符号を付している。
【００２５】
図４の例では、物理的に１つの制御装置１２を、仮想化により４つの仮想制御装置として動作させており、仮想制御装置５−１〜５−４にそれぞれ異なるＩＤを割り当てられている。このような構成の場合の動作の一例について説明する。まず、受信処理部３がデータを受信し、共通処理部４が仮想制御装置５−１〜５−４のいずれか１つを選択して、選択した仮想制御装置５−１〜５−４に受信データを転送する。このときの受信データに含まれる宛先ＩＤ値が仮想制御装置５−１〜５−４のいずれかのＩＤ値に一致する場合には、その一致するＩＤ値の仮想制御装置に転送する。
【００２６】
宛先ＩＤ値が仮想制御装置５−１〜５−４のいずれのＩＤ値とも一致しない場合には、たとえば、宛先ＩＤ以外に転送する仮想制御装置５−１〜５−４を識別する情報（たとえばＩＰアドレス、ポート番号など）が含まれていればそれを用いて転送先の仮想制御装置５−１〜５−４を選択する。また、たとえば、共通処理部４が、宛先ＩＤと転送先仮想制御装置との対応情報をあらかじめ保持しておき、受信データに含まれる宛先ＩＤに対応する転送先を対応情報から検索して、転送先として選択するようにしてもよい。これに限らず、転送先の仮想制御装置５−１〜５−４の選択方法については、特に制約はなく従来行われている方法を用いればよい。
【００２７】
そして、受信データが転送された演算処理部６−ｎ（ｎ＝１〜４）は、受信データを受け取ると、宛先ＩＤが自装置の管理領域内であるか否かを判断し、自装置の管理領域内でない場合には各々が単独制御装置１１の演算処理部６ａと同様の転送処理を行う。なお、制御情報管理部７−１〜７−４は、それぞれが自仮想装置のＩＤに基づいた転送情報を保持している。
【００２８】
演算処理部６−ｎが、自装置の管理領域内であると判断した場合には、受信データがコンテンツの取得要求のときにはコンテンツ管理部８−ｎに受信データを転送し、受信データが制御要求のときには制御情報管理部７−ｎに転送する。そして、コンテンツ管理部８−ｎがコンテンツ管理部８と同様の動作をし、制御情報管理部７−ｎが制御情報管理部７と同様の動作をする。そして、コンテンツ管理部８−ｎから出力されたコンテンツデータは、演算処理部６−ｎおよび共通処理部４を経由して送信処理部２が送信する。すなわち、仮想制御装置５−１〜５−４は、送受信の動作以外は、各々が独立の単独制御装置１１と同様の動作を行う。
【００２９】
つづいて、図１に示した本実施の形態の制御装置１の制御情報管理部７−１〜７−４が保持する転送情報について説明する。図４の制御装置１２においては、物理的には１つの制御装置であるが、Ｃｈｏｒｄシステムにおける転送は全く独立に行われる。たとえば、仮想制御装置５−１に転送された受信データに含まれる宛先ＩＤが、仮想制御装置５−２の保持する転送情報に含まれる制御装置の管理領域の宛先ＩＤであったとする。そして、仮想制御装置５−１は、自装置の保持する転送情報のなかには、その受信データに含まれる宛先ＩＤを管理する制御情報はないものとする。このとき、仮想制御装置５−１は、自装置の保持する転送情報のなかから宛先ＩＤに最も近いＩＤをもつ装置に転送を行うため、最終的にその宛先ＩＤを管理領域に持つ装置に転送されるまで、最低さらにもう１回の転送が必要となる。
【００３０】
一方、仮想制御装置５−１〜５−４間で転送情報を共有しているとすると、仮想制御装置５−１は、仮想制御装置５−２の保持する転送情報に基づいてその受信データに含まれる宛先ＩＤを管理する装置に直接転送でき、転送回数は１回となる。このように、仮想制御装置５−１〜５−４が転送情報を共有することにより、転送回数を減らすことができる。なお、仮想制御装置５−１〜５−４が保持する転送情報は、それぞれ演算処理部６−１〜６−４または制御情報管理部７−１〜７−４が自装置に割り当てられたＩＤ値に基づいて算出した後に保持しているものとする。本実施の形態では、制御情報管理部７−１〜７−４は、インタフェース９を介してお互いの転送情報を参照することにより転送情報を共有する。
【００３１】
以下、本実施の形態の転送情報の共有方法について具体的に説明する。転送情報を共有する方法として、たとえば、仮想制御装置５−１〜５−４が保持する転送情報を、それぞれがお互いに独立に参照する方法がある。この方法では、転送情報に重複する情報がある場合、重複する情報を多重に保持することになる。このため、本実施の形態では、さらに、制御情報管理部７−１〜７−４の保持する転送情報から重複する情報を削除することにより、転送情報を削減する。なお、ここでは、転送情報の重複部分を削除するようにしたが、削除せずにそのまま用いるようにしてもよい。
【００３２】
図５−１〜５−３は転送情報の削減方法を示す図である。図５−１は、仮想制御装置５−１が自装置に割り当てられているＩＤ値に基づいて算出した転送情報Ａ−１の一例を示す図である。図５−１において、横軸はＩＤ値（識別番号）を示し、ここでは右側がＩＤ値の数値の増加方向とする。なお、図５−１〜図５−３では、仮想装置５−１または仮想装置５−２の自装置のＩＤ値を黒四角で示し、転送情報Ａ−１または転送情報Ａ−２に含まれる転送先のＩＤ値を白抜き四角で示している。なお、本実施の形態では「仮想制御装置５−１のＩＤ値＜仮想制御装置５−２のＩＤ値＜仮想制御装置５−３のＩＤ値＜仮想制御装置５−４のＩＤ値」とする。
【００３３】
図５−２は、仮想制御装置５−１の保持している転送情報Ａ−１と、仮想制御装置５−２の保持している転送情報Ａ−２の一例を示す図である。転送情報Ａ−１と転送情報Ａ−２には図５−２に示すように重複区間が生じることがある。図５−３は、転送情報Ａ−１から転送情報Ａ−２と重複する部分を削除した例を示す図である。図５−３では、転送情報Ａ−１のうち、仮想制御装置５−２のＩＤを超えているＩＤを持つ転送先（ここでは、仮想制御装置５−３）を削除した例を示している。
【００３４】
本実施の形態では、図５−１〜図５−３で例示したように、仮想制御装置５−１〜５−４をＩＤの小さい順にならべ、ＩＤの最も小さい仮想制御装置５−１〜５−４の転送情報から、ＩＤが２番目に小さい仮想制御装置５−１〜５−４のＩＤを超えるＩＤを持つ転送先を削除する。同様に、ＩＤが２番目に小さい仮想制御装置５−１〜５−４の転送情報から、ＩＤが３番目に小さい仮想制御装置５−１〜５−４のＩＤを超えるＩＤを持つ転送先を削除する。また、同様に、ＩＤが３番目に小さい仮想制御装置５−１〜５−４の転送情報から、ＩＤが一番大きい仮想制御装置５−１〜５−４のＩＤを超えるＩＤを持つ転送先を削除する。
【００３５】
このように、仮想制御装置５−１〜５−４は、ＩＤが自装置の次にＩＤの大きい仮想制御装置５−１〜５−４のＩＤを超えるＩＤを持つ転送先を削除することにより、重複部分を削除することができる。このため、転送情報の容量を削減することができる。また、これらの転送情報を用いて、後述の転送処理において宛先ＩＤ値に最も近い転送先を検索する場合にも、重複した検索が不要となり処理負荷も削減することができる。
【００３６】
つづいて、本実施の形態の動作について説明する。送信処理部２，受信処理部３，共通処理部４の動作は図４に示した制御装置１２と同様である。ここでは、仮想制御装置５−１が共通処理部４から受信データを転送された場合を例にあげて説明するが、仮想制御装置５−２〜５−４に受信データが転送された場合も、各仮想制御装置５−２〜５−４の動作は同様となる。
【００３７】
仮想制御装置５−１の演算処理部６−１は、共通処理部４から受信データを受け取ると、まず、宛先ＩＤ値が自装置の管理領域（predecessorのＩＤ値より大きく、かつ自分のＩＤ以下）であるか否かを判断する。宛先ＩＤ値が自装置の管理領域のＩＤ値であると判断した場合、自装置内の処理として、制御装置１２と同様に、受信データがコンテンツの取得要求のときにはコンテンツ管理部８−１に受信データを転送し、受信データが制御要求のときには制御情報管理部７−１に転送する。コンテンツ管理部８−１，制御情報管理部７−１の動作は、それぞれ上述の制御装置１１のコンテンツ管理部８，制御情報管理部７の動作と同様である。
【００３８】
演算処理部６−１が、宛先ＩＤ値が自装置の管理領域のＩＤ値でないと判断した場合、以下に示す転送処理を行う。図６は、本実施の形態の転送処理手順の一例を示すフローチャートである。なお、本実施の形態では、図５で示した重複部分を削除した転送情報を制御情報管理部７−１〜７−４が算出して保持しているものとする。また、演算処理部６−１〜６−４は、それぞれ、制御装置１内の全ての仮想制御装置５−１〜５−４のＩＤ値を仮想制御装置５−１〜５−４の識別子と対応付けて保持しているものとする。なお、フローチャートにおいては、仮想制御装置を仮想ノードと表現し、単にノードという場合には、制御装置と仮想制御装置の区別なく、独立のＩＤをもつ装置とする。
【００３９】
まず、仮想制御装置５−１の演算処理部６−１は、共通処理部４から転送された受信データの宛先ＩＤ値が、predecessorのＩＤ値より大きく、かつ自分のＩＤ値以下（自装置の管理領域）であるか否かを判断する（ステップＳ１）。自装置の管理領域の宛先ＩＤ値である場合（ステップＳ１  ＹＥＳ）には、転送を行う必要がないため転送処理をそのまま終了する。自装置の管理領域の宛先ＩＤ値でない場合（ステップＳ１  ＮＯ）には、宛先ＩＤ値がsuccessorのＩＤ以下であるか否かを判断する（ステップＳ２）。なお、ステップＳ１については、上述のように、すでに転送処理を行うか自装置内の処理を行うかの判断において、同様の処理がされているため、ステップＳ１を省略し、ステップＳ２から開始するようにしてもよい。
【００４０】
宛先ＩＤがsuccessorのＩＤ以下でないと判断した場合（ステップＳ２  ＮＯ）には、演算処理部６−１は、さらに、宛先ＩＤ値が次の仮想ノード（同一制御装置内でＩＤ値が自装置の次に大きい仮想ノード：この例では、仮想制御装置５−２）のＩＤ値未満であるか否かを判断する（ステップＳ３）。宛先ＩＤ値が次の仮想ノードのＩＤ値未満でないと判断した場合（ステップＳ３  ＮＯ）は、演算処理部６−１は、さらに、宛先ＩＤ値以下で最大のＩＤ値をもつ仮想ノードを選択する（ステップＳ４）。つぎに、演算処理部６−１は、その選択した仮想ノード（５−ｊとする。ｊ＝２〜４）の制御情報管理部７−ｊが保持している転送情報を参照して、そのなかから宛先ＩＤ以下で最大のＩＤ値を持つ転送先（ノード）を選択する（ステップＳ５）。そして、演算処理部６−１は、選択したノードに、共通処理部４，送信処理部２経由で、受信データを転送する（ステップＳ６）。
【００４１】
一方、ステップＳ２において、宛先ＩＤ値がsuccessorのＩＤ値以下であると判断した場合（ステップＳ２  ＹＥＳ）は、演算処理部６−１は、successorノードに、共通処理部４，送信処理部２経由で、受信データを転送する（ステップＳ７）。
【００４２】
また、ステップＳ３において、宛先ＩＤ値が次の仮想ノードのＩＤ値未満であると判断した場合（ステップＳ３  ＹＥＳ）は、演算処理部６−１は、制御情報管理部７−１が保持している転送情報を参照して、そのなかから宛先ＩＤ以下で最大のＩＤ値を持つ転送先（ノード）を選択し（ステップＳ８）、ステップＳ６に進む。
【００４３】
ステップＳ１，ステップＳ２は通常のＣｈｏｒｄシステムと同様であるが、本実施の形態のステップＳ３〜ステップＳ５では、同一制御装置内の別の仮想制御装置の転送情報を参照するようにしている。このため、より宛先ＩＤ値に近いノードへ転送を行うことができ、最終宛先ノードまでの到達にかかる転送回数を減らすことができる。なお、ここでは、重複した部分を削除した転送情報を用いる転送処理手順を示したが、重複した部分を削除しない場合には、ステップＳ３〜ステップＳ５，ステップＳ８のかわりに、演算処理部６−１が、全ての仮想制御装置の転送情報を順次参照して、そのなかから宛先ＩＤ値以下で最大のＩＤ値をもつノードを選択する処理を行い、ステップＳ６にすすむようにすればよい。
【００４４】
なお、本実施の形態では、１つの物理的な制御装置１を４つの仮想制御装置５−１〜５−４として動作させる例について説明したが、これに限らず、１つの物理的な制御装置１に対する仮想制御装置の数がどのような数であっても本実施の形態の転送方法を適用することができる。
【００４５】
このように、本実施の形態では、仮想制御装置５−１〜５−４の制御情報管理部７−１〜７−４がインタフェース９を介してお互いの転送情報を参照するようにして、全ての転送情報のなかから、宛先ＩＤ値以下で最も宛先ＩＤ値に近いＩＤ値を持つ転送先に受信データを転送するようにした。さらに、制御情報管理部７−１〜７−４間で転送情報の重複部分を削除するようにした。このため、１回の転送でより宛先ＩＤ値に近いノードへ転送を行うことができ、最終宛先ノードまでの到達にかかる転送回数が減らすことができる。さらに、転送情報の重複部分を削減しない場合に比べ記憶容量と処理負荷を削減することができる。
【００４６】
実施の形態２．
図７は、本発明にかかる制御装置の実施の形態２の機能構成例を示す図である。図７に示すように、本実施の形態の制御装置１ａは、実施の形態１の制御装置１からインタフェース９を削除し、制御情報管理部７−１〜７−４，仮想制御装置５−１〜５−４に替えてそれぞれ制御情報管理部７ａ，仮想制御装置５ａ−１〜５ａ−４を備える以外は、実施の形態１の制御装置１と同様である。実施の形態１と同様の機能のものは同一の符号を付して説明を省略する。
【００４７】
本実施の形態では、制御装置１ａは、全ての仮想制御装置５ａ−１〜５ａ−４の制御情報を一元管理する制御情報管理部７ａを設けて、各々の演算処理部６−１〜６−４から制御情報管理部７ａが保持する情報を参照できるようにしている。制御情報管理部７ａは、実施の形態１で説明した制御情報管理部７−１〜７−４がそれぞれ保持していた転送情報を統合した制御情報を保持している。ここで、保持される転送情報は実施の形態１と同様に重複部分を削除したものである。また、さらに、制御情報管理部７ａは、仮想制御装置５ａ−１〜５ａ−４に接続する通信端末などへのパケット配信に必要な情報（配信情報）を一元管理する。配信情報は、たとえばマルチキャストグループのパケットを配信している通信端末の情報（マルチキャスト配信情報）などである。
【００４８】
つづいて、本実施の形態の転送方法について説明する。本実施の形態の転送方法以外の動作については、実施の形態１と同様である。以下、実施の形態１と異なる部分について説明する。
【００４９】
図８は、本実施の形態の転送処理手順の一例を示すフローチャートである。ステップＳ１１，ステップＳ１２は、それぞれ実施の形態１のステップＳ１，ステップＳ２と同様であるため説明を省略する。ステップＳ１２において、ステップＳ１１において、宛先ＩＤがsuccessorのＩＤ以下でないと判断した場合（ステップＳ１２  ＮＯ）には、演算処理部６−１は、さらに、制御情報管理部７ａが保持している転送情報を参照して、そのなかから宛先ＩＤ値以下で最大のＩＤ値を持つ転送先（ノード）を選択する（ステップＳ１３）。ステップＳ１４，ステップＳ１５は、実施の形態１のステップＳ６，ステップＳ７とそれぞれ同様であるため説明を省略する。このように、本実施の形態では、実施の形態１のステップＳ３，Ｓ４，Ｓ５，Ｓ８の替わりに、ステップＳ１３のみを行えばよく、実施の形態１に比べ転送処理手順を簡素化できる。
【００５０】
つづいて、本実施の形態のマルチキャスト配信情報の共有について説明する。オーバレイネットワークを利用したマルチキャストパケット配信を行う場合、同一の制御装置に属する複数の仮想制御装置が、同一のマルチキャストパケットの配信を受けることが起こりうる。この場合、マルチキャストパケットが重複して同一の制御装置に送信されることになりトラフィックに無駄が生じてしまう。本実施の形態では、この重複受信をさけるためにマルチキャスト配信情報の共有を行う。
【００５１】
図９は、マルチキャスト配信情報の共有によってパケットの二重配信を回避する方法を示す図である。図１０は、配信情報の一例を示す図である。図１０には、仮想制御装置５ａ−１に関する配信情報を示している。このような配信情報が、仮想制御装置５ａ−１〜５ａ−４の全てについて保持されている。まず、仮想制御装置５ａ−１に通信端末１０ａ−１が接続し、マルチキャストグループｘのパケット配信を受けているとする。図１０の上段には、この状態の仮想制御装置５ａ−１の配信情報を示している。仮想制御装置５ａ−１の配信情報には、このように、マルチキャストグループごとにその配信を受けている通信端末が格納されている。
【００５２】
つぎに、仮想制御装置５ａ−２に接続されている通信端末１０ａ−２が、マルチキャストグループｘの配信要求を送信する。仮想制御装置５ａ−２の演算処理部６−２は、受信処理部３，共通処理部４経由でマルチキャストグループの配信要求を受信すると、制御情報管理部７ａが保持している配信情報を参照して、マルチキャストグループｘへの配信情報を含む仮想制御装置５ａ−１〜５ａ−４を検索する。
【００５３】
この場合、演算処理部６−２は、マルチキャストグループｘへの配信情報を含む仮想制御装置５ａ−１〜５ａ−４を検索した結果として、仮想制御装置５ａ−１を得ることになる。そして、演算処理部６−２は、仮想制御装置５ａ−１の配信情報に通信端末１０ａ−２を追加する。図１０の下段は、通信端末１０ａ−２が追加された状態の仮想制御装置５ａ−１の配信情報（マルチキャストｘに対応する行）を示している。
【００５４】
図１１は、本実施の形態のマルチキャスト配信設定処理手順の一例を示すフローチャートである。以下、図９と同様に、仮想制御装置５ａ−２が、自装置に接続される通信端末１０ａ−２からマルチキャストグループの配信要求を受信した場合について説明する。まず、仮想制御装置５ａ−２の演算処理部６−２は、制御情報管理部７ａが保持している仮想制御装置５ａ−１の配信情報を検索して、配信要求のあったマルチキャストグループと同じマルチキャストグループのエントリ（情報）があるか否かを判断する（ステップＳ２１）。同じマルチキャストグループのエントリがあると判断した場合（ステップＳ２１  ＹＥＳ）には、仮想制御装置５ａ−１の配信情報に、通信端末１０ａ−２を追加し（ステップＳ２２）、マルチキャスト配信設定処理を終了する。
【００５５】
一方、ステップＳ２１において、同じマルチキャストグループのエントリがないと判断した場合（ステップＳ２１  ＮＯ）には、演算処理部６−２は、全ての仮想ノード（ここでは仮想制御装置５ａ−１〜５ａ−４）を検索済みが否かを判断する（ステップＳ２３）。全ての仮想ノードを検索済みでないと判断した場合（ステップＳ２３  ＮＯ）には、未検索の仮想ノードのうちの１つを選択し（ステップＳ２４）、ステップＳ２１以降の処理を繰り返す。
【００５６】
また、ステップＳ２３において、全ての仮想ノードを検索済みであると判断した場合（ステップＳ２３  ＹＥＳ）には、演算処理部６−２は、そのマルチキャストグループに参加するためのマルチキャストパケット配信要求を共通処理部４，送信処理部２経由でマルチパケット配信要求の送信先（マルチパケット要求を管理する装置，他のマルチパケット配信を受けている制御装置など）へ送信する（ステップＳ２５）。そして、自装置（５ａ−２）の、そのマルチパケットグループの配信情報に通信端末１０ａ−２を追加する（ステップＳ２２）。
【００５７】
なお、本実施の形態では、制御情報管理部７ａが配信情報を一元管理するようにしたが、実施の形態１の制御装置１と同様の構成として、制御情報管理部７−１〜７−４をお互いに参照することにより、図１１に示した手順を行うようにしてもよい。この場合、演算処理部６−２は、制御情報管理部７ａの配信情報を参照する替わりに、制御情報管理部７−１の配信情報を順次参照して全ての仮想ノード分を検索するようにすればよい。
【００５８】
なお、本実施の形態では、配信情報を仮想制御装置ごとに保持するようにしたが、配信情報を統合し、全ての仮想制御装置５ａ−１〜５ａ−４の配信情報を１つの配信情報として管理するようにしてもよい。図１２は、このように、配信情報を統合した場合のマルチキャスト配信設定処理手順の一例を示すフローチャートである。
【００５９】
図１２を用いてこの場合の処理を説明する。まず、仮想制御装置５ａ−２は、制御情報管理部７ａが保持している統合された配信情報を検索して、配信要求のあったマルチキャストグループと同じマルチキャストグループのエントリがあるか否かを判断する（ステップＳ３１）。
【００６０】
同じマルチキャストグループのエントリがあった場合（ステップＳ３１  ＹＥＳ）は、統合された配信情報に通信端末６−２を追加する（ステップＳ３２）。同じマルチキャストグループのエントリがない場合（ステップＳ３１  ＮＯ）は、そのマルチキャストグループに参加するためのマルチキャストパケット配信要求を、共通処理部４，送信処理部２経由でマルチパケット配信要求の送信先（マルチパケット要求を管理する装置，他のマルチパケット配信を受けている制御装置など）へ送信する（ステップＳ３３）。そして、自装置（５ａ−２）の、そのマルチパケットグループの配信情報に通信端末１０ａ−２を追加する（ステップＳ３２）。このように、統合された配信情報を用いると、処理手順を図１１の場合に比べて簡略化することができる。
【００６１】
このように、本実施の形態では、制御情報管理部７ａが、転送情報および制御情報を一元管理するようにした。このため、実施の形態１にくらべ転送処理を簡略化することができ、同一のマルチキャストグループの重複配信を避けることができる。また、さらに、配信情報を統合化することにより、マルチキャストグループの配信設定処理を簡略化することができる。
【産業上の利用可能性】
【００６２】
以上のように、本発明にかかるパケット転送方法および制御装置は、オーバレイネットワークにおけるパケット転送に有用であり、特に、仮想ノードを含むＣｈｏｒｄシステムにおけるパケット転送に適している。
【図面の簡単な説明】
【００６３】
【図１】本発明にかかる制御装置の実施の形態１の機能構成例を示す図である。
【図２】実施の形態１のオーバレイネットワークの一例を示す図である。
【図３】単独制御装置の機能構成例を示す図である。
【図４】物理的に１つの制御装置を４つの仮想制御装置として動作させる場合の機能構成例を示す図である。
【図５−１】仮想制御装置５−１の転送情報を示す図である。
【図５−２】仮想制御装置５−１の保持している転送情報と、仮想制御装置５−２の保持している転送情報の一例を示す図である。
【図５−３】重複部分を削除した転送情報を示す図である。
【図６】実施の形態１の転送手順の一例を示すフローチャートである。
【図７】本発明にかかる制御装置の実施の形態２の機能構成例を示す図である。
【図８】実施の形態２の転送処理手順の一例を示すフローチャートである。
【図９】マルチキャスト配信情報の共有によってパケットの二重配信を回避する方法を示す図である。
【図１０】仮想制御装置５ａ−１の配信情報の一例を示す図である。
【図１１】実施の形態２のマルチキャスト配信設定処理手順の一例を示すフローチャートである。
【図１２】配信情報を統合した場合のマルチキャスト配信設定処理手順の一例を示すフローチャートである。
【符号の説明】
【００６４】
１，１ａ，１２  制御装置
２  送信処理部
３  受信処理部
４  共通処理部
５−１〜５−４，５ａ−１〜５ａ−４  仮想制御装置
６−１〜６−４，６ａ  演算処理部
７，７−１〜７−４，７ａ  制御情報管理部
８，８−１〜８−４  コンテンツ管理部
９  インタフェース
１０−１〜１０−５，１０ａ−１，１０ａ−２  通信端末
１１  単独制御装置
【図１】
2008219644.tif 000003
【図２】
2008219644.tif 000004
【図３】
2008219644.tif 000005
【図４】
2008219644.tif 000006
【図５−１】
2008219644.tif 000007
【図５−２】
2008219644.tif 000008
【図５−３】
2008219644.tif 000009
【図６】
2008219644.tif 000010
【図７】
2008219644.tif 000011
【図８】
2008219644.tif 000012
【図９】
2008219644.tif 000013
【図１０】
2008219644.tif 000014
【図１１】
2008219644.tif 000015
【図１２】
2008219644.tif 000016