(57)【要約】【課題】通信フローを分散させるとともに、往路および復路の両方の通信フローを一致させることが可能なネットワークシステムを提供する。【解決手段】転送処理部１１Ｂは、フロー識別子Ｆ１等と、宛先識別子Ｅ１等から特定される転送先の中継装置群１０等を示す中継装置群識別子Ｇ１等とに基づいて、転送先の中継装置１１等を決定する。【選択図】図２
2018061200.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが複数の中継装置を含む複数の中継装置群を介してパケットを伝送するネットワークシステムであって、
各前記中継装置群は、当該中継装置群に含まれる中継装置から、他の中継装置群に含まれる中継装置へパケットを転送し、
各前記中継装置は、
前記パケットが入力される入力ポートと、
前記入力ポートに入力された前記パケットの転送先の中継装置を決定する転送処理部と、
前記転送処理部によって決定された転送先の中継装置へ前記パケットを出力する出力ポートと、
を含み、
前記パケットは、
当該パケットの送信先を示す宛先識別子と、
当該パケットを用いる通信に用いられる一連のパケットに共通に付与される情報からなるフロー識別子と、
を含み、
前記転送処理部は、
前記フロー識別子と、前記宛先識別子から特定される転送先の中継装置群を示す中継装置群識別子とに基づいて、前記転送先の中継装置を決定する、
ネットワークシステム。
【請求項２】
前記転送処理部は、さらに、前記中継装置群識別子によって示される転送先の中継装置群に含まれる中継装置の数に基づいて、前記転送先の中継装置を決定する、
請求項１に記載のネットワークシステム。
【請求項３】
前記転送処理部は、前記フロー識別子と前記中継装置群識別子とを入力値とする関数の出力値を前記中継装置の前記数で除した除算結果を用いて、前記転送先の中継装置を決定する、
請求項２に記載のネットワークシステム。
【請求項４】
前記転送処理部は、ハッシュ関数を前記関数として用い、前記関数の出力値の前記中継装置の前記数による除余を前記除算結果として用いる、
請求項３に記載のネットワークシステム。
【請求項５】
前記フロー識別子は、前記通信ごとにランダムに設定される、
請求項１〜４のいずれか１項に記載のネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークシステムに関する。
【背景技術】
【０００２】
従来より、パケットデータ（以下、単に「パケット」という）を伝送するためのネットワークシステムとして、複数の中継装置を含むものが知られている。このようなネットワークシステムでは、中継装置が他の中継装置へパケットを転送していくことによって、パケットの伝送経路（以下、「通信フロー」という場合もある）が形成される。特許文献１は、転送先の中継装置を確率的に決定することによって通信フローを分散させる手法を開示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２２７７０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
通信においてパケットの送信および受信が行われる場合、当該通信に用いられる一連のパケット（同じ通信での送信パケットおよび受信パケット）がネットワークシステムを往復することになる。ここで、往路および復路の両方に同じ中継装置が含まれるように、往路および復路の両方の通信フローを一致させることが要求される場合がある。両方の通信フローを一致させることについて、特許文献１ではなんら検討がなされていない。
【０００５】
本発明は、上記課題に鑑みてなされたものであり、通信フローを分散させるとともに、往路および復路の両方の通信フローを一致させることが可能なネットワークシステムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一態様に係るネットワークシステムは、それぞれが複数の中継装置を含む複数の中継装置群を介してパケットを伝送するネットワークシステムであって、各中継装置群は、当該中継装置群に含まれる中継装置から、他の中継装置群に含まれる中継装置へパケットを転送し、各中継装置は、パケットが入力される入力ポートと、入力ポートに入力されたパケットの転送先の中継装置を決定する転送処理部と、転送処理部によって決定された転送先の中継装置へパケットを出力する出力ポートと、を含み、パケットは、当該パケットの送信先を示す宛先識別子と、当該パケットを用いる通信に用いられる一連のパケットに共通に付与される情報からなるフロー識別子と、を含み、転送処理部は、フロー識別子と、宛先識別子から特定される転送先の中継装置群を示す中継装置群識別子とに基づいて、転送先の中継装置を決定する。
【０００７】
上記のネットワークシステムによれば、次のような作用効果が奏される。すなわち、ある通信において、往路が、第１の中継装置群、第２の中継装置群および第３の中継装置群をこの順に通る経路である場合、たとえば第１の中継装置群から第２の中継装置群にパケットが転送される際、第１の中継装置群に含まれる中継装置において、フロー識別子と、転送先の第２の中継装置群を示す中継装置群識別子とに基づいて、第２の中継装置群に含まれる転送先の中継装置が決定される。一方、第３の中継装置群、第２の中継装置群および第１の中継装置群をこの順に通る往路では、第３の中継装置群から第２の中継装置群にパケットが転送される際、第３の中継装置群に含まれる中継装置において、フロー識別子と、転送先の第２の中継装置群を示す中継装置群識別子とに基づいて、第２の中継装置群に含まれる転送先の中継装置が決定される。この復路での転送先の中継装置の決定結果は、上述の往路での転送先の中継装置の決定結果と同じであるので、往路および復路の両方の通信フローを一致させることができる。さらに、フロー識別子をたとえば通信ごとに異なる識別子に設定すれば、上述の転送先の中継装置の決定結果が変わるので、異なる中継装置によってパケットが転送され得る。よって、通信フローを分散させることもできる。
【発明の効果】
【０００８】
本発明によると、通信フローを分散させるとともに、往路および復路の両方の通信フローを一致させることが可能になる。
【図面の簡単な説明】
【０００９】
【図１】比較例に係るネットワークシステムの概略構成を示す図である。
【図２】実施形態に係るネットワークシステムの概略構成を示す図である。
【図３】パケット構造の例を示す図である。
【図４】中継装置の機能ブロックを示す図である。
【図５】転送表の例を示す図である。
【図６】転送表の例を示す図である。
【図７】制御装置の機能ブロックを示す図である。
【図８】転送設定表の例を示す図である。
【図９】中継装置群管理表の例を示す図である。
【図１０】中継装置および制御装置のハードウェア構成を示す図である。
【図１１】制御装置によって実行される処理の例を示すフローチャートである。
【図１２】中継装置によって実行される処理の例を示すフローチャートである。
【図１３】ネットワークシステムの別の効果を説明するための図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について、図面を参照しながら説明する。なお、図面の説明において同一要素には同一符号を付し、重複する説明は省略する。
【００１１】
［比較例］
まず、図１を参照して、比較例に係るネットワークシステム１Ｅの概略構成を説明する。ネットワークシステム１Ｅは、たとえば、外部装置Ｅ１と外部装置Ｅ２との間のパケット通信に用いられる。その場合、通信に用いられる一連のパケットが、ネットワークシステム１Ｅを往復することになる。一連のパケットとは、外部装置Ｅ１から外部装置Ｅ２へ伝送されるパケット（外部装置Ｅ１における送信パケットに相当）および外部装置Ｅ２から外部装置Ｅ１へ伝送されるパケット（外部装置Ｅ１における受信パケットに相当）である。
【００１２】
ネットワークシステム１Ｅは、メッシュ構成のネットワークシステムであり、それぞれが複数の中継装置を含む複数の中継装置群１０Ｅ、２０Ｅおよび３０Ｅを備える。中継装置群１０Ｅは中継装置１１Ｅ、１２Ｅおよび１３Ｅを含み、中継装置群２０Ｅは中継装置２１Ｅ、２２Ｅおよび２３Ｅを含み、中継装置群３０Ｅは中継装置３１Ｅ、３２Ｅおよび３３Ｅを含む。ただし、中継装置群の数および中継装置の数は、図１に示される例に限定されない。
【００１３】
たとえば外部装置Ｅ１から外部装置Ｅ２に向かってパケットが伝送される場合（太字矢印）、パケットは、中継装置群１０Ｅ、２０Ｅおよび３０Ｅをこの順に通る（以下、この経路を「往路」という）。ただし、往路において、中継装置群１０Ｅに含まれる中継装置１１Ｅ、１２Ｅおよび１３Ｅのうちのいずれの中継装置をパケットが通るかはランダムに設定される。同様に、中継装置群２０Ｅに含まれる中継装置２１Ｅ、２２Ｅおよび２３Ｅのうちのいずれの中継装置をパケットが通るか、また、中継装置群３０Ｅに含まれる中継装置３１Ｅ、３２Ｅおよび３３Ｅのうちのいずれの中継装置をパケットが通るかも、ランダムに設定される。図１に示される例では、往路の通信フローは、中継装置１１Ｅ、中継装置２２Ｅおよび中継装置３３Ｅをこの順に通る経路である。
【００１４】
逆に、外部装置Ｅ２から外部装置Ｅ１に向かってパケットが伝送される場合（破線矢印）、パケットは、中継装置群３０Ｅ、２０Ｅおよび１０Ｅをこの順に通る（以下、この経路を「復路」という）。ただし、この場合も、各中継装置群１０Ｅ、２０Ｅおよび３０Ｅに含まれるいずれの中継装置をパケットが通るかは、ランダムに設定される。図１に示される例では、復路の通信フローは、中継装置３１Ｅ、中継装置２３Ｅおよび中継装置１３Ｅをこの順に通る経路である。
【００１５】
以上説明したような比較例に係るネットワークシステム１Ｅでは、中継装置群ごとにランダマイゼーションされた中継装置をパケットが通ることによって、通信経路を分散させる（各中継装置に負荷を分散させる）ことができる。しかしこの場合、往路および復路の通信フローが一致しない可能性がある。
【００１６】
一方で、ネットワークシステムとして、往路および復路の両方に同じ中継装置が含まれるように、往路および復路の両方の通信フローを一致させることが要求されるものもある。たとえば後述するセッション維持型のシステムがこれに該当し得る。セッション維持型のシステムとは、中継装置が通信フローに対するステート情報を持ち、往路におけるパケットと復路におけるパケットとの両方のパケットに、ステート情報に基づく処理を適用するシステムである。このようなセッション維持型のシステムの例として、ファイアウォールが挙げられる。上述のように往路および復路の通信フローが一致しない可能性のあるネットワークシステム１Ｅは、セッション維持型のシステムに用いることができない。本実施形態に係るネットワークシステムは、このような課題を解決する。
【００１７】
［実施形態］
図２は、実施形態に係るネットワークシステム１の概略構成を示す図である。
ネットワークシステム１は、それぞれが複数の中継装置を含む複数の中継装置群を介してパケットを伝送するネットワークシステムである。ネットワークシステム１は、ネットワークシステム１Ｅ（図１）と比較して、中継装置群１０Ｅ、２０Ｅおよび３０Ｅに代えて中継装置群１０、２０および３０を含む点、および制御装置５０をさらに含む点において相違する。
【００１８】
中継装置群１０、２０および３０は、負荷分散のために設置される複数の中継装置群であり、各中継装置群１０、２０および３０は、中継装置群に含まれる中継装置から、他の中継装置群に含まれる中継装置へパケットを転送する。中継装置群１０、２０および３０のそれぞれは、同じ役割を有する中継装置の集合である。中継装置群１０と中継装置群２０とは隣接している。中継装置群２０と中継装置群３０とは隣接している。中継装置群１０は中継装置１１、１２および１３を含み、中継装置群２０は中継装置２１、２２および２３を含み、中継装置群３０は、中継装置３１、３２および３３を含む。ただし、中継装置群の数および中継装置の数は、図２に示される例に限定されない。
【００１９】
本実施形態では、中継装置群１０、２０および３０を識別するための識別子Ｇ１、Ｇ２およびＧ３が、中継装置群１０、２０および３０にそれぞれ対応付けられている。中継装置群１０、２０および３０のうち、中継装置群２０に属する（含まれる）中継装置２１〜２３は、ステート情報を持つものとする。ネットワークシステム１の境界に位置する中継装置１１〜１３および３１〜３３は、外部装置Ｅ１および外部装置Ｅ２にそれぞれ接続され得る。外部装置Ｅ１およびＥ２は、ネットワークシステム１との間で通信フローの入出力を行う。
【００２０】
本実施形態では、パケットは、「宛先識別子」と、「フロー識別子」とを含む。宛先識別子は、当該パケットの送信先を示す識別子であり、たとえば外部装置Ｅ１およびＥ２のいずれかを特定するための識別子である。また、宛先識別子は、宛先までの経路に含まれる中継装置群の識別子の列を含んで表現されても良く、たとえば、識別子Ｇ１、Ｇ２、Ｇ３、およびＥ２の列で構成される識別子であってもよい。フロー識別子は、当該パケットを用いる通信に用いられる一連のパケットの往復で共通に付与される情報からなる識別子であり、たとえば、当該パケットを用いる通信ごとにランダムに設定される数値であってもよいし、あるいは、一般的な通信フローを示す、送信元アドレスと宛先アドレスとの組などであってもよい。なお、フロー識別子が送信元アドレスと宛先アドレスとの組などのように、当該パケットの通信フローの往復においてフロー識別子のある一部と別の一部とが入れ替わる場合には、一連のパケットの往復で共通に付与される情報からなる識別子と見做す。「宛先識別子」は「フロー識別子」の一部であってもよい。たとえば、「フロー識別子」に宛先アドレスが含まれ、当該宛先アドレスが当該パケットの送信先を示す識別子である場合には、当該宛先アドレスが「宛先識別子」となり、「宛先識別子」は「フロー識別子」の一部となる。
【００２１】
ここで、図３を参照して、パケット構造の例を説明する。図３に示される例では、パケットは、ヘッダ部と、データ部とを含む。ヘッダ部は、「宛先」と、「フロー識別子」とを含む。「宛先」は、上述の宛先識別子であり、ここでは、外部装置Ｅ１が宛先であることを特定するための宛先識別子「Ｅ１」が例示される。「フロー識別子」として、ここでは、外部装置Ｅ１と外部装置Ｅ２との通信であることを特定するためのフロー識別子「Ｆ１」が例示される。データ部は、データ本体のことである。
【００２２】
図２に戻り、制御装置５０は、後述の原理により、ネットワークシステム１において上述のフロー識別子を用いた通信フローが実現されるように、各中継装置群１０、２０、３０を制御する。
【００２３】
図４は、中継装置の機能ブロックを示す図である。ここでは、中継装置１１を例に挙げて説明する。他の中継装置１２、１３、２１、２２、２３、３１、３２および３３の機能ブロックは、中継装置１１の機能ブロックと同様であるので説明は省略する。
【００２４】
中継装置１１は、入力ポート１１Ａと、転送処理部１１Ｂと、転送表１１Ｃと、出力ポート１１Ｄとを含む。入力ポート１１Ａは、パケットが入力される部分である。転送処理部１１Ｂは、入力ポート１１Ａに入力されたパケットの転送先の中継装置を決定する部分である。転送表１１Ｃは、転送処理部１１Ｂがパケットの転送先の中継装置を決定するために必要な情報を保持する部分である。出力ポート１１Ｄは、転送処理部１１Ｂによって決定された転送先の中継装置にパケットを出力する部分である。
【００２５】
ここで、図５および図６を参照して、中継装置で構築される転送表の例を説明する。図５に示される例では、転送表は、「フロー識別子」と、「出力先の中継装置群識別子」と、「出力先の中継装置」とを対応づけて記述している。「出力先の中継装置群識別子」は、中継装置群識別子が割り当てられた中継装置群に隣接する中継装置である。「出力先の中継装置」は、パケットの転送先の中継装置である。図６に示される例では、転送表は、「宛先」ごとに「出力先の中継装置群識別子」と、「インデックス数」と、「インデックス」と、「出力先の中継装置」とを対応付けて記述している。「宛先」は、外部装置Ｅ１、Ｅ２等である。「インデックス数」は、中継装置群に含まれる中継装置の数である。「インデックス」は、中継装置群に含まれる（属する）中継装置の順番を一意に定めることができる情報である。これらの情報は、たとえば後述の図８および図９を参照して説明する転送設定表５１および中継装置群管理表５２の情報を用いて構築される。
【００２６】
図４に戻り、転送処理部１１Ｂは、フロー識別子（図３または図５のＦ１等）と、宛先識別子（図３または図６の「宛先」）から特定される転送先の中継装置群を示す中継装置群識別子（図５または図６の「Ｇ１」等）とに基づいて、転送先の中継装置を決定する。たとえば図５に示される転送表を参照すれば、フロー識別子と、中継装置群識別子とに基づいて、出力先の（転送先の）中継装置を決定することができる。転送処理部１１Ｂは、さらに、中継装置群識別子によって示される転送先の中継装置群に含まれる中継装置の数（図６の「インデックス数」）に基づいて、転送先の中継装置を決定してもよい。この場合には、図６に示される転送表が参照され得る。以下では、主に、図６に示される転送表を用いる場合について説明する。具体的な決定手法については、後に図１２等を参照して説明する。
【００２７】
図７は、制御装置５０の機能ブロックを示す図である。制御装置５０は、転送設定表５１と、中継装置群管理表５２と、中継装置制御部５３とを含む。
【００２８】
転送設定表５１は、中継装置群識別子を、当該中継装置群識別子が割り当てられた中継装置群に隣接する中継装置（制御対象の中継装置群識別子）に対して、出力先の中継装置群を識別する中継装置群識別子（出力先の中継装置群識別子）として、通知するための情報を保持する表である。
【００２９】
ここで、図８を参照して転送設定表５１の例を説明する。図８に示される例では、転送設定表５１は、「制御対象の中継装置群識別子」ごとに、「宛先」と、「出力先の中継装置群識別子」と、「インデックス数」と、「インデックス」と、「出力先の中継装置」とを対応付けて記述している。識別子Ｇ１によって識別される中継装置群１０では、インデックス「０」、「１」および「２」が、中継装置１１、１２および１３にそれぞれ対応付けられる。識別子Ｇ２によって識別される中継装置群２０では、インデックス「０」、「１」および「２」が、中継装置２１、２２および２３にそれぞれ対応付けられる。識別子Ｇ３によって識別される中継装置群３０では、インデックス「０」、「１」および「２」が、中継装置３１、３２および３３にそれぞれ対応付けられる。
【００３０】
図７に戻り、中継装置群管理表５２は、中継装置群１０、２０、３０を管理するための情報を保持する表である。
【００３１】
ここで、図９を参照して、中継装置群管理表５２の例を説明する。図９に示される例では、中継装置群管理表５２は、「中継装置群識別子」と、「インデックス」と「属する中継装置」とを対応づけて記述している。「属する中継装置」は、識別子によって識別される中継装置群に含まれる中継装置である。
【００３２】
制御装置５０の転送設定表５１と中継装置群管理表５２の構成方法はとくに限定されないが、たとえば予め手動で構成されてよい。
【００３３】
図７に戻り、制御装置５０においては、中継装置制御部５３が、転送設定表５１および中継装置群管理表５２を用いることによって、各中継装置１１、１２、１３、２１、２２、２３、３１、３２および３３の制御を行う。この制御については、後に図１１を参照して説明する。
【００３４】
次に、図１０を参照して、中継装置１１、１２、１３、２１、２２、２３、３１、３２、３３および制御装置５０（ここでは単に中継装置１１という）のハードウェア構成の一例について説明する。中継装置１１の機能ブロック（構成部）は、ハードウェアおよび／またはソフトウェアの任意の組み合わせによって実現される。また、各機能ブロックの実現手段は特に限定されない。すなわち、各機能ブロックは、物理的および／または論理的に結合した１つの装置により実現されてもよいし、物理的および／または論理的に分離した２つ以上の装置を直接的および／または間接的に(たとえば、有線および／または無線)で接続し、これら複数の装置により実現されてもよい。
【００３５】
図１０に示される例では、中継装置１１は、物理的には、プロセッサ１１１、メモリ１１２、ストレージ１１３、通信モジュール１１４、入力装置１１５、出力装置１１６、バス１１７などを含むコンピュータ装置として構成されてもよい。
【００３６】
なお、以下の説明では、「装置」という文言は、回路、デバイス、ユニットなどに読み替えることができる。サーバ２０のハードウェア構成は、図１０に示した各装置を１つまたは複数含むように構成されてもよいし、一部の装置を含まずに構成されてもよい。
【００３７】
サーバ２０における各機能は、プロセッサ１１１、メモリ１１２などのハードウェア上に所定のソフトウェア（プログラム）を読み込ませることで、プロセッサ１１１が演算を行い、通信モジュール１１４による通信や、メモリ１１２およびストレージ１１３におけるデータの読み出しおよび／または書き込みを制御することで実現される。
【００３８】
プロセッサ１１１は、たとえば、オペレーティングシステムを動作させてコンピュータ全体を制御する。プロセッサ１１１は、周辺装置とのインターフェース、制御装置、演算装置、レジスタなどを含む中央処理装置（ＣＰＵ：Central  Processing  Unit）で構成されてもよい。たとえば、上述の転送処理部１１Ｂおよび中継装置制御部５３などは、プロセッサ１１１で実現されてもよい。
【００３９】
また、プロセッサ１１１は、プログラム（プログラムコード）、ソフトウェアモジュールやデータを、ストレージ１１３および／または通信モジュール１１４からメモリ１１２に読み出し、これらに従って各種の処理を実行する。プログラムとしては、上述の実施の形態で説明した動作の少なくとも一部をコンピュータに実行させるプログラムが用いられる。たとえば、転送処理部１１Ｂおよび中継装置制御部５３などは、メモリ１１２に格納され、プロセッサ１１１で動作する制御プログラムによって実現されてもよく、他の機能ブロックについても同様に実現されてもよい。上述の各種処理は、１つのプロセッサ１１１で実行される旨を説明してきたが、２以上のプロセッサ１１１により同時または逐次に実行されてもよい。プロセッサ１１１は、１以上のチップで実装されてもよい。なお、プログラムは、電気通信回線を介してネットワークから送信されてもよい。
【００４０】
メモリ１１２は、コンピュータ読み取り可能な記録媒体であり、たとえば、ＲＯＭ（Read  Only  Memory）、ＥＰＲＯＭ（Erasable  Programmable  ＲＯＭ）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  ＲＯＭ）、ＲＡＭ（Random  Access  Memory）などの少なくとも１つで構成されてもよい。メモリ３０Ｂは、レジスタ、キャッシュ、メインメモリ（主記憶装置）などと呼ばれてもよい。メモリ１１２は、本発明の一実施の形態に係る無線通信方法を実施するために実行可能なプログラム（プログラムコード）、ソフトウェアモジュールなどを保存することができる。
【００４１】
ストレージ１１３は、コンピュータ読み取り可能な記録媒体であり、たとえば、ＣＤ−ＲＯＭ（Compact  Disc  ＲＯＭ）などの光ディスク、ハードディスクドライブ、フレキシブルディスク、光磁気ディスク(たとえば、コンパクトディスク、デジタル多用途ディスク、Ｂｌｕ−ｒａｙ（登録商標）ディスク)、スマートカード、フラッシュメモリ(たとえば、カード、スティック、キードライブ)、フロッピー（登録商標）ディスク、磁気ストリップなどの少なくとも１つで構成されてもよい。ストレージ１１３は、補助記憶装置と呼ばれてもよい。上述の記憶媒体は、たとえば、メモリ１１２および／またはストレージ１１３を含むデータベース、サーバその他の適切な媒体であってもよい。
【００４２】
通信モジュール１１４は、有線および／または無線ネットワークを介してコンピュータ間の通信を行うためのハードウェア（送受信デバイス）であり、たとえばネットワークデバイス、ネットワークコントローラ、ネットワークカードなどともいう。
【００４３】
入力装置１１５は、外部からの入力を受け付ける入力デバイスである。出力装置１１６は、外部への出力を実施する出力デバイス（たとえば、ディスプレイ、スピーカー、LEDランプなど）である。なお、入力装置１１５および出力装置１１６は、一体となった構成（たとえば、タッチパネル）であってもよい。
【００４４】
また、プロセッサ１１１やメモリ１１２などの各装置は、情報を通信するためのバス１１７で接続される。バス１１７は、単一のバスで構成されてもよいし、装置間で異なるバスで構成されてもよい。
【００４５】
また、サーバ２０は、マイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ：Digital  Signal  Processor）、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＰＬＤ（Programmable  Logic  Device）、ＦＰＧＡ（Field  Programmable  Gate  Array）などのハードウェアを含んで構成されてもよく、当該ハードウェアにより、各機能ブロックの一部または全てが実現されてもよい。たとえば、プロセッサ１１１は、これらのハードウェアの少なくとも１つで実装されてもよい。
【００４６】
次に、図１１を参照して、制御装置５０の動作について説明する。図１１は、制御装置５０において実行される処理の例を示すフローチャートである。制御装置５０は、転送設定表５１と、中継装置群管理表５２とを読み出して各中継装置に転送設定表５１に記載された情報の通知を行い、中継装置で転送表を構築するように制御を行う（ステップＳ１）。構築される転送表は、先に図５を参照して説明した転送表であってもよいし、先に図６を参照して説明した転送表であってもよい。転送設定表５１および中継装置群管理表５２の読み出しおよび転送設定表５１への情報の通知は、中継装置制御部５３によって行われる。
【００４７】
次に、図１２を参照して、中継装置１１の動作について説明する。図１２は、中継装置１１において実行される処理の例を示すフローチャートである。このフローチャートの処理は、中継装置１１の転送処理部１１Ｂによって実行される。中継装置１２、１３、２１、２２、２３、３１、３２および３３の動作は、中継装置１１の動作と同様であるので説明は省略する。中継装置１１の動作において、前述のように制御装置５０から通知された転送設定表５１の情報を用いて、中継装置１１の転送表１１Ｃを構築する。構築される転送表は、先に説明した図５に示される転送表および図６に示される転送表のいずれでもよいが、ここでは、図６に示される転送表が構築される場合について説明する。また、出力先の中継装置と出力ポート１１Ｄとの関係は、たとえば予め設定されているものとする。この設定は、公知の種々の手法を用いて、手動または自動で行われてよい。
【００４８】
転送処理部１１Ｂにパケットが入力されると（ステップＳ１１）、転送処理部１１Ｂは、入力パケットのヘッダ部から「宛先」と「フロー識別子」とを抽出する（ステップＳ１２）。ここで抽出された宛先を「Ｖ０」とし、フロー識別子を「Ｖ１」とする。
【００４９】
続いて、中継装置１１の転送表１１Ｃから、先のステップＳ１１で抽出したＶ０と一致する「宛先」を持つエントリの「出力先の中継装置群識別子」と、「インデックス数」を抽出する（ステップＳ１３）。ここで抽出された出力先の中継装置群識別子を「Ｖ２」とし、抽出されたインデックス数を「Ｖ３」とする。
【００５０】
続いて、Ｖ１，Ｖ２を入力としたハッシュ関数の出力値をＶ３で除算した余りの値（除余）を取得する（ステップＳ１４）。ここで取得された除余を「Ｖ４」とする。ハッシュ関数は一般的に知られるものを用いることとし、たとえば、Ｖ１とＶ２とのそれぞれの上位と下位の桁を入れ替えて排他的論理和を取るような操作を施した値を戻り値とする（返却する）。また、フロー識別子が送信元アドレスと宛先アドレスの組である場合のように、同じ通信フローの往復においてフロー識別子のある一部と別の一部とが入れ替わるような例では、Ｖ１に適用するハッシュ関数は当該入れ替わる二つの部分に対して排他的論理和を取るような操作を施した値を戻り値とする（返却する）ことで、同じ通信フローの往復においてフロー識別子のある一部と別の一部とが入れ替わっていてもＶ１に適用するハッシュ関数の戻り値が同じになるようにしてもよい。
【００５１】
続いて、中継装置１１の転送表１１Ｃから、先のステップＳ１２で抽出したＶ０と一致する「宛先」を持つエントリのうち、さらに、先のステップＳ１４で取得したＶ４と一致する「インデックス」を持つエントリの出力ポートを抽出する（ステップＳ１５）。ここで抽出された出力ポートを「Ｖ５」とする。
【００５２】
最後にＶ５の出力ポートからパケットを出力する（ステップＳ１６）。
【００５３】
以上説明したネットワークシステム１によれば、ネットワークシステム１に入力される通信フローの出力先経路を分散させながら、各通信フローの往復経路を一致させる、という効果が奏される。先に説明した図１２のフローチャートに従えば、同じフロー識別子と同じ出力先の中継装置群識別子を持つパケットは同じインデックスで示される出力先の中継装置から出力されるため、たとえば、外部装置Ｅ１と外部装置Ｅ２との間で通信されるフロー識別子Ｆ１の通信フローが、往路において中継装置群１０（識別子Ｇ１）から中継装置群２０（識別子Ｇ２）に出力される場合に中継装置２２が選択されれば、復路において中継装置群３０（識別子Ｇ３）から中継装置群２０に出力される場合においても同じく中継装置２２が選択される。そして、フロー識別子が異なる通信フローであれば、異なる中継装置２１もしくは中継装置２３が選択されうるため、通信フローの出力先経路が分散されるが、この場合においても各通信フローの往復で同じ中継装置が選択され、つまり、往復経路が一致する。
【００５４】
具体例を説明すると、往路では、たとえば第１の中継装置群１０から第２の中継装置群２０にパケットが転送される際、第１の中継装置群１０に含まれる中継装置１１、１２、１３において、フロー識別子Ｆ１等と、転送先の第２の中継装置群２０を示す中継装置群識別子Ｇ２とに基づいて、第２の中継装置群２０に含まれる転送先の中継装置２１、２２および２３のいずれかが決定される。一方、往路では、第３の中継装置群３０から第２の中継装置群２０にパケットが転送される際、第３の中継装置群３０に含まれる中継装置３１、３２および３３において、フロー識別子Ｆ１等と、転送先の第２の中継装置群２０を示す中継装置群識別子Ｇ２とに基づいて、第２の中継装置群２０に含まれる転送先の中継装置２１、２２および２３のいずれかが決定される。この復路での転送先の中継装置の決定結果は、上述の往路での転送先の中継装置の決定結果と同じであるので、往路および復路の両方の通信フローを一致させることができる。さらに、フロー識別子Ｆ１等をたとえば通信ごとに異なる識別子に設定すれば、上述の転送先の中継装置の決定結果が変わるので、異なる中継装置によってパケットが転送され得る。よって、通信フローを分散させることもできる。このようなネットワークシステム１は、たとえば、セッション維持型のシステムに用いることができる。
【００５５】
転送処理部１１Ｂは、さらに、中継装置群識別子Ｇ１等によって示される転送先の中継装置群１０等に含まれる中継装置の数に基づいて、転送先の中継装置を決定してもよい。より具体的に、転送処理部１１Ｂは、フロー識別子Ｆ１等と中継装置群識別子Ｇ１等とを入力値とする関数の出力値を中継装置の数で除した除算結果を用いて、転送先の中継装置を決定してもよい。この場合、転送処理部１１Ｂは、ハッシュ関数を上記の関数として用い、関数の出力値の中継装置の数による除余を上記の除算結果として用いてもよい。たとえばこのようにして、フロー識別子Ｆ１等と、中継装置群識別子Ｇ１等と、転送先の中継装置群に含まれる中継装置の数とに基づいて、転送先の中継装置を一意に決定することができる。
【００５６】
フロー識別子Ｆ１等は、通信ごとにランダムに設定されてもよい。たとえばこのようにして通信フローを通信ごとに変えることによって、通信フローを分散させることができる。
【００５７】
さらに、ネットワークシステム１によれば、次のような効果も奏される。図１３は、外部装置Ｅ１が移動して（白抜き矢印）中継装置群１０から中継装置群４０（識別子Ｇ４）に接続箇所を変更した場合であり、かつ、移動前後で、外部装置Ｅ１と外部装置Ｅ２との通信フローが同じ中継装置群２０を経由する場合を示している。中継装置群は、中継装置４１、４２および４３を含む。外部装置Ｅ１が移動前に出力する通信フローは中継装置２３を経由する（破線矢印）。外部装置Ｅ１が中継装置群１０から中継装置群４０に移動するのに伴って、中継装置群１０、２０および４０のそれぞれにおいて、転送設定表の「宛先」と「出力先の中継装置群識別子」との関係が上述の原理によって更新される。そして、移動後の外部装置Ｅ１が出力する通信フローは移動前と同様に中継装置２３を経由する（太線矢印）。このように、外部装置の移動前後で同じ中継装置群を経由する箇所では，同じ中継装置を経由可能であり、ステートを持つ中継装置へ移動の影響を減らす効果がある。
【００５８】
［変形例］
上記ネットワークシステム１は、制御装置５０の制御によって、往路および復路の両方の通信フローを一致させるとともに通信フローを分散させていたが、制御装置５０を用いずに同様の制御を実現するネットワークシステムも考えられる。そのような変形例に係るネットワークシステムでは、各中継装置が、自身の属する中継装置群の識別子と、中継装置自身（の識別子）とを、隣接する中継装置に通知する制御機能を有する。たとえば、中継装置１１が自身の属する中継装置群１０の識別子Ｇ１と、中継装置１１自身の識別子とを、隣接する中継装置２１、２２および２３に通知する。たとえば転送処理部１１Ｂがそのような通知を行うように構成されてよい。中継装置１１から当該通知を受信した中継装置２１、２２および２３では、受信した通知に含まれる中継装置群１０の識別子Ｇ１と、中継装置１１の識別子とから、転送表を更新する。転送表のインデックスについては、中継装置１１の識別子と、既に転送表に追加されている中継装置との大小関係を比較するなどして、中継装置１１から通知を受けたすべての中継装置間で、中継装置１１の順番が一意に定まるインデックスとなるように決定される。このような構成とすることで、集中的に管理を行う制御装置（図２等の制御装置５０）が無くとも中継装置だけで自動的にネットワークシステムの中継装置における転送表を構築することが可能になる。
【００５９】
以上、本実施形態について詳細に説明したが、当業者にとっては、本実施形態が本明細書中に説明した実施形態に限定されるものではないということは明らかである。本実施形態は、特許請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。したがって、本明細書の記載は、例示説明を目的とするものであり、本実施形態に対して何ら制限的な意味を有するものではない。
【００６０】
情報の通知は、本明細書で説明した態様／実施形態に限られず、他の方法で行われてもよい。たとえば、情報の通知は、物理レイヤシグナリング（たとえば、ＤＣＩ（Downlink  Control  Information）、ＵＣＩ（Uplink  Control  Information））、上位レイヤシグナリング（たとえば、ＲＲＣ（Radio  Resource  Control）シグナリング、ＭＡＣ（Medium  Access  Control）シグナリング、報知情報（ＭＩＢ（Master  Information  Block）、ＳＩＢ（System  Information  Block）））、その他の信号又はこれらの組み合わせによって実施されてもよい。また、ＲＲＣシグナリングは、ＲＲＣメッセージと呼ばれてもよく、たとえば、ＲＲＣ接続セットアップ（RRC Connection Setup）メッセージ、ＲＲＣ接続再構成（RRC Connection Reconfiguration）メッセージなどであってもよい。
【００６１】
本明細書で説明した各態様／実施形態は、ＬＴＥ（Long  Term  Evolution）、ＬＴＥ−Ａ（LTE-Advanced）、ＳＵＰＥＲ  ３Ｇ、ＩＭＴ−Ａｄｖａｎｃｅｄ、４Ｇ、５Ｇ、ＦＲＡ（Future  Radio  Access）、Ｗ−ＣＤＭＡ（登録商標）、ＧＳＭ（登録商標）、ＣＤＭＡ２０００、ＵＭＢ（Ultra  Mobile  Broadband）、ＩＥＥＥ  ８０２．１１（Ｗｉ−Ｆｉ）、ＩＥＥＥ  ８０２．１６（ＷｉＭＡＸ）、ＩＥＥＥ  ８０２．２０、ＵＷＢ（Ultra-WideBand）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、その他の適切なシステムを利用するシステム及び／又はこれらに基づいて拡張された次世代システムに適用されてもよい。
【００６２】
本明細書で説明した各態様／実施形態の処理手順、シーケンス、フローチャートなどは、矛盾の無い限り、順序を入れ替えてもよい。たとえば、本明細書で説明した方法については、例示的な順序で様々なステップの要素を提示しており、提示した特定の順序に限定されない。
【００６３】
情報等は、上位レイヤ(または下位レイヤ)から下位レイヤ(または上位レイヤ)へ出力され得る。複数のネットワークノードを介して入出力されてもよい。
【００６４】
入出力された情報等は特定の場所(たとえば、メモリ)に保存されてもよいし、管理テーブルで管理してもよい。入出力される情報等は、上書き、更新、または追記され得る。出力された情報等は削除されてもよい。入力された情報等は他の装置へ送信されてもよい。
【００６５】
判定は、１ビットで表される値（０か１か）によって行われてもよいし、真偽値（Boolean：trueまたはfalse）によって行われてもよいし、数値の比較（たとえば、所定の値との比較）によって行われてもよい。
【００６６】
本明細書で説明した各態様／実施形態は単独で用いてもよいし、組み合わせて用いてもよいし、実行に伴って切り替えて用いてもよい。また、所定の情報の通知（たとえば、「Ｘであること」の通知）は、明示的に行うものに限られず、暗黙的（たとえば、当該所定の情報の通知を行わない）ことによって行われてもよい。
【００６７】
ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、他の名称で呼ばれるかを問わず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順、機能などを意味するよう広く解釈されるべきである。
【００６８】
また、ソフトウェア、命令などは、伝送媒体を介して送受信されてもよい。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア及びデジタル加入者回線（ＤＳＬ）などの有線技術及び／又は赤外線、無線及びマイクロ波などの無線技術を使用してウェブサイト、サーバ、又は他のリモートソースから送信される場合、これらの有線技術及び／又は無線技術は、伝送媒体の定義内に含まれる。
【００６９】
本明細書で説明した情報、信号などは、様々な異なる技術のいずれかを使用して表されてもよい。たとえば、上記の説明全体に渡って言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、チップなどは、電圧、電流、電磁波、磁界若しくは磁性粒子、光場若しくは光子、又はこれらの任意の組み合わせによって表されてもよい。
【００７０】
なお、本明細書で説明した用語及び／又は本明細書の理解に必要な用語については、同一の又は類似する意味を有する用語と置き換えてもよい。
【００７１】
本明細書で使用する「システム」および「ネットワーク」という用語は、互換的に使用される。
【００７２】
また、本明細書で説明した情報、パラメータなどは、絶対値で表されてもよいし、所定の値からの相対値で表されてもよいし、対応する別の情報で表されてもよい。たとえば、無線リソースはインデックスで指示されるものであってもよい。
上述したパラメータに使用する名称はいかなる点においても限定的なものではない。さらに、これらのパラメータを使用する数式等は、本明細書で明示的に開示したものと異なる場合もある。様々なチャネル（たとえば、ＰＵＣＣＨ、ＰＤＣＣＨなど）及び情報要素（たとえば、ＴＰＣなど）は、あらゆる好適な名称によって識別できるので、これらの様々なチャネル及び情報要素に割り当てている様々な名称は、いかなる点においても限定的なものではない。
【００７３】
「接続された(connected)」、「結合された(coupled)」という用語、又はこれらのあらゆる変形は、２又はそれ以上の要素間の直接的又は間接的なあらゆる接続又は結合を意味し、互いに「接続」又は「結合」された２つの要素間に１又はそれ以上の中間要素が存在することを含むことができる。要素間の結合又は接続は、物理的なものであっても、論理的なものであっても、或いはこれらの組み合わせであってもよい。本明細書で使用する場合、２つの要素は、１又はそれ以上の電線、ケーブル及び／又はプリント電気接続を使用することにより、並びにいくつかの非限定的かつ非包括的な例として、無線周波数領域、マイクロ波領域及び光（可視及び不可視の両方）領域の波長を有する電磁エネルギーなどの電磁エネルギーを使用することにより、互いに「接続」又は「結合」されると考えることができる。
【００７４】
本明細書で使用する「に基づいて」という記載は、別段に明記されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という記載は、「のみに基づいて」と「に少なくとも基づいて」の両方を意味する。
【００７５】
本明細書で「第１の」、「第２の」などの呼称を使用した場合においては、その要素へのいかなる参照も、それらの要素の量または順序を全般的に限定するものではない。これらの呼称は、２つ以上の要素間を区別する便利な方法として本明細書で使用され得る。したがって、第１および第２の要素への参照は、２つの要素のみがそこで採用され得ること、または何らかの形で第１の要素が第２の要素に先行しなければならないことを意味しない。
【００７６】
「含む（include）」、「含んでいる（including）」、およびそれらの変形が、本明細書あるいは特許請求の範囲で使用されている限り、これら用語は、用語「備える(comprising)」と同様に、包括的であることが意図される。さらに、本明細書あるいは特許請求の範囲において使用されている用語「または（or）」は、排他的論理和ではないことが意図される。
【００７７】
本明細書において、文脈または技術的に明らかに1つのみしか存在しない装置である場合以外は、複数の装置をも含むものとする。
【００７８】
本開示の全体において、文脈から明らかに単数を示したものではなければ、複数のものを含むものとする。
【符号の説明】
【００７９】
１、１Ａ…ネットワークシステム、１０、２０、３０、４０…中継装置群、１１、１２、１３、２１、２２、２３、３１、３２、３３、４１、４２、４３…中継装置、１１Ａ…入力ポート、１１Ｂ…転送処理部、１１Ｄ…出力ポート、５０…制御装置。
【図１】
2018061200.tif 000003
【図２】
2018061200.tif 000004
【図３】
2018061200.tif 000005
【図４】
2018061200.tif 000006
【図５】
2018061200.tif 000007
【図６】
2018061200.tif 000008
【図７】
2018061200.tif 000009
【図８】
2018061200.tif 000010
【図９】
2018061200.tif 000011
【図１０】
2018061200.tif 000012
【図１１】
2018061200.tif 000013
【図１２】
2018061200.tif 000014
【図１３】
2018061200.tif 000015