(57)【要約】【課題】平均バッファー長の挙動を早い時期に予測することが可能となって、パケットの廃棄率を低減することができる輻輳制御装置及び輻輳制御方法を提供する。【解決手段】この輻輳制御装置５０は、接続側からの接続要求に対して被接続側からの接続許可と接続要求を組み合わせたパケットを検出するＳＹＮ／ＡＣＫ検出部６と、データパケットに含まれる所定のマークを検出するマーク検出部７と、パケット数及びマーク数を夫々計数するパケット・マーク計数部８と、パケット・マーク計数部８により計数した夫々の計数結果に基づいてトラフィックの変動を予測するトラフィック変動予測部１０と、トラフィック変動予測部１０により予測した平均バッファー長の変動量に基づいてランダム初期検知に係るパラメータを変動させるＲＥＤパラメータ変動部１１と、各部を制御する制御部９と、を備えて構成されている。【選択図】図４
2011061699.tif 000002
【特許請求の範囲】
【請求項１】
トラフィック変動予測を用いたＴＣＰ／ＩＰ通信ネットワークにおける輻輳制御装置であって、
接続側からの接続要求に対して被接続側からの接続許可と接続要求を組み合わせたパケットを検出するＳＹＮ／ＡＣＫ検出部と、
前記接続側からのデータパケットに含まれる所定のマークを検出するマーク検出部と、
前記ＳＹＮ／ＡＣＫ検出部により検出したパケット数及び前記マーク検出部により検出したマーク数を夫々計数するパケット・マーク計数部と、
該パケット・マーク計数部により計数した夫々の計数結果に基づいてトラフィックの変動を予測するトラフィック変動予測部と、
該トラフィック変動予測部により予測した平均バッファー長の変動量に基づいてランダム初期検知に係るパラメータを変動させるＲＥＤパラメータ変動部と、
前記各部を制御する制御部と、
を備えたことを特徴とする輻輳制御装置。
【請求項２】
前記マークは、前記接続側において通信終了の直前のデータパケットに付加されることを特徴とする請求項１に記載の輻輳制御装置。
【請求項３】
前記制御部は、前記パケット・マーク計数部により計数したパケット数が増加して前記マーク数が減少した場合は、前記平均バッファー長が増加すると予測して前記ランダム初期検知に係るパラメータを変動させることを特徴とする請求項１又は２に記載の輻輳制御装置。
【請求項４】
前記制御部は、前記パケット・マーク計数部により計数したパケット数と前記マーク数の差分が所定の閾値を超えた場合は、前記平均バッファー長が急増すると予測して、前記平均バッファー長が最大閾値に達したときにパケットを廃棄する割合を大きくすることを特徴とする請求項１又は２に記載の輻輳制御装置。
【請求項５】
前記制御部は、前記パケット・マーク計数部により計数したパケット数と前記マーク数の差分が所定の閾値以下の場合は、前記平均バッファー長が急減すると予測して、前記平均バッファー長が最大閾値に達したときにパケットを廃棄する割合を小さくすることを特徴とする請求項１又は２に記載の輻輳制御装置。
【請求項６】
前記マークは、少なくともＩＰヘッダー又はＴＣＰヘッダー中のオプションフィールドに付加するビット、又はＴＣＰヘッド中に付加するＵＲＧビットであることを特徴とする請求項１乃至５の何れか一項に記載の輻輳制御装置。
【請求項７】
複数の送信端の回線を集約しているルータをエッジルータとし、それ以外のルータをコアルータとした場合、サーバの代わりに前記エッジルータで前記マークを付加するように構成したことを特徴とする請求項１乃至６の何れか一項に記載の輻輳制御装置。
【請求項８】
ＳＹＮ／ＡＣＫ検出部、マーク検出部、パケット・マーク計数部、トラフィック変動予測部、ＲＥＤパラメータ変動部、及び制御部を備えた輻輳制御装置の輻輳制御方法であって、
前記ＳＹＮ／ＡＣＫ検出部が、接続側からの接続要求に対して被接続側からの接続許可と接続要求を組み合わせたパケットを検出するステップと、
前記マーク検出部が、前記接続側からのデータパケットに含まれる所定のマークを検出するステップと、
前記パケット・マーク計数部が、前記ＳＹＮ／ＡＣＫ検出部により検出したパケット数及び前記マーク検出部により検出したマーク数を夫々計数するステップと、
前記トラフィック変動予測部が、前記パケット・マーク計数部により計数した夫々の計数結果に基づいてトラフィックの変動を予測するステップと、
前記ＲＥＤパラメータ変動部が、前記トラフィック変動予測部により予測した平均バッファー長の変動量に基づいてランダム初期検知に係るパラメータを変動させるステップと、
前記制御部が、前記各部を制御するステップと、
を備えたことを特徴とする輻輳制御装置の輻輳制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、輻輳制御装置及び輻輳制御方法に関し、さらに詳しくは、トラフィック変動予測を用いてパケットの廃棄率を低減する輻輳制御装置及び輻輳制御方法に関するものである。
【背景技術】
【０００２】
ＴＣＰ／ＩＰ通信（以下、単にＴＣＰと呼ぶ）を利用した低コストの汎用通信機器は、インターネットのみならず、企業内のプライベートなネットワークへも適用が進んでいる。また、増加するトラフィックに対しては、ネットワーク帯域やパケット転送処理量等の設備容量増強を行うのが基本であるが、増強時期が遅れたり、故障による回線容量の減少時には、トラフィックが集中する箇所で輻輳が発生する。そのとき、通信速度を抑制し、設備容量内にトラフィックを抑えるために輻輳制御が行われる。輻輳制御は、大部分のアプリケーションで転送用プロトコルとして用いるＴＣＰの機能により行われる。ＴＣＰは、ネットワークの輻輳によるルータのバッファ・オーバフローによるパケット廃棄を送信端で検出し、一度に送信できるパケット数を決めるウィンドウ・サイズを減少させることによって、ネットワークへのパケット送出を制御し、輻輳を抑制している。
【０００３】
一方、現在、ルータの多くは、輻輳制御としてTail Drop方式を採用している。しかしこの方式では、到着順にパケットをバッファーに蓄積し、バッファーが一杯になると、以降の到着するパケットを全て廃棄することから、トラフィック増加による輻輳時にはパケット廃棄が連続的に発生してしまう。このとき、複数フローに渡ってパケットを廃棄することによって、同期させてウィンドウ・サイズを増減させるＴＣＰ同期、およびＲＴＯ(Retransmission Time out)と呼ばれる、数秒間待ってから再送を開始する動作が生じ、スループットの低下を招くという問題がある。
このような問題を解決するため、従来からアクティブキュー管理方式が提案されている。その代表的なものにＲＥＤ(Random Early Detection)がある。ＲＥＤは、バッファー溢れでパケットが連続して廃棄されることを防止するために、バッファーが一杯になる前に、到着するパケットを確率的に廃棄する方法である。これによって、ＴＣＰのパケット送出速度が制御されるとともに、ＴＣＰ同期等を回避できる。このため、Tail Drop方式に比較して、スループットを改善することができる。また、ＲＥＤは多くの市販製品のルータに実装されており、使用可否を選択することができる。
【０００４】
しかし、ＲＥＤにも課題がある。即ち、ＲＥＤは、図６に示すように平均バッファー長の増加に伴い、パケット廃棄率を増加させる。パケット廃棄率は、平均バッファー長がＭＩＮｔｈから増加を始め、平均バッファー長がＭＡＸｔｈのときに、ＭＡＸｐとなる。そして、平均バッファー長がＭＡＸｐを超えると全てのパケットを廃棄する。図中のＭＩＮｔｈ、ＭＡＸｔｈ、ＭＡＸｐの闘値は、ＲＥＤのパラメータであり、パケット廃棄の程度を決定する。このＲＥＤのパラメータが過剰である場合、ＴＣＰ同期等が多くなり、不足である場合、バッファー溢れによりやはりＴＣＰ同期等が多くなる。そのため、ＲＥＤのスループット改善効果を十分に引き出すためには、ＲＥＤのパラメータを最適に設定しなければならない。しかし、最適な設定は、トラフィック変動によって異なってくるため非常に困難である。
そこで、トラフィック変動に対応し、ＲＥＤのパラメータを変動させるＡＲＥＤ(Adaptive RED)等が提案されている。ＡＲＥＤ等は、平均バッファー長の変化に応じてＲＥＤのパラメータを変化させる。しかし、あくまで平均バッファー長を検出した後に制御を行うため、ダイナミックなバッファー長の変動に対する追従性能に限界が生じる。
【０００５】
ここで、輻輳制御に関する従来技術として特許文献１には、ネットワークフィードバックを使用して、将来、いつ輻輳が起きる可能性が高いかを予測し、これらの予測に基づいて、システム内でのエンドユーザの行動を変更して輻輳を抑える技術について開示されている。
また、特許文献２には、トラフィック輻輳を予測するために、ハイパーリンク情報を抽出し、このハイパーリンク情報を集計してリンク情報をＩＰアドレスごとに生成し、ノード中のトラフィックをＩＰアドレスごとに測定してトラフィックパターンを生成する。また、トラフィック監視手段が、ノード中のトラフィックをＩＰアドレスごとに監視してトラフィックパターンと比較する。このトラフィックパターンと現在のトラフィックとの差が閾値以上となった場合に、リンクパターンを参照しつつ、輻輳が発生する可能性を判定することが開示されている。
また、特許文献３には、フロー制御サーバがネットワークのトラフィックの増減を予測して管理サーバにフロー制御指示を発行し、管理サーバは、このフロー制御指示に基づいて各ルータのルーティング情報を制御し、ルーティング制御指示を各ルータに送出し、ルータはルーティング制御指示に基づいて自己のルーティング情報を設定することが開示されている。
また、特許文献４には、輻輳の発生度合いに応じて送信レートを適切に変更し、送信中コネクション数を計測する。そして、予測されたコネクション数と実際の通信中コネクション数に基づいて係数が決定され、この係数を用いて次回のコネクション数を予測することが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−１２４９９１公報
【特許文献２】特開２００４−３４３４６６公報
【特許文献３】特開２００５−１１００７９公報
【特許文献４】特開２００５−２４５０３４公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１に開示されている従来技術は、輻輳を予測するために、予測される輻輳が緩和されるような時刻まで、エンドユーザによって送信されるデータパケットを遅延させるものであり、予測の正確性が必ずしも高いとはいえず、適切な輻輳制御が行われない虞がある。
また、特許文献２に開示されている従来技術は、トラフィックパターンと現在のトラフィックとの差が閾値以上となった場合に、リンクパターンを参照しつつ、輻輳が発生する可能性を判定するため、輻輳制御のタイミングが遅くなるといった問題がある。
また、特許文献３に開示されている従来技術は、トラフィックの増減に関する情報をインターネット上で検索してトラフィックの増減を予測するものであり、トラフィックの増減に関する情報を正確に検索するのが難しいといった問題がある。
また、特許文献４に開示されている従来技術は、あくまでもコネクション数を予測するものであり、予測の正確性が必ずしも高いとはいえず、適切な輻輳制御が行われない虞がある。
本発明は、かかる課題に鑑みてなされたものであり、ＴＣＰ開始で送信端末又はエッジルータから送信されたＳＹＮ／ＡＣＫを検出し、ＦＩＮパケットの手前でデータパケットのヘッダー部に付加されたマークを検出するように構成し、ＳＹＮ／ＡＣＫとマークの検出数に基づいて、トラフィックの変動を予測することにより、平均バッファー長の挙動を早い時期に予測するとともに、ＲＥＤのパラメータを変動することで、その性能を十分に引き出すことができる輻輳制御装置及び輻輳制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明はかかる課題を解決するために、請求項１は、トラフィック変動予測を用いたＴＣＰ／ＩＰ通信ネットワークにおける輻輳制御装置であって、接続側からの接続要求（ＳＹＮ）に対して被接続側からの接続許可（ＡＣＫ）と接続要求（ＳＹＮ）を組み合わせたパケットを検出するＳＹＮ／ＡＣＫ検出部と、前記接続側からのデータパケットに含まれる所定のマークを検出するマーク検出部と、前記ＳＹＮ／ＡＣＫ検出部により検出したパケット数及び前記マーク検出部により検出したマーク数を夫々計数するパケット・マーク計数部と、該パケット・マーク計数部により計数した夫々の計数結果に基づいてトラフィックの変動を予測するトラフィック変動予測部と、該トラフィック変動予測部により予測した平均バッファー長の変動量に基づいてランダム初期検知に係るパラメータを変動させるＲＥＤパラメータ変動部と、前記各部を制御する制御部と、を備えたことを特徴とする。
本発明は、ルータにおけるトラフィック変動予測を用いてパケットの廃棄率を低減する輻輳制御装置及び輻輳制御方法に関する発明である。即ち、コアルータ内に送信端から送られたＳＹＮ／ＡＣＫパケットと、通信終了の数パケット手前のデータパケットに付加されたマークとを検出して夫々を計数しておき、この計数値の増減或いは差分に基づいてＲＥＤパラメータを変動させることにより、ＲＥＤによるパケットの廃棄率の低減を図る発明である。これにより、平均バッファー長の挙動を早い時期に予測することが可能となって、パケットの廃棄率を低減することができる。
【０００９】
請求項２は、前記マークは、前記接続側において通信終了の直前のデータパケットに付加されることを特徴とする。
平均バッファー長の挙動を従来より早い時期に予測することができれば、ＲＥＤのパラメータの動的な設定に早くから取り掛かることができ、追従性能を向上させることができる。そこで本発明では、接続側において通信終了の直前のデータパケットにマークを付加して、被接続側でそのマークを通信終了前に検出する。これにより、ＲＥＤのパラメータの動的な設定に早くから取り掛かることができ、追従性能を向上させることができる。
請求項３は、前記制御部は、前記パケット・マーク計数部により計数したパケット数が増加して前記マーク数が減少した場合は、前記平均バッファー長が増加すると予測して前記ランダム初期検知に係るパラメータを変動させることを特徴とする。
計数したパケット数が増加してマーク数が減少した場合は、ウィンドウ・サイズが大きい場合である。即ち、それにより平均バッファー長が増加すると予測されるので、その平均バッファー長に基づいた値にＲＥＤパラメータを変動させる。これにより、早い時期に平均バッファー長の大きさが予測できるので、適切な追従性能を実現することができる。
【００１０】
請求項４は、前記制御部は、前記パケット・マーク計数部により計数したパケット数と前記マーク数の差分が所定の閾値を超えた場合は、前記平均バッファー長が急増すると予測して、前記平均バッファー長が最大閾値に達したときにパケットを廃棄する割合を大きくすることを特徴とする。
計数したパケット数とマーク数の差分が所定の閾値を超えて大きくなるときは、平均バッファー長が急増すると予測できる。このような時は、平均バッファー長が最大閾値に達したときにパケットを廃棄する割合を大きくして、早めにパケット廃棄を促進することで、輻輳を制御し、バッファー溢れによる連続的な廃棄を回避することができる。
請求項５は、前記制御部は、前記パケット・マーク計数部により計数したパケット数と前記マーク数の差分が所定の閾値以下の場合は、前記平均バッファー長が急減すると予測して、前記平均バッファー長が最大閾値に達したときにパケットを廃棄する割合を小さくすることを特徴とする。
計数したパケット数とマーク数の差分が所定の閾値以下になるときは、平均バッファー長が急減すると予測できる。このような時は、平均バッファー長が最大閾値に達したときにパケットを廃棄する割合を小さくして、早めにパケット廃棄を抑制することで、必要以上の過剰な廃棄を回避することができる。
【００１１】
請求項６は、前記マークは、少なくともＩＰヘッダー又はＴＣＰヘッダー中のオプションフィールドに付加するビット、又はＴＣＰヘッド中に付加するＵＲＧビットであることを特徴とする。
送信端でヘッダー部に付加するマークは、受信端のＴＣＰに何等影響を与えないものでなければならないことが本発明の必要条件であり、その必要条件を満たすための方法の一例として、付加するマークをＩＰヘッダー又はＴＣＰヘッダー中のオプションフィールドに付加するビット、又はＴＣＰヘッド中に付加するＵＲＧビットとする。これにより、受信端のＴＣＰに影響を与えずに通信を行うことができる。
請求項７は、複数の送信端の回線を集約しているルータをエッジルータとし、それ以外のルータをコアルータとした場合、前記送信端の代わりに前記エッジルータで前記マークを付加するように構成したことを特徴とする。
送信端（以下、サーバという）でマークを付けて、ルータでマークを読み取るという協調動作においては、サーバとルータの各メーカーが同一の技術仕様を採用することに合意する必要がある。これは、技術的要素以外の要素が絡むために、一般的には実現が難しくなりがちである。また、仮に合意できたとしても、サーバとルータを新規で導入する場合は良いが、既存の設備を逐次、更新していく場合は、サーバの数が多ければ多いほど、各サーバの更新タイミングに差があるため、実現が困難となる。そこで本発明では、サーバの代わりにエッジルータでマークを付けるようにすれば、エッジルータで付けたマークをコアルータで読み取るというルータ間の協調動作となって、ルータのメーカーだけで技術仕様を採用すれば良くなるため、実現が容易となる。
【００１２】
請求項８は、ＳＹＮ／ＡＣＫ検出部、マーク検出部、パケット・マーク計数部、トラフィック変動予測部、ＲＥＤパラメータ変動部、及び制御部を備えた輻輳制御装置の輻輳制御方法であって、前記ＳＹＮ／ＡＣＫ検出部が、接続側からの接続要求（ＳＹＮ）に対して被接続側からの接続許可（ＡＣＫ）と接続要求（ＳＹＮ）を組み合わせたパケットを検出するステップと、前記マーク検出部が、前記接続側からのデータパケットに含まれる所定のマークを検出するステップと、前記パケット・マーク計数部が、前記ＳＹＮ／ＡＣＫ検出部により検出したパケット数及び前記マーク検出部により検出したマーク数を夫々計数するステップと、前記トラフィック変動予測部が、前記パケット・マーク計数部により計数した夫々の計数結果に基づいてトラフィックの変動を予測するステップと、前記ＲＥＤパラメータ変動部が、前記トラフィック変動予測部により予測した平均バッファー長の変動量に基づいてランダム初期検知に係るパラメータを変動させるステップと、前記制御部が、前記各部を制御するステップと、を備えたことを特徴とする。
本発明は請求項１と同様の作用効果を奏する。
【発明の効果】
【００１３】
本発明によれば、コアルータ内に送信端から送られたＳＹＮ／ＡＣＫパケットと、通信終了の数パケット手前のデータパケットに付加されたマークとを検出して夫々を計数しておき、この計数値の増減或いは差分に基づいてＲＥＤパラメータを変動させることにより、ＲＥＤによるパケットの廃棄率の低減を図るので、平均バッファー長の挙動を早い時期に予測することが可能となって、パケットの廃棄率を低減することができる。
また、接続側において通信終了の直前のデータパケットにマークを付加して、被接続側でそのマークを通信終了前に検出するので、ＲＥＤのパラメータの動的な設定に早くから取り掛かることができ、追従性能を向上させることができる。
また、計数したパケット数が増加してマーク数が減少した場合は、ウィンドウ・サイズが大きく、それにより平均バッファー長が増加すると予測されるので、その平均バッファー長に基づいた値にＲＥＤパラメータを変動させることにより、早い時期に平均バッファー長の大きさが予測でき、適切な追従性能を実現することができる。
【００１４】
また、計数したパケット数とマーク数の差分が所定の閾値を超えて大きくなるときは、平均バッファー長が急増すると予測でき、平均バッファー長が最大閾値に達したときにパケットを廃棄する割合を大きくして、パケットの廃棄数を減少させるので、平均バッファー長が急増しても、全てのパケットを廃棄する数を抑制することができる。
また、計数したパケット数とマーク数の差分が所定の閾値以下になるときは、平均バッファー長が急減すると予測でき、平均バッファー長が最大閾値に達したときにパケットを廃棄する割合を小さくして、パケットの廃棄数を減少させるので、平均バッファー長が急減した場合は、更にパケットを廃棄する数を抑制することができる。
また、マークは、ＩＰヘッダー又はＴＣＰヘッダー中のオプションフィールドに付加するビット、又はＴＣＰヘッド中に付加するＵＲＧビットとするので、受信端のＴＣＰに影響を与えずに通信を行うことができる。
また、サーバの代わりにエッジルータでマークを付けるようにすれば、エッジルータで付けたマークをコアルータで読み取るというルータ間の協調動作となって、ルータのメーカーだけで技術仕様を採用すれば良くなるため、実現が容易となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態に係る輻輳制御方法の概略を示すフロー図である。
【図２】ネットワーク図の一例を示す図である。
【図３】送信端と受信端の間で行われるパケットのやり取りの一例を示すシーケンス図である。
【図４】本発明の輻輳制御装置をコアルータ内に備えた場合の機能を説明するブロック図である。
【図５】本発明の輻輳制御装置の動作について説明するフローチャートである。
【図６】平均バッファー長とパケット廃棄率の関係を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明を図に示した実施形態を用いて詳細に説明する。但し、この実施形態に記載される構成要素、種類、組み合わせ、形状、その相対配置などは特定的な記載がない限り、この発明の範囲をそれのみに限定する主旨ではなく単なる説明例に過ぎない。
【００１７】
図１は本発明の一実施形態に係る輻輳制御方法の概略を示すフロー図である。平均バッファー長の挙動を従来よりも早い時期に予測することができれば、ＲＥＤのパラメータの動的な設定に早くから取りかかることができ、追従性能を向上させることが出来る。このため、本発明では、以下のとおり、平均バッファー長の挙動を予測する。
（１）ＴＣＰ通信を開始すると、送信端でウィンドウ・サイズが徐々に開くとともに通信速度が上昇していくため、ある程度の時間をもってバッファー量の増加に影響する。そのため、ＴＣＰ通信を開始する際に下り方向へ送信されるＳＹＮ／ＡＣＫパケットをルータで検出する（Ｓ１）。
（２）通信中は、ウィンドウ・サイズを徐々に開き、送信速度を増加させる（Ｓ２）。
（３）ＴＣＰ通信を終了すると、送信端でウィンドウ・サイズを一気に閉じるので、すぐにバッファー量の減少に影響する。つまり、ある程度の時間をもって予測を行うためには、工夫が必要である。そのため、ＴＣＰ通信を終了する際に下り方向に送信されるＦＩＮパケットの一歩手前で、送信中のデータパケットのヘッダー部に終了を知らせるための印を付けルータで検出する（Ｓ３）。即ち、平均バッファー長の挙動を早い時期に予測することができれば、ＲＥＤのパラメータの動的な設定に早くから取り掛かることができ、追従性能を向上させることができる。そこで本実施形態では、接続する側（以下、接続側と呼ぶ）において通信終了の直前のデータパケットにマークを付加して、そのマークを通信終了前に検出する。これにより、ＲＥＤのパラメータの動的な設定に早くから取り掛かることができ、追従性能を向上させることができる。また、送信端でヘッダー部に付加するマークは、受信端のＴＣＰに何等影響を与えないものでなければならない。そこで本実施形態では、マークは、ＩＰヘッダー又はＴＣＰヘッダー中のオプションフィールドに付加するビット、又はＴＣＰヘッド中に付加するＵＲＧビットとする。これにより、受信端のＴＣＰに影響を与えずに通信を行うことができる。
（４）そして通信終了でウィンドウ・サイズを閉じて送信速度をゼロにする（Ｓ４）。
（５）最後にＦＩＮパケットを送信して終了する（Ｓ５）。
（６）ステップＳ１及びステップＳ３で検出したパケットと印の数をカウントし、その数に基づいてトラフィック変動を予測する（Ｓ６）。例えば、パケットの検出数が増加し、印の検出数が減少すれば、平均バッファー長は増加することが予測される。また、検出数の差分が大きいほど、急激な増加が予測されることになる。予測精度を高めるために、フロー毎に、ウィンドウ・サイズ、バケット到着間隔、および廃棄・再送パケットを管理してもよい。なお、フローは、ヘッダー部の送受信ＩＰアドレスやポート番号より識別でき、ウィンドウ・サイズは、送信端でウィンドウ・サイズの切れ目となるデータパケットのヘッダー部に印を付けることで、ルータで検出できる。
（７）ステップＳ６で予測したトラフィック変動に基づいてＲＥＤのパラメータを変動させる（Ｓ７）。即ち、トラフィックが急増する場合は図６のＭＡＸｐを大きくし、トラフィックが急減する場合はＭＡＸｐを小さくする。
（８）そして、ＲＥＤパラメータに基づいてパケットの廃棄を実行する（Ｓ８）。
【００１８】
尚、送信端でヘッダー部に付ける印は、受信端のＴＣＰに何ら影響を与えないものでなければならない。そのため、例えば、ＩＰへッダーやＴＣＰへッダー中のオプションフィールドに付加するビットや、ＴＣＰへッダー中に付加するＵＲＧビットがある。なお、付加した印は、ルータで認識後、除去してもよい。送信端でヘッダー部に印を付ける機能は、送信端末（サーバなど）に実装する必要があるが、端末数が多いほど、難しくなる場合がある。そこで、ルータ間で協調動作することで、ルータに実装するだけで済む方法について図２を参照して説明する。
【００１９】
図２はネットワーク図の一例を示す図である。送信端１の回線を集約しているルータをエッジルータ２、それ以外をコアルータ４とする。エッジルータ２はネットワーク３中に複数存在する。エッジルータ２は、送信端１からパケットを受け取ると、すぐに確認応答（ＡＣＫ）パケットを送信端１に返信する。一方、エッジルー２タが受け取ったパケットは、コアルータ４へ送られ、受信端へ到着すると、受信端から確認応答（ＡＣＫ）パケットを受け取る。つまり、エッジルータ２でＴＣＰコネクションが張りなおされる形となる。このとき、エッジルータ２から見て、送信端1側のネットワークはＲＴＴ(Round Trip Time)が小さいので通信速度は速く、逆にコアルータ側のネットワークは（特に輻輳時には）ＲＴＴが大きいので通信速度は遅い。そのため、この速度差によってエッジルータ2のバッファーには自然にパケットが蓄積される。これは、送信端1が持っていた送信データがエッジルータ２のバッファーに引っ張り出されるイメージとなる。このような原理上、バッファーにパケットが蓄積されていても、通信遅延は発生していない。また、このバッファーは、ＴＣＰコネクションで繋がったパケットを蓄積するものではないので、たとえ保持時間が長い場合でも、タイムアウトでＴＣＰが切断されることはない。バッファーは、ＦＩＮパケットが届く一歩手前のパケット（どのくらい手前かは設定値による）に印を付けるために利用される。そのため、それ以上のパケットは蓄積する必要がなく、エッジルータ２は、送信端１側とコアルータ４側の通信速度を一致させる制御を行い、バッファーにパケットが過剰に蓄積されないようにする。
エッジルータ２のバッファーの所要量は、基本的には（ＦＩＮパケットが届く手前のパケット数（設定値））×（同時発生コネクション数）となる。エッジルータ２による送信端１側の通信速度の制御は、送信側への確認応答（ＡＣＫ）パケットの返信タイミングを調整したり、一度に受け取ることのできるパケット量の通知を増減することによって行われる。
【００２０】
また、エッジルータ２は、コアルータ４へ送信するパケットのヘッダー部に印を付ける機能を持ち、その印はコアルータ４によって読み取られ、ＲＥＤの制御に用いられる。このような動作は、その必要性の生じる輻輳時に限って行う仕組みとしても良い。コアルータ４で輻輳が発生した場合、ＲＥＤによってパケットが廃棄され、エッジルータ２は、これを検出してウィンドウ・サイズを減少させ、コアルータ４側の通信速度を下げる。同時に、送信端側の通信速度を下げる制御を行うこととなる。
即ち、送信端（以下、サーバという）でマークを付けて、ルータでマークを読み取るという協調動作においては、サーバとルータの各メーカーが同一の技術仕様を採用することに合意する必要がある。これは、技術的要素以外の要素が絡むために、一般的には実現が難しくなりがちである。また、仮に合意できたとしても、サーバとルータを新規で導入する場合は良いが、既存の設備を逐次、更新していく場合は、サーバの数が多ければ多いほど、各サーバの更新タイミングに差があるため、実現が困難となる。そこで本発明では、サーバの代わりにエッジルータ２でマークを付けるようにすれば、エッジルータ２で付けたマークをコアルータ４で読み取るというルータ間の協調動作となって、ルータのメーカーだけで技術仕様を採用すれば良くなるため、実現が容易となる。
【００２１】
図３は送信端と受信端の間で行われるパケットのやり取りの一例を示すシーケンス図である。この例では、送信端をエッジルータ、受信端をコアルータとして説明する。まず、接続側である受信端から接続要求（ＳＹＮ）を接続される側（以下、被接続側と呼ぶ）である送信端に送信する。ＳＹＮを受信した送信端は接続許可（ＡＣＫ）と接続要求（ＳＹＮ）を組み合わせたパケットを受信端に返送する。受信端はＳＹＮ／ＡＣＫを検出して、接続許可（ＡＣＫ）を送信端に返送する。これをスリーウェイ・ハンドシェイクと呼び、コネクションが確立する。これにより、送信端はデータの送信が可能となる。ここで、ＴＣＰでは、効率的に通信を行うために受信端が受信可能なウィンドウ・サイズを広告するが、いきなりウィンドウ・サイズでデータを送信するのではなく、最初はウィンドウ・サイズ以下のデータ量を送信する。そして、ＡＣＫを受信する度に送信するセグメント数を増加していくことで、帯域の有効活用が図れる。送信端は送信終了の数パケット手前のデータパケットにマークＭを付加する。そのマークＭは受信端で検出される。最後に送信端は通信終了を知らせるＦＩＮパケットを受信端に送り、受信端ではＡＣＫ／ＦＩＮを送信端に送り、送信端からＡＣＫを受信することにより通信が終了する。以上が１対１の送信端と受信端の間での１つのフローについて説明したが、図２のコアルータには複数のエッジルータからランダムにパケットが到達するため、ＳＹＮ／ＡＣＫとマークＭを検出するたびに、その数を計数しておき、計数した数に基づいてトラフィックの変動を予測する。
【００２２】
図４は本発明の輻輳制御装置をコアルータ内に備えた場合の機能を説明するブロック図である。この輻輳制御装置５０は、接続側からの接続要求（ＳＹＮ）に対して被接続側からの接続許可（ＡＣＫ）と接続要求（ＳＹＮ）を組み合わせたパケットを検出するＳＹＮ／ＡＣＫ検出部６と、接続側からのデータパケットに含まれる所定のマークを検出するマーク検出部７と、ＳＹＮ／ＡＣＫ検出部６により検出したパケット数及びマーク検出部７により検出したマーク数を夫々計数するパケット・マーク計数部８と、パケット・マーク計数部８により計数した夫々の計数結果に基づいてトラフィックの変動を予測するトラフィック変動予測部１０と、トラフィック変動予測部１０により予測した平均バッファー長の変動量に基づいてランダム初期検知に係るパラメータを変動させるＲＥＤパラメータ変動部１１と、各部を制御する制御部９と、コアルータ４とインターネット３を接続するインターフェース５と、を備えて構成されている。
本実施形態は、ルータにおけるトラフィック変動予測を用いてパケットの廃棄率を低減する輻輳制御装置及び輻輳制御方法に関する発明である。即ち、コアルータ４内に送信端から送られたＳＹＮ／ＡＣＫパケットと、通信終了の数パケット手前のデータパケットに付加されたマークとを検出して夫々を計数しておき、この計数値の増減或いは差分に基づいてＲＥＤパラメータを変動させることにより、ＲＥＤによるパケットの廃棄率の低減を図る。これにより、平均バッファー長の挙動を早い時期に予測することが可能となって、パケットの廃棄率を低減することができる。
【００２３】
図５は本発明の輻輳制御装置の動作について説明するフローチャートである。通信が開始されると、接続側である受信端から接続要求（ＳＹＮ）を被接続側である送信端に送信する。ＳＹＮを受信した送信端は接続許可（ＡＣＫ）と接続要求（ＳＹＮ）を組み合わせたパケットを受信端に返送する。そのパケットはインターフェース５を介してＳＹＮ／ＡＣＫ検出部６により検出される（Ｓ１０）。それによりパケット・マーク計数部８によりＳＹＮ／ＡＣＫを計数する（Ｓ１１）。その後、データの送信が開始される。送信端は送信終了の数パケット手前のデータパケットにマークＭを付加する。そのマークＭはマーク検出部７により検出され（Ｓ１２）、それによりパケット・マーク計数部８によりマークＭが計数される（Ｓ１３）。最後に送信端は通信終了を知らせるＦＩＮパケットを受信端に送るので、ＦＩＮパケットを受信すると（ステップＳ１４でＹ）、制御部９はパケット・マーク計数部８により計数した夫々の計数結果から、ＳＹＮ／ＡＣＫパケットが増加してマークＭが減少した場合は（ステップＳ１５でＹ）平均バッファー長が増加すると予測して（Ｓ１６）、予測値に基づいてＲＥＤパラメータを変動させる（Ｓ１７）。その変動量に応じたＲＥＤによるパケットが廃棄される（Ｓ１８）。また、ステップＳ１５でＳＹＮ／ＡＣＫパケットが増加してマークＭが減少せず（ステップＳ１５でＮ）、ＳＹＮ／ＡＣＫパケットとマークＭとの差分が大きい場合は（ステップＳ１９でＹ）、平均バッファー長が急増すると予測して（Ｓ２０）、図６のＭＡＸｐを大きくする（Ｓ２１）。その変動量に応じたＲＥＤによるパケットが廃棄される（Ｓ１８）。また、ステップＳ１９でＳＹＮ／ＡＣＫパケットとマークＭとの差分が大きくない場合は（ステップＳ１９でＮ）、平均バッファー長が急減すると予測して（Ｓ２２）、図６のＭＡＸｐを小さくする（Ｓ２３）。その変動量に応じたＲＥＤによるパケットが廃棄される（Ｓ１８）。
【００２４】
計数したパケット数が増加してマーク数が減少した場合は、ウィンドウ・サイズが大きい場合である。即ち、それにより平均バッファー長が増加すると予測されるので、その平均バッファー長に基づいた値にＲＥＤパラメータを変動させる。これにより、早い時期に平均バッファー長の大きさが予測できるので、適切な追従性能を実現することができる。
また、計数したパケット数とマーク数の差分が所定の閾値を超えて急激に大きくなるときは、平均バッファー長が急増すると予測できる。このような時は、平均バッファー長が最大閾値に達したときにパケットを廃棄する割合を大きくして、パケットの廃棄数を減少させる。これにより、平均バッファー長が急増しても、全てのパケットを廃棄することを抑制することができる。
また、計数したパケット数とマーク数の差分が所定の閾値以下になるときは、平均バッファー長が急減すると予測できる。このような時は、平均バッファー長が最大閾値に達したときにパケットを廃棄する割合を小さくして、パケットの廃棄数を減少させる。これにより、平均バッファー長が急減した場合は、更にパケットを廃棄することを抑制することができる。
【符号の説明】
【００２５】
１  送信端、２  エッジルータ、３  ネットワーク、４  コアルータ、５  インターフェース、６  ＳＹＮ／ＡＣＫ検出部、７  マーク検出部、８  パケット・マーク計数部、９  制御部、１０  トラフィック変動予測部、１１  ＲＥＤパラメータ変動部、５０  輻輳制御装置
【図１】
2011061699.tif 000003
【図２】
2011061699.tif 000004
【図３】
2011061699.tif 000005
【図４】
2011061699.tif 000006
【図５】
2011061699.tif 000007
【図６】
2011061699.tif 000008