(57)【要約】【課題】集約拠点のゲートウェイルータ（転送装置）においてユーザ間の公平性を向上させることを目的とする。【解決手段】ユーザ別に設定されたバッファを有するエッジルータからのパケットを宛先に転送するゲートウェイルータは、エッジルータ別に、エッジルータの収容ユーザ数に応じて所定の関係式からバッファを動的に設定するバッファ制御部と、エッジルータから受信したパケットを当該エッジルータに対応するバッファへ振り分ける振分部とを有する。【選択図】図４
2018037974.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ別に設定されたバッファを有するエッジルータからのパケットを宛先に転送するゲートウェイルータであって、
エッジルータ別に、エッジルータの収容ユーザ数に応じて所定の関係式からバッファを動的に設定するバッファ制御部と、
エッジルータから受信したパケットを当該エッジルータに対応するバッファへ振り分ける振分部と、
を有するゲートウェイルータ。
【請求項２】
前記所定の関係式による１つのバッファ当たりのユーザ数の上限値は、前記ゲートウェイルータに接続するエッジルータの収容ユーザ数の最小値以下の数値とし、当該数値で各エッジルータの収容ユーザ数を除した数の和が、前記ゲートウェイルータに設定可能なバッファ数を超えないように設定される、請求項１に記載のゲートウェイルータ。
【請求項３】
前記バッファ制御部は、通信を行っているユーザに対してバッファを設定する、請求項１に記載のゲートウェイルータ。
【請求項４】
ユーザ別に設定されたバッファを有するエッジルータと、エッジルータからのパケットを宛先に転送するゲートウェイルータとを有する通信システムであって、
前記エッジルータは、
当該エッジルータの収容ユーザ数に応じて所定の関係式から当該エッジルータの収容ユーザをグルーピングし、当該エッジルータと前記ゲートウェイルータとの間にグループごとにトンネルを設定することにより、或いはグループごとに識別子を付与することにより、当該エッジルータのバッファから出力されたパケットを振り分ける振分部を有し、
前記ゲートウェイルータは、
前記設定されたトンネル又は前記付与された識別子に応じてバッファを動的に設定するバッファ制御部と、
エッジルータから受信したパケットを、当該パケットが通過したトンネル又は当該パケットに付与された識別子に対応するバッファへ振り分ける振分部と、
を有する通信システム。
【請求項５】
ユーザ別に設定されたバッファを有するエッジルータからのパケットを宛先に転送するゲートウェイルータにおけるトラヒックフロー制御方法であって、
エッジルータ別に、エッジルータの収容ユーザ数に応じて所定の関係式からバッファを動的に設定するステップと、
エッジルータから受信したパケットを当該エッジルータに対応するバッファへ振り分けるステップと、
を有するトラヒックフロー制御方法。
【請求項６】
ユーザ別に設定されたバッファを有するエッジルータと、エッジルータからのパケットを宛先に転送するゲートウェイルータとを有する通信システムにおけるトラヒックフロー制御方法であって、
前記エッジルータにおいて、当該エッジルータの収容ユーザ数に応じて所定の関係式から当該エッジルータの収容ユーザをグルーピングし、当該エッジルータと前記ゲートウェイルータとの間にグループごとにトンネルを設定することにより、或いはグループごとに識別子を付与することにより、当該エッジルータのバッファから出力されたパケットを振り分けるステップと、
前記ゲートウェイルータにおいて、前記設定されたトンネル又は前記付与された識別子に応じてバッファを動的に設定するステップと、
前記ゲートウェイルータにおいて、エッジルータから受信したパケットを、当該パケットが通過したトンネル又は当該パケットに付与された識別子に対応するバッファへ振り分けるステップと、
を有するトラヒックフロー制御方法。
【請求項７】
ユーザ別に設定されたバッファを有するエッジルータからのパケットを宛先に転送するゲートウェイルータとして、コンピュータを機能させるためのプログラムであって、当該コンピュータを、
エッジルータ別に、エッジルータの収容ユーザ数に応じて所定の関係式からバッファを動的に設定するバッファ制御手段、及び
エッジルータから受信したパケットを当該エッジルータに対応するバッファへ振り分ける振分手段、
として機能させるプログラム。
【請求項８】
ユーザ別に設定されたバッファを有するエッジルータからのパケットを宛先に転送するゲートウェイルータとして、コンピュータを機能させるためのプログラムであって、当該コンピュータを、
エッジルータにおいて当該エッジルータの収容ユーザ数に応じて所定の関係式から当該エッジルータの収容ユーザをグルーピングし、当該エッジルータと前記ゲートウェイルータとの間にグループごとにトンネルを設定することにより、或いはグループごとに識別子を付与することにより、当該エッジルータのバッファから出力されて振り分けられたパケットを受信する受信手段、
前記設定されたトンネル又は前記付与された識別子に応じてバッファを動的に設定するバッファ制御手段、及び
エッジルータから受信したパケットを、当該パケットが通過したトンネル又は当該パケットに付与された識別子に対応するバッファへ振り分ける振分手段、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲートウェイルータ、通信システム、トラヒックフロー制御方法及びプログラムに関し、特に、集約拠点において公平制御を実施するためのゲートウェイルータ、通信システム、トラヒックフロー制御方法及びプログラムに関する。
【背景技術】
【０００２】
より効率的なサービス提供のため、従来ではエッジ部に配備されていたサービス機能を切り離し、遠隔のDC（データセンタ）などに集約的に配備する方式が検討されている。
【０００３】
図１は、サービス機能を集約拠点に配備する方式を示す概略図である。サービス機能の集約拠点であるDCには、サービス機能を実現するためのサーバ群が集約的に配備される。各ユーザ端末からのトラヒックはER（エッジルータ）で振り分けられ、サービス機能による処理が必要なトラヒックは集約拠点に転送される。サービス機能による処理が不要なトラヒックは直接インターネットへ転送される。
【０００４】
集約拠点に転送されるトラヒックは、特定のサービス機能の処理が必要なもののみであり、通常時の帯域は多くないと想定されるが、複数の拠点からトラヒックが集まるため、各ERからのトラヒック量が一斉に増加する場合に備え、集約拠点のGWR（ゲートウェイルータ）で帯域制御を行えることが望ましい。
【０００５】
ネットワークノードによって帯域を確保して通信品質を保証する方式として、IntServ（Integrated Services）とDiffServ（Differentiated Services）などの方式がある（非特許文献１及び２参照）。また、IntServとDiffServを組み合わせて公平制御を行うことも検討されている（非特許文献３参照）。
【０００６】
通信キャリアのBE（Best Effort）サービスでは、ヘビーユーザによる帯域占有を防ぐため、ルータ装置に収容されるユーザに対して個別にバッファを割り当て、ユーザごとの設定帯域に応じて順番にパケットを送出することでユーザ間の公平性を確保している。
【０００７】
図２は、従来技術のユーザ間の公平制御を示す概略図である。図２（１）はユーザ間の公平制御を実施しない場合を示しており、ユーザ１〜３のパケットは同じバッファに入れられる。このとき、FIFO（First-In First-Out）では、到着順にパケットがバッファを占有するため、トラヒック量の少ないユーザのパケットが破棄される可能性がある。その結果、ヘビーユーザが帯域を占有してしまう可能性がある。図２（２）はユーザ間の公平制御を実施する場合を示しており、ユーザ１〜３に対して個別にバッファを割り当て、ラウンドロビンなどで各バッファから順番にパケットを出力する。その結果、各ユーザに一定の帯域が保証される。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】RFC1633, "Integrated Service in the Internet Architecture", July 1994, インターネット（URL：https://tools.ietf.org/html/rfc1633）, 2016年8月4日検索
【非特許文献２】RFC2122, "Specification of Guaranteed Quality of Service", September 1997, インターネット（URL：https://tools.ietf.org/html/rfc2212）, 2016年8月4日検索
【非特許文献３】特許庁, "IntServ/RSVPとDiffServを組み合わせた場合の制御", インターネット（URL：https://www.jpo.go.jp/shiryou/s_sonota/hyoujun_gijutsu/bidirectional_video/132_09.htm）, 2016年8月4日検索
【発明の概要】
【発明が解決しようとする課題】
【０００９】
図１から分かるように、集約拠点のGWRには、全国に配備されたERからトラヒックが送信される。GWRはユーザ間での帯域の公平性を確保するために公平制御を行う必要があるが、現状では、ユーザごとのバッファ／ポリサーの設定はSO（サービスオペレータ）により静的に行われる（事前設定される）。しかしながら、エッジルータでは１台当たり数千〜数万のユーザを収容する可能性があるため、集約拠点では集約されるユーザ数が膨大になり、ハードウェア性能の観点（バッファ容量、ポリサー数の不足など）から、全ユーザに対して静的にバッファ／ポリサーを設定することが困難であるという課題がある。
【００１０】
GWRにおいて、ユーザごとにではなく、ERごとにバッファ／ポリサーを用意する方法も考えられる。しかし、この方法ではERを利用しているユーザ数に応じて公平性が損なわれてしまう可能性がある。
【００１１】
図３は、GWRにおいてERごとにバッファ／ポリサーを用意する場合の課題を示す概略図である。ここで、エッジルータER1にはユーザ１〜３が収容され、エッジルータER2にはユーザ４が収容される場合を想定する。ER1及びER2において、図２に示すようなユーザ間の公平制御が実施され、GWRにおいて、ERごとに用意されたバッファ／ポリサーでER間の公平制御が実施される。しかし、ER間の公平制御では、ERごとのユーザ収容率に応じて使用できる帯域に差分が生じる。ユーザ１〜３を収容するER1のパケットはバッファからドロップする可能性が高くなり、ユーザ４のみを収容するER2のパケットはバッファからドロップする可能性は低くなる。その結果、収容されているユーザ数が少ないERからのパケットが多く出力され、公平性が損なわれる。
【００１２】
特に、大規模キャリア網ではルータ１台に収容されるユーザ数は数千〜数万に上り、ER間でのユーザ数の差分は数百〜数千となる可能性があるため、ユーザ１人あたりに割り当てられる帯域の差分が大きくなる。
【００１３】
このような解決を解決するため、本発明は、集約拠点のGWR（転送装置）においてユーザ間の公平性を向上させることを目的とする。
【課題を解決するための手段】
【００１４】
本発明の一形態に係るゲートウェイルータは、
ユーザ別に設定されたバッファを有するエッジルータからのパケットを宛先に転送するゲートウェイルータであって、
エッジルータ別に、エッジルータの収容ユーザ数に応じて所定の関係式からバッファを動的に設定するバッファ制御部と、
エッジルータから受信したパケットを当該エッジルータに対応するバッファへ振り分ける振分部と、
を有することを特徴とする。
【００１５】
また、本発明の一形態に係る通信システムは、
ユーザ別に設定されたバッファを有するエッジルータと、エッジルータからのパケットを宛先に転送するゲートウェイルータとを有する通信システムであって、
前記エッジルータは、
当該エッジルータの収容ユーザ数に応じて所定の関係式から当該エッジルータの収容ユーザをグルーピングし、当該エッジルータと前記ゲートウェイルータとの間にグループごとにトンネルを設定することにより、或いはグループごとに識別子を付与することにより、当該エッジルータのバッファから出力されたパケットを振り分ける振分部を有し、
前記ゲートウェイルータは、
前記設定されたトンネル又は前記付与された識別子に応じてバッファを動的に設定するバッファ制御部と、
エッジルータから受信したパケットを、当該パケットが通過したトンネル又は当該パケットに付与された識別子に対応するバッファへ振り分ける振分部と、
を有することを特徴とする。
【００１６】
また、本発明の一形態に係るトラヒックフロー制御方法は、
ユーザ別に設定されたバッファを有するエッジルータからのパケットを宛先に転送するゲートウェイルータにおけるトラヒックフロー制御方法であって、
エッジルータ別に、エッジルータの収容ユーザ数に応じて所定の関係式からバッファを動的に設定するステップと、
エッジルータから受信したパケットを当該エッジルータに対応するバッファへ振り分けるステップと、
を有することを特徴とする。
【００１７】
また、本発明の一形態に係るトラヒックフロー制御方法は、
ユーザ別に設定されたバッファを有するエッジルータと、エッジルータからのパケットを宛先に転送するゲートウェイルータとを有する通信システムにおけるトラヒックフロー制御方法であって、
前記エッジルータにおいて、当該エッジルータの収容ユーザ数に応じて所定の関係式から当該エッジルータの収容ユーザをグルーピングし、当該エッジルータと前記ゲートウェイルータとの間にグループごとにトンネルを設定することにより、或いはグループごとに識別子を付与することにより、当該エッジルータのバッファから出力されたパケットを振り分けるステップと、
前記ゲートウェイルータにおいて、前記設定されたトンネル又は前記付与された識別子に応じてバッファを動的に設定するステップと、
前記ゲートウェイルータにおいて、エッジルータから受信したパケットを、当該パケットが通過したトンネル又は当該パケットに付与された識別子に対応するバッファへ振り分けるステップと、
を有することを特徴とする。
【００１８】
また、本発明の一形態に係るプログラムは、
ユーザ別に設定されたバッファを有するエッジルータからのパケットを宛先に転送するゲートウェイルータとして、コンピュータを機能させるためのプログラムであって、当該コンピュータを、
エッジルータ別に、エッジルータの収容ユーザ数に応じて所定の関係式からバッファを動的に設定するバッファ制御手段、及び
エッジルータから受信したパケットを当該エッジルータに対応するバッファへ振り分ける振分手段、
として機能させることを特徴とする。
【００１９】
また、本発明の一形態に係るプログラムは、
ユーザ別に設定されたバッファを有するエッジルータからのパケットを宛先に転送するゲートウェイルータとして、コンピュータを機能させるためのプログラムであって、当該コンピュータを、
エッジルータにおいて当該エッジルータの収容ユーザ数に応じて所定の関係式から当該エッジルータの収容ユーザをグルーピングし、当該エッジルータと前記ゲートウェイルータとの間にグループごとにトンネルを設定することにより、或いはグループごとに識別子を付与することにより、当該エッジルータのバッファから出力されて振り分けられたパケットを受信する受信手段、
前記設定されたトンネル又は前記付与された識別子に応じてバッファを動的に設定するバッファ制御手段、及び
エッジルータから受信したパケットを、当該パケットが通過したトンネル又は当該パケットに付与された識別子に対応するバッファへ振り分ける振分手段、
として機能させることを特徴とする。
【発明の効果】
【００２０】
本発明によれば、集約拠点のGWR（転送装置）においてユーザ間の公平性を向上させることが可能になる。
【図面の簡単な説明】
【００２１】
【図１】サービス機能を集約拠点に配備する方式を示す概略図
【図２】従来技術のユーザ間の公平制御を示す概略図
【図３】GWRにおいてERごとにバッファ／ポリサーを用意する場合の課題を示す概略図
【図４】本発明の実施例に係る公平制御の概略図
【図５】本発明の実施例１に係る公平制御の概略図
【図６】本発明の実施例１に係るトラヒックフローの制御を示すフローチャート
【図７】本発明の実施例２に係る公平制御の概略図
【図８】本発明の実施例２に係るトラヒックフローの制御を示すフローチャート（その１）
【図９】本発明の実施例２に係るトラヒックフローの制御を示すフローチャート（その２）
【図１０】本発明の実施例３に係る公平制御の概略図
【図１１】本発明の実施例３に係るトラヒックフローの制御を示すフローチャート（その１）
【図１２】本発明の実施例３に係るトラヒックフローの制御を示すフローチャート（その２）
【発明を実施するための形態】
【００２２】
以下、図面を参照して本発明の実施例について説明する。
【００２３】
本発明の実施例では、ER（エッジルータ）とGWR（ゲートウェイルータ）とを有する通信システムについて説明する。ERはユーザを収容する装置であり、ユーザからのパケットを適切な宛先に転送するルータ装置である。GWRはサービス機能の集約拠点などに配置され、ERから転送されたパケットを宛先のサービス機能提供サーバなどに転送するルータ装置である。このような通信システムにおいてユーザ間の公平制御を実現するために、ERにおいてユーザ別にバッファを設定することでユーザ間の公平制御を実施し、更に、GWRにおいてERからのパケットを宛先に転送する際に、ER別にERの収容ユーザ数に応じてバッファ／ポリサーを設定することで、公平制御を実施する。なお、GWRは受信したパケットをバッファに一時的に格納するが、バッファ容量には制限があるため、ポリサーにおいて、バッファに格納できないパケットを破棄する。以下の説明では、バッファとポリサーの組み合わせをバッファ／ポリサーと記述する。
【００２４】
図４は、本発明の実施例に係る公平制御の概略図である。本実施例では、一段階目（ER）の公平制御によるパケットの順序性を活用し、二段階目（GWR）で荒目にトラヒックの振り分けを行っても、（ある程度）ユーザ間の公平性を確保できることに着目する。
【００２５】
ERではユーザ間で公平制御を実施する。GWRへ到着するトラヒックは、ERで公平制御されているため、単位時間に受信する同一ERの各ユーザのパケット数におけるバラつきが小さくなる。したがって、同一ERごとにユーザをグルーピングし、グループごとにバッファを割り当てても、バッファに入るユーザのパケット数は均等に近くなると考えられる。
【００２６】
このような公平制御を実現するため、GWRは、通信を行っているユーザ数と各ユーザへ割り当てているバッファ／ポリサーを管理し、各バッファへ割り当てられるユーザ数に偏りが発生しないようにユーザをグルーピングしてバッファ／ポリサーへの振り分けを制御する。なお、ユーザのグルーピングはERにおいて行われ、GWRは、ERにおけるグルーピングに基づいてバッファ／ポリサーへの振り分けを制御してもよい。バッファ／ポリサーへ収容できるユーザ数が上限に達している際には、GWRは動的にバッファ／ポリサーを生成・設定する。
【００２７】
１つのバッファ／ポリサーへ割り当てられるユーザ数の上限値xは、集約拠点のGWRに接続するERの内、収容ユーザ数が最も少ないもののユーザ数以下の数値とし、次の条件を満たすものとする。GWRに設定するバッファ／ポリサー数をy、その最大数をymaxとする。各ER（ER1、ER2・・・）の収容ユーザ数をa1、a2・・・としたときの各ERの全ユーザを格納するために必要なバッファ／ポリサー数をb1、b2・・・とする（例：x=90、a1=200のとき、b1=3となる）。このとき、以下の式を満たす。
【００２８】
【数１】
2018037974.tif 000003
すなわち、xはGWRに接続するERの収容ユーザ数の最小値以下の数値とし、当該数値で各ERの収容ユーザ数a1、a2・・・を除した数の和が、GWRに設定可能なバッファ数ymaxを超えないように設定される。なお、xは小さい方が公平性は向上するため、上記の式を満たす範囲内で、xで各ERの収容ユーザ数a1、a2・・・を除した数の和をできるだけ大きい値とすることが好ましい。
【００２９】
このように、ER別に、ERの収容ユーザ数に応じてGWRに複数のバッファを動的に設定する。ここで、収容ユーザ数が多いほど、設定されるバッファ数は多くなる。そして、ERから受信した各ユーザのパケットを適切なバッファに振り分けることで、ユーザ間の公平性を（ある程度）担保する。
【００３０】
各ユーザのパケットを適切なバッファに振り分ける手段として、以下の実施例について詳細に説明する。
【００３１】
（実施例１）5-tupleやVLAN（Virtual Local Area Network）情報など、通信を行っているユーザの識別情報をGWRで記録する。パケット受信時に、そのユーザ識別情報が既に登録済みかを判断し、登録が必要な場合は新規ユーザとして認識する。GWRは新規ユーザにバッファを動的に割り当てる。
【００３２】
（実施例２）ERが持つバッファ／ポリサーをグルーピングし、グループごとにER-GWR間のトンネルを作成する。GWRはトンネル単位でバッファ／ポリサーを用意し、トンネルごとに振り分けを行う。
【００３３】
（実施例３）ERが持つバッファ／ポリサーをグルーピングし、グループごとに異なる識別子をパケットに付与してGWRへ転送する。GWRは識別子を参照してバッファ／ポリサーへの振り分けを行う。
【００３４】
＜実施例１＞
実施例１では、GWR単独で振り分けを行う具体例について説明する。実施例１では、GWRにおいて、バッファはER別に設定され、ERからのトラヒックフローは、ER別に設定されたバッファ／ポリサーに割り当てるものとする。すなわち、異なるERからのトラヒックフローが同一のバッファ／ポリサーに入ることはない。
【００３５】
図５は、本発明の実施例１に係る公平制御の概略図である。本発明の実施例に係るGWRは、振分機能部１０１と、振分管理部１０３と、バッファ／ポリサー制御部１０５とを有する。
【００３６】
振分機能部１０１は、ERから受信したパケットを当該ERに対応するバッファへ振り分ける。具体的には、振分機能部１０１は、ERから受信したパケットを送信元ユーザに基づいてグルーピングして、グループごとにバッファを振り分ける。振分管理部１０３は、振分機能部１０１からの問い合わせに対して振り分け先のバッファを指示する。また、振分管理部１０３は、必要に応じてバッファ／ポリサー制御部１０５へバッファ／ポリサーの作成を指示する。バッファ／ポリサー制御部１０５は、ERの収容ユーザ数に応じて上記の関係式（数１）からバッファ／ポリサーを動的に設定する。なお、図５は、GWRにおける機能構成の一例を示しており、例えば、振分機能部１０１と振分管理部１０３が１つの機能部として実現されてもよい。
【００３７】
次に、図５及び６を参照して、実施例１におけるトラヒックフローの制御手順を示す。図６は、本発明の実施例１に係るトラヒックフローの制御を示すフローチャートである。
【００３８】
GWRは、5-tupleやVLAN情報など、通信を行っているユーザの識別情報と、当該トラヒックフローの送信元ER情報を記憶する。パケット受信時に、そのユーザ識別情報が既に登録済みかを判断し、登録がない場合は新規ユーザとして認識する（図６のSTEP151、図５のSTEP101）。既に登録済みである場合、振分機能部１０１は既に振り分けたバッファ／ポリサーへトラヒックフローを振り分ける（図６のSTEP163）。
【００３９】
GWRは振分機能部１０１でトラヒックフローを識別し、新規の通信を受信した際には振分管理部１０３へいずれのバッファへ振り分けるかを問い合わせる（図６のSTEP153、図５のSTEP103）。振分管理部１０３は振分対象となる（送信元ERに割り当てられている）バッファ／ポリサーの中に、許容ユーザ数が上限に達していないものがあるか判断し（図６のSTEP155）、上限に達していないバッファ／ポリサーがある場合、いずれかのバッファ（例えば、最も空いているバッファ）を選択し、振分機能部１０１へ振り分け先のバッファを指示する（図６のSTEP161）。
【００４０】
振分対象となる（送信元ERに割り当てられている）全てのバッファ／ポリサーが許容ユーザ数に達している場合は、振分管理部１０３はバッファ／ポリサー制御部１０５へバッファ／ポリサーの生成を指示し（図６のSTEP157、図５のSTEP105）、バッファ／ポリサー制御部１０５はバッファ／ポリサーを生成・設定する（図６のSTEP159、図５のSTEP107）。振分管理部１０３は新たに生成されたバッファ／ポリサーを振り分け先として指示する（図６のSTEP161）。
【００４１】
振分機能部１０１にて、ユーザのトラヒックフローが適切なバッファへ振り分けられる（図６のSTEP163、図５のSTEP109）。
【００４２】
次に図５においてユーザ7が通信を開始した場合のバッファ割り当ての具体例について説明する。
【００４３】
ER1、ER2に収容されるユーザ数a1、a2はスタティックに設定され、a1=4、a2=3とする。ER1では4ユーザが、ER2では3ユーザの内、2ユーザが通信を行っている。
【００４４】
バッファに収容する最大ユーザ数xを2とすると、ER1とER2に用意されるバッファ数b1、b2はそれぞれ２となる（b1=4/2=2, b2=3/2≒2）。
【００４５】
ER1にはバッファ1とバッファ2が設定され、ユーザ1とユーザ2がバッファ1に、ユーザ3とユーザ4がバッファ2に割り当てられている。同様に、ER2にはバッファ3とバッファnが設定され、ユーザ5とユーザ6はバッファ3に割り当てられている。なお、ER2において2ユーザしか通信を行っていないときには、バッファnは使用されず、リソースが予約されている状態となる。
【００４６】
ユーザ7が通信を開始したとき、バッファ3には既に収容最大ユーザ数x(=2)のユーザが割り当てられているため、バッファnが新規に作成・設定され、ユーザ7がバッファnに割り当てられる。
【００４７】
このように、バッファ／ポリサー制御部１０５は、ER別に、ERの収容ユーザ数に応じて所定の関係式からGWRに１以上のバッファを動的に設定する。ここで、収容ユーザ数が多いほど、設定されるバッファ数は多くなる。そして、ERから受信した各ユーザのパケットを適切なバッファに振り分けることで、ユーザ間の公平性を（ある程度）担保することができる。
【００４８】
GWRに設定するバッファ数yは、上記の所定の関係式（数１）を満たす前提で、ymaxに近いほど、バッファ間の収容ユーザ数のバラつきが小さくなり、公平性が高くなる。また、予め必要な数のバッファを設定し、新規ユーザの通信を認識すると、その時点で最も収容ユーザ数が少ないバッファを選択し、新規ユーザをそのバッファに割り当てることで、バッファ間でのユーザ数のバラつきを抑えることが可能になる。
【００４９】
＜実施例２＞
実施例２では、ERとGWRが連携して振り分けを行う具体例について説明する。実施例２では、ERにおいて、収容ユーザ数に応じて所定の関係式（数１）から収容ユーザをグルーピングし、グループごとにER-GWR間のトンネルを作成する。GWRにおいて、バッファはトンネル別に設定され、ERからのトラヒックフローは、トンネル別に設定されたバッファ／ポリサーに割り当てるものとする。
【００５０】
図７は、本発明の実施例２に係る公平制御の概略図である。本発明の実施例に係るERは、トンネル振分部２０１を有する。また、GWRは、振分機能部１０１と、振分管理部１０３と、バッファ／ポリサー制御部１０５とを有する。
【００５１】
トンネル振分部２０１は、ERの収容ユーザ数に応じて上記の関係式（数１）からERとGWRとの間に１以上の適切な数のトンネルを設定し、ERのバッファから出力されたパケットをいずれかのトンネルへ振り分ける。振分機能部１０１は、ERからトンネルを介して受信したパケットを当該パケットが通過したトンネルに対応するバッファへ振り分ける。振分管理部１０３は、振分機能部１０１からの問い合わせに対して振り分け先のバッファを指示する。また、振分管理部１０３は、必要に応じてバッファ／ポリサー制御部１０５へバッファ／ポリサーの作成を指示する。バッファ／ポリサー制御部１０５は、設定されたトンネルに応じてバッファ／ポリサーを動的に設定する。なお、図７は、ER及びGWRにおける機能構成の一例を示しており、例えば、振分機能部１０１と振分管理部１０３が１つの機能部として実現されてもよい。
【００５２】
次に、図７〜９を参照して、実施例２におけるトラヒックフローの制御手順を示す。図８及び図９は、本発明の実施例２に係るトラヒックフローの制御を示すフローチャートである。図８は、動的にトンネルを生成する例を示すが、予め収容ユーザ数に応じてERとGWRとの間にトンネルが設定されてもよい。
【００５３】
ERは、5-tupleやVLAN情報など、通信を行っているユーザの識別情報を記憶する。パケット受信時に、そのユーザ識別情報が既にグルーピング済みかを判断し、グルーピングが必要な場合は新規ユーザとして認識する（図８のSTEP231、図７のSTEP201）。既にグルーピング済みである場合、トンネル振分部２０１は既に振り分けたトンネルへトラヒックフローを振り分ける（図８のSTEP241、図７のSTEP203）。
【００５４】
ERはトンネル振分部２０１でトラヒックフローを識別し、新規の通信を受信した際には振分対象となるグループの中に、許容ユーザ数が上限に達していないものがあるか判断し（図８のSTEP233）、上限に達していないグループがある場合、いずれかのグループ（例えば、最も空いているグループ）を選択する（図８のSTEP239）。
【００５５】
振分対象となる全てのグループが許容ユーザ数に達している場合は、トンネル振分部２０１は新規グループを作成し、新規の通信を行うユーザを当該グループに設定し（図８のSTEP235）、新規にトンネルを構築する（図８のSTEP237）。
【００５６】
トンネル振分部２０１にて、ユーザのトラヒックフローが適切なトンネルへ振り分けられる（図８のSTEP241、図７のSTEP203）。
【００５７】
このように、ERはユーザごとに個別のバッファ／ポリサーを持ち、これらのバッファ／ポリサーは一定数ごとにグルーピングされ、各ユーザのトラヒックフローはグループごとに個別のトンネルでGWRへ転送される。
【００５８】
GWRは振分機能部１０１において、受信ポートやトンネルIDなどによりトンネルを判別し、まだ振り分けていないトラヒックフローである場合は新規トンネルとして認識する（図９のSTEP251）。既に振り分けている場合、振分機能部１０１は既に振り分けたバッファ／ポリサーへトラヒックフローを振り分ける（図９のSTE261、図７のSTEP205）。
【００５９】
振分機能部１０１で新規トンネルと判別された場合には、振分管理部１０３へいずれのバッファへ振り分けるかを問い合わせる（図９のSTEP253）。新規トンネルに対してバッファ／ポリサーが生成されていない場合、振分管理部１０３はバッファ／ポリサー制御部１０５へバッファ／ポリサーの生成を指示し（図９のSTEP255）、バッファ／ポリサー制御部１０５はバッファ／ポリサーを生成・設定する（図９のSTEP259、図７のSTEP207）。振分管理部１０３は新たに生成されたバッファ／ポリサーを振り分け先として指示する（図９のSTEP259）。
【００６０】
振分機能部１０１にて、トンネル経由で受信したトラヒックフローが適切なバッファへ振り分けられる（図９のSTEP261、図７のSTEP205）。
【００６１】
次に図７においてユーザ7が通信を開始した場合のバッファ割り当ての具体例について説明する。
【００６２】
ER1、ER2に収容されるユーザ数a1、a2はスタティックに設定され、a1=4、a2=3とする。ER1では4ユーザが、ER2では3ユーザの内、2ユーザが通信を行っている。
【００６３】
バッファに収容する最大ユーザ数xを2とすると、ER1とER2に用意されるバッファ数b1、b2はそれぞれ２となる（b1=4/2=2, b2=3/2≒2）。
【００６４】
ER1にはバッファAとバッファBが設定され、ER2にはバッファCとバッファDが設定される。各ERでは、割り当てるバッファごとにユーザをグルーピングし、グループごとに個別のトンネルでGWRへトラヒックを転送する。１つのグループに収容するユーザ数はx以下であり、本実施例では、ユーザ1及びユーザ2をバッファAに、ユーザ3及びユーザ4をバッファBに、ユーザ5及びユーザ7をバッファCに、ユーザ6をバッファDにグルーピングしている。GWRはトンネル単位で、対応するバッファへトラヒックを振り分ける。なお、新規トンネルが張られた際には、GWRにおいて新規のバッファが追加される。
【００６５】
このように、トンネル振分部２０１は、ERの収容ユーザ数に応じて所定の関係式から１以上のトンネルを設定する。ここで、収容ユーザ数が多いほど、設定されるトンネルの数は多くなる。そして、GWRでは、トンネルを介して受信した各ユーザのパケットを適切なバッファに振り分けることで、ユーザ間の公平性を（ある程度）担保することができる。実施例２では、トンネル単位の制御となるためトンネル管理の負荷が増加するが、実施例１と比べてスケール性が高い。
【００６６】
設定するトンネルの数、すなわち、GWRに設定するバッファ数yは、上記の所定の関係式（数１）を満たす前提で、ymaxに近いほど、バッファ間の収容ユーザ数のバラつきが小さくなり、公平性が高くなる。また、予め必要な数のバッファを設定し、新規トンネルを認識すると、その時点で最も収容ユーザ数が少ないバッファを選択し、新規トンネルをそのバッファに割り当てることで、バッファ間でのユーザ数のバラつきを抑えることが可能になる。なお、図８に示すように、通信を行っているユーザを動的にグルーピングすることもできるが、この場合、新規に作成したグループに割り当てられるユーザ数が小さくなるため、公平性が損なわれる可能性がある。
【００６７】
＜実施例３＞
実施例３では、ERとGWRが連携して振り分けを行う具体例について説明する。実施例３では、ERにおいて、収容ユーザ数に応じて所定の関係式（数１）から収容ユーザをグルーピングし、グループごとに異なる識別子をパケットに付与してGWRへ転送する。GWRにおいて、バッファは識別子別に設定され、ERからのトラヒックフローは、識別子別に設定されたバッファ／ポリサーに割り当てるものとする。
【００６８】
図１０は、本発明の実施例３に係る公平制御の概略図である。本発明の実施例に係るERは、識別子付与部２５１を有する。また、GWRは、振分機能部１０１と、振分管理部１０３と、バッファ／ポリサー制御部１０５とを有する。
【００６９】
識別子付与部２５１は、ERの収容ユーザ数に応じて上記の関係式（数１）からERのバッファから出力されたパケットに識別子を付与する。振分機能部１０１は、ERから受信したパケットを当該パケットに付与された識別子に対応するバッファへ振り分ける。振分管理部１０３は、振分機能部１０１からの問い合わせに対して振り分け先のバッファを指示する。また、振分管理部１０３は、必要に応じてバッファ／ポリサー制御部１０５へバッファ／ポリサーの作成を指示する。バッファ／ポリサー制御部１０５は、付与された識別子に応じてバッファ／ポリサーを動的に設定する。なお、図１０は、ER及びGWRにおける機能構成の一例を示しており、例えば、振分機能部１０１と振分管理部１０３が１つの機能部として実現されてもよい。
【００７０】
次に、図１０〜図１２を参照して、実施例３におけるトラヒックフローの制御手順を示す。図１１及び図１２は、本発明の実施例３に係るトラヒックフローの制御を示すフローチャートである。図１１は、動的に識別子を付与する例を示すが、予め収容ユーザ数に応じて識別子が設定されてもよい。
【００７１】
ERは、5-tupleやVLAN情報など、通信を行っているユーザの識別情報を記憶する。パケット受信時に、そのユーザ識別情報が既にグルーピング済みかを判断し、グルーピングが必要な場合は新規ユーザとして認識する（図１１のSTEP331、図１０のSTEP301）。既にグルーピング済みである場合、識別子付与部２５１は既に付与した識別子をパケットに付与する（図１１のSTEP341、図１０のSTEP303）。
【００７２】
ERは識別子付与部２５１でトラヒックフローを識別し、新規の通信を受信した際には振分対象となるグループの中に、許容ユーザ数が上限に達していないものがあるか判断し（図１１のSTEP333）、上限に達していないグループがある場合、いずれかのグループ（例えば、最も空いているグループ）を選択する（図１１のSTEP339）。
【００７３】
振分対象となる全てのグループが許容ユーザ数に達している場合は、識別子付与部２５１は新規グループを作成し、新規の通信を行うユーザを当該グループに設定し（図１１のSTEP335）、新規に識別子を付与する（図１１のSTEP337）。
【００７４】
識別子付与部２５１にて、ユーザのパケットに対して適切な識別子が付与される（図１１のSTEP341、図１０のSTEP303）。
【００７５】
このように、ERはユーザごとに個別のバッファ／ポリサーを持ち、これらのバッファ／ポリサーは一定数ごとにグルーピングされ、各ユーザのパケットはグループごとに異なる識別子が付与されてGWRへ転送される。
【００７６】
GWRは振分機能部１０１において、ERにおいて付与された識別子を判別し、まだ振り分けていないトラヒックフローである場合は新規識別子として認識する（図１２のSTEP351）。既に振り分けている場合、振分機能部１０１は既に振り分けたバッファ／ポリサーへトラヒックフローを振り分ける（図１２のSTE361、図１０のSTEP305）。
【００７７】
振分機能部１０１で新規識別子と判別された場合には、振分管理部１０３へいずれのバッファへ振り分けるかを問い合わせる（図１２のSTEP353）。新規識別子に対してバッファ／ポリサーが生成されていない場合、振分管理部１０３はバッファ／ポリサー制御部１０５へバッファ／ポリサーの生成を指示し（図１２のSTEP355）、バッファ／ポリサー制御部１０５はバッファ／ポリサーを生成・設定する（図１２のSTEP359、図１０のSTEP307）。振分管理部１０３は新たに生成されたバッファ／ポリサーを振り分け先として指示する（図１２のSTEP359）。
【００７８】
振分機能部１０１にて、識別子が付与されたパケットが適切なバッファへ振り分けられる（図１２のSTEP361、図１０のSTEP305）。ここで、ERにおいて付与された識別子は除去される。
【００７９】
次に図１０においてユーザ7が通信を開始した場合のバッファ割り当ての具体例について説明する。
【００８０】
ER1、ER2に収容されるユーザ数a1、a2はスタティックに設定され、a1=4、a2=3とする。ER1では4ユーザが、ER2では3ユーザの内、2ユーザが通信を行っている。
【００８１】
バッファに収容する最大ユーザ数xを2とすると、ER1とER2に用意されるバッファ数b1、b2はそれぞれ２となる（b1=4/2=2, b2=3/2≒2）。
【００８２】
ER1にはバッファAとバッファBが設定され、ER2にはバッファCとバッファDが設定される。各ERでは、割り当てるバッファごとにユーザをグルーピングし、グループごとに異なる識別子を付与しGWRへトラヒックを転送する。１つのグループに収容するユーザ数はx以下であり、本実施例では、ユーザ1及びユーザ2をバッファAに、ユーザ3及びユーザ4をバッファBに、ユーザ5及びユーザ7をバッファCに、ユーザ6をバッファDにグルーピングしている。GWRは識別子を読み取り、対応するバッファへトラヒックを振り分ける。なお、新規識別子を持つトラヒックを受信した際には、GWRにおいて新規のバッファが追加される。
【００８３】
このように、識別子付与部２５１は、ERの収容ユーザ数に応じて所定の関係式から１以上の識別子を付与する。ここで、収容ユーザ数が多いほど、設定される識別子の数は多くなる。そして、GWRでは、識別子を読み取って受信した各ユーザのパケットを適切なバッファに振り分けることで、ユーザ間の公平性を（ある程度）担保することができる。実施例３では、識別子単位の制御となるため識別子を付与する機構がERに必要となり、識別子を読み取ってトラヒックを振り分ける機構と識別子を除去する機構がGWRに必要となるが、実施例１と比べてスケール性が高い。
【００８４】
設定する識別子の数、すなわち、GWRに設定するバッファ数yは、上記の所定の関係式（数１）を満たす前提で、ymaxに近いほど、バッファ間の収容ユーザ数のバラつきが小さくなり、公平性が高くなる。また、予め必要な数のバッファを設定し、新規識別子を認識すると、その時点で最も収容ユーザ数が少ないバッファを選択し、新規識別子をそのバッファに割り当てることで、バッファ間でのユーザ数のバラつきを抑えることが可能になる。なお、図１１に示すように、通信を行っているユーザを動的にグルーピングすることもできるが、この場合、新規に作成したグループに割り当てられるユーザ数が小さくなるため、公平性が損なわれる可能性がある。
【００８５】
＜本発明の実施例の効果＞
以上のように、本発明の実施例によれば、膨大な数のユーザが収容される集約拠点のGWRにおいてバッファやポリサーなどのハードウェアリソースを過剰に追加することなくユーザ間の公平性を向上させることが可能になる。また、同時に接続するユーザ数に応じて動的にバッファ／ポリサーを生成・設定し、割り振ることで、バッファ／ポリサーリソースの使用効率を向上できる。
【００８６】
また、ユーザ数に応じてフローを均等にバッファ／ポリサーへ割り当てることで、GWRの１つのバッファ／ポリサー当たりに収容されるユーザ数の差分を抑制可能となる。なお、GWRにおいて１つのポリサーを複数人で共有することになるが、ERにより一段階目の公平制御が行われているため、同じER内のユーザ同士であれば、公平性が損なわれない。その結果、GWRにおいて各ユーザが使用できる帯域の差分を小さくすることができ、ユーザ間の公平性を向上させることが可能になる。
【００８７】
＜補足＞
説明の便宜上、本発明の実施例に係るER及びGWRは機能的なブロック図を用いて説明しているが、本発明の実施例に係るER及びGWRは、ハードウェア、ソフトウェア又はそれらの組み合わせで実現されてもよい。例えば、ER及びGWRの各機能部は、記憶装置又はメモリ装置に格納されているデータやプログラムをCPU（Central Processing Unit）が実行することによって実現されてもよい。また、本発明の実施例は、コンピュータに対して本発明の実施例に係るER及びGWRの機能を実現させるプログラム、コンピュータに対して本発明の実施例に係る方法の各手順を実行させるプログラム等により、実現されてもよい。更に、各機能部が必要に応じて組み合わせて使用されてもよい。また、本発明の実施例に係る方法は、実施例に示す順序と異なる順序で実施されてもよい。
【００８８】
以上、集約拠点のGWR（転送装置）においてユーザ間の公平性を向上させるための手法について説明したが、本発明は、上記の実施例に限定されることなく、特許請求の範囲内において、種々の変更・応用が可能である。
【符号の説明】
【００８９】
１０１  振分機能部
１０３  振分管理部
１０５  バッファ／ポリサー制御部
２０１  トンネル振分部
２５１  識別子付与部
【図１】
2018037974.tif 000004
【図２】
2018037974.tif 000005
【図３】
2018037974.tif 000006
【図４】
2018037974.tif 000007
【図５】
2018037974.tif 000008
【図６】
2018037974.tif 000009
【図７】
2018037974.tif 000010
【図８】
2018037974.tif 000011
【図９】
2018037974.tif 000012
【図１０】
2018037974.tif 000013
【図１１】
2018037974.tif 000014
【図１２】
2018037974.tif 000015