(57)【要約】【課題】  ユーザの利便性を過剰に損なわずに、輻輳を制御すること。【解決手段】  入側エッジルータ１６Ａの輻輳検知部２０が、エッジルータ間で送受信されるモニタリングパケットをもとに、コアルータ１４に発生した輻輳を検知する輻輳検知手順と、出側エッジルータ１６Ｂの通過フロー通知部３０が、輻輳検知手順が検知した輻輳から、その輻輳を通過する通過フローを特定する通過フロー通知手順と、入側エッジルータ１６Ａの悪性フロー特定部４０が、通過フローから、悪性フローを特定する悪性フロー特定手順と、入側エッジルータ１６Ａの通信制御部７０が、悪性フローの通信制御を通信装置１２に対して実行する通信制御手順と、を実行する。【選択図】      図２
2006319748.tif 000002
【特許請求の範囲】
【請求項１】
フローを中継する複数のルータを有する制御対象ネットワークにおいて、前記ルータのうち、フローの入側である入側ルータとフローの出側である出側ルータとを用いて、前記制御対象ネットワークに発生した輻輳の要因となる悪性フローを制御する輻輳制御方法であって、
前記入側ルータは、輻輳検知部と、悪性フロー特定部と、通信制御部とを少なくとも有し、前記出側ルータは、通過フロー通知部を少なくとも有し、
前記入側ルータの前記輻輳検知部が、前記出側ルータとの間で送受信されるモニタリングパケットをもとに、輻輳が発生したルータを検知する輻輳検知手順と、
前記出側ルータの前記通過フロー通知部が、前記輻輳検知手順が検知した輻輳から、その輻輳を通過する通過フローを特定する通過フロー通知手順と、
前記入側ルータの前記悪性フロー特定部が、前記通過フロー通知手順が特定した前記通過フローから、前記悪性フローを特定する悪性フロー特定手順と、
前記入側ルータの前記通信制御部が、前記悪性フロー特定手順により特定された前記悪性フローの通信制御を前記ルータに対して実行する通信制御手順と、
を実行することを特徴とする輻輳制御方法。
【請求項２】
前記入側ルータおよび前記出側ルータは、前記制御対象ネットワークの外部と接続するエッジルータであり、
前記輻輳が発生したルータは、前記制御対象ネットワークの外部と接続しないコアルータであること
を特徴とする請求項１に記載の輻輳制御方法。
【請求項３】
前記悪性フロー特定手順が複数の前記悪性フローを特定した場合、前記通信制御手順が制御する前記悪性フローの順序を特定する制御順序特定手順を、前記入側ルータがさらに実行することを特徴とする請求項１または請求項２に記載の輻輳制御方法。
【請求項４】
前記輻輳検知手順は、前記モニタリングパケットのパケット損失率が閾値を超えるときに、輻輳を検知することを特徴とする請求項１ないし請求項３のいずれか１項に記載の輻輳制御方法。
【請求項５】
前記輻輳検知手順は、前記モニタリングパケットの応答遅延時間が閾値を超えるときに、輻輳を検知することを特徴とする請求項１ないし請求項３のいずれか１項に記載の輻輳制御方法。
【請求項６】
前記輻輳検知手順は、前記モニタリングパケットに前記輻輳が発生したルータが記述した輻輳状態が閾値を超えるときに、輻輳を検知することを特徴とする請求項１ないし請求項３のいずれか１項に記載の輻輳制御方法。
【請求項７】
前記通過フロー通知手順は、パケットに付与された前記入側ルータを識別するタグから、前記輻輳検知手順が検知した輻輳の前記通過フローを特定することを特徴とする請求項１ないし請求項６のいずれか１項に記載の輻輳制御方法。
【請求項８】
前記通過フロー通知手順は、パケットの送信元アドレス情報とルーティングプロトコルの保持する情報とから、前記輻輳検知手順が検知した輻輳の前記通過フローを特定することを特徴とする請求項１ないし請求項６のいずれか１項に記載の輻輳制御方法。
【請求項９】
前記制御順序特定手順が決定した順序に従って、輻輳が緩和されるまで、順番に前記悪性フローを通信制御する輻輳緩和検知手順を、前記ルータがさらに実行することを特徴とする請求項３に記載の輻輳制御方法。
【請求項１０】
前記輻輳緩和検知手順を実行する前に、前記悪性フロー特定手順が特定した複数の前記悪性フローを一括して通信制御することを特徴とする請求項９に記載の輻輳制御方法。
【請求項１１】
前記通信制御は、輻輳および悪性フローの情報をもとに算出したフローレートで通信制御を行うことを特徴とする請求項１０に記載の輻輳制御方法。
【請求項１２】
前記輻輳および悪性フローの情報は、前記ルータから送信する前記モニタリングパケットをもとに収集することを特徴とする請求項１１に記載の輻輳制御方法。
【請求項１３】
前記輻輳および悪性フローの情報は、前記輻輳が発生したルータのパケット損失率とすることを特徴とする請求項１１に記載の輻輳制御方法。
【請求項１４】
請求項１ないし請求項１３のいずれか１項に記載された輻輳制御方法を前記ルータに実行させるための輻輳制御プログラム。
【請求項１５】
フローを中継する複数のルータを有する制御対象ネットワークにおいて、前記ルータのうち、フローの入側である入側ルータとフローの出側である出側ルータとを用いて、前記制御対象ネットワークに発生した輻輳の要因となる悪性フローを制御する輻輳制御システムであって、
前記入側ルータは、輻輳検知部と、悪性フロー特定部と、通信制御部とを少なくとも有し、前記出側ルータは、通過フロー通知部を少なくとも有し、
前記入側ルータの前記輻輳検知部が、前記出側ルータとの間で送受信されるモニタリングパケットをもとに、輻輳が発生したルータを検知し、
前記出側ルータの前記通過フロー通知部が、前記輻輳検知部が検知した輻輳から、その輻輳を通過する通過フローを特定し、
前記入側ルータの前記悪性フロー特定部が、前記通過フロー通知部が特定した前記通過フローから、前記悪性フローを特定し、
前記入側ルータの前記通信制御部が、前記悪性フロー特定部により特定された前記悪性フローの通信制御を前記ルータに対して実行する
ように構成されることを特徴とする輻輳制御システム。
【請求項１６】
前記入側ルータおよび前記出側ルータは、前記制御対象ネットワークの外部と接続するエッジルータであり、
前記輻輳が発生したルータは、前記制御対象ネットワークの外部と接続しないコアルータであること
を特徴とする請求項１５に記載の輻輳制御システム。
【請求項１７】
前記入側ルータは、前記悪性フロー特定部が複数の前記悪性フローを特定した場合、前記通信制御部が制御する前記悪性フローの順序を特定する制御順序特定部を、さらに有することを特徴とする請求項１５または請求項１６に記載の輻輳制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、輻輳制御方法、輻輳制御プログラム、および、輻輳制御システムに関する。
【背景技術】
【０００２】
ブロードバンド回線の普及により、ブロードバンド回線単価の下落は、今後も続くという予測がある。そこで、回線をユーザに使用させるプロバイダ事業者は、他のプロバイダ事業者の提供する通信サービスと差別化するために、提供する回線の品質を保証するＳＬＡ（Service Level Agreement）などによって、付加価値の高い回線をサービスとして提供している。もし、ＳＬＡを守った回線が提供されれば、ユーザが回線を使用する上での満足度は向上する。一方、回線の品質が悪く、ＳＬＡの基準よりも低下すれば、ユーザの満足度は低下してしまう。
【０００３】
保証する通信品質には、帯域、通信遅延、および、利用不能時間が少ないことなどの様々な指標が存在する。そして、これらの通信品質は、ネットワークの混雑状態である輻輳に影響されるため、プロバイダ事業者にとって輻輳を抑制することが、重要である。
【０００４】
輻輳を抑制するために、まず、全ユーザに使用される通信帯域の総和を増やす方式が挙げられる、その簡易的な手段として、設備投資によって回線の通信帯域を増強することが挙げられる。しかし、通信量の増加に合わせた設備投資には、既に導入してしまった通信機器をより高機能な通信機器に置き換えることで多額のコストがかかるため、プロバイダ事業者にとっては、安易に採用することが困難である。さらに、使用できる帯域を目一杯使用するようなアプリケーションも存在するため、ここまで設備投資すれば輻輳は発生しないという目安はたてづらい。
【０００５】
また、回線の通信帯域を増強する代わりに、既にある回線などのネットワーク資源の利用効率を向上させる手段もある。しかし、ユーザに使用される通信帯域の総和を増やすことができるが、ユーザからのパケット量は変動し続けるので、通信量の変動に対する耐性が低下して輻輳が発生しやすくなる。
【０００６】
そこで、全ユーザに使用される通信帯域の総和を増やす代わりに、各ユーザによる通信回線の公平な使用を実現させる手法がある。例えば、１００［Ｍｂｐｓ］の空き帯域を１００人が用いる場合には、１人が１［Ｍｂｐｓ］ずつ公平に使うべきである。もし、特定のユーザが５０［Ｍｂｐｓ］を占有して、その他のユーザが約０．５［Ｍｂｐｓ］しか使えないという事態があれば、帯域を占有している特定のユーザの通信を規制すべきである。一方、１００［Ｍｂｐｓ］の通信回線において、現在使用しているユーザが２人しかいないときには、その２人にそれぞれ５０［Ｍｂｐｓ］ずつ割り当てれば、公平な利用が実現できており規制の対象にはならない。
【０００７】
特定のユーザが、通信帯域を不当に占有する原因は、特定のユーザが通信を介するフローが悪性フローになってしまうことによる。つまり、通信パケットが流れるフローは、そのフロー上を流れるパケット量が、そのフローの経路となる通信回線に対して過重になってしまうときに、通信回線に輻輳を発生させる要因となる悪性フローになる。一方、フロー上を流れるパケット量が、通信回線に輻輳を発生させるほどの負担を与えないのであれば、そのフローは良性フローである。悪性フローの全体に占めるフロー数は僅かにも関わらず、悪性フローの帯域占有率は大きいため、輻輳を起こして大多数のユーザの良性フローに影響を与える。
【０００８】
従来の輻輳制御方法には、網端で常時、高レートでパケットを送出するフローのみを選択的に帯域制御するシェーピング法がある（特許文献１など）。図７は、一定量のシェーピング処理を示す説明図である。
【０００９】
また、シェーピング法の応用として、Ｐ２Ｐなどの特定アプリケーションのポート番号情報をもとに、常時ポート番号情報をもとにフィルタリング・シェーピングするポートフィルタリング法がある（特許文献２など）。図８は、ポート番号を指定した帯域制御処理を示す説明図である。
【特許文献１】特開平８−７９２６５号公報
【特許文献２】特願２０００−３７５７４１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来の技術では、帯域制御するフローと、実際の悪性フローとが乖離してしまっていた。
【００１１】
例えば、従来の技術では、悪性フローではないフローを帯域制御することで、網に余剰リソースがあるにも関わらずユーザのフローが網入り口で破棄され、充分なスループットを得ることができなかった。１つのアプリケーションが幾つかの用途に利用される場合もあるため、あらかじめ特定のポート番号から、輻輳有無に関わらず該当フロー全ての帯域制御を行うと、そのアプリケーションを利用する用途の全フローが帯域制御を受け、ユーザの利便性が損なわれる。
【００１２】
また、従来の技術では、輻輳が発生した通信装置を通過する悪性フローを特定しておらず、輻輳に無関係なフローも帯域制御するため、効率的に輻輳を緩和できない。
【００１３】
そこで、本発明は、前記した問題を解決し、ユーザの利便性を過剰に損なわずに、輻輳を制御することを主な目的とする。
【課題を解決するための手段】
【００１４】
前記課題を解決するために、本発明は、フローを中継する複数のルータを有する制御対象ネットワークにおいて、前記ルータのうち、フローの入側である入側ルータとフローの出側である出側ルータとを用いて、前記制御対象ネットワークに発生した輻輳の要因となる悪性フローを制御する輻輳制御方法であって、前記入側ルータが、輻輳検知部と、悪性フロー特定部と、通信制御部とを少なくとも有し、前記出側ルータが、通過フロー通知部を少なくとも有し、前記入側ルータの前記輻輳検知部が、前記出側ルータとの間で送受信されるモニタリングパケットをもとに、輻輳が発生したルータを検知する輻輳検知手順と、前記出側ルータの前記通過フロー通知部が、前記輻輳検知手順が検知した輻輳から、その輻輳を通過する通過フローを特定する通過フロー通知手順と、前記入側ルータの前記悪性フロー特定部が、前記通過フロー通知手順が特定した前記通過フローから、前記悪性フローを特定する悪性フロー特定手順と、前記入側ルータの前記通信制御部が、前記悪性フロー特定手順により特定された前記悪性フローの通信制御を前記ルータに対して実行する通信制御手順と、を実行することを特徴とする。
【００１５】
これにより、輻輳の要因となる悪性フローを選択して制御することで、ユーザの利便性を過剰に損なわずに済む。
【００１６】
本発明は、前記入側ルータおよび前記出側ルータが、前記制御対象ネットワークの外部と接続するエッジルータであり、前記輻輳が発生したルータが、前記制御対象ネットワークの外部と接続しないコアルータであることを特徴とする。
【００１７】
これにより、別の事業者が運営するコアルータに対して負担をかけずに、輻輳を制御することができる。
【００１８】
本発明は、前記悪性フロー特定手順が複数の前記悪性フローを特定した場合、前記通信制御手順が制御する前記悪性フローの順序を特定する制御順序特定手順を、前記入側ルータがさらに実行することを特徴とする。
【００１９】
これにより、輻輳に影響を与えている度合いの高い悪性フローを優先的に制御することで、輻輳を回復するまでの時間が短縮化する。
【００２０】
本発明は、前記輻輳検知手順が、前記モニタリングパケットのパケット損失率が閾値を超えるときに、輻輳を検知することを特徴とする。
【００２１】
これにより、輻輳が発生したルータに機能追加することなく、輻輳を検知可能となる。
【００２２】
本発明は、前記輻輳検知手順が、前記モニタリングパケットの応答遅延時間が閾値を超えるときに、輻輳を検知することを特徴とする。
【００２３】
これにより、輻輳が発生したルータに機能追加することなく、輻輳を検知可能となる。
【００２４】
本発明は、前記輻輳検知手順が、前記モニタリングパケットに前記輻輳が発生したルータが記述した輻輳状態が閾値を超えるときに、輻輳を検知することを特徴とする。
【００２５】
これにより、ルータの混雑度を直接測定するので、正確な輻輳発生箇所の情報を知ることが可能となる。
【００２６】
本発明は、前記通過フロー通知手順が、パケットに付与された前記入側ルータを識別するタグから、前記輻輳検知手順が検知した輻輳の前記通過フローを特定することを特徴とする。
【００２７】
これにより、通過フローが通過した入側ルータを、ルーティングドメインに依存することなく、特定することができる。
【００２８】
本発明は、前記通過フロー通知手順が、パケットの送信元アドレス情報とルーティングプロトコルの保持する情報とから、前記輻輳検知手順が検知した輻輳の前記通過フローを特定することを特徴とする。
【００２９】
これにより、既に稼働している転送処理に新たな処理を追加することなく、プロトコルが保持する情報からフローが通過した入側ルータを特定することができる。
【００３０】
本発明は、前記制御順序特定手順が決定した順序に従って、輻輳が緩和されるまで、順番に前記悪性フローを通信制御する輻輳緩和検知手順を、前記ルータがさらに実行することを特徴とする。
【００３１】
これにより、フローを順番に通信制御する過程で輻輳の発生した通信装置の輻輳状態を確認することで、輻輳の要因となるフローを特定できると同時に、無関係なフローの通信制御を避けることができる。
【００３２】
本発明は、前記輻輳緩和検知手順を実行する前に、前記悪性フロー特定手順が特定した複数の前記悪性フローを一括して通信制御することを特徴とする。
【００３３】
これにより、Ｎ個のフロー全てを一定量絞ることで、素早く輻輳を緩和することができる。
【００３４】
本発明は、前記通信制御が、輻輳および悪性フローの情報をもとに算出したフローレートで通信制御を行うことを特徴とする。
【００３５】
これにより、輻輳状態を確認しながらフローレートを決めることが可能なため、必要以上に通信制御することを防ぎ、ユーザのスループットを最大限高く保持しておくことができる。
【００３６】
本発明は、前記輻輳および悪性フローの情報が、前記ルータから送信する前記モニタリングパケットをもとに収集することを特徴とする。
【００３７】
これにより、輻輳を緩和するのに適したフローレートが分かり、輻輳の緩和に必要な最低限の通信制御だけを行い悪性フローの帯域を絞りすぎてしまうのを避け、ユーザのスループットを最大限高く保持しておくことができる。
【００３８】
本発明は、前記輻輳および悪性フローの情報が、前記輻輳が発生したルータのパケット損失率とすることを特徴とする。
【００３９】
これにより、輻輳を緩和するのに適したフローレートが分かり、輻輳の緩和に必要な最低限の通信制御だけを行い悪性フローの帯域を絞りすぎてしまうのを避け、ユーザのスループットを最大限高く保持しておくことができる。
【００４０】
本発明は、前記輻輳制御方法を前記ルータに実行させるための輻輳制御プログラムである。
【００４１】
これにより、輻輳の要因となる悪性フローを選択して制御することで、ユーザの利便性を過剰に損なわずに済む。
【００４２】
本発明は、フローを中継する複数のルータを有する制御対象ネットワークにおいて、前記ルータのうち、フローの入側である入側ルータとフローの出側である出側ルータとを用いて、前記制御対象ネットワークに発生した輻輳の要因となる悪性フローを制御する輻輳制御システムであって、前記入側ルータが、輻輳検知部と、悪性フロー特定部と、通信制御部とを少なくとも有し、前記出側ルータが、通過フロー通知部を少なくとも有し、前記入側ルータの前記輻輳検知部が、前記出側ルータとの間で送受信されるモニタリングパケットをもとに、輻輳が発生したルータを検知し、前記出側ルータの前記通過フロー通知部が、前記輻輳検知部が検知した輻輳から、その輻輳を通過する通過フローを特定し、前記入側ルータの前記悪性フロー特定部が、前記通過フロー通知部が特定した前記通過フローから、前記悪性フローを特定し、前記入側ルータの前記通信制御部が、前記悪性フロー特定部により特定された前記悪性フローの通信制御を前記ルータに対して実行するように構成されることを特徴とする。
【００４３】
これにより、輻輳の要因となる悪性フローを選択して制御することで、ユーザの利便性を過剰に損なわずに済む。
【００４４】
本発明は、前記入側ルータおよび前記出側ルータが、前記制御対象ネットワークの外部と接続するエッジルータであり、前記輻輳が発生したルータが、前記制御対象ネットワークの外部と接続しないコアルータであることを特徴とする。
【００４５】
これにより、別の事業者が運営するコアルータに対して負担をかけずに、輻輳を制御することができる。
【００４６】
本発明は、前記入側ルータが、前記悪性フロー特定部が複数の前記悪性フローを特定した場合、前記通信制御部が制御する前記悪性フローの順序を特定する制御順序特定部を、さらに有することを特徴とする。
【００４７】
これにより、輻輳に影響を与えている度合いの高い悪性フローを優先的に制御することで、輻輳を回復するまでの時間が短縮化する。
【発明の効果】
【００４８】
本発明によれば、エッジルータにおいて、輻輳発生後、輻輳発生地点を通るフローを識別し、前記フローの中で相対的にレートの高いフローのみを選択的に帯域制御し、輻輳に無関係なフローを制御しないため、ネットワークのスループットの最大化を図りつつ、一般ユーザのサービス品質低下の要因となる輻輳を適切に緩和することができる。さらに本発明は、他事業者の管理下にあるコアルータヘ負担をかけずに実施可能なため、運用中のネットワークヘの導入も容易であるという利点もある。
【発明を実施するための最良の形態】
【００４９】
以下に、本発明が適用される輻輳制御システムの一実施形態について、図面を参照して詳細に説明する。まず、本実施形態の輻輳制御システムの構成について、図１から図２を参照して説明する。
【００５０】
図１（ａ）は、制御対象ネットワーク１０を示す構成図である。制御対象ネットワーク１０は、輻輳を制御する通信網であり、フローを中継する通信装置１２（コアルータ１４、エッジルータ１６）を有する。そして、ユーザ端末１８は、通信装置１２を介して通信を行う端末であり、悪性フローか良性フローを発生させる。
【００５１】
図１（ｂ）に示すように、通信装置１２は、コアルータ１４とエッジルータ１６が該当する。通信装置１２は、演算処理を行う際に用いられる記憶手段としてのメモリと、前記演算処理を行う演算処理装置とを少なくとも備えるコンピュータとして構成される。なお、メモリは、ＲＡＭ（Random Access Memory）などにより構成される。演算処理は、ＣＰＵ（Central Processing Unit）によって構成される演算処理装置が、メモリ上のプログラムを実行することで、実現される。
【００５２】
コアルータ１４は、制御対象ネットワーク内の通信装置１２であり、制御対象ネットワーク１０の外部とは接続しない。なお、コアルータ１４は、通過したパケットに自装置の輻輳状態を付加してもよい。輻輳状態は、コアルータ１４のキュー内パケット量や出力リンクの利用率などである。この輻輳状態の付加処理は、コアルータ１４が既に実施しているネットワーク管理処理によって取得した情報を、単にパケットに付加するだけなので、コアルータ１４への負担は少ない。
【００５３】
図１（ｃ）のエッジルータ１６は、制御対象ネットワーク内の通信装置１２であり、制御対象ネットワーク１０の外部との接続回線を有する。エッジルータ１６は、自装置を識別するタグを通過するフローに付けることとしてもよい。なお、エッジルータ１６は、特定のフローに着目すると、フローの送信元（上流）である入側エッジルータ１６Ａ（請求項では入側ルータ）、または、フローの送信先（下流）である出側エッジルータ１６Ｂ（請求項では出側ルータ）、に分類される。なお、制御対象ネットワーク１０には複数のフローが存在することが一般的であり、所定のエッジルータ１６について、フローＡにおいては入側エッジルータ１６Ａ、フローＢにおいては出側エッジルータ１６Ｂというように、フローによって役割が変わってくる。
【００５４】
エッジルータ１６は、輻輳検知部２０、通過フロー通知部３０、悪性フロー特定部４０、制御順序特定部６０、および、通信制御部７０を有する。図２は、エッジルータ１６の構成要素を説明する図である。所定のフローに着目すると、入側エッジルータ１６Ａは、輻輳検知部２０、悪性フロー特定部４０、制御順序特定部６０、および、通信制御部７０を動作させる。そして、出側エッジルータ１６Ｂは、通過フロー通知部３０を動作させる。
【００５５】
まず、入側エッジルータ１６Ａの輻輳検知部２０は、出側エッジルータ１６Ｂにモニタリングパケットを飛ばして輻輳を検知するものである。出側エッジルータ１６Ｂの通過フロー通知部３０は、検知した輻輳を通過するフローを特定して、入側エッジルータ１６Ａの悪性フロー特定部４０に通知するものである。
【００５６】
そして、入側エッジルータ１６Ａの悪性フロー特定部４０は、通知されたフローから悪性フローを選別するものである。入側エッジルータ１６Ａの制御順序特定部６０は、悪性フローを制御する順序を決定する。入側エッジルータ１６Ａの通信制御部７０は、悪性フローを通信制御するものである。
【００５７】
なお、輻輳検知部２０は、経路計算手段に輻輳発生を通知してもよい。経路計算手段は、ルーティングプロトコルなどを動作させて、通信装置１２がフローを中継する経路を示す経路表（ルーティングテーブル）を作成するものである。経路計算手段は、輻輳発生の通知を受けることにより、輻輳の発生した装置やネットワークを通過しないように、経路を計算する。経路計算手段は、輻輳が発生した網内にあってもよいし、別の事業者網にあってもよい。
【００５８】
また、悪性フロー特定部４０の構成例は、例えば次の通りである。出側エッジルータ１６Ｂからフロー情報を受信した入側エッジルータ１６Ａの悪性フロー特定部４０では、所定時間のタイマを起動させるものである。悪性フロー特定部４０は、所定時間のタイマが切れるまでに受信した出側エッジルータ１６Ｂの情報をデータベースに保持する。所定時間が経過すると、悪性フロー特定部４０は該当データベースに保持されたフローの中からあらかじめ設定された閾値を超えたフローを抽出する。抽出されたフローが悪性フローとなる。
【００５９】
以上説明したエッジルータ１６により行われる輻輳制御処理を、図３のフローチャートおよび図４の構成図に示す。
【００６０】
まず、入側エッジルータ１６Ａおよび出側エッジルータ１６Ｂは、モニタリング用のパケットを定期的に送受信することで、往復遅延時間の変化から網の輻輳状態を推定し、網の輻輳の発生（Ｓ１０）を検知する（Ｓ１１）。
【００６１】
次に、出側エッジルータ１６Ｂは、Ｓ１１で検知した輻輳の発生したコアルータ１４を通過する通過フローを特定し（Ｓ１２）、その通過フローの情報（ソースアドレス、宛先アドレスなど）を入側エッジルータ１６Ａに通知する。なお、出側エッジルータ１６Ｂは、通過フローの各候補について、常時受信レートを測定し、相対的に受信レートの高いフローの情報を入側エッジルータ１６Ａに送信してもよい。これにより、後記Ｓ１３で悪性フローを選択するときに、候補数を絞り込むことができる。
【００６２】
そして、入側エッジルータ１６Ａは、出側エッジルータ１６Ｂから通知されるＳ１２の特定フロー情報をもとに、各フローの利用帯域を測定して、制御対象とする悪性フローを選択する。（Ｓ１３）。
【００６３】
さらに、入側エッジルータ１６Ａは、Ｓ１３で選択された悪性フローの送信レートを規制するなどして通信制御を行う（Ｓ１４）。レートの値は、例えば、モニタリング用のパケットの往復遅延時間の変化をもとに決定することで、最小限のレートの規制で輻輳の緩和を実現する。
【００６４】
以下、輻輳検知処理（Ｓ１１）の方式を具体的に説明する。エッジルータ１６は、以下の方式のいずれかの方式により、輻輳を検知する。なお、以下の方式はあくまで例示列挙であり、本実施形態が列挙した方式に限定されることはない。
【表１】
2006319748.tif 000003
【００６５】
方式１−Ａは、輻輳検知部２０がモニタリング用パケットを生成し、あらかじめ決められた装置間で定期的にモニタリング用パケットを送受信する方式である。このときに、モニタリング用パケットにシーケンス番号と送信側装置を識別可能な情報を付与しておくことで、受信側において、２ルータ間のルートのパケット損失率を推定することができる。このパケット損失率が閾値Ｃ１を超えるかどうかを判定することで、輻輳を検知する（図５参照）。これにより、コアルータ１４に機能追加することなく、輻輳を検知可能となる。
【００６６】
方式１−Ｂは、輻輳検知部２０がモニタリング用パケットを生成し、あらかじめ決められた装置間で定期的にモニタリング用パケットを送受信する方式である。このときに、モニタリング用パケットにパケット送信時刻と送信側装置を識別可能な情報を付与しておくことで、受信側において、２ルータ間のルートのパケットの遅延時間を推定することができる。この遅延時間（ＲＴＴ：Round Trip Time）が閾値Ｃ１を超えるかどうかを判定することで、輻輳を検知する。これにより、コアルータ１４に機能追加することなく、輻輳を検知可能となる。
【００６７】
方式１−Ｃは、輻輳検知部２０がモニタリング用パケットを装置間で常時送受信して、そのパケットを転送した各コアルータ１４が自装置の輻輳状態を記述する。該当パケットの受信側装置において、輻輳状態が閾値Ｃ１を超えるかどうかを判定する。閾値を超えた場合、該当コアルータ１４において輻輳発生と判定する。これにより、コアルータ１４の混雑度を直接測定して、輻輳検知部２０に通知するため、コアルータ１４に負担をかけずに、正確な輻輳発生箇所の情報を知ることが可能となる。
【００６８】
前記の識別可能な情報は、例えば、ＩＰ（Internet Protocol）ヘッダのＴｏＳ（Type of Service）フィールドでもいいし、ＩＰｖ６ヘッダのフローラベル、またはＭＰＬＳ（Multi-Protocol Label Switching）ラベルなどがある。
【００６９】
なお、方式１−Ａ〜方式１−Ｃにおいて、モニタリング用パケットの宛先アドレスとして、例えば、モニタリング用パケット受信装置のアドレスを用いる。これにより、モニタリング用パケットの作成の処理量が少なくて済むので、低性能のＣＰＵでも計算ができる。
【００７０】
一方、方式１−Ａ〜方式１−Ｃにおいて、モニタリング用パケットの宛先アドレスとして、モニタリング用パケットを生成する装置を通過するフローの中から複数のフローを抽出して、そのフローの宛先アドレスをモニタリング用パケットの宛先アドレスとして用いてもよい。これにより、コアルータ間のでロードバランス等により特定エッジ間に複数のルートが存在する場合でも、輻輳を検知することができる。
【００７１】
以下、通過フローの特定処理（Ｓ１２）の方式を具体的に説明する。エッジルータ１６は、以下の方式のいずれかの方式により、通過フローを特定する。なお、以下の方式はあくまで例示列挙であり、本実施形態が列挙した方式に限定されることはない。
【表２】
2006319748.tif 000004
【００７２】
方式２−Ａでは、入側エッジルータ１６Ａにおいて通過パケットにタギング（タグ付け）を行う（図６参照）。このタグには入側エッジを識別可能な情報を付与しておく。通過フロー通知部３０を具備した装置は、ネットワーク側からの受信レートを測定しレートが相対的に高いフローの中で、輻輳と判定されたルートを通るフローを付与されたタグから判別し、輻輳の発生したコアルータ１４を通るフローの情報を入側エッジルータ１６Ａに伝達する。これにより、パケットにタグを付与する機能がエッジルータ１６に必要となるが、通過フローが通過した入側エッジルータ１６Ａを、ルーティングドメインに依存することなく、特定することができる。
【００７３】
方式２−Ｂでは、ネットワーク側からの受信レートを測定し、レートが相対的に高いフローの送信元アドレスを取得して、そのアドレス情報とルーティングプロトコルの保持する情報から、輻輳と判定されたルートを通るフローを判別し、輻輳の発生したコアルータ１４を通るフローの情報を入側エッジルータ１６Ａに伝達する。これにより、既に稼働している転送処理に新たな処理を追加することなく、プロトコルが保持する情報からフローが通過した入側エッジルータ１６Ａを特定することができる
【００７４】
以下、悪性フローの特定処理（Ｓ１３）の方式を具体的に説明する。エッジルータ１６は、以下のいずれかのフローを、悪性フローと特定する。なお、以下の方式はあくまで例示列挙であり、本実施形態が列挙した方式に限定されることはない。
【００７５】
エッジルータ１６は、持続時間が基準値以上かつ平均レートが上位のフロー、平均レートが基準値以上かつピークレートが上位のフロー、平均レートおよびピークレートが基準値以上のフロー、または、一定期間内に到着したパケット数が基準値以上のフローを、悪性フローと特定する。
【００７６】
以下、悪性フローの制御処理（Ｓ１４）の方式を具体的に説明する。エッジルータ１６は、以下の方式のいずれかの方式により、悪性フローを制御する。なお、以下の方式はあくまで例示列挙であり、本実施形態が列挙した方式に限定されることはない。
【表３】
2006319748.tif 000005
【００７７】
方式３−Ａは、通信制御部７０がＮ個の悪性フローを順番に制御する手法である。つまり、特定したＮ個の悪性フローを通信制御する場合に、制御順序特定部６０が、Ｎ個の悪性フローの情報を悪性フロー特定部４０から受け取り、通信制御する順番を決めて、その順番に従って悪性フロー特定部４０に通信制御の指示を出し、悪性フロー特定部４０が対象の通信制御部７０に通信制御の指示を出し、通信制御部７０が通信制御を行う。制御順序特定部６０はその間に輻輳検知部２０から輻輳状況に関する情報を受け取り、輻輳が緩和されるまで順番に通信制御を指示する。輻輳が緩和されなければ次の順番の通信制御部７０に対応する悪性フロー特定部４０に指示を出す。
【００７８】
悪性フローを制御する順番は、例えば、悪性フロー特定部４０から受け取ったフロー情報でサイズが大きいフロー順、辞書列順、ラウンドロビンのアルゴリズムによって算出された順、制御順序特定部６０が収集した網情報から決める順、が挙げられる。
【００７９】
これにより、フローを順番に通信制御する過程で輻輳の発生した通信装置１２の輻輳状態を確認することで、輻輳原因のフローを特定できると同時に、無関係なフローの通信制御を避けることができる。
【００８０】
方式３−Ｂは、通信制御部７０がＮ個の悪性フローを一括して制御した後、順番に制御する手法である。つまり、特定したＮ個の悪性フローを通信制御する場合に、制御順序特定部６０が、Ｎ個の悪性フローを通信制御する順番を決めて、始めにＮ個のフロー全てを一定量通信制御して、その後に方式３−Ａによって悪性フロー特定部４０に通信制御の指示を出す。
【００８１】
これにより、Ｎ個のフロー全てを一定量絞ることで、素早く輻輳を緩和することができる。
【００８２】
方式３−Ｃは、通信制御部７０が輻輳の緩和されるまで、フローレートの算出とそのフローレートでの制御を繰り返す手法である。つまり、特定したＮ個の悪性フローを通信制御する場合に、制御順序特定部６０は、輻輳検知部２０が確認する輻輳状態の情報を制御順序特定部６０が参照して、その情報と、悪性フロー特定部４０から受け取る悪性フロー情報とをパラメータとして、フローレート計算アルゴリズムを用いて各悪性フローの制御後のフローレートを決定し、そのフローレートで通信制御するように悪性フロー特定部４０に通信制御の指示を出し、そこからさらに悪性フロー特定部４０は通信制御部７０に通信制御の指示を出す。
【００８３】
具体的には、通信制御部７０が通信制御を行う間に、最新の輻輳状態を確認しながら、輻輳状態が解消するまで、順番に通信制御の指示を通信制御部７０に出す。悪性フローを制御する順番は、例えば、悪性フロー特定部４０から受け取ったフロー情報でサイズが大きいフロー順、辞書列順、ラウンドロビンのアルゴリズムによって算出された順、制御順序特定部６０が収集した網情報から決める順、が挙げられる。
【００８４】
なお、フローレート計算アルゴリズムは、例えば、次の通りである。まず、選択されたフローの測定レートをＲｉとすると、各フローをα・Ｒｉのレートで帯域制御を行う。ここでαは０以上１未満の実数とする。帯域制御を実施してからＴ２時間後にモニタリング用パケットを観測し、パケット損失率（遅延時間、キュー内パケット量）の閾値がＣ１を下回っているかどうか判定する。下回っている場合は、輻輳の緩和と見なされる。また、閾値Ｃ１を上回っている場合、各フローに対して、さらに帯域制御するレートをα倍して（つまりα×Ｒｉ×α）帯域制御を実施して、Ｔ２時間待ち同様の処理を実施する。
【００８５】
これにより、輻輳状態を確認しながらフローレートを決めることが可能なため、必要以上に通信制御することを防ぎ、ユーザのスループットを最大限高く保持しておくことができる。
【００８６】
方式３−Ｄは、通信制御部７０がモニタリングパケットで輻輳状態を監視し、輻輳状態に適したフローレートで制御する手法である。つまり、特定したＮ個の悪性フローを通信制御する場合に、エッジルータ１６からｐｉｎｇなどのモニタリングパケットを飛ばして、悪性フロー特定部４０が網の輻輳状態を監視しながら輻輳の緩和に適したフローレートを前記フローレート計算アルゴリズムを用いて計算して、悪性フローを通信制御する。
【００８７】
これにより、輻輳を緩和するのに適したフローレートＸ［ｂｐｓ］が分かり、その結果、輻輳の緩和に必要な最低限の通信制御だけを行い悪性フローの帯域を絞りすぎてしまうのを避け、ユーザのスループットを最大限高く保持しておくことができる。
【００８８】
方式３−Ｅは、通信制御部７０がパケット損失率から算出したフローレートで制御する手法である。つまり、特定したＮ個の悪性フローを通信制御する場合に、輻輳検知部２０が定期的に測定する、輻輳の発生したコアルータ１４のパケット損失率の情報を制御順序特定部６０が参照し、そこから前記フローレート計算アルゴリズムを用いて制御すべきフローレートＸ［ｂｐｓ］を算出することで、適切なフローレートで悪性フローを通信制御する。
【００８９】
これにより、輻輳を緩和するのに適したフローレートが分かり、その結果、輻輳の緩和に必要な最低限の通信制御だけを行い悪性フローの帯域を絞りすぎてしまうのを避け、ユーザのスループットを最大限高く保持しておくことができる。
【００９０】
なお、方式３−Ａ〜方式３−Ｅにおいて、複数の通信制御が並列に行われてもよいし、制御順序特定部６０が決めた順番に従って行われてもよい。悪性フローを制御する順番は、例えば、悪性フロー特定部４０から受け取ったフロー情報でサイズが大きいフロー順、辞書列順、ラウンドロビンのアルゴリズムによって算出された順、制御順序特定部６０が収集した網情報から決める順、が挙げられる。
【００９１】
以上説明した本発明は、以下のようにその趣旨を逸脱しない範囲で広く変形実施することができる。
【００９２】
例えば、悪性フローを制御するための順序決定処理は、省略してもよい。省略することが必要な一例として、悪性フローが１つしか見つからない場合、悪性フローを１つずつ順に制御するだけの復旧時間もとれないほどの緊急の復旧を要する場合が挙げられる。そして、順序決定を省略したときには、複数の悪性フローに対して一斉に通信制御する（Ｓ１４）。これにより、輻輳制御によるネットワークの復旧にかかる時間を短縮できる。
【００９３】
また、エッジルータ１６の各構成要素は、プロセスを複数起動するなどして、複数存在することとしてもよい。これにより、大規模な輻輳が発生したときでもでも、複数の構成要素間でのデータ並列処理が実現でき、輻輳を抑制するのに要する時間を短縮化できる。
【００９４】
さらに、制御対象ネットワーク１０の形式（回線種別や通信プロトコルなど）は、特定のものに限定されることはない。例えば、制御対象ネットワーク１０は、ＴＤＭ（Time Division Multiplexing）やＷＤＭ（Wavelength Division Multiplexing）などの回線交換ネットワーク、またはＩＰやイーサネット（登録商標）、ＩＰのパケットにラベルを付けて転送するＭＰＬＳのネットワークとしてもよい。各通信装置同士はそのノードが存在するネットワークレイヤよりも相対的に下位に位置する下位レイヤのパスを設定することで提供される論理パスで接続される。この通信装置１２は、例えば、ＭＰＬＳ網のＭＰＬＳルータでも、パケット網のルータでもよい。
【図面の簡単な説明】
【００９５】
【図１】本発明の一実施形態に関する制御対象ネットワークを示す構成図である。
【図２】本発明の一実施形態に関するエッジルータを示す構成図である。
【図３】本発明の一実施形態に関する輻輳制御処理を示すフローチャートである。
【図４】本発明の一実施形態に関する制御対象ネットワークを示す構成図である。
【図５】本発明の一実施形態に関するパケット損失率による輻輳の検知処理の説明図である。
【図６】本発明の一実施形態に関するパケットのタグ付けの説明図である。
【図７】一定量のシェーピング処理を示す説明図である。
【図８】ポート番号を指定した帯域制御処理を示す説明図である。
【符号の説明】
【００９６】
１０    制御対象ネットワーク
１２    通信装置
１４    コアルータ
１６    エッジルータ
１６Ａ  入側エッジルータ
１６Ｂ  出側エッジルータ
２０    輻輳検知部
３０    通過フロー通知部
４０    悪性フロー特定部
６０    制御順序特定部
７０    通信制御部
【図１】
2006319748.tif 000006
【図２】
2006319748.tif 000007
【図３】
2006319748.tif 000008
【図４】
2006319748.tif 000009
【図５】
2006319748.tif 000010
【図６】
2006319748.tif 000011
【図７】
2006319748.tif 000012
【図８】
2006319748.tif 000013