(57)【要約】インターネット等のＩＰネットワークにおける帯域制御装置１００に関し、各ユーザ２００のパケット７００を廃棄することを無くすること、また、ユーザ２００に帯域を公平に割り当てる。帯域計測部１０ａが、ユーザ毎に１又は複数のＴＣＰセッションの合計帯域５０ａ＿１２を計測し、ウィンドウサイズ変更部２０ａが、合計帯域５０ａ＿１２が予め設定された最大帯域値５０ａ＿１を越えているユーザのＴＣＰセッション確認応答パケット７００のウィンドウサイズを減少させる。又は、確認応答時間変更部が、該合計帯域が予め設定された最大帯域値を越えているユーザのＴＣＰセッション確認応答パケットを遅延させる。
2005006673.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ毎に１又は複数のＴＣＰセッションの合計帯域を計測する帯域計測部と、
該合計帯域が、予め設定された最大帯域値を越えているか否かを判定する判定部と、
該合計帯域が該最大帯域値を越えているユーザのＴＣＰセッション確認応答パケットのウィンドウサイズを減少させるウィンドウサイズ変更部と、
を備えたことを特徴とする帯域制御装置。
【請求項２】
請求の範囲１において、
該判定部は、該合計帯域が予め設定された帯域制限解除値を越えているか否かを判定し、
該ウィンドウサイズ変更部は、該合計帯域が該帯域制限解除値を越えていないユーザのＴＣＰセッション確認応答パケットのウィンドウサイズを増加させることを特徴とした帯域制御装置。
【請求項３】
ユーザ毎に１又は複数のＴＣＰセッションの合計帯域を計測する帯域計測部と、
該合計帯域が予め設定された最大帯域値を越えているか否かを判定する判定部と、
該合計帯域が該最大帯域値を越えているユーザのＴＣＰセッション確認応答パケットを所定の時間だけ遅延させる確認応答時間変更部と、
を備えたことを特徴とする帯域制御装置。
【請求項４】
請求の範囲３において、
該判定部は、該合計帯域が予め設定された帯域制限解除値を越えているか否かを判定し、
該確認応答時間変更部は、該合計帯域が該帯域制限解除値を越えていないユーザのＴＣＰセッション確認応答パケットの該所定の時間の遅延量を少なくするか又は無くすることを特徴とした帯域制御装置。
【請求項５】
請求の範囲３又は４において、
該所定の時間が、該確認応答パケットを受信した時から該確認応答パケットに対するデータパケットを受信した時までの時間に基づき決定されることを特徴とした帯域制御装置。
【請求項６】
ユーザ毎に１又は複数のＴＣＰセッションの合計帯域を計測し、全ユーザの該合計帯域を総計した総計帯域を算出する帯域計測部と、
該総計帯域が装置全体の帯域に基づき決定される最大帯域制限値を越えているか否かを判定する判定部と、
該総計帯域が該最大帯域制限値を越えたときのみ、ユーザ毎の帯域制限を行う帯域制限部と、
を備えたことを特徴とする帯域制御装置。
【請求項７】
請求の範囲６において、
該帯域制限部が、該総計帯域が該最大帯域制限値を越えたとき、ＴＣＰセッション確認応答パケットのウィンドウサイズを減少させるウィンドウサイズ変更部であることを特徴とした帯域制御装置。
【請求項８】
請求の範囲７において、
該判定部は、該合計帯域が予め設定された該最大帯域制限値以下の帯域制限解除値を越えているか否かを判定し、
該ウィンドウサイズ変更部は、該合計帯域が該帯域制限解除値を越えていないユーザのＴＣＰセッション確認応答パケットのウィンドウサイズを増加させることを特徴とした帯域制御装置。
【請求項９】
請求の範囲６において、
該帯域制限部が、該総計帯域が該最大帯域制限値を越えたとき、ＴＣＰセッション確認応答パケットを遅延させる確認応答時間変更部であることを特徴とした帯域制御装置。
【請求項１０】
請求の範囲９において、
該判定部は、該合計帯域が予め設定された該最大帯域制限値以下の帯域制限解除値を越えているか否かを判定し、
該確認応答時間変更部は、該合計帯域が該帯域制限解除値を越えていないユーザのＴＣＰセッション確認応答パケットの時間遅延量を少なくするか又は無くすることを特徴とした帯域制御装置。
【請求項１１】
請求の範囲１において、
該帯域計測部が、１又は複数の第１データパケットに対する第１確認応答から、該第１確認応答後の１又は複数の第２データパケットに対する第２確認応答までの確認応答間時間を計測するタイマと、該１又は複数の第２データパケットのデータ長を計数する計数部と、該合計データ長を該確認応答間時間で割った値を帯域値とする演算部と、を備えたことを特徴とする帯域制御装置。
【発明の詳細な説明】
【技術分野】  本発明は帯域制御装置に関し、特に、インターネット等のＩＰネットワークにおける帯域制御装置に関するものである。
近年、インターネットは、ｘＤＳＬ（ｘＤｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）及びＦＴＴＨ（Ｆｉｂｅｒ  Ｔｏ  Ｔｈｅ  Ｈｏｍｅ）等の高速アクセス回線が普及し、ますます広帯域化が進んでいる。これに伴い、コンテンツもユーザが高速アクセス回線を利用することを前提にした大容量のものが増加している。また、ピア・ツー・ピア（Ｐｅｅｒ  Ｔｏ  Ｐｅｅｒ）によるユーザ同士間の大量データ転送も増加している。このようなネットワークにおいては、有限の伝送帯域を公平にユーザに割り当てる帯域制御技術が重要である。
【背景技術】  図１８は、一般的なネットワークの構成を示している。このネットワークは、ルータ１１０ｚ＿５〜１１０ｚ＿８を含むインターネット３００、ルータ１１０ｚ＿１〜１１０ｚ＿４を含むインターネット・サービス・プロバイダ（ＩＳＰ：Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）３１０＿１、コンテンツ５１０＿１を有するサーバ５００＿１が接続されているＩＳＰ３１０＿２、コンテンツ５１０＿２を有するサーバ５００＿２が接続されているＩＳＰ３１０＿３、及びコンテンツ２１０を有するユーザ端末２００＿４が接続されているＩＳＰ３１０＿４で構成されている。
インターネット３００は、ルータ１１０ｚ＿５及びルータ１１０ｚ＿１を経由してＩＳＰ３１０＿１に接続されている。さらに、インターネット３００は、それぞれ、ルータ１１０ｚ＿６〜１１０ｚ＿８を経由して、ＩＳＰ３１０＿２〜３１０＿４に接続されている。
また、ルータ１１０ｚ＿２には、ユーザ端末２００＿３が接続され、ルータ１１０ｚ＿３には、ユーザ端末２００＿１，２００＿２が接続されている。
ユーザ端末２００＿１は、それぞれ、ＴＣＰ／ＩＰプロトコルにしたがって、サーバ５００＿１、サーバ５００＿２、及びユーザ端末２００＿４の間にセッション４１０＿１〜４１０＿３（以下、符号４１０で総称する場合がある。）を確立し、コンテンツ５１０＿１〜５１０＿３（以下、符号５１０で総称する場合がある。）のデータファイルをダウンロードしている。
図１９は、図１８において、セッション４１０の確立、及びデータファイルのダウンロードで用いられるＴＣＰ／ＩＰパケット７００のフォーマットを示している。
ＴＣＰ／ＩＰパケット７００は、ＩＰヘッダ（この例ではＩＰｖ４ヘッダ）７１０、ＴＣＰヘッダ７２０、及びデータ７３０で構成されている。
ＩＰヘッダ７１０には、サービスタイプ７１０ａ、送信元アドレス７１０ｂ、宛先アドレス７１０ｃ等が含まれている。ＴＣＰヘッダ７２０には、送信元ポート番号７２０ａ、宛先ポート番号７２０ｂ、シーケンス番号７２０ｃ、確認応答番号７２０ｄ、コントロール７２０ｅ、ウィンドウ７２０ｆ、及びオプション７２０ｇが含まれている。コントロール７２０ｅには、確認応答（ＡＣＫ）ビット７２０ｅ１及び確立要求（ＳＹＮ）ビット７２０ｅ２が含まれ、オプション７２０ｇには、ＭＳＳ（Ｍａｘ  Ｓｅｇｍｅｎｔ  Ｓｉｚｅ：ＴＣＰセブメントのデータ部分の最大サイズ（ＭＡＣフレームの場合、１４６０Ｂｙｔｅ）、図示せず。）が含まれている。
図２０は、図１８においてユーザ端末２００＿１が、サーバ５００＿１からコンテンツ５１０＿１をダウンロードする場合の動作手順を示している。この手順を以下に説明する。
ステップＴ９００（Ｔ９０１〜Ｔ９０３）：ユーザ端末２００＿１とサーバ５００＿１との間で３ウェイハンドシェイクが行われる。なお、３ウェイハンドシェイクは、ユーザ端末２００＿１とサーバ５００＿１との間で双方向にセッションを確立するために制御用データが交換されるが、ここでは、サーバ５００＿１からユーザ端末２００＿１に向かうセッション確立のための主に制御用データを示す。
ステップＴ９０１：サーバ５００＿１は、確立要求ビット（ＳＹＮ）７２０ｅ１＝“１”に設定したパケット７００＿１２１を、ユーザ端末２００＿１に送出して、セッション４１０の確立を要求する。
ステップＴ９０２：ユーザ端末２００＿１は、確立要求ビット７２０ｅ２＝“１”、確認応答ビット（ＡＣＫ）７２０ｅ１＝“１”、ＭＳＳ＝“１０００”及びウィンドウ７２０ｆ＝“４０００”に設定したパケット７００＿１２２をサーバ５００＿１に返送し、セッション４１０の確立要求に対する応答を行うとともに、逆方向のセッション４１０の確立を要求する。
ステップＴ９０３：サーバ５００＿１は、確認応答ビット（ＡＣＫ）７２０ｅ１＝“１”のパケット７００＿１２３をユーザ端末２００＿１に返送し、セッション４１０の確立要求に応答する。これにより、ユーザ端末２００＿１とサーバ５００＿１との間に、セッション４１０が確立する。
ステップＴ９０４：サーバ５００＿１は、シーケンス番号７２０ｃ＝“１０００”のデータパケット７００＿１２４をユーザ端末２００＿１に送信する。
ステップＴ９０５：ユーザ端末２００＿１は、確認応答ビット７２０ｅ１＝“１”、次シーケンス番号７２０ｃを示す確認応答番号７２０ｄ＝“２０００”、及びウィンドウ７２０ｆ＝“４０００”が設定された確認応答パケット７００＿１２４をサーバ５００＿１に応答する。
ステップＴ９０６：この後、スロースタートアルゴリズムにしたがってデータパケット７００が、サーバ５００＿１からユーザ端末２００＿１に伝送されるが、ここでは、説明は省略する。
ステップＴ９０７〜Ｔ９１０：サーバ５００＿１は、それぞれ、シーケンス番号７２０ｃ＝“２０００”，“３０００”，“４０００”，“５０００”のデータパケット７００＿１２６〜７００＿１２９をユーザ端末２００＿１に送信する。
ステップＴ９１１：ユーザ端末２００＿１は、確認応答ビット７２０ｅ１＝“１”、確認応答番号７２０ｄ＝“６０００”、及びウィンドウ７２０ｆ＝“４０００”が設定された確認応答パケット７００＿１３０をサーバ５００＿１に応答する。
ステップＴ９１２〜Ｔ９１５：サーバ５００＿１は、それぞれ、シーケンス番号７２０ｃ＝“６０００”，“７０００”，“８０００”，“９０００”のパケット７００＿１３１〜７００＿１３４をユーザ端末２００＿１に送信する。
ステップＴ９１６：ユーザ端末２００＿１は、確認応答ビット７２０ｅ１＝“１”、確認応答番号７２０ｄ＝“１００００”、及びウィンドウ７２０ｆ＝“４０００”を示す確認応答パケット７００＿１３５をサーバ５００＿１に応答する。
これにより、確認応答番号７２０ｄ＝“１０００”〜“１００００”のデータが、サーバ５００＿１からユーザ端末２００＿１に送信されたことになる。
図２１は、図１８に示したネットワークにおいて、ユーザ端末２００＿１が、サーバ５００＿１のコンテンツ５１０＿１をダウンロードするため、ルータ１１０ｚ＿３，１１０ｚ＿１，１１０ｚ＿５，及び１１０ｚ＿６を経由するセッション４１０＿１（４１０＿１ａ，４１０＿１ｂ）を確立し、ユーザ端末２００＿２が、サーバ５００＿２のコンテンツ５１０＿２をダウンロードするため、ルータ１１０ｚ＿３，１１０ｚ＿１，１１０ｚ＿５，及び１１０ｚ＿７を経由するセッション４１０＿２（４１０＿２ａ，４１０＿２ｂ）を確立し、ユーザ端末２００＿３が、ユーザ端末２００＿４のコンテンツ５１０＿２をダウンロードするため、ルータ１１０ｚ＿２，１１０ｚ＿１，１１０ｚ＿５，及び１１０ｚ＿８を経由するセッション４１０＿３（４１０＿３ａ，４１０＿３ｂ）を確立している。
このとき、ユーザ端末２００＿１が、サーバ５００＿１のコンテンツ５１０＿１をダウンロードを高速で行うため、セッション４１０＿１と並列にセッション４１０＿４（４１０＿４ａ，４１０＿４ｂ）及びセッション４１０＿５（４１０＿５ａ，４１０＿５ｂ）を確立した場合、ルータ１１０ｚ＿１の帯域が不足し、パケットの輻輳が発生し、例えば、セッション４１０＿２及びセッション４１０＿３（破線表示）のパケットが廃棄される。
この廃棄されたパケットに対するＴＣＰのパケット再送が行われ、この再送がますますパケットの輻輳の原因なる。
ＤｉｆｆＳｅｒｖｅ帯域制御
ＩＰネットワークにおける従来の帯域制御方法としてＤｉｆｆＳｅｒｖ（Ｄｉｆｆｅｒｅｎｃｉａｔｅｄ  Ｓｅｒｖｉｃｅ）技術がある。このＤｉｆｆＳｅｒｖ技術は、ＩＰパケットのＴＯＳフィールドを用いて帯域制御を行っている。
ＤｉｆｆＳｅｒｖｅは、パケットに優先順位を割り当て、インターネット内部の中継処理の優先制御を行う技術である。ＩＰパケットのヘッダに用意されていたＴＯＳフィールドを、新たにＤＳ（ｄｉｆｆｓｅｒｖｅ）フィールドとして再定義し，このフィールドにパケット優先度を記述する。
優先順序が低いパケットは輻輳時に廃棄させるポリシング機能がある。また、出力時のデータレートを一定としてバースト性を排除したシェーピング機能がある。
すなわち、この帯域制御は、或る設定値以上の帯域（ｔｈｒｏｕｇｈｐｕｔ）でパケットを伝送するとパケット廃棄が発生するものであり、この帯域制御されたＴＣＰセッション上では廃棄されたパケットに対する再送要求が行われ、これによって再送されたパケットが余計な帯域（ｂａｎｄｗｉｄｔｈ）を消費するという問題があった。
ＲＥＤ帯域制御
ＤｉｆｆＳｅｒｖ技術の問題点を解決する帯域制御方法として、近年、ＲＥＤ（Ｒａｎｄｏｍ  Ｅａｒｌｙ  Ｄｅｔｅｃｔｉｏｎ）技術による帯域制御方法がある。この帯域制御方法は、パケットの輻輳廃棄が起こる前に予め或る程度のパケットを廃棄しておくことで、輻輳を回避しようとするものである。しかしながら、ＲＥＤ（Ｒａｎｄｏｍ  Ｅａｒｌｙ  Ｄｅｔｅｃｔｉｏｎ）技術による帯域制御は、意図的なパケット廃棄が発生してしまうという問題があった。
ＴＣＰレイヤ帯域制御技術
また、ＴＣＰレイヤにおける従来の帯域制御技術として、（１）スロースタートアルゴリズムや、（２）輻輳回避アルゴリズム等の方式がある。
（１）スロースタートアルゴリズムは、データ送信の最初の段階ではＴＣＰセグメント（以下、パケットと称することがある。）の１往復時間に１ＭＳＳまでのデータを送出し、その後、確認応答が返って来た数分だけ増やして送出するアルゴリズムである。
（２）輻輳回避アルゴリズムは、ＴＣＰセグメントの１往復時間に送信データ量を１ＭＳＳずつ増加させるアルゴリズムである。
しかしながら、これらのアルゴリズム（１）（２）だけではネットワークの輻輳時に結局パケット廃棄が発生するため、前述の帯域制御と同様の問題がある。
ストリーム型通信帯域制御
また、ストリームを統合し扱う情報通信ネットワークに接続された情報通信端末装置（例えば、サーバ、コンピュータ等）において、音声・画像等のマルチメディアデータ、コンピュータデータ等のストリーム型通信における帯域制御方法として次のようなものがある。
すなわち、通信アプリケーションと独立に帯域制御手段を設け、この手段は、ユーザが希望する帯域と使おうとする通信アプリケーションの必要とする帯域とから得られる値を本情報通信端末装置の要求帯域として算出し、この要求帯域がその時点の伝送路の利用可能帯域以下である場合、伝送路の帯域を予約した後、通信アプリケーションのストリームの送受信を開始し、利用可能帯域を越えている場合、ユーザからの通信要求を拒絶する（例えば、特許文献１参照。）。
しかしながら、この帯域制御方法は、情報通信端末装置に対してユーザが要求帯域を予約するものであり、帯域が無ければユーザ要求は拒絶され、ユーザに対して公平でなく、ネットワークにおける輻輳廃棄も発生する。
【特許文献１】      特開平１１−９８１５２号
以上説明したように、インターネットにおけるダウンロードデータの大容量化や、ピア・ツー・ピアの普及による大容量データ転送が増加すると共に、ユーザは実行速度を上げるために複数のダウンロードを同時間帯に行うことが多くなっている。しかし、ルータ伝送帯域やルータリソースは全ユーザ回線帯域の総和を保証したものではないため、輻輳廃棄やネットワーク輻輳崩壊などの弊害が発生している。
また、ＴＣＰ輻輳制御はセッション単位で行うものであり複数セッション接続しているユーザとそうでないユーザとの間で不公平が生じる。また、ウィンドウサイズを意図的に大きく設定することで帯域を奪うユーザも考えらる。
さらに、従来のＤｉｆｆｓｅｒｖｅによる優先制御では優先度の低いパケットが廃棄され、ポリシングによる帯域制御によっても帯域超過分は廃棄され、ＲＥＤにおいても廃棄を伴う。この結果、パケット再送が発生しネットワークの負荷を上げてしまう。
従って本発明は、インターネット等のＩＰネットワークにおける帯域制御装置において、各ユーザのパケットを廃棄することを無くすること、また、ユーザに帯域を公平に割り当てることを課題とする。
【発明の開示】
上記の課題を解決するため、本発明の帯域制御装置は、ユーザ毎に１又は複数のＴＣＰセッションの合計帯域を計測する帯域計測部と、該合計帯域が、予め設定された最大帯域値を越えているか否かを判定する判定部と、該合計帯域が該最大帯域値を越えているユーザのＴＣＰセッション確認応答パケットのウィンドウサイズを減少させるウィンドウサイズ変更部とを備えたことを特徴としている。
図１は、本発明の帯域制御装置の原理を示している。ユーザ端末２００＿１が、例えば、それぞれサーバ５００＿１，５００＿２からファイルをダウンロードするとき、ユーザ端末２００＿１とサーバ５００＿１との間では、３つのＴＣＰセッション４１０＿１〜４１０＿３が確立され、ユーザ端末２００＿１とサーバ５００＿２との間では、１つのＴＣＰセッション４１０＿４が確立される。すなわち、１又は複数のＴＣＰセッションが確立され、このＴＣＰセッション４１０＿１〜４１０＿４を経由してファイルがダウンロードされる。
ユーザ端末２００＿２，２００＿３についても、同様にファイルをダウンロードするとき、１又は複数のＴＣＰセッションが確立される（図示せず。）。
帯域計測部は、ユーザ端末２００＿１の各ＴＣＰセッション４１０＿１〜４１０＿４の帯域を合計した値（合計帯域）を計測する。判定部は、この合計帯域が予め設定された最大帯域値を越えているか否かを判定し、その判定結果をウィンドウサイズ変更部に通知する。
ウィンドウサイズ変更部は、ユーザ端末２００＿１のＴＣＰセッション４１０＿１〜４１０＿４の確認応答パケットのウィンドウサイズ（図２０参照。）を減少させる。
これにより、サーバ５００＿１，５００＿２からユーザ端末２００＿１に送出される単位時間当たりの合計データパケット（図示せず。）数が少なくなり、以て合計帯域（帯域）が少なくなり、いずれかのユーザのパケットを廃棄することなく、ユーザ間で帯域を公平に割り当てることが可能になる。
なお、予め設定する最大スループット値は、全ユーザに同一値であってもよいし、ユーザ毎に異なる値にしてもよい。
また、上記の本発明において、該判定部は、該合計帯域が予め設定された帯域制限解除値を越えているか否かを判定し、該ウィンドウサイズ変更部は、該合計帯域が該帯域制限解除値を越えていないユーザのＴＣＰセッション確認応答パケットのウィンドウサイズを増加させることが可能である。
すなわち、判定部は、各ユーザの合計帯域が予め設定された帯域制限解除値を越えているか否かを判定し、越えていない場合、帯域制限部に越えていないユーザを通知する。ウィンドウサイズ変更部は、通知されたユーザのＴＣＰセッション確認応答パケットのウィンドウサイズを増加させる。
これにより、合計帯域が帯域制限解除値を越えていないユーザの帯域を増加させることができる。
また、上記の課題を解決するため、本発明の帯域制御装置は、ユーザ毎に１又は複数のＴＣＰセッションの合計帯域を計測する帯域計測部と、該合計帯域が予め設定された最大帯域値を越えているか否かを判定する判定部と、該合計帯域が該最大帯域値を越えているユーザのＴＣＰセッション確認応答パケットを所定の時間だけ遅延させる確認応答時間変更部とを備えたことを特徴としている。
すなわち、図１において、帯域計測部は、ユーザ端末２００＿１の各ＴＣＰセッション４１０＿１〜４１０＿４の帯域を合計した値（合計帯域）を計測し、判定部は、この値が予め設定された最大帯域値を越えているか否かを判定し、その判定結果を確認応答時間変更部に通知する。
確認応答時間変更部は、ユーザ端末２００＿１の、例えばＴＣＰセッション４１０＿１の確認応答パケット７００＿１を遅延させた確認応答パケット７００＿１’をサーバ５００＿１に送出する。
これにより、サーバ５００＿１からユーザ端末２００＿１に送出されるデータパケット（図示せず。）の送出タイミング遅れ、すなわち、ユーザ端末２００＿１の合計帯域が減少し、いずれかのユーザのパケットを廃棄することなく、ユーザ間で帯域を公平に割り当てることが可能になる。
また、上記の本発明において、該判定部は、該合計帯域が予め設定された帯域制限解除値を越えているか否かを判定し、該確認応答時間変更部は、該合計帯域が該帯域制限解除値を越えていないユーザのＴＣＰセッション確認応答パケットの該所定の時間の遅延量を少なくするか又は無くすることが可能である。
すなわち、判定部は、各ユーザの合計帯域が予め設定された帯域制限解除値を越えていないか否かを判定し、越えていない場合、確認応答時間変更部に越えていないユーザを通知する。確認応答時間変更部は、通知されたユーザのＴＣＰセッション確認応答パケットの送出時間遅延を少なくするか又は無くする。
これにより、合計帯域が帯域制限解除値を越えていないユーザの帯域を増加させることができる。
さらに、上記の本発明において、該所定の時間が、該確認応答パケットを受信した時から該確認応答パケットに対するデータパケットを受信した時までの時間に基づき決定されることが可能である。
すなわち、確認応答パケットをユーザ側から受信した時からこの確認応答パケットに対するデータパケットを、例えばサーバから受信した時までの往復時間を計測し、この時間に基づき決定した、例えば、該往復時間の２倍だけ、その後、受信した確認応答パケットを遅延させる。なお、該往復時間は、複数の往復時間を平均した平均往復時間としてもよい。
また、上記の課題を解決するため、本発明の帯域制御装置は、ユーザ毎に１又は複数のＴＣＰセッションの合計帯域を計測し、全ユーザの該合計帯域を総計した総計帯域を算出する帯域計測部と、該総計帯域が装置全体の帯域に基づき決定される最大帯域制限値を越えているか否かを判定する判定部と、該総計帯域が該最大帯域制限値を越えたときのみ、ユーザ毎の帯域制限を行う帯域制限部とを備えたことを特徴としている。
すなわち、帯域計測部は、各ユーザの合計帯域を計測し、全ユーザの合計帯域を総計した総計帯域を算出する。装置全体の帯域に余裕が無くなるとき帯域値を最大帯域制限値として予め決定されており、判定部は、該総計帯域が最大帯域制限値を越えているか否かを判定し、帯域制限部は、最大帯域制限値を越えたときのみ、ユーザ毎の帯域制限を行う。これにより、パケットの廃棄を無くすることが可能になる。
また、上記の本発明において、該帯域制限部を、該総計帯域が該最大帯域制限値を越えたとき、ＴＣＰセッション確認応答パケットのウィンドウサイズを減少させるウィンドウサイズ変更部としてもよい。
すなわち、帯域制限部として、ウィンドウサイズ変更部を用いて、総計帯域が最大帯域制限値を越えたとき、ＴＣＰセッション確認応答パケットのウィンドウサイズを減少させるようにしてもよい。
また、上記の本発明において、該判定部は、該合計帯域が予め設定された該最大帯域制限値以下の帯域制限解除値を越えているか否かを判定し、該ウィンドウサイズ変更部は、該合計帯域が該帯域制限解除値を越えていないユーザのＴＣＰセッション確認応答パケットのウィンドウサイズを増加させてもよい。
これにより、合計帯域が帯域制限解除値を越えていないユーザの帯域を増加させることができる。
また、上記の本発明において、該帯域制限部を、該総計帯域が該最大帯域制限値を越えたとき、ＴＣＰセッション確認応答パケットを遅延させる確認応答時間変更部としてもよい。
すなわち、帯域制限部として、確認応答時間変更部を用いて、総計帯域が最大帯域制限値を越えたとき、ＴＣＰセッション確認応答パケットを遅延させるようにしてもよい。
また、上記の本発明において、該判定部は、該合計帯域が予め設定された該最大帯域制限値以下の帯域制限解除値を越えているか否かを判定し、
該確認応答時間変更部は、該合計帯域が該帯域制限解除値を越えていないユーザのＴＣＰセッション確認応答パケットの時間遅延量を少なくするか又は無くするようにしてもよい。
これにより、合計帯域が帯域制限解除値を越えていないユーザの帯域を増加させることができる。
さらに、上記の本発明において、帯域計測部は、１又は複数の第１データパケットに対する第１確認応答から、該第１確認応答後の１又は複数の第２データパケットに対する第２確認応答までの確認応答間時間を計測するタイマと、該１又は複数の第２データパケットのデータ長を計数する計数部と、該合計データ長を該確認応答間時間で割った値を帯域値とする演算部とを備えることができる。
すなわち、タイマは、１又は複数の第１データパケットに対する第１確認応答から、該第１確認応答後の１又は複数の第２データパケットに対する第２確認応答までの確認応答間時間を計測する。
計数部は、例えば、第１確認応答及び第２確認応答に含まれる確認応答番号に基づき、第１確認応答から第２確認応答までのデータ長を計測する。なお、このデータ長は、第１確認応答から第２確認応答までに受信したデータパケットに基づき計測してもよい。
演算部は、該第１確認応答から第２確認応答までに送信された１又は複数の第２データパケットの合計データ長を確認応答間時間で割った値を帯域値とする。
これにより、例えば、ＴＣＰセッションの帯域を計測することができる。
なお、第１確認応答と第２確認応答の間に複数の確認応答があってもよく、この場合、より平均的な帯域値を演算することが可能である。
【図面の簡単な説明】  図１は、本発明に係る帯域制御装置の原理を示したブロック図である。
図２は、本発明に係る帯域制御装置の実施例（１：ウィンドウサイズ変更）を示しブロック図である。
図３は、本発明に係る帯域制御装置におけるウィンドウサイズ変更の動作手順例（１）を示したシーケンス図である。
図４は、本発明に係る帯域制御装置におけるウィンドウサイズ変更の管理テーブル例（１）を示した図である。
図５は、本発明に係る帯域制御装置におけるウィンドウサイズ変更の動作手順例（２）を示したシーケンス図である。
図６は、本発明に係る帯域制御装置におけるウィンドウサイズ変更の動作手順例（３）を示したシーケンス図である。
図７は、本発明に係る帯域制御装置におけるウィンドウサイズ変更の管理テーブル例（１：続き）を示した図である。
図８は、本発明に係る帯域制御装置のウィンドウサイズ変更の動作手順例（４）を示したシーケンス図である。
図９は、本発明に係る帯域制御装置のウィンドウサイズ変更の動作手順例（５）を示したシーケンス図である。
図１０は、本発明に係る帯域制御装置の動作手順例（５：続き）を示したシーケンス図である。
図１１は、本発明に係る帯域制御装置の実施例（２：確認応答時間変更）を示しブロック図である。
図１２は、本発明に係る帯域制御装置における確認応答時間変更の管理テーブル例（２）を示した図である。
図１３は、本発明に係る帯域制御装置における確認応答時間変更の動作手順例（１）を示したシーケンス図である。
図１４は、本発明に係る帯域制御装置のウィンドウサイズ変更及び確認応答時間変更における合計帯域の推移例を示した図である。
図１５は、本発明に係る帯域制御装置全体の帯域制御を行った場合のネットワーク構成例を示したブロック図である。
図１６は、本発明に係る帯域制御装置全体の帯域制御を行った場合の管理テーブル例を示した図である。
図１７は、本発明に係る帯域制御装置における帯域制御後の最適化が行われたネットワークを示したブロック図である。
図１８は、一般的なルータ（帯域制御装置）を用いたネットワーク構成を示したブロック図である。
図１９は、一般的なＴＣＰ／ＩＰパケットのフォーマットを示した図である。
図２０は、一般的な帯域制御装置を用いたネットワークにおけるデータ転送動作手順を示したシーケンス図である。
図２１は、一般的な帯域制御装置を用いたネットワークにおける輻輳発生状態を示したブロック図である。
【符号の説明】
2005006673.tif 000003
2005006673.tif 000004
図中、同一符号は同一又は相当部分を示す。
【発明を実施するための最良の形態】実施例（１）：ウィンドウサイズ変更
図２は、本発明に係る帯域制御装置１００ａの実施例（１）を示しており、この帯域制御装置１００ａは、帯域計測部１０ａ、ウィンドウサイズ変更部２０ａ、最大帯域超過判定部３０、及び最大帯域値／帯域制限解除値設定部４０を備えている。
帯域計測部１０ａは、管理テーブル５０ａ、ＩＰキャプチャ１１、及びＴＣＰキャプチャ１２を備えている。管理テーブル５０ａには、タイマ５０ａ＿１０が含まれている。
動作において、最大帯域値／帯域制限解除値設定部４０は、管理テーブル５０に予め設定されている、又は外部からオペレータが設定した最大帯域値５０ａ＿１及び帯域制限解除値５０ａ＿２を最大帯域超過判定部３０に与える。帯域計測部１０ａは、ユーザ端末２００＿１から受信した確認応答パケット７００＿ａに基づきユーザ毎に合計帯域５０ａ＿１２を計測し、この合計帯域５０ａ＿１２を判定部３０に与えるとともに確認応答パケット７００＿ａをウィンドウサイズ変更部２０ａに送出する。
判定部３０は、最大帯域値５０ａ＿１及び帯域制限解除値５０ａ＿２と合計帯域５０ａ＿１２とを比較して、帯域制御を行うか否かの判定結果８０１をウィンドウサイズ変更部２０ａに与える。ウィンドウサイズ変更部２０ａは、判定結果８０１が帯域制御を行うことを示すとき、ウィンドウ７２０ｆ（図１９参照。）を変更した確認応答パケット７００＿ｂをサーバ５００＿１に送信する。これにより、ユーザ毎に帯域（スループット）を制御することが可能になる。
動作手順例
図３は、本発明の帯域制御装置１００ａの動作手順例を示している。この動作手順例を以下に説明する。帯域制御装置１００ａは、図１８で示したユーザ端末２００＿１（ＩＰアドレス＝“１．１．１．１”）とサーバ５００＿１との間の、例えば、輻輳が発生する可能性のあるルータ１１０ｚ＿１に実装される。なお、帯域制御装置１００ａは、ユーザ端末２００＿１又はサーバ５００＿１に実装してもよい。
ステップＴ２００〜Ｔ２０３：図２１に示した従来例のステップＴ９０１〜Ｔ９０３と同様にステップＴ２００，Ｔ２０１，Ｔ２０３で、パケット７００＿２１〜７００＿２３が送受信される３ウェイハンドシェイクが行われ、ユーザ端末２００＿１とサーバ５００＿１との間でセッション４１０＿１が確立されるが、異なる点は、ステップＴ２０２が追加されていることである。
ステップＴ２０２：帯域制御装置１００ａ（図２参照。）の帯域計測部１０ａにおいて、ＴＣＰキャプチャ１２はパケット７００＿２２のＴＣＰヘッダ７２０の確認応答ビット７２０ｅ１＝“１”、確立要求ビット７２０ｅ２＝“１”を検出し、パケット７００＿２が確認応答／確立要求パケットであると認識する。そして、ＩＰキャプチャ１１は、パケット７００＿２２のＩＰヘッダ７１０の送信元アドレス（ＩＰアドレス）７１０ｂ＝“１．１．１．１”を検出し、この送信元アドレス７１０ｂ＝“１．１．１．１”に対応する、すなわち、ユーザ端末２００＿１に対応する管理テーブル５０ａを作成する。
図４は、図２に示した管理テーブル５０ａの実施例を示している。この管理テーブル５０ａは、ユーザ端末２００＿１（送信元アドレス＝“１．１．１．１”）に対応したテーブルであり、予め登録された最大帯域値５０ａ＿１＝“２．８Ｍ（Ｂｙｔｅ／ｓ）”及び帯域制限解除値５０ａ＿２＝“２．３Ｍ（Ｂｙｔｅ／ｓ）”、並びにセッション５０ａ＿３、送信元ポート５０ａ＿４、宛先ポート５０ａ＿５、確認応答番号５０ａ＿６、確認応答番号５０ａ＿７、データ長５０ａ＿８、ウィンドウ５０ａ＿９、確認応答間時間５０ａ＿１０（タイマを兼用）、帯域５０ａ＿１１、及び合計帯域５０ａ＿１２で構成されている。
同図（１）及び（２）の管理テーブル５０ａは、ユーザ端末２００＿１とサーバ５００＿１との間にセッション４１０＿１のみ確立された場合を示している。
ステップＴ２０４：サーバ５００＿１は、データパケット７００＿２４をユーザ端末２００＿１に宛てたデータ転送を開始する。ユーザ端末２００＿１は、サーバ５００＿１に宛てて確認応答パケット（図示せず。）を送出する。データ転送開始から一定期間は、スロースタート期間であり、この期間にも確認応答パケット及びデータパケットの送受信は行われるが、スロースタート期間中のデータ転送量は大容量転送中に比べると小さいことから、帯域の計測を行わないので図示及び説明は省略する。スロースタート期間終了後、計測監視状態（ユーザ単位の帯域計測）になる。
ステップＴ２０５：ユーザ端末２００＿１は、サーバ５００＿１に宛てて確認応答パケット７００＿２５を送出する。
ステップＴ２０６：帯域制御装置１００ａにおいて、帯域計測部１０ａは、パケット７００＿２５のＴＣＰヘッダ７２０の確認応答ビット７２０ｅ１＝“１”であることにより確認応答パケット７００＿２５であると判断する。
そして、帯域計測部１０ａは、確認応答パケット７００＿２５のＩＰヘッダ７１０及びＴＣＰヘッダ７２０を参照して、それぞれ、ＩＰアドレス＝“１．１．１．１”の管理テーブル５０ａのセッション５０ａ＿３、セッション４１０＿１に対応した送信元ポート５０ａ＿４、宛先ポート５０ａ＿５、確認応答番号５０ａ＿６、及びウィンドウ５０ａ＿９に、セッション番号＝“４１０＿１”、パケット７００＿２５の送信元ポート番号７２０ａ＝“１０００”、宛先ポート番号７２０ｂ＝“２０００”、確認応答番号７２０ｄ＝“２０００”、及びウィンドウ７２０ｆ＝“３０００”を設定する（図４（１）参照。）。さらに、帯域計測部１０ａは、タイマ５０ａ＿１０を起動する。
ステップＴ２０７〜２０９：サーバ５００＿１は、受信した確認応答パケット７００＿２５のウィンドウ７２０ｆ＝“３０００”にしたがって、それぞれ、シーケンス番号＝“２０００”，“３０００”，及び“４０００”のデータパケット７００＿２６〜７００＿２８をユーザ端末２００＿１に送出する。
ステップＴ２１０：ユーザ端末２００＿１は、サーバ５００＿１に宛てて、確認応答番号７２０ｄ＝“５０００”及びウィンドウ７２０ｆ＝“３０００”が設定された確認応答パケット７００＿２９を送出する。
ステップＴ２１１：帯域制御装置１００ａにおいて、帯域計測部１０ａは、それぞれ、受信した確認応答パケット７００＿２９の確認応答番号７２０ｄ＝“５０００”及び最新データのウィンドウ７２０ｆ＝“３０００”を、管理テーブル５０ａ（図４（２）参照）の確認応答番号５０ａ＿７及びウィンドウ５０ａ＿９に設定する。また、帯域計測部１０ａは、タイマ５０ａ＿１０が計測したパケット７００＿２５の受信時からパケット７００＿２９の受信時までの確認応答間時間５０ａ＿１０＝“０．０３（ｓ）”を読み出して保持した後、タイマ５０ａ＿１０をリセットした後、再起動する。さらに、帯域計測部１０ａは、受信した確認応答パケット７００＿２９（図２では符号７００＿ａ）をウィンドウサイズ変更部２０ａに与える。
最大帯域値／帯域制限解除値設定部４０は、オペレータから与えられた、又は管理テーブル５０ａから読み出した最大帯域値５０ａ＿１＝“２．８Ｍ”及び帯域制限解除値５０ａ＿２＝“２．３Ｍ”を最大帯域超過判定部３０に与える。
最大帯域超過判定部３０は、確認応答パケット７００＿２９を受信したことを契機として、管理テーブル５０ａから読み出した合計帯域５０ａ＿１２＝“０（この時点では、帯域（スループット）５０ａ＿１１＝“１００ｋＢｐｓ”は演算されていない。）”が最大帯域値５０ａ＿１＝“２．８Ｍ”を超過しているか否かを判定し、判定結果８０１＝“超過していない”をウィンドウサイズ変更部２０ａに与える。
ウィンドウサイズ変更部２０ａは、確認応答パケット７００＿２９のウィンドウ７２０ｆを変更せずにサーバ５００＿１に転送する。このように、合計帯域５０ａ＿１２が最大帯域値５０ａ＿１より小さい場合、帯域制御は実行されない。
ステップＴ２１２：さらに、帯域計測部１０ａは、確認応答番号５０ａ＿７＝“５０００”と確認応答番号５０ａ＿６＝“２０００”との差分であるデータ長５０ａ＿８＝“３０００”を求め、このデータ長５０ａ＿８＝“３０００”及び確認応答間時間５０ａ＿１０＝“０．０３”から帯域（スループット）５０ａ＿１１を次式（１）に基づいて求める。
【数１】
2005006673.tif 000005
帯域計測部１０ａは、セッション５０ａ＿３＝“４１０＿１”の帯域５０ａ＿１１＝“１００ｋＢｐｓ”から合計帯域５０ａ＿１２＝“１００ｋＢｐｓ”を求める（図４（２）参照。）。
図５は、ユーザ端末２００＿１とサーバ５００＿１との間で、さらにセッション４１０＿２が確立されデータ転送が行われた動作手順例を示している。この動作手順例を以下に説明する。
インターネットを利用してユーザ端末２００＿１が、サーバ５００＿１からデータをダウンロードする場合、ユーザ端末２００＿１とサーバ５００＿１との間にＴＣＰセッションが一つ確立する。さらに、ユーザ端末２００＿１が、サーバ５００＿１若しくは別のサーバ５００＿２からも同時にデータをダウンロードしようとした場合にも別の一つのＴＣＰセッションが確立される。このように、１つのユーザ端末２００＿１が、同時に複数のＴＣＰセッションを確立可能になる。
ステップＴ３００〜Ｔ３０３：３ウェイハンドシェイクが実行されセッション４１０＿２が確立され、ＩＰアドレス＝“１．１．１．１”に対応する管理テーブル５０ａに、送信元ポート５０ａ＿４＝“１００１”に対応するセッション４１０＿２の行が追加される（図４（３）参照）。
ステップＴ３０４：サーバ５００＿１が、データパケット７００＿３４をユーザ端末２００＿１に宛てて送信する。
ステップＴ３０５，Ｔ３０６：ユーザ端末２００＿１が、確認応答パケット７００＿３５をサーバ５００＿１に宛てて送信し、帯域制御装置１００ａにおいて、帯域計測部１０ａは、それぞれ、管理テーブル５０ａのセッション５０ａ＿３＝“４１０＿２”、送信元ポート５０ａ＿４＝“１００１”、宛先ポート５０ａ＿５“２０００”、確認応答番号５０ａ＿６＝“３０００”、及びウィンドウ５０ａ＿９＝“２０００”に設定する（図４（３）参照。）。さらに、帯域計測部１０ａは、タイマ５０ａ＿１０を起動する。
ステップＴ３０７：サーバ５００＿１が、データパケット７００＿３６をユーザ端末２００＿１に宛てて送信する。
ステップＴ３０８：ユーザ端末２００＿１は、サーバ５００＿１に宛てて、確認応答番号７２０ｄ＝“４０００”及びウィンドウ７２０ｆ＝“２０００”が設定された確認応答パケット７００＿３７を送出する。
ステップＴ３０９：帯域制御装置１００ａにおいて、帯域計測部１０ａは、管理テーブル５０ａ（同図（３）参照。）の確認応答番号５０ａ＿７＝“４０００”及びウィンドウ５０ａ＿９＝“２０００”に設定すると共に、タイマ５０ａ＿１０が計測したパケット７００＿３５の受信時からパケット７００＿３７の受信時までの確認応答間時間５０ａ＿１０＝“０．０２（ｓ）”を読み出して保持した後、タイマ５０ａ＿１０を再起動する。
ウィンドウサイズ変更部２０ａは、最大帯域超過判定部３０から与えられた判定結果８０１で合計帯域５０ａ＿１２＝“１００ｋ”が最大帯域値５０ａ＿１＝“２．８Ｍ”を超過していないことを知り、帯域計測部１０ａから受信した確認応答パケット７００＿３７をウィンドウ７２０ｆ＝“２０００”を変更せずにサーバ５００＿１に転送する。帯域制御は実行されない。
ステップＴ３１０：帯域計測部１０ａは、“４０００（＝確認応答番号５０ａ＿７）”−“３０００（＝確認応答番号５０ａ＿６）”＝“１０００（＝データ長５０ａ＿８）”を演算し、この“１０００（＝データ長５０ａ＿８）”／“０．０２（＝確認応答間時間５０ａ＿１０）”＝“５０ｋ（＝帯域５０ａ＿１１）”を式（１）で演算した後、合計帯域５０ａ＿１２＝“１５０ｋ”を求める（同図（３）参照。）。
図６は、ユーザ端末２００＿１とサーバ５００＿１の間でさらにセッション４１０＿３が確立されデータ転送が行われる動作手順例を示している。この動作手順例を以下に説明する。
ステップＴ４００〜Ｔ４０３：３ウェイハンドシェイクが実行されセッション４１０＿３が確立され、管理テーブル５０ａにセッション４１０＿３の行が追加される（同図（３）参照。）。
ステップＴ４０４：サーバ５００＿１が、データパケット７００＿４３をユーザ端末２００＿１に宛てて送信する。
ステップＴ４０５，Ｔ４０６：ユーザ端末２００＿１が、確認応答パケット７００＿４４をサーバ５００＿１に宛てて送信し、帯域制御装置１００ａにおいて、帯域計測部１０ａは、それぞれ、管理テーブル５０ａのセッション５０ａ＿３＝“４１０＿３”、送信元ポート５０ａ＿４＝“１００２”、宛先ポート５０ａ＿５＝“２０００”、確認応答番号５０ａ＿６＝“２０００”、及びウィンドウ５０ａ＿９＝“４０００”に設定する。さらに、帯域計測部１０ａは、タイマ５０ａ＿１０を起動する。
図７は、図４に示した管理テーブル５０ａを示しており、この管理テーブル５０ａには、さらに、ユーザ端末２００＿１とサーバ５００＿１との間で追加確立されたセッション４１０＿３〜４１０＿５のデータが登録されている。
ステップＴ４０７〜Ｔ４１０：サーバ５００＿１が、データパケット７００＿４５〜７００＿４８をユーザ端末２００＿１に宛てて送信する。
ステップＴ４１１：ユーザ端末２００＿１は、サーバ５００＿１に宛てて、確認応答番号７２０ｄ＝“６０００”及びウィンドウ７２０ｆ＝“４０００”が設定された確認応答パケット７００＿４９を送出する。
ステップＴ４１２：帯域制御装置１００ａにおいて、帯域計測部１０ａは、管理テーブル５０ａ（図７（１）参照）のセッション５０ａ＿３＝“４１０＿３”の確認応答番号５０ａ＿７＝“６０００”及びウィンドウ５０ａ＿９＝“４０００”に設定すると共に、タイマ５０ａ＿１０が計測したパケット７００＿４４の受信時からパケット７００＿４９の受信時までの時間＝“０．００４（ｓ）”を読み出して保持した後、タイマ５０ａ＿１０を再起動する。
ウィンドウサイズ変更部２０ａは、最大帯域超過判定部３０から与えられた判定結果８０１で合計帯域５０ａ＿１２＝“１５０ｋ”が最大帯域値５０ａ＿１＝“２．８Ｍ”を超過していないことを知り、帯域計測部１０ａから受信した確認応答パケット７００＿３７をウィンドウ７２０ｆ＝“４０００”を変更せずにサーバ５００＿１に転送する。帯域制御は実行されない。
ステップＴ４１３：さらに、帯域計測部１０ａは、“６０００（＝確認応答番号５０ａ＿７）”−“２０００（＝確認応答番号５０ａ＿６）”＝“４０００（＝データ長５０ａ＿８）”を演算し、この“４０００”／“０．００４（＝確認応答間時間５０ａ＿１０）”＝“１Ｍ（＝帯域５０ａ＿１１）”を式（１）に基づき演算した後、合計帯域５０ａ＿１２＝“１．１５Ｍ”を求る。
図８は、ユーザ端末２００＿１とサーバ５００＿１の間でさらにセッション４１０＿４が確立されデータ転送が行われる動作手順例を示している。この動作手順例を以下に説明する。
ステップＴ５００〜Ｔ５０４：図６のステップＴ４００〜Ｔ４０４と同様であり、セッション４１０＿４が確立され、管理テーブル５０ａにセッション４１０＿４の行が追加され（図７（１）参照。）、データパケット７００＿５３が、サーバ５００＿１からユーザ端末２００＿１に送信される。
ステップＴ５０５〜Ｔ５１５：図６のステップＴ４０５〜Ｔ４１３と同様であるが、ステップＴ４０５〜Ｔ４１３より２つ多いデータパケット７００＿５５〜７００＿６０がサーバ５００＿１からユーザ端末２００＿１に送信され、管理テーブル５０ａのセッション５０ａ＿３＝“４１０＿４”、送信元ポート５０ａ＿４＝“１００３”、宛先ポート５０ａ＿５“２０００”、確認応答番号５０ａ＿６＝“５０００”、確認応答番号５０ａ＿７＝“１１０００”、及びウィンドウ５０ａ＿９＝“６０００”、データ長５０ａ＿８＝“６０００”に設定され、タイマ５０ａ＿１０＝“０．００４”が保持された後、再起動され、確認応答パケット７００＿３７が変更されずにサーバ５００＿１に送出され、帯域５０ａ＿１１＝“１．５Ｍ”が式（１）で算出され後、合計帯域５０ａ＿１２＝“２．６５Ｍ”が求められる。
図９は、ユーザ端末２００＿１とサーバ５００＿１の間でさらにセッション４１０＿５が確立されデータ転送が行われた動作手順例を示している。この動作手順例を以下に説明する。
ステップＴ６００〜Ｔ６０４：図６のステップＴ４００〜Ｔ４０４と同様であり、セッション４１０＿５が確立され、管理テーブル５０ａにセッション４１０＿５の行が追加され（図７（１）参照。）、データパケット７００＿７３が、サーバ５００＿１からユーザ端末２００＿１に送信される。
ステップＴ６０５〜Ｔ６１３：図６のステップＴ４０５〜Ｔ４１３と同様であり、管理テーブル５０ａのセッション５０ａ＿３＝“４１０＿５”の行において、送信元ポート５０ａ＿４＝“１００４”、宛先ポート５０ａ＿５“２０００”、確認応答番号５０ａ＿６＝“２００００”、確認応答番号５０ａ＿７＝“２４０００”、及びウィンドウ５０ａ＿９＝“４０００”に設定され、データ長５０ａ＿８＝“４０００”及び帯域５０ａ＿１１＝“５００ｋ”が演算され、タイマ５０ａ＿１０＝“０．００８（ｓ）”が計時され、この時間を保持した後タイマ５０ａ＿１０が再起動される。
また、帯域計測部１０ａは、確認応答パケット７００＿７９をウィンドウサイズ変更部２０ａに与え、ウィンドウサイズ変更部２０ａは、判定結果８０１（合計帯域５０ａ＿１２＝“２．６５Ｍ”＜最大帯域値＝“２．８Ｍ”）に基づき、確認応答パケット７００＿７９を変更せずにサーバ５００＿１に転送する。この時点では、帯域制御は実行されない。
さらに、帯域計測部１０ａは、帯域５０ａ＿１１＝“５００ｋ”を式（１）で演算した後（図７（１）のステップＳ１０）、合計帯域５０ａ＿１２＝“３．１５Ｍ”を求める。
図１０は、図９に示したセッション４１０＿５におけるデータ転送の続きを示している。
ステップＴ６０５〜Ｔ６１３：図９のステップＴ６０５〜Ｔ６１３と同一ステップを示している。
ステップＴ６１４〜Ｔ６１９：管理テーブル５０ａ（図７（１）参照。）のセッション５０ａ＿３＝“４１０＿５”の行において、送信元ポート５０ａ＿４＝“１００４”、宛先ポート５０ａ＿５＝“２０００”、確認応答番号５０ａ＿６＝“２４０００”、確認応答番号５０ａ＿７＝“２８０００”、及びウィンドウ５０ａ＿９＝“４０００”が再設定される（同図（１）のステップＳ１１参照。）。計時されたタイマ５０ａ＿１０＝“０．００８（ｓ）”が保持された後、タイマ５０ａ＿１０が再起動される。
ウィンドウサイズ変更部２０ａは、判定結果８０１（合計帯域５０ａ＿１２＝“３．１５Ｍ”＞最大帯域値５０ａ＿１＝“２．８Ｍ”：帯域超過の検出、同図（１）のステップＳ１２参照。）に基づき、確認応答パケット７００＿８４のウィンドウ７２０ｆ＝“４０００”を、例えば半分の“２０００”にした確認応答パケット７００＿８５をサーバ５００＿１に送出する帯域制御が行われる（同図（２）のステップＳ１３参照。）。
ステップＴ６２０：データ長５０ａ＿８＝“４０００”、及び帯域５０ａ＿１１＝“５００ｋ”が演算された後、合計帯域５０ａ＿１２＝“３．１５Ｍ”が求められる。
図７（２）を参照して、以後の動作を説明する。
ステップＳ１４，Ｓ１５：サーバ５００＿１は、指定されたウィンドウサイズ内でデータを送信して来るため、データパケットが減り、帯域が減少する。すなわち、セッション４１０＿５の帯域５０ａ＿１１は、“２５０ｋ”に減少し、合計帯域５０ａ＿１２＝“２．９Ｍ”となる。
ステップＳ１６：この合計帯域５０ａ＿１２＝“２．９Ｍ”が、まだ最大帯域値５０ａ＿１＝“２．８Ｍ”を超過しているため、次に確認応答パケットを受信したセッション４１０＿４のウィンドウ７２０ｆ＝“６０００”が、半分の“３０００”に設定する帯域制御が行われる。
ステップＳ１７，Ｓ１８：セッション４１０＿４の帯域５０ａ＿１１＝“０．７５Ｍ”に減少し、帯域制限解除値＝“２．３Ｍ”＜合計帯域５０ａ＿１２＝“２．１５Ｍ”＜最大帯域値５０ａ＿１＝“２．８Ｍ”となる。この後、次に受信したセッション４１０の確認応答パケット７００のウィンドウ７２０ｆの値を変更せずにトランスペアレントに送信する。これにより、全ユーザに対して公平な帯域制御を行うことが可能になる。
なお、上述した帯域制御では、各ユーザの最大帯域を２．８ＭＢｙｔｅ／ｓに制限する場合であり、セッション数やウィンドウサイズには関係なく合計帯域で判断している。
実施例（２）：確認応答時間変更
図１１は、本発明に係る帯域制御装置１００ｂの実施例（２）を示している。この帯域制御装置１００ｂが、図２に示した帯域制御装置１００ａと異なる点は、それぞれ、ウィンドウサイズ変更部２０ａ及び帯域計測部１０ａの代わりに確認応答時間変更部２０ｂ及び帯域計測部１０ｂを備え、この帯域計測部１０ｂを構成する管理テーブル５０ｂには、２つのタイマ５０ｂ＿１０，５０ｂ＿１２を備えていることである。
また、帯域計測部１０ｂが、最大帯域値／帯域制限解除値設定部４０に最大帯域値５０ｂ＿１及び帯域制限解除値５０ｂ＿２を与え、最大帯域超過判定部３０に合計帯域５０ｂ＿１４を与えることも異なっている。
動作において、この帯域制御装置１００ｂが、帯域制御装置１００ａと異なる点は、確認応答時間変更部２０ｂが、予め設定された最大帯域値５０ｂ＿１又は帯域制限解除値５０ｂ＿２を合計帯域が超過したか否かの判定結果に基づき、ユーザ毎に受信した確認応答パケット７００＿ｂを転送する時間を遅延させることである。
この遅延時間は、確認応答パケット（例えば、確認応答番号７２０ｄ＝“２０００”）をサーバ５００＿１に与えてから、それに対応するデータパケット（例えば、シーケンス番号７２０ｃ＝“２０００”）を受信するまでの応答時間を基準として、この基準時間の例えば１８０％増しにする。
なお、応答時間の信頼性を増すために、平均応答時間を用いる。また、平均応答時間は、受信データパケットの廃棄、遅延等も考慮した平均を取る。
図１２は、図１１に示した管理テーブル５０ｂの実施例を示している。この管理テーブル５０ｂが、図７に示した管理テーブル５０ａと異なる点は、平均往復時間５０ｂ＿１０及び変更時間５０ｂ＿１１が追加されていることである。
管理テーブル５０ｂは、図３、５、６、８〜１０に示した帯域制御装置１００ａの動作手順例と同様に、ユーザ（ＩＰアドレス）毎に作成され、同一ユーザに対応するセッションの帯域が、式（１）に基づき計測され、ユーザの全セッションの合計帯域が求められる。
図１２（１）には、図３、５、６、８〜１０に示した帯域制御装置１００ａの動作手順と同様の確認応答パケット７００及びデータパケット７００が、ユーザ端末２００＿１とサーバ５００＿１との間で送受信された場合に設定される値が示されている。各セッション４１０＿１〜４１０＿５の送信元ポート５０ｂ＿４、宛先ポート５０ｂ＿５、確認応答番号５０ｂ＿６、確認応答番号５０ｂ＿７、データ長５０ｂ＿８、ウィンドウ５０ｂ＿９、確認応答間時間５０ｂ＿１２、及び帯域５０ｂ＿１３、及び合計帯域５０ｂ＿１４に設定されたデータの値は、それぞれ、図７（１）の各セッション４１０＿１〜４１０＿５の送信元ポート５０ａ＿４、宛先ポート５０ａ＿５、確認応答番号５０ａ＿６、確認応答番号５０ａ＿７、データ長５０ａ＿８、ウィンドウ５０ａ＿９、確認応答間時間５０ａ＿１０、及び帯域５０ａ＿１１、及び合計帯域５０ａ＿１２と同一である。
図１３は、帯域制御装置１００ｂの動作手順を示している。この動作手順例を以下に説明する。図１０に示したステップＴ６０５〜Ｔ６１８と同様に、ユーザ端末２００＿１のセッション４１０＿５が追加された後、ユーザ端末２００＿１とサーバ５００＿１との間で、確認応答パケット及びデータパケットが送受信される。
ステップＴ７００：ユーザ端末２００＿１は、確認応答パケット７００＿１００をサーバ５００＿１に宛てて送出する。
ステップＴ７０１〜Ｔ７０４：サーバ５００＿１は、データパケット７００＿１０１〜７０＿１０４をユーザ端末２００＿１に宛てて送出する。
ステップＴ７０５：ユーザ端末２００＿１は、確認応答パケット７００＿１０５をサーバ５００＿１に宛てて送出する。
ステップＴ７０６：確認応答番号７２０ｄ＝“２０００”の確認応答パケット７００＿１０５を受信した帯域計測部１０ｂにおいて、管理テーブル５０ｂ内のタイマ５０ｂ＿１０及び５０ｂ＿１２が起動する。以後のタイマ５０ｂ＿１２の動作は、図７に示したタイマ５０ａ＿１０と同様であるので説明は省略する。
ステップＴ７０７〜Ｔ７１０：サーバ５００＿１は、データパケット７００＿１０６〜７０＿１０９をユーザ端末２００＿１に宛てて送出する。帯域計測部１０ｂにおいて、タイマ５０ｂ＿１０は、確認応答番号７２０ｄ＝“２０００”と同一のシーケンス番号７２０ｃ＝“２０００”のデータパケット７００＿１０６の受信した時、停止する。すなわち、タイマ５０ｂ＿１０は、平均往復時間５０ｂ＿１０（確認応答パケット７００＿１０５の転送時からデータパケット７００＿１０６の受信時までの時間）を計測する。なお、この平均往復時間５０ｂ＿１０は、各セッション４１０＿１〜４１０＿５毎に確認応答パケットを受信する度に行われ、図７（１）では、それぞれ、“０．０１（ｓ）”、“０．０１（ｓ）”、“０．０８（ｓ）”、“０．０８（ｓ）”、“０．０８（ｓ）”が計測されている。
ステップＴ７１１：ユーザ端末２００＿１は、確認応答パケット７００＿１１０をサーバ５００＿１に宛てて送出する。
ステップＴ７１２：帯域制御装置１００ｂにおいて、図１０のステップＴ６１９，Ｔ６２０と同様に、最大帯域超過判定部３０は帯域超過発生を検出し、確認応答時間変更部２０ｂは、確認応答パケット７００＿１１０を、タイマ５０ｂ＿１０に保持されていた“０．０８（ｓ）”の１８８％増しにした“０．１５（ｓ）”だけ遅らせた確認応答パケット７００＿１１１をサーバ５００＿１に転送する。
ステップＴ７１３〜Ｔ７１８：サーバ５００＿１は、データパケット７００＿１１２〜７００＿１１５をユーザ端末２００＿１に送信する。
ステップＴ７１９：この結果、例えば、データパケット７００＿１１２は、確認応答パケット７００＿１１０が遅延されない場合、時点Ｔ７１５’にユーザ端末２００＿１に到着する筈であるが、時間Ｔ７１５だけ遅れて到着したことになり、セッション４１０＿５の帯域を減少させたことなる。したがって、ユーザ端末２００＿１の合計帯域５０ｂ＿１４も減少することが可能になる。
以後、図７に示したステップＳ１０〜Ｓ１８と同様のステップＳ２０〜Ｓ２８が実行され、合計帯域５０ｂ＿１４が、最大帯域値５０ｂ＿１を超過している場合、確認応答パケットが遅延される。
その後の最大帯域超過判定において、帯域超過が無くなればそのままの遅延時間で全てのセッション４１０＿１〜４１０＿５が動作する。さらに、その後、ユーザの合計帯域５０ｂ＿１４が帯域制限解除値５０ｂ＿２を下回れば、確認応答パケットを遅延させていたセッション４１０＿１の変更時間＝“０（ｓ）”にして、ユーザ端末２００＿１からの確認応答パケットを遅延させずにそのままトランスペアレントに転送する。
図１４は、上述した実施例（１）又は実施例（２）の帯域制御で、各セッション４１０＿１〜４１０＿５の帯域５０ａ＿１１又は５０ｂ＿１３、及び合計帯域５０ａ＿１２又は５０ｂ＿１４の時間的な推移を示している。この推移を以下に説明する。
ステップＴ８００：セッション４１０＿１〜４１０＿３が、順次確立される。
ステップＴ８０１，Ｔ８０２：セッション４１０＿４が確立され、このセッション４１０＿４の確認応答パケット７００＿４ａを契機に、合計帯域５０ａ＿１２が最大帯域値５０ａ＿１以上であることが認識され、セッション４１０＿４の帯域制限が開始される。
ステップＴ８０３，Ｔ８０４：セッション４１０＿２の確認応答パケット７００＿２ａを契機に、まだ、合計帯域５０ａ＿１２が最大帯域値５０ａ＿１以上であることが認識され、セッション４１０＿２の帯域制限が開始される。
ステップＴ８０５：合計帯域５０ａ＿１２が最大帯域値５０ａ＿１以下であり、帯域制限はそのまま継続する。
ステップＴ８０６，Ｔ８０７：セッション４１０＿５が確立され、このセッション４１０＿４の確認応答パケット７００＿４ｂを契機に、合計帯域５０ａ＿１２が最大帯域値５０ａ＿１以上であることが認識され、セッション４１０＿４の帯域制限が開始される。
ステップＴ８０８，Ｔ８０９：セッション４１０＿３の確認応答パケット７００＿３ｂを契機に、まだ、合計帯域５０ａ＿１２が最大帯域値５０ａ＿１以上であることが認識され、セッション４１０＿３の帯域制限が開始される。
ステップＴ８１０：合計帯域５０ａ＿１２が最大帯域値５０ａ＿１以下であり、帯域制限はそのまま継続する。
ステップＴ８１１，Ｔ８１２：セッション４１０＿１が終了し、合計帯域５０ａ＿１２が帯域制限解除値５０ａ＿２以下になる。
ステップＴ８１３：セッション４１０＿４の確認応答パケット７００＿４ｃを契機に、合計帯域５０ａ＿１２が帯域制限解除値５０ａ＿２以下であることが認識され、セッション４１０＿４の帯域制限が解除される。
ステップＴ８１４，Ｔ８１５：合計帯域５０ａ＿１２が最大帯域値５０ａ＿１以上になり、セッション４１０＿５の確認応答パケット７００＿５ｂを契機に、合計帯域５０ａ＿１２が最大帯域値５０ａ＿１以上であることが認識され、セッション４１０＿５の帯域制限が開始される。
ステップＴ８１６：合計帯域５０ａ＿１２が最大帯域値５０ａ＿１以下であり、帯域制限はそのまま継続する。
ステップＴ８１７，Ｔ８１８：セッション４１０＿５が終了し、合計帯域５０ａ＿１２が帯域制限解除値５０ａ＿２以下になる。
ステップＴ８１９：セッション４１０＿３の確認応答パケット７００＿３ｃを契機に、合計帯域５０ａ＿１２が帯域制限解除値５０ａ＿２以下であることが認識され、セッション４１０＿３の帯域制限が解除される。
ステップＴ８２０：合計帯域５０ａ＿１２が、帯域制限解除値５０ａ＿２以上且つ最大帯域値５０ａ＿１以下であり、帯域制限が行われない状態が継続する。
これにより、ユーザに対応する合計帯域５０ａ＿１２の帯域制御が行われたことになる。
実施例（３）：装置全体の帯域調整したネットワーク
図１５は、ＩＳＰ３１０＿１を示しており、ＩＳＰ３１０＿１は、複数のユーザを収容しインターネット３００との接続を行っている。すなわち、ＩＳＰ３１０＿１は、ユーザ側に実装されてたルータ１１０＿１〜１１０＿３（以下、符号１１０で総称することがある。）に、それぞれ、ユーザ端末２００＿１＿１〜２００＿１＿ｉ、ユーザ端末２００＿２＿１〜２００＿２＿ｊ、ユーザ端末２００＿３＿ｌ〜２００＿３＿ｋ（以下、符号２００で総称することがある。）を収容し、ルータ１１０＿４及びルータ１１０＿５を経由してインターネット３００に接続されている。
ルータ１１０＿１〜１１０＿３は、それぞれ、本発明の帯域制御装置１００＿１〜１００＿３を備えており、これらの帯域制御装置１００＿１〜１００＿３には、それぞれ、管理テーブル６０＿１〜６０＿３（図示せず。）が含まれている。
図１６（１）〜（３）は、それぞれ、図１５に示した管理テーブル６０＿１〜６０＿３を示しており、各管理テーブル６０＿１〜６０＿３は、それぞれ、最大帯域制限値６０＿１＿１〜６０＿３＿１、並びに対応するルータ１１０に接続された各ユーザ端末２００の帯域制限値６０＿１＿２及び現使用帯域６０＿１＿３、帯域制限値６０＿２＿２及び現使用帯域６０＿２＿３、並びに帯域制限値６０＿３＿２及び現使用帯域６０＿３＿３、並びに総計帯域６０＿１＿４〜６０＿３＿４で構成されている。
最大帯域制限値６０＿１＿１〜６０＿３＿１には、ユーザに対する帯域制限の有／無を示すフィールドも含まれている。
同図（４）は、総計帯域６０＿４を示しており、総計帯域６０＿４には、管理テーブル６０＿１〜６０＿３の現使用帯域６０＿１＿３〜６０＿３＿３の総計帯域６０＿１＿４〜６０＿３１＿４が集計される。
管理テーブル６０＿１のユーザ端末２００＿１＿１〜２００＿１＿ｉの現使用帯域は、それぞれ、３．０ＭＢｐｓ〜ｘ．ｘＭＢｐであり、この総計帯域６０＿１＿４は４８．０ＭＢｐｓである。同様に、管理テーブル６０＿２，６０＿３の総計帯域６０＿２＿４，６０＿３＿４は、それぞれ、７０．０ＭＢｐｓ及び２８．０ＭＢｐｓである。総計帯域６０＿１＿４〜６０＿３＿４の合計が、総計帯域６０＿４＝“１４６Ｍ”である。
動作において、ＩＳＰ３１０＿１の制御部（図示せず。）は、帯域制御装置１００＿１〜１００＿３の総計帯域６０＿４＝“１４６ＭＢｐｓ”を算出し、予め設定した最大帯域値＝“１３０ＭＢｐｓ”を超過した場合、各ルータ単位さらにはユーザ単位に帯域制限する。
管理テーブル６０＿１〜６０＿３には、ルータ（帯域制御装置）毎に、最大帯域制限値６０＿１＿１＝“有、４０Ｍ”、最大帯域制限値６０＿２＿１＝“有、５０Ｍ”、最大帯域制限値６０＿３＿１＝“無、４０Ｍ”が設定されている。
管理テーブル６０＿１，６０＿２には、ユーザ端末毎に、それぞれ、“３．０Ｍ”及び“４．０Ｍ”が設定されている。管理テーブル６０＿３には、現使用帯域の総計帯域６０＿３＿４＝“２８．０Ｍ”が、最大帯域制限値６０＿３＿１＝、４０Ｍ”に達していないのでユーザ端末に帯域制限を行っていない。
これにより、ＩＳＰ３１０＿１では、インターネット３００又はＩＳＰ３１０＿１内のユーザ端末２００とのデータ転送が、輻輳廃棄を発生すること無く可能になる。
図１７は、実施例（１）〜実施例（３）の帯域制御を行ったネットワークの状態を示しており、本発明においては、ユーザ単位（実施例（３）では、例えば、最大帯域制限値を越えたルータ１１０＿２，１１０＿３の帯域制御装置１００＿２，１００＿３において）で帯域制限を行うため、パケットの輻輳廃棄が無く、また、特定のユーザに帯域を占領されること無く公平な帯域制限が可能になる。
以上、説明したように本発明の帯域制御装置によれば、帯域計測部１０が、ユーザ毎に１又は複数のＴＣＰセッションの合計帯域を計測し、ウィンドウサイズ変更部２０ａが、該合計帯域が予め設定された最大帯域値を越えているユーザのＴＣＰセッションの確認応答パケットのウィンドウサイズを減少させるか、又は、確認応答時間変更部が、該確認応答パケットを遅延させることにより、各ユーザのパケット７００を廃棄することを無くすること、また、ユーザに帯域を公平に割り当てることが可能になる。
すなわち、１つのルータに収容されるそれぞれのユーザ帯域が、ヘビーユーザ（同時間帯での大容量のデータ転送者）によって極端に小さいままになってしまうということを防ぐことができ、ベストエフォート型の公平を保つことが可能となる。
また、例えば、或るルータのデータ転送が多くなり、輻輳状態に陥り廃棄を起こすことになった場合、廃棄分のＴＣＰ再送制御が行われることとなりネットワーク及びサーバ等に負荷をかけることとなるが、ユーザに対して帯域制限をかければ輻輳発生頻度を低減させることが可能となる。
また、統計的に輻輳を起こしやすいルータに、本発明の帯域制御装置を備えることで、輻輳廃棄を未然に防ぐことが可能となり、ネットワークの最適運用が可能になる。
【図１】
2005006673.tif 000006
【図２】
2005006673.tif 000007
【図３】
2005006673.tif 000008
【図４】
2005006673.tif 000009
【図５】
2005006673.tif 000010
【図６】
2005006673.tif 000011
【図７】
2005006673.tif 000012
【図８】
2005006673.tif 000013
【図９】
2005006673.tif 000014
【図１０】
2005006673.tif 000015
【図１１】
2005006673.tif 000016
【図１２】
2005006673.tif 000017
【図１３】
2005006673.tif 000018
【図１４】
2005006673.tif 000019
【図１５】
2005006673.tif 000020
【図１６】
2005006673.tif 000021
【図１７】
2005006673.tif 000022
【図１８】
2005006673.tif 000023
【図１９】
2005006673.tif 000024
【図２０】
2005006673.tif 000025
【図２１】
2005006673.tif 000026
【国際調査報告】
2005006673.tif 000027
2005006673.tif 000028
2005006673.tif 000029
2005006673.tif 000030