(57)【要約】【課題】データ中継装置におけるデータ中継処理をより効率的に実行する装置および方法を提供する。【解決手段】データ蓄積手段のデータ蓄積状況をキュー長分布情報として取得し、キュー長分布情報に応じてパケット廃棄、ＥＣＮビット設定等の輻輳制御処理態様を決定することでデータ蓄積状況をより反映したデータ中継制御を可能とした。ネットワークが輻輳状態になる以前の状態から、輻輳制御機構が働き、過度なパケット廃棄等の処理が実行されてしまう従来のＲＥＤ等の平均キュー長に基づく制御と異なり、トラフィックが混雑した状況にある場合でも高いネットワーク利用効率を維持することが可能となる。【選択図】　図６
2004104417.tif 000002
【特許請求の範囲】
【請求項１】
データ通信装置間で転送されるデータの中継処理を実行するデータ中継装置であり、
中継データを一次格納するデータ蓄積手段と、
前記データ蓄積手段のデータ蓄積状況に応じた処理を決定する制御手段とを有し、
前記制御手段は、
前記データ蓄積手段のデータ蓄積状況をキュー長分布情報として取得し、該取得したキュー長分布情報に応じて輻輳制御処理態様を決定する構成を有することを特徴とするデータ中継装置。
【請求項２】
前記制御手段は、
前記データ蓄積手段の設定可能な最大キュー長（Ｑｌｉｍｉｔ）に対する計測キュー長（Ｑｍｅａｓｕｒｅ）の比率データを複数取得し、該複数の比率データの分布データを前記キュー長分布情報とする構成であることを特徴とする請求項１に記載のデータ中継装置。
【請求項３】
前記制御手段は、
前記データ蓄積手段の設定可能な最大キュー長（Ｑｌｉｍｉｔ）に対する計測キュー長（Ｑｍｅａｓｕｒｅ）の比率データを複数取得し、該複数の比率データの分布データを前記キュー長分布情報とし、
前記複数の比率データに基づいて、計測キュー長（Ｑｍｅａｓｕｒｅ）の分布が最大キュー長（Ｑｌｉｍｉｔ）に近い領域に偏っているか否かを判定し、偏りがある場合に輻輳制御をすべき状態であるとの判定を行なう構成を有することを特徴とする請求項１に記載のデータ中継装置。
【請求項４】
前記制御手段は、
取得したキュー長分布情報に応じて決定する輻輳制御処理態様として、前記データ蓄積手段に蓄積されたデータパケットの廃棄、またはＥＣＮビットの設定処理の少なくともいずれかの処理の実行を決定する構成であることを特徴とする請求項１に記載のデータ中継装置。
【請求項５】
前記制御手段は、
取得したキュー長分布情報に応じて決定する輻輳制御処理態様として、前記データ蓄積手段に蓄積されたデータパケットの廃棄率を決定する構成であることを特徴とする請求項１に記載のデータ中継装置。
【請求項６】
データ通信装置間で転送されるデータに関する中継データ制御方法であり、
中継データをデータ蓄積手段に格納するデータ格納ステップと、
前記データ蓄積手段のデータ蓄積状況に応じた処理を決定する制御ステップとを有し、
前記制御ステップは、
前記データ蓄積手段のデータ蓄積状況をキュー長分布情報として取得するキュー長分布情報取得ステップと、
取得したキュー長分布情報に応じて輻輳制御処理態様を決定する輻輳制御処理態様決定ステップと、
を含むことを特徴とする中継データ制御方法。
【請求項７】
キュー長分布情報取得ステップは、
前記データ蓄積手段の設定可能な最大キュー長（Ｑｌｉｍｉｔ）に対する計測キュー長（Ｑｍｅａｓｕｒｅ）の比率データを複数取得し、該複数の比率データの分布データを前記キュー長分布情報とするステップであることを特徴とする請求項６に記載の中継データ制御方法。
【請求項８】
前記キュー長分布情報取得ステップは、
前記データ蓄積手段の設定可能な最大キュー長（Ｑｌｉｍｉｔ）に対する計測キュー長（Ｑｍｅａｓｕｒｅ）の比率データを複数取得し、該複数の比率データの分布データを前記キュー長分布情報とし、
前記輻輳制御処理態様決定ステップは、
前記複数の比率データに基づいて、計測キュー長（Ｑｍｅａｓｕｒｅ）の分布が最大キュー長（Ｑｌｉｍｉｔ）に近い領域に偏っているか否かを判定し、偏りがある場合に輻輳制御をすべき状態であるとの判定を行なうことを特徴とする請求項６に記載の中継データ制御方法。
【請求項９】
前記輻輳制御処理態様決定ステップは、
取得したキュー長分布情報に応じて決定する輻輳制御処理態様として、前記データ蓄積手段に蓄積されたデータパケットの廃棄、またはＥＣＮビットの設定処理の少なくともいずれかの処理の実行を決定することを特徴とする請求項６に記載の中継データ制御方法。
【請求項１０】
前記輻輳制御処理態様決定ステップは、
取得したキュー長分布情報に応じて決定する輻輳制御処理態様として、前記データ蓄積手段に蓄積されたデータパケットの廃棄率を決定することを特徴とする請求項６に記載の中継データ制御方法。
【請求項１１】
データ通信装置間で転送されるデータに関する中継データ制御処理を実行するコンピュータ・プログラムであり、
中継データをデータ蓄積手段に格納するデータ格納ステップと、
前記データ蓄積手段のデータ蓄積状況に応じた処理を決定する制御ステップとを有し、
前記制御ステップは、
前記データ蓄積手段のデータ蓄積状況をキュー長分布情報として取得するキュー長分布情報取得ステップと、
取得したキュー長分布情報に応じて輻輳制御処理態様を決定する輻輳制御処理態様決定ステップと、
を含むことを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータ中継装置、および中継データ制御方法、並びにコンピュータ・プログラムに関する。さらに詳細には、例えば、ＩＰルータやイーサネットスイッチなど、ネットワーク間でのデータ中継を行なう機器における効率的なデータ中継処理を可能としたデータ中継装置、および中継データ制御方法、並びにコンピュータ・プログラムに関する。
【０００２】
【従来の技術】
ネットワークの広帯域化に伴い、比較的データ量が小さいテキストや静止画などのデータ加えて、動画や音声など大きなデータ量のマルチメデイアデータがネットワーク上に混在して伝送されるようになった。ところが、インターネットなど公衆ネットワークでは、データの種類に係わらずできるだけ高い転送レートでデータを伝送させる、いわゆるベストエフォート（ｂｅｓｔ　ｅｆｆｏｒｔ　）型のデータ伝送方式が採用されているため、このようなマルチメディアデータを連続して安定に伝送させることが困難である。このような背景の元、近年においては、データ転送率やエラー率などの特性を測定してその改善を図り、前もってこのような特性をユーザごとに保証するＱｏＳ　（Ｑｕａｌｉｔｙ　ｏｆ　Ｓｅｒｖｉｃｅ　：サービスの質）と呼ばれるアイデアが、特に公衆ネットワークにおける上述の問題を解決するために検討されている。
【０００３】
ＱｏＳにおいて考慮される特性の１つとして、各コネクション（あるいはユーザ）間の公平性がある。すなわち、それぞれのコネクションが所定のデータ転送率およびエラー率でネットワークを利用する場合、ネットワークの輻輳状態に応じて各コネクションのデータ転送率およびエラー率をなるべく均等に低下させることは、公平性の観点から好ましいことである。
【０００４】
ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ　Ｃｏｎｔｒｏｌ　Ｐｒｏｔｏｃｏｌ）の様なパケット喪失やＥＣＮ（Ｅｘｐｌｉｃｉｔ　Ｃｏｎｇｅｓｔｉｏｎ　Ｎｏｔｉｆｉｃａｔｉｏｎ）により転送速度を制御する機能を持つトラフィックの流量を制御するために、トラフィックを中継するルータが、輻輳を早期に検出し積極的にパケットを廃棄したり、ＥＣＮビットをパケットにセットすることによってトラフィック流量を制御する方法は有効な輻輳制御技術の一つである。この様なルータによるパケット廃棄によるトラフィック制御の手法は、アクティブキューマネジメントと呼ばれ、代表的なものに　ＲＥＤ（Ｒａｎｄｏｍ　Ｅａｒｌｙ　Ｄｅｔｅｃｔｉｏｎ）がある。このＲＥＤについて、図を参照して説明する。
【０００５】
図１は、例えばＩＰルータ（Ｉｎｔｅｒｎｅｔ　Ｐｒｏｔｏｃｏｌ　Ｒｏｕｔｅｒ）など、ネットワークのノードに位置してデータを中継する一般的なデータ中継装置の構成例を示す概略的なブロック図である。
【０００６】
図１に示すデータ中継装置は、データ受信部１０１、データバッファ１０２、データ送信部１０３およびバッファ制御部１０４を有する。
【０００７】
データ受信部１０１は、他のネットワークノードから転送されるデータ、例えばパケットを、パケット転送元のネットワークノードに対応する入力ポートＩ１〜入力ポートＩｍ（ｍは任意の自然数を示す）に受信する。また、受信したパケットのコネクションを特定する情報（例えば送信元および送信先のアドレスなど）を検出して、バッファ制御部１０４に出力する。
【０００８】
データバッファ１０２は、パケットの格納時において、バッファ制御部１０４により指定されるアドレスにデータ受信部１０１で受信されたパケットを一時的に記憶する。また、バッファ制御部４により指定されるアドレスに記憶されたパケットをデータ送信部１０３に出力する。
【０００９】
データ送信部１０３は、パケット転送先のネットワークノードに対応する出力ポートＯ１〜出力ポートＯｎのうち、バッファ制御部１０４により指定される出力ポートから、データバッファ１０２で読み出されたパケットを送信する。
【００１０】
バッファ制御部１０４は、データ受信部１０１にパケットが受信された場合に、パケットが記憶されていない空アドレスをデータバッファ１０２に指定して、受信されたパケットを当該アドレスに記憶させる。また、データバッファ１０２に蓄積されるパケット数に応じて、受信されたパケットやデータバッファ１０２に記憶されるパケットの廃棄を行なう。さらに、コネクションごとに所定の頻度でデータバッファ１０２からパケットを読み出し、パケットの送信先のアドレスに対応する送信部１０３の出力ポートから当該パケットを送信させる。
【００１１】
図２は、ＲＥＤによるパケットの廃棄および格納処理を説明するための概念的な図である。データ受信部１０１の入力ポートから入力されるパケットＰａは、順次データバッファ１０２の空アドレスに記憶されるのであるが、ネットワークノードが輻輳状態となって受信レートが送信レートより高くなったまま放置すると、いずれデータバッファ１０２の空アドレスが枯渇して、受信したパケットを格納することができなくなる。この場合、受信したパケットは廃棄される。
【００１２】
上述のようにデータバッファ１０２が充填状態となって受信したパケットが次々と廃棄される場合であっても、各コネクションの転送レートが常に一定であれば、コネクション間の不公平は生じない。なぜなら、データバッファ１０２を占める各コネクションのパケット数の割合は、おおむね転送レートの大きさに対応しており、またパケットが廃棄される確率は、その転送レートに比例するからである。すなわち、データバッファ１０２をより多く占有しているコネクションは、それだけパケットの廃棄確率が高くなる。
【００１３】
しかしながら、一般的に、パケットの転送レートが常に一定であるとは限らず、通常は時間とともに変動している。転送レートが変動する場合には、データバッファの使用率（記憶されるパケット数）と廃棄確率が上述のように必ずしも一致しなくなる。例えば、大量のパケットを転送してデータバッファを充填させる原因を作ったコネクションの転送レートが変動して低下した後に、これとは別の低転送レートのコネクションが前者のコネクションよりも高転送レートに変化した場合、この後者のコネクションは、データバッファを充填させる原因をもたらしていないにも係わらず、前者のコネクションより高い確率でパケットが廃棄されてしまう可能性がある。
【００１４】
このような不公平を解消するため、ＲＥＤにおいては、データバッファに記憶可能な最大のパケット数に対する記憶されたパケット数の割合であるバッファ使用率を検出し、これに応じて各コネクションのパケットの廃棄確率が設定される。
【００１５】
図３は、ＲＥＤによるパケットの廃棄および格納処理を説明するためのフローチャートである。データ受信部１０１にパケットが受信されると、ステップＳ１０１においてバッファ使用率Ｑが下限値Ｑｌｏｗ以上か否かが判断される。バッファ使用率Ｑが下限値Ｑｌｏｗより下回る場合には、パケットの廃棄は行われず、受信されたパケットは、ステップＳ１０７においてそのままデータバッファの空き領域に格納され、次のパケットの受信待ち状態となる。
【００１６】
バッファ使用率Ｑが下限値Ｑｌｏｗ以上の場合には、次のステップＳ１０２において、バッファ使用率Ｑが上限値Ｑｈｉｇｈ以下であるか否かが判断される。上限値Ｑｈｉｇｈを超える場合には、ステップＳ１０５においてデータバッファ中に記憶されるパケットから１つのパケットがランダムに選択され、この選択されたパケットがステップＳ１０６において削除される。次いで、上述したステップＳ１０７に処理が移行され、受信されたパケットがデータバッファの空き領域に格納される。
【００１７】
バッファ使用率Ｑが上限値Ｑｈｉｇｈ以下である場合には、ステップＳ１０３において０から１の間で一様な乱数Ｄｒが生成される。次いでこの生成された乱数Ｄｒと、バッファ使用率Ｑに比例して増大するしきい値Ｄｔとの大きさがステップＳ１０４において比較される。しきい値Ｄｔは、次式のように表される。
【００１８】
【数１】
Ｄｔ＝Ｓｐ×（Ｑ−Ｑｌｏｗ）／（Ｑｈｉｇｈ−Ｑｌｏｗ）…（１）
【００１９】
ただし、スロープ係数Ｓｐは、バッファ使用率Ｑの変化に対するしきい値Ｄｔの変化の割合を示す所定の定数である。生成される乱数Ｄｒがしきい値Ｄｔを超える場合パケットの廃棄は行なわれず、上述したステップＳ１０７に処理が移行されてパケットの格納処理が実行される。また、乱数Ｄｒがしきい値Ｄｔ以下の場合には、上述したステップＳ１０５およびステップＳ１０６においてデータバッファのパケットがランダムに廃棄される。その後、受信されたパケットがデータバッファの空き領域に格納される。
【００２０】
図４は、ＲＥＤおけるバッファ使用率Ｑとパケット廃棄確率Ｐとの関係の一例を示す図である。図４の例において、下限値Ｑｌｏｗは０．２であり、上限値Ｑｈｉｇｈは０．５であり、スロープ係数Ｓｐは０．３である。図４に示すように、バッファ使用率Ｑが０．２を下回る場合には、パケット廃棄確率Ｐはゼロとなり、データバッファには転送パケットが蓄積される。バッファ使用率が０．５を超える場合には、パケット廃棄確率が１となり、パケットの受信とともにパケットが廃棄されるので、データバッファに対するパケットの格納が停止される。バッファ使用率が０．２から０．５の間においては、式（１）に示すしきい値Ｄｔと等しい廃棄確率でデータバッファのパケットが廃棄される。
【００２１】
このようにＲＥＤによれば、データバッファが充填状態になる前に、バッファ使用率Ｑに応じた廃棄確率Ｐで、データバッファに記憶されるパケットからランダムに選択されるパケットが破棄される。したがって、各コネクションの廃棄確率Ｐは、データバッファに記憶されるパケットの数に比例する。
【００２２】
【発明が解決しようとする課題】
ＲＥＤは、ルータの中の平均キュー（待ち行列）長を計測し、平均キュー長が一定値を超える時点から一定の確率でパケットを廃棄したり、もしくはＥＣＮビットをセットしていく。ＥＣＮビットは、輻輳状態にある場合にデータ転送量の低減をデータ送信者としての端末に委ねるためのビットであり、端末は、輻輳情報を受けると、データ転送速度を認定情報速度としてのＣＩＲ（Ｃｏｍｍｉｔｔｅｄ　Ｉｎｆｏｒｍａｔｉｏｎ　Ｒａｔｅ）以下に低減する処理を行なう。輻輳が解消され、ＥＣＮビットが消去されると、段階的に転送速度を上げていく。
【００２３】
上述したように、ＲＥＤは輻輳の手前の段階からトラフィック制御を行うことにより、トラフィックの流量を制御し、キューの平均長を短く保ちキューイングによるパケットの転送遅延を減少させる。また、ランダムにパケットを廃棄することで、転送性能が劣化することを回避する。
【００２４】
しかしながら、ＲＥＤの輻輳の判断は、キューの平均長に基づいて行われているため、トラフィックの揺らぎに対して適切に対応できない可能性がある。これまでのインターネットトラフィックの研究成果により、インターネットのトラフィック特性は、１／ｆゆらぎの性質を持つことが報告されている。トラフィックが１／ｆゆらぎの性質を示す場合に、平均キュー長を用いたアクティブキューマネジメントは有効に機能できない。
【００２５】
本発明は、トラフィックが１／ｆゆらぎの状態でも適切にトラフィックを制御し、ネットワーク全体の性能を向上させることを可能とするデータ中継装置、および中継データ制御方法、並びにコンピュータ・プログラムを提供することを目的とするものであり、具体的には、ルータ中のキュー長の分布状態を計測し、その計測結果からネットワークの状態を判断して、トラフィック制御を行うものである。
【００２６】
【課題を解決するための手段】
本発明の第１の側面は、
データ通信装置間で転送されるデータの中継処理を実行するデータ中継装置であり、
中継データを一次格納するデータ蓄積手段と、
前記データ蓄積手段のデータ蓄積状況に応じた処理を決定する制御手段とを有し、
前記制御手段は、
前記データ蓄積手段のデータ蓄積状況をキュー長分布情報として取得し、該取得したキュー長分布情報に応じて輻輳制御処理態様を決定する構成を有することを特徴とするデータ中継装置にある。
【００２７】
さらに、本発明のデータ中継装置の一実施態様において、前記制御手段は、前記データ蓄積手段の設定可能な最大キュー長（Ｑｌｉｍｉｔ）に対する計測キュー長（Ｑｍｅａｓｕｒｅ）の比率データを複数取得し、該複数の比率データの分布データを前記キュー長分布情報とする構成であることを特徴とする。
【００２８】
さらに、本発明のデータ中継装置の一実施態様において、前記制御手段は、前記データ蓄積手段の設定可能な最大キュー長（Ｑｌｉｍｉｔ）に対する計測キュー長（Ｑｍｅａｓｕｒｅ）の比率データを複数取得し、該複数の比率データの分布データを前記キュー長分布情報とし、前記複数の比率データに基づいて、計測キュー長（Ｑｍｅａｓｕｒｅ）の分布が最大キュー長（Ｑｌｉｍｉｔ）に近い領域に偏っているか否かを判定し、偏りがある場合に輻輳制御をすべき状態であるとの判定を行なう構成を有することを特徴とする。
【００２９】
さらに、本発明のデータ中継装置の一実施態様において、前記制御手段は、取得したキュー長分布情報に応じて決定する輻輳制御処理態様として、前記データ蓄積手段に蓄積されたデータパケットの廃棄、またはＥＣＮビットの設定処理の少なくともいずれかの処理の実行を決定する構成であることを特徴とする。
【００３０】
さらに、本発明のデータ中継装置の一実施態様において、前記制御手段は、取得したキュー長分布情報に応じて決定する輻輳制御処理態様として、前記データ蓄積手段に蓄積されたデータパケットの廃棄率を決定する構成であることを特徴とする。
【００３１】
さらに、本発明の第２の側面は、
データ通信装置間で転送されるデータに関する中継データ制御方法であり、
中継データをデータ蓄積手段に格納するデータ格納ステップと、
前記データ蓄積手段のデータ蓄積状況に応じた処理を決定する制御ステップとを有し、
前記制御ステップは、
前記データ蓄積手段のデータ蓄積状況をキュー長分布情報として取得するキュー長分布情報取得ステップと、
取得したキュー長分布情報に応じて輻輳制御処理態様を決定する輻輳制御処理態様決定ステップと、
を含むことを特徴とする中継データ制御方法にある。
【００３２】
さらに、本発明のデータ中継制御方法の一実施態様において、キュー長分布情報取得ステップは、前記データ蓄積手段の設定可能な最大キュー長（Ｑｌｉｍｉｔ）に対する計測キュー長（Ｑｍｅａｓｕｒｅ）の比率データを複数取得し、該複数の比率データの分布データを前記キュー長分布情報とするステップであることを特徴とする。
【００３３】
さらに、本発明のデータ中継制御方法の一実施態様において、前記キュー長分布情報取得ステップは、前記データ蓄積手段の設定可能な最大キュー長（Ｑｌｉｍｉｔ）に対する計測キュー長（Ｑｍｅａｓｕｒｅ）の比率データを複数取得し、該複数の比率データの分布データを前記キュー長分布情報とし、前記輻輳制御処理態様決定ステップは、前記複数の比率データに基づいて、計測キュー長（Ｑｍｅａｓｕｒｅ）の分布が最大キュー長（Ｑｌｉｍｉｔ）に近い領域に偏っているか否かを判定し、偏りがある場合に輻輳制御をすべき状態であるとの判定を行なうことを特徴とする。
【００３４】
さらに、本発明のデータ中継制御方法の一実施態様において、前記輻輳制御処理態様決定ステップは、取得したキュー長分布情報に応じて決定する輻輳制御処理態様として、前記データ蓄積手段に蓄積されたデータパケットの廃棄、またはＥＣＮビットの設定処理の少なくともいずれかの処理の実行を決定することを特徴とする。
【００３５】
さらに、本発明のデータ中継制御方法の一実施態様において、前記輻輳制御処理態様決定ステップは、取得したキュー長分布情報に応じて決定する輻輳制御処理態様として、前記データ蓄積手段に蓄積されたデータパケットの廃棄率を決定することを特徴とする。
【００３６】
さらに、本発明の第３の側面は、
データ通信装置間で転送されるデータに関する中継データ制御処理を実行するコンピュータ・プログラムであり、
中継データをデータ蓄積手段に格納するデータ格納ステップと、
前記データ蓄積手段のデータ蓄積状況に応じた処理を決定する制御ステップとを有し、
前記制御ステップは、
前記データ蓄積手段のデータ蓄積状況をキュー長分布情報として取得するキュー長分布情報取得ステップと、
取得したキュー長分布情報に応じて輻輳制御処理態様を決定する輻輳制御処理態様決定ステップと、
を含むことを特徴とするコンピュータ・プログラムにある。
【００３７】
【作用】
本発明の構成によれば、データ蓄積手段のデータ蓄積状況をキュー長分布情報として取得し、取得したキュー長分布情報に応じてパケット廃棄、あるいはＥＣＮビット設定等の輻輳制御処理態様を決定する構成としたので、データ蓄積手段のデータ蓄積状況をより反映したデータ中継制御が実行できる。
【００３８】
また、本発明の構成によれば、ネットワークが輻輳状態になる以前の状態から、輻輳制御機構が働き、過度なパケット廃棄等の処理が実行されてしまう従来のＲＥＤ等の平均キュー長に基づく制御と異なり、ネットワークトラフィックが混雑した状況である場合においても、より高いネットワーク利用効率を維持することが可能となる。
【００３９】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、ＣＤやＦＤ、ＭＯなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【００４０】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【００４１】
【発明の実施の形態】
以下、本発明のデータ中継装置、および中継データ制御方法の詳細について図面を参照しながら説明する。
【００４２】
本発明は、データの送信装置と受信装置の間において、データ中継を行なう例えばルータ等の機器における処理に関する。図５に示すように、ＰＣ、ＰＤＡ等の様々な通信機能を持つデータ送信装置３２１〜３２３から、インターネット等のデータ通信網３０１を介して、ＰＣ、ＰＤＡ等の様々な通信機能を持つデータ受信装置３３１〜３３３に対してデータパケットが送信される際、データ中継装置３１１〜３１４は、送信パケットの設定アドレスに応じたパケットの経路設定処理（ルーティング）を行なう。
【００４３】
本発明に係るデータ中継制御処理は、図５に示すデータ中継装置３１１〜３１４において実行される。データ中継装置３１１〜３１４に以下に説明するデータ中継（転送）制御アルゴリズムを実装することによりネットワークにおけるトラフィックが１／ｆゆらぎの状態であっても適切なトラフィック制御を行ない、ネットワーク全体の性能を向上させることを可能とする。
【００４４】
本発明に係るデータ中継処理においては、データ中継装置中に中継のタイミングを制御できるキューイング（待ち行列）機構の存在を前提としている。このキュー（待ち行列）の長さの分布状態を計測し、その計測結果からデータ転送の輻輳度合を判断し、輻輳度合に応じた制御を行うことが本発明の特徴である。
【００４５】
本発明に係るデータ中継装置の構成について、図６を参照して説明する。図６に示すようにデータ中継装置５１０は、データ送信装置５０１〜５０３からのデータパケットをデータ入出力部５３０のデータ受信部５３１において受信し、データバッファとしてのデータ蓄積部（キュー）５３１に受信パケットを一時的に格納し、格納したパケットを読み出し制御部５３３において読み出した後、データ送信部５３４を介してパケットに設定されたアドレスに基づいてデータ受信装置５４１〜５４３に向けて出力する。
【００４６】
本発明に係るデータ中継制御処理を実行するのは、制御部５２０である。制御部５２０は、キュー長分布計測部５２１と、計測結果判定部５２２と、輻輳制御部５２３とを有する。キュー長分布計測部５２１は、データ蓄積部（キュー）５３２の状態としてのキュー長分布情報を取得し、計測結果判定部５２２は、キュー長分布情報に基づいて、輻輳の状態としての輻輳度合いを判定する。データ処理態様決定部５２２は、計測結果判定部５２における輻輳度合いの判定情報に基づいて、データ蓄積部（キュー）５３２に格納されたデータパケットの処理態様を決定し、読み出し制御部５３３に対して決定に従った処理コマンドを出力する。データ処理態様決定部５２２の決定するデータ処理態様は、例えば、
（１）データの通常出力処理
（２）輻輳通知（ＥＣＮ）ビットの設定処理
（３）データの廃棄処理
である。なお、データの廃棄処理においては、廃棄率の設定等を行なう場合もある。
【００４７】
本発明は、基本的にコンピュータネットワークを想定しているが、次のような条件を備える転送制御システム系においては、本発明の成果を応用できる。
（ａ）転送システムが、転送装置、転送中継装置、受信装置の３つのコンポーネントを持ち、転送中継装置上にキューイング（待ち行列）機構が存在する。
（ｂ）転送装置上に転送中継装置や受信装置からの情報のフィードバックにより、転送速度を制限する機構が存在する。
【００４８】
本発明の特徴は、データ中継装置において、中継装置内に構成されたデータ蓄積手段のキュー（待ち行列）の長さの分布状態を計測し、その計測結果からデータ転送の輻輳度合を判断し、輻輳度合に応じた制御を行うことにある。
【００４９】
データ中継装置内のキューには、単一のＦＩＦＯ（Ｆｉｒｓｔ　ｉｎ　Ｆｉｒｓｔ　Ｏｕｔ）型のキューを想定している。すなわち、全ての入力トラフィックは同一のキューに蓄積され、原則としてキュー内の最も古いデータから出力される。
【００５０】
トラフィックがデータ中継装置に集中する場合は、キュー内に蓄えられるパケット数は増加しキュー長が長くなり、トラフィックが減少する場合は、キュー内のパケット数も減少しキュー長が短くなる。このような性質から、キュー内におけるパケット数（キュー長）は、輻輳を判断する情報として利用できる。
【００５１】
キュー長を利用して輻輳を判断し、制御を行う手法としては、前述したように、ＲＥＤ（Ｒａｎｄｏｍ　Ｅａｒｌｙ　Ｄｅｔｅｃｔｉｏｎ）というキューイング方式がある。ＲＥＤは、キューの平均長を計測し、その結果よりパケットの廃棄率を変化させる。キュー長の値が大きい場合により大きな廃棄率を適用することによって、ＲＥＤは輻輳の度合に応じた輻輳制御を実現する。
【００５２】
図７に示すように、ＲＥＤは、中継装置内のキューに格納された平均キュー長について、最小閾値（ｍｉｎｔｈ）と、最大閾値（ｍａｘｔｈ）という２つの閾値を持ち、中継装置内のキューに格納された平均キュー長が最小閾値（ｍｉｎｔｈ）以下の場合には中継装置内のキューに格納されたパケット廃棄を行わない。中継装置内のキューに格納された平均キュー長が最小閾値（ｍｉｎｔｈ）と、最大閾値（ｍａｘｔｈ）の間にある場合は、キュー長に応じて線形にパケット廃棄率を決定し、中継装置内のキューに格納された平均キュー長が最大閾値（ｍａｘｔｈ）を超えた場合には、全てのパケットを廃棄する。
【００５３】
典型的な設定では、最小閾値（ｍｉｎｔｈ）として、キューの上限限界値の１２分の１程度から４分１程度の値が設定され、最大閾値（ｍａｘｔｈ）はキューの上限限界値の４分の１から２分の１程度の値が設定される。
【００５４】
このようにＲＥＤは、キューの平均長を用いて輻輳を判断し、輻輳の始まる初期の段階から早い対応を行うことに、その特徴がある。しかしながら、近年のトラフィック解析の研究成果より、広域ネットワークのトラフィックは、平均値を計測するモデルに当てはまりにくい１／ｆゆらぎの性質を持つことが報告されている。またＴＣＰ最大閾値（ｍａｘｔｈ）ロトコルの転送制御方式に１／ｆゆらぎの性質のトラフィックを生成する要素が存在するため、単純なネットワーク構成においても１／ｆゆらぎを観測できるという報告もある。
【００５５】
トラフィックが１／ｆゆらぎの性質を持つ場合、キュー長は　ｈｅａｖｙ　ｔａｉｌ型に分布するため、データ中継装置内のキューに格納された平均キュー長を用いた輻輳の判断は不正確なものとなる。
【００５６】
本発明のデータ中継装置では、中継装置内のキューに格納された平均キュー長のみに基づく制御を実行するのではなく、キュー長の分布状態を計測し、分布状況に応じた制御を行なう。
【００５７】
データ中継装置内のキューに格納されたキュー長の分布は、ネットワークに流入するトラフィックが少ない場合、短いキュー長の方に集中する傾向があり、ネットワークが混雑している状態では、長いキュー長の方に集中していく傾向がある。そして、ネットワークの混雑度がネットワークの許容量に近づく時点では、キュー長の分布は、一様分布に近づいていく。本発明では、この様なキュー長の分布の性質を利用して、ネットワークの輻輳状態を判断し、トラフィックの制御を行う。
【００５８】
すなわち、データ蓄積部（キュー）５３２のキュー長が、所定の計測期間において長いキュー長に集中した状態が継続している場合、ネットワークに輻輳が発生しているものと判定してパケット廃棄やＥＣＮなどを用いて、トラフィック流量を減少させ輻輳制御を行う。
【００５９】
制御部５２０における具体的な処理としては、まず、キュー長分布計測部５２１が所定の予め定めた期間において、データ蓄積部（キュー）５３２のキュー長計測を実行し、計測結果を計測結果判定部５２２に出力する。
【００６０】
計測結果として、例えば、計測期間において、データ蓄積部（キュー）５３２の設定可能なキュー最大長の９０％以上となる度数が全体の度数の６０％以上を占めた状態であるとの結果が計測結果判定部５２２に出力された場合、計測結果判定部５２２は、ネットワークに輻輳が発生しているものと判定し、計測結果判定部５２２は、輻輳が発生しているとの判定を輻輳制御部５２３に出力する。
【００６１】
輻輳制御部５２３は、計測結果判定部５２２から入力する輻輳判定結果に基づいて、読み出し制御部５３３に対して処理コマンドを出力し、読み出し制御部５３３は、入力コマンドに応じて、データ蓄積部（キュー）５３２に格納されたパケットの廃棄処理、あるいはＥＣＮビット設定処理などを実行する。これらの処理に基づいて、トラフィック流量を減少させ輻輳制御を行う。
【００６２】
一方、キュー長の度数分布が、短いキュー長に集中している場合はネットワークに輻輳がないものと判断して、パケット廃棄やＥＣＮ等の輻輳制御を行わず、通常のデータ中継処理、すなわち、データ蓄積部（キュー）５３２に格納されたパケットを読み出し制御部５３３が読み出して、データ送信部５３４を介して宛先に向けて送信する処理を実行する。
【００６３】
なお、データ蓄積部（キュー）５３２に格納されたパケットの廃棄処理を実行するか、あるいはＥＣＮビット設定処理を実行するか灯の判定は、計測結果判定部５２２の判定する輻輳判定結果に基づいて、輻輳制御部５２３において細かく制御することが可能である。
【００６４】
例えば計測結果として取得される長いキュー長への集中度合に応じたパケットの廃棄率を決定して決定した廃棄率に応じたパケット廃棄コマンドを輻輳制御部５２３から読み出し制御部５３３に対して出力するすることが可能である。
【００６５】
例えば、長いキュー長への集中度合が非常に高い場合には、パケットの廃棄率を高く設定し、トラフィックを早急に緩和し、長いキュー長への集中度合がやや高い場合には、パケットの廃棄率を低く設定した廃棄処理を実行し、長いキュー長への集中度合がそれほど高くないが輻輳状態が発生していると判定した場合には、パケットの廃棄は行なわず、ＥＣＮビットのセット処理のみを実行するなど、データ蓄積部（キュー）５３２のキュー長の分布状況に応じた細かな制御が実行可能となる。これらの操作によって、輻輳の度合に応じた輻輳制御が可能になる。本発明に従った輻輳制御を実行することにより、ネットワークの混雑時において、キュー長の分布が一様分布に近づく様に制御される。
【００６６】
キュー長分布計測部５２１におけるデータ蓄積部（キュー）５３２のキュー長計測処理について、図８を参照して説明する。キュー長分布計測部５２１は、予め設定したサンプル数に従って一定時間間隔で、分布計測値をメモリに格納する。例えば、サンプル数を１００〜１０００程度に設定し、一定間隔で、データ蓄積部（キュー）５３２のキュー長の計測を実行する。計測頻度は例えば０．１〜１．０秒程度とする。計測キュー長を分布計測のためのメモリに格納する。
【００６７】
キュー長のデータ蓄積部（キュー）５３２における限界値をＱｌｉｍｉｔとし、計測したキュー長をＱｍｅａｓｕｒｅとした場合に、計測キュー長：Ｑｍｅａｓｕｒｅが、
０＜Ｑｍｅａｓｕｒｅ＜Ｑｌｉｍｉｔ×０．１
の値をとった場合、分布計測値格納用のメモリに設定したＤｉｓｔ０の値を１増加させる。
【００６８】
同様に、計測キュー長：Ｑｍｅａｓｕｒｅが、
Ｑｌｉｍｉｔ×０．１＜Ｑｍｅａｓｕｒｅ＜Ｑｌｉｍｉｔ×０．２
の値をとった場合、分布計測値格納用のメモリに設定したＤｉｓｔ１の値を１増加させる。
【００６９】
このように、計測キュー長：Ｑｍｅａｓｕｒｅが、０〜Ｑｌｉｍｉｔ×０．１→Ｄｉｓｔ０を１増加、Ｑｌｉｍｉｔ×０．１〜Ｑｌｉｍｉｔ×０．２→Ｄｉｓｔ１を１増加、Ｑｌｉｍｉｔ×０．２〜Ｑｌｉｍｉｔ×０．３→Ｄｉｓｔ２を１増加、・・Ｑｌｉｍｉｔ×０．９〜Ｑｌｉｍｉｔ×１．０→Ｄｉｓｔ９を１増加させる処理を行なう。
【００７０】
結果として、図８に示すように、計測キュー長：Ｑｍｅａｓｕｒｅが、最大キュー長：Ｑｌｉｍｉｔに対して１０％以下、１０〜２０％、２０〜３０％、・・９０％以上のいずれの状態にあるかがカウントされることになり、所定のサンプル数、例えば前述したように、１００〜１０００回の計測処理に基づいて、図８に示す分布データが取得される。
【００７１】
もし、キュー長の計測回数がサンプル数を超えている場合は、最も古いキュー長計測データを分布計測用メモリから削除する。この操作を継続することにより、分布計測用メモリには、最新の最大サンプル数の計測結果が格納され、更新されることになる。
【００７２】
なお、図８に示す例では、最大キュー長：Ｑｌｉｍｉｔに対して１０％以下、１０〜２０％、２０〜３０％、・・９０％以上の１０％間隔で設定して個々のカウント値を取得する構成としたが、設定間隔は必要に応じて任意に設定可能である。
【００７３】
上記の手順により、キュー長の分布状態情報を取得し、計測回数がサンプル数を超えた時点から、充分なデータが収集できたものとして、計測結果に基づく輻輳制御を開始する。輻輳が発生しているか否かの判断は、例えばキュー長分布において、キューの最大長の９０％以上となる度数が全体の度数の６０％以上を占める場合などと設定することが可能である。
【００７４】
この判定は、計測結果判定部５２２が実行することになるが、計測結果判定部５２２は、分布計測用メモリの格納データを検証し、格納データが、
Ｄｉｒｓ９＞サンプル数×０．６
を満たしているか否か判定する処理を実行することで輻輳判定を行なう。
【００７５】
なお、前述したように、計測結果判定部５２２における輻輳の度合いの判定は、さらに細かい判定を行なうことも可能であり、例えばキュー長分布において、キューの最大長の９０％以上となる度数が全体の度数の８０％以上を占める場合には高レベルの輻輳と判定し、キュー長分布において、キューの最大長の９０％以上となる度数が全体の度数の６０％以上を占める場合には中レベルの輻輳と判定し、キュー長分布において、キューの最大長の９０％以上となる度数が全体の度数の４０％以上を占める場合には低レベルの輻輳と判定し、輻輳制御部５２３において、判定結果に従って異なる輻輳制御、例えば廃棄率を変更したパケット廃棄処理、あるいはＥＣＮビットの設定処理等を選択的に実行することができる。
【００７６】
本発明に従ったデータ中継制御処理における処理手順について、図９に示すフローチャートを参照して説明する。
【００７７】
本発明に係るデータ中継装置は、ネットワークを介してデータパケットを受信すると、ステップＳ２０１において、データパケットをキュー、すなわち図６に示すデータ入出力部５３０内のデータ蓄積部（キュー）５３２に格納する。
【００７８】
次にステップＳ２０２において、制御部５２０のキュー長分布計測部５２１が、データ蓄積部（キュー）５３２のキュー長計測を実行し、所定のサンプル数の計測処理を実行してその履歴データ、すなわち、例えば先に図８を参照して説明したＤｉｓｔ０〜Ｄｉｓｔ９の分布データを取得する。
【００７９】
次にステップＳ２０３において、計測結果判定部５２２が、分布データに基づく分布解析処理を実行する。これは、例えば前述したように、取得データとしてのキュー長分布において、キューの最大長の９０％以上となる度数が全体の度数の６０％以上を占めるか否か等、計測結果判定部５２２において予め設定された輻輳判定処理に基づく輻輳判定を実行するものである。
【００８０】
フローにおいては、ステップＳ２０４に示すように、キュー長分布が長いキュー長に偏りがあるか否かの判定を行なう処理例を示してあるが、この判定処理は、前述したようにキュー長分布の偏り度合いに応じたより細かな判定処理として実行し、輻輳度合いの判定をより細分化して実行する構成としてもよい。
【００８１】
ステップＳ２０４において、キュー長分布が長いキュー長に偏りがないと判定した場合は、ステップＳ２０５に進み、輻輳の発生は無いとして、通常のデータ出力処理を実行する。これは、キュー長分布が、短いキュー長に集中している場合の処理であり、ネットワークに輻輳がないものと判断して、パケット廃棄やＥＣＮ等の輻輳制御を行わず、通常のデータ中継処理、すなわち、データ蓄積部（キュー）５３２に格納されたパケットを読み出し制御部５３３が読み出して、データ送信部５３４を介して宛先に向けて送信する処理である。
【００８２】
一方、ステップＳ２０４において、キュー長分布が長いキュー長に偏りがあると判定した場合は、ステップＳ２０６に進み、キュー長の分布に基づいた輻輳度合いを推測する。例えば、例えば前述したように、キュー長分布において、キューの最大長の９０％以上となる度数が全体の度数の８０％以上を占める場合には高レベルの輻輳と判定し、キュー長分布において、キューの最大長の９０％以上となる度数が全体の度数の６０％以上を占める場合には中レベルの輻輳と判定し、キュー長分布において、キューの最大長の９０％以上となる度数が全体の度数の４０％以上を占める場合には低レベルの輻輳と判定するなどの態様である。
【００８３】
次に、ステップＳ２０７に進み、輻輳制御部５２３において、判定結果に従った異なる輻輳制御、例えば廃棄率を変更したパケット廃棄処理、あるいはＥＣＮビット設定処理等の輻輳制御処理態様を決定し、ステップＳ２０８において、決定した輻輳制御態様に従った処理、具体的には、決定した廃棄率に従ったパケット廃棄処理、あるいはＥＣＮビット設定等の処理を実行する。
【００８４】
次に、上述した本発明に係るデータ中継処理のシミュレーション処理およびその結果について説明する。本発明に係るデータ中継処理の実行例として、図１０に示す構成を設定した。
【００８５】
図１０において、４つのノード５５０〜５５４を接続するリンクは、それぞれ帯域幅５００ｋｂｐｓ、伝搬遅延５０ｍｓｅｃに設定されている。このネットワーク構成において、ｎｏｄｅ−ｐ５５０をデータ中継装置としてのルータとして設定する。ルータの設定可能な最大キュー長を１００パケットに設定する。ｎｏｄｅ−ａ５５１、ｎｏｄｅ−ｂ５５２、ｎｏｄｅ−ｃ５５３からは、ポアソン分布に従う時間間隔でＴＣＰトラフィックを発生させる。この時、各ノードが生成するＴＣＰトラフィックのコネクション密度を、０．５コネクション／秒、１．０コネクション／秒、１．２５コネクション／秒と変化させ、ネットワークの輻輳状態を変化させる。
【００８６】
データ中継装置としてのルータとして設定されたｎｏｄｅ−ｐ５５０において、
（ａ）ＦＩＦＯ（Ｆｉｒｓｔ　Ｉｎ　Ｆｉｒｓｔ　Ｏｕｔ）による制御
（ｂ）ＲＥＤ（Ｒａｎｄｏｍ　Ｅａｒｌｙ　Ｄｅｔｅｃｔｉｏｎ）による制御
（ｃ）本発明に従ったキュー長分布測定および測定結果に基づく輻輳制御
の各々を実行した場合の処理結果について説明する。
【００８７】
まず、（ａ）ＦＩＦＯ（Ｆｉｒｓｔ　Ｉｎ　Ｆｉｒｓｔ　Ｏｕｔ）による制御の場合、データ中継装置としてのルータとして設定されたｎｏｄｅ−ｐ５５０のデータ蓄積部（キュー）のキュー長分布は、図１１に示すような分布となった。
【００８８】
データ中継装置としてのルータとして設定されたｎｏｄｅ−ｐ５５０において、ＦＩＦＯ（Ｆｉｒｓｔ　Ｉｎ　Ｆｉｒｓｔ　Ｏｕｔ）による制御を実行し、０．１秒間隔で１００秒間、キュー長を計測し、１００パケットのキュー長を５パケットづつのブロックに分割し、その度数分布をグラフ化したものが図１１に示したグラフである。Ｘ軸がキュー長、Ｙ軸がカウント値を示している。
【００８９】
図１１に示す様に、コネクション密度が低くネットワークに輻輳がない場合、すなわちコネクション密度（ｃｏｎｎｅｃｔｉｏｎ　ｄｅｎｓｉｔｙ）＝０．５の場合は、右下がりの分布になり、コネクション密度が高くネットワークが輻輳している場合、すなわちコネクション密度（ｃｏｎｎｅｃｔｉｏｎ　ｄｅｎｓｉｔｙ）＝１．２５の場合は、左下がりの分布を示している。また、コネクション密度がネットワークの帯域をほぼ使いきる程度の密度の場合、すなわちコネクション密度（ｃｏｎｎｅｃｔｉｏｎ　ｄｅｎｓｉｔｙ）＝１．０の場合は、キュー長の分布は一様分布に近付く。
【００９０】
これは、コネクション密度が低くネットワークに輻輳がない場合、すなわちコネクション密度（ｃｏｎｎｅｃｔｉｏｎ　ｄｅｎｓｉｔｙ）＝０．５の場合には、データ中継装置としてのルータとして設定されたｎｏｄｅ−ｐ５５０内のデータ蓄積部のキュー長が短く設定され、余裕がある状態であるが、コネクション密度が高くネットワークが輻輳している場合、すなわちコネクション密度（ｃｏｎｎｅｃｔｉｏｎ　ｄｅｎｓｉｔｙ）＝１．２５の場合には、データ中継装置としてのルータとして設定されたｎｏｄｅ−ｐ５５０内のデータ蓄積部のキュー長が長くなり、余裕の無い状態となっていることを示すものである。
【００９１】
次に、（ｂ）ＲＥＤ（Ｒａｎｄｏｍ　Ｅａｒｌｙ　Ｄｅｔｅｃｔｉｏｎ）による制御の場合、データ中継装置としてのルータとして設定されたｎｏｄｅ−ｐ５５０のデータ蓄積部（キュー）のキュー長分布は、図１２に示すような分布となった。
【００９２】
データ中継装置としてのルータとして設定されたｎｏｄｅ−ｐ５５０において、ＲＥＤ（Ｒａｎｄｏｍ　Ｅａｒｌｙ　Ｄｅｔｅｃｔｉｏｎ）による制御を実行し、０．１秒間隔で１００秒間、キュー長を計測し、１００パケットのキュー長を５パケットづつのブロックに分割し、その度数分布をグラフ化したものが図１２に示したグラフである。Ｘ軸がキュー長、Ｙ軸がカウント値を示している。
【００９３】
図１２に示す様に、コネクション密度が低くネットワークに輻輳がない場合、すなわちコネクション密度（ｃｏｎｎｅｃｔｉｏｎ　ｄｅｎｓｉｔｙ）＝０．５の場合、コネクション密度が高くネットワークが輻輳している場合、すなわちコネクション密度（ｃｏｎｎｅｃｔｉｏｎ　ｄｅｎｓｉｔｙ）＝１．２５の場合、また、コネクション密度がネットワークの帯域をほぼ使いきる程度の密度の場合、すなわちコネクション密度（ｃｏｎｎｅｃｔｉｏｎ　ｄｅｎｓｉｔｙ）＝１．０の場合、いずれにおいても、右下がりの分布を示している。
【００９４】
これは、ＲＥＤ（Ｒａｎｄｏｍ　Ｅａｒｌｙ　Ｄｅｔｅｃｔｉｏｎ）による制御の結果、これはネットワークが輻輳状態になる以前の状態から、輻輳制御機構が働いた結果であり、コネクション密度が高くネットワークが輻輳している場合、あるいはコネクション密度がネットワークの帯域をほぼ使いきる程度の密度の場合であっても、データ中継装置としてのルータとして設定されたｎｏｄｅ−ｐ５５０内のデータ蓄積部のキュー長の平均長に基づく過度の輻輳制御、例えばパケット廃棄処理が実行され、この制御により、輻輳の発生は防止されてはいるが、過度のパケット廃棄が実行されることが推測される。
【００９５】
次に、（ｃ）本発明に従ったキュー長分布測定および測定結果に基づく輻輳制御による制御の場合、データ中継装置としてのルータとして設定されたｎｏｄｅ−ｐ５５０のデータ蓄積部（キュー）のキュー長分布は、図１３に示すような分布となった。
【００９６】
データ中継装置としてのルータとして設定されたｎｏｄｅ−ｐ５５０において、本発明に従ったキュー長分布測定および測定結果に基づく輻輳制御を実行し、０．１秒間隔で１００秒間、キュー長を計測し、１００パケットのキュー長を５パケットづつのブロックに分割し、その度数分布をグラフ化したものが図１３に示したグラフである。Ｘ軸がキュー長、Ｙ軸がカウント値を示している。
【００９７】
図１３に示す様に、コネクション密度が低くネットワークに輻輳がない場合、すなわちコネクション密度（ｃｏｎｎｅｃｔｉｏｎ　ｄｅｎｓｉｔｙ）＝０．５の場合、右下がりの分布を示しており、データ中継装置としてのルータとして設定されたｎｏｄｅ−ｐ５５０内のデータ蓄積部のキュー長が短く設定され、余裕がある状態を示している。
【００９８】
一方、コネクション密度が高くネットワークが輻輳している場合、すなわちコネクション密度（ｃｏｎｎｅｃｔｉｏｎ　ｄｅｎｓｉｔｙ）＝１．２５の場合、また、コネクション密度がネットワークの帯域をほぼ使いきる程度の密度の場合、すなわちコネクション密度（ｃｏｎｎｅｃｔｉｏｎ　ｄｅｎｓｉｔｙ）＝１．０の場合、いずれにおいても、キュー長の分布は、ほぼ一様分布を示している。
【００９９】
これは、本発明に従ったキュー長分布測定および測定結果に基づく輻輳制御の結果、データ中継装置としてのルータとして設定されたｎｏｄｅ−ｐ５５０内のデータ蓄積部のキュー長の分布がほぼ一様に保たれた状態、すなわち、キュー長が長い状態が長期間継続したり、あるいはキュー長が短い状態が長期間継続した状態が発生していないことを示し、適切な、キュー長制御が実行されていること、結果としては、過度なパケット廃棄を実行することなく、効率的なデータ中継処理が実行されていることを示すものである。
【０１００】
本発明に従ったキュー長分布測定および測定結果に基づく輻輳制御方式の効果の評価を行うために、ネットワークの利用効率を解析した。ネットワークの利用効率の指標として下式を適用した。
【０１０１】
ネットワークの利用効率＝ｇｏｏｄｐｕｔ×（ｇｏｏｄｐｕｔ／ＴＣＰコネクション数）
【０１０２】
上記式において、ｇｏｏｄｐｕｔは、再送をせずに一回の送信で受信側に到達したパケット数を示している。
【０１０３】
単純に再送をせずに一回の送信で受信側に到達したパケット数としてのｇｏｏｄｐｕｔを指標すると、ネットワークの混雑度が上昇するのに伴って、ｇｏｏｄｐｕｔ数が上昇してしまうため、ネットワークの利用効率がピークとなる点を判別しにくい。また、ｇｏｏｄｐｕｔ／ＴＣＰコネクション数を指標にすると、ネットワークの混雑度が少ない場合は常に最高の効率を示してしまう。このようなことから、両者の値の乗算値としての上記式をネットワークの利用効率を算定するための指標として設定した。
【０１０４】
図１４に、
（ａ）ＦＩＦＯ（Ｆｉｒｓｔ　Ｉｎ　Ｆｉｒｓｔ　Ｏｕｔ）による制御
（ｂ）ＲＥＤ（Ｒａｎｄｏｍ　Ｅａｒｌｙ　Ｄｅｔｅｃｔｉｏｎ）による制御
（ｃ）本発明に従ったキュー長分布測定および測定結果に基づく輻輳制御
の各制御方式に従った制御を実行した場合の、ネットワークの利用効率を上記式に従って算出した結果をグラフ化して示す。
【０１０５】
図１４は、Ｘ軸をコネクション密度（コネクション数／秒）とし、Ｙ軸を上記式によって算出したネットワーク利用効率を示している。
【０１０６】
図１４から理解されるように、ＲＥＤ（Ｒａｎｄｏｍ　Ｅａｒｌｙ　Ｄｅｔｅｃｔｉｏｎ）による制御の場合は、コネクション密度が０．８を超えるポイント付近から、ネットワーク利用効率が囲うを始めている。これは、ネットワークが輻輳状態になる以前の状態から、輻輳制御機構が働き、過度なパケット廃棄等の処理が実行されてしまう結果である。
【０１０７】
本発明に従ったキュー長分布測定および測定結果に基づく輻輳制御では、コネクション密度が０．８を超えても、ネットワーク利用効率は上昇を続け、ＲＥＤ制御のような早期段階での利用効率の発生はなく、コネクション密度の上昇に伴った効率的なデータ中継処理が継続して実行されたことを示している。本発明に従ったキュー長分布測定および測定結果に基づく輻輳制御では、コネクション密度がほぼ０．９を超えるこポイントでピークを発生させて、その後、下降を開始している。この下降は、現実にネットワークトラフィックの増大に伴う輻輳が発生し、輻輳制御が開始された結果である。
【０１０８】
本発明のキュー長分布測定および測定結果に基づく輻輳制御では、ＦＩＦＯ制御、ＲＥＤ制御より、より高いコネクション密度ポイント（０．８〜０．９）において、高い効率のデータ中継を実現しており、ネットワークトラフィックの混雑度の変化に追従した最適な制御が実行されていることを示している。すなわち、本発明のキュー長分布測定および測定結果に基づく輻輳制御によれば、ネットワークトラフィックの１／ｆゆらぎの発生に際しても、最適な制御を実行可能となることを示している。
【０１０９】
最後に、本発明のデータ中継装置の構成例について、図１５を参照して説明する。データ中継装置７１０において、ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）７１１は、上述した輻輳制御処理、データ中継処理に係るプログラムを実行する制御手段である。ＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）７１２は、ＣＰＵ７１１が使用するプログラムや演算用のパラメータのうちの固定データ等を格納する。上述した処理プログラム等が格納される。ＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）７１３は、ＣＰＵ７１１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。上述したキュー長分布データを格納するメモリ領域として使用可能である。これらはＣＰＵバスなどから構成されるホストバス７２１により相互に接続されている。
【０１１０】
ホストバス７２１は、ＩＯコントローラ７１４を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ　Ｃｏｍｐｏｎｅｎｔ　Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス７２２に接続されている。
【０１１１】
キーボードＩ／Ｆ７１９は、ＣＰＵ７１１に各種の指令を入力するとき、使用者により操作される。ディスプレイＩ／Ｆ７１８は、液晶表示装置またはＣＲＴ（Ｃａｔｈｏｄｅ　Ｒａｙ　Ｔｕｂｅ）などに対するデータ出力用インタフェースから成り、各種情報をテキストやイメージで表示する。ＨＤＤ（Ｈａｒｄ　Ｄｉｓｋ　Ｄｒｉｖｅ）７１５は、ハードディスクを駆動し、ＣＰＵ７１１によって実行するプログラムや情報を記録または再生させる。
【０１１２】
ネットワークインタフェース（１），７１６、ネットワークインタフェース（２），７１７は、それぞれデータ送信端末あるいは上位の中継装置としてのルータに接続するインタフェース、およびデータ受信端末または下位の中継装置としてのルータに接続するインタフェースである。図６に示す中継装置の構成におけるデータ受信部５３１、データ送信部５３４に相当する。
【０１１３】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【０１１４】
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【０１１５】
例えば、プログラムは記憶媒体としてのハードディスクやＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ　Ｄｉｓｃ　Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ），ＭＯ（Ｍａｇｎｅｔｏ　ｏｐｔｉｃａｌ）ディスク，ＤＶＤ（Ｄｉｇｉｔａｌ　Ｖｅｒｓａｔｉｌｅ　Ｄｉｓｃ）、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
【０１１６】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ（Ｌｏｃａｌ　Ａｒｅａ　Ｎｅｔｗｏｒｋ）、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記憶媒体にインストールすることができる。
【０１１７】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【０１１８】
【発明の効果】
以上、説明してきたように、本発明の構成によれば、データ蓄積手段のデータ蓄積状況をキュー長分布情報として取得し、取得したキュー長分布情報に応じてパケット廃棄、あるいはＥＣＮビット設定等の輻輳制御処理態様を決定する構成としたので、データ蓄積手段のデータ蓄積状況をより反映したデータ中継制御が実行できる。
【０１１９】
また、本発明の構成によれば、図１４で説明したシミュレーション結果に基づくネットワーク利用効率の結果からも理解されるように、ネットワークが輻輳状態になる以前の状態から、輻輳制御機構が働き、過度なパケット廃棄等の処理が実行されてしまう従来のＲＥＤ等の平均キュー長に基づく制御と異なり、ネットワークトラフィックが混雑した状況にある場合においても、より高いネットワーク利用効率を維持することが可能となる。
【図面の簡単な説明】
【図１】従来のデータ中継装置の構成を説明するブロック図である。
【図２】従来のデータ中継装置の処理を説明する図である。
【図３】従来のデータ中継装置の処理を説明するフロー図である。
【図４】従来のデータ中継処理の一態様としてのＲＥＤに基づく処理について説明する図である。
【図５】本発明のデータ中継装置の適用されるネットワーク構成例について説明する図である。
【図６】本発明のデータ中継装置の構成を説明するブロック図である。
【図７】データ中継処理の一態様としてのＲＥＤに基づく処理について説明する図である。
【図８】本発明のデータ中継装置の処理としてのキュー長分布情報取得処理について説明する図である。
【図９】本発明のデータ中継装置の処理手順を説明するフロー図である。
【図１０】本発明に係るデータ中継処理のシミュレーション処理を実行するための構成例を示す図である。
【図１１】ＦＩＦＯ制御のシミュレーション結果として取得されたキュー長分布を示す図である。
【図１２】ＲＥＤ制御のシミュレーション結果として取得されたキュー長分布を示す図である。
【図１３】本発明のキュー長分布情報に基づく制御のシミュレーション結果として取得されたキュー長分布を示す図である。
【図１４】ＦＩＦＯ制御、ＲＥＤ制御、および本発明に係るキュー長分布情報に基づく制御のシミュレーション結果に基づいて取得したネットワーク利用効率の比較図である。
【図１５】本発明のデータ中継装置の構成例を示すブロック図である。
【符号の説明】
１０１　データ受信部
１０２　データバッファ
１０３　データ送信部
１０４　バッファ制御部
３０１　データ通信網
３１１〜３１４　データ中継装置
３２１〜３２３　データ送信装置
３３１〜３３３　データ受信装置
５０１〜５０３　データ送信装置
５１０　データ中継装置
５２０　制御部
５２１　キュー長分布計測部
５２２　計測結果判定部
５２３　輻輳制御部
５３０　データ入出力部
５３１　データ受信部
５３２　データ蓄積部（キュー）
５３３　読み出し制御部
５３４　データ送信部
５４１〜５４３　データ受信装置
５５０　ノード（データ中継装置）
５５１〜５５３　ノード
７１０　データ中継装置
７１１　ＣＰＵ
７１２　ＲＯＭ
７１３　ＲＡＭ
７１４　Ｉ／Ｏコントローラ
７１５　ＨＤＤ
７１６　ネットワークインタフェース
７１７　ネットワークインタフェース
７１８　ディスプレイインタフェース
７１９　キーボードインタフェース
７２１　ホストバス
７２２　外部バス
【図１】
2004104417.tif 000003
【図２】
2004104417.tif 000004
【図３】
2004104417.tif 000005
【図４】
2004104417.tif 000006
【図５】
2004104417.tif 000007
【図６】
2004104417.tif 000008
【図７】
2004104417.tif 000009
【図８】
2004104417.tif 000010
【図９】
2004104417.tif 000011
【図１０】
2004104417.tif 000012
【図１１】
2004104417.tif 000013
【図１２】
2004104417.tif 000014
【図１３】
2004104417.tif 000015
【図１４】
2004104417.tif 000016
【図１５】
2004104417.tif 000017