(57)【特許請求の範囲】
【請求項１】
ユーザ毎に１又は複数のＴＣＰセッションの合計帯域を計測する帯域計測部と、
該合計帯域が、予め設定された最大帯域値を越えているか否か、及び該合計帯域が該最大帯域値より小さい予め設定された帯域制限解除値を越えているか否かを判定する判定部と、
該合計帯域が該最大帯域値を越えているユーザのＴＣＰセッション確認応答パケットのウィンドウサイズを減少させると共に、該合計帯域が該帯域制限解除値を越えていないユーザのＴＣＰセッション確認応答パケットのウィンドウサイズを増加させるウィンドウサイズ変更部と、
を備えたことを特徴とする帯域制御装置。
【請求項２】
ユーザ毎に１又は複数のＴＣＰセッションの合計帯域を計測する帯域計測部と、
該合計帯域が、予め設定された最大帯域値を越えているか否か、及び該合計帯域が該最大帯域値より小さい予め設定された帯域制限解除値を越えているか否かを判定する判定部と、
該合計帯域が該最大帯域値を越えているユーザのＴＣＰセッション確認応答パケットを所定の時間だけ遅延させると共に、該合計帯域が該帯域制限解除値を越えていないユーザのＴＣＰセッション確認応答パケットの該所定の時間の遅延量を少なくするか又は無くする確認応答時間変更部と、
を備えたことを特徴とする帯域制御装置。
【請求項３】
ユーザ毎に１又は複数のＴＣＰセッションの合計帯域を計測し、全ユーザの該合計帯域を総計した総計帯域を算出する帯域計測部と、
該総計帯域が装置全体の帯域に基づき決定される最大帯域制限値を越えているか否か、該合計帯域が予め設定された最大帯域値を越えているか否か、及び該合計帯域が該最大帯域値より小さい予め設定された帯域制限解除値を越えているか否かを判定する判定部と、
該総計帯域が該最大帯域制限値を越えたときのみ、該合計帯域が該最大帯域値を越えているユーザのＴＣＰセッション確認応答パケットのウィンドウサイズを減少させると共に、該合計帯域が該帯域制限解除値を越えていないユーザのＴＣＰセッション確認応答パケットのウィンドウサイズを増加させる帯域制限部と、
を備えたことを特徴とする帯域制御装置。
【請求項４】
ユーザ毎に１又は複数のＴＣＰセッションの合計帯域を計測し、全ユーザの該合計帯域を総計した総計帯域を算出する帯域計測部と、
該総計帯域が装置全体の帯域に基づき決定される最大帯域制限値を越えているか否か、該合計帯域が予め設定された最大帯域値を越えているか否か、及び該合計帯域が該最大帯域値より小さい予め設定された帯域制限解除値を越えているか否かを判定する判定部と、
該総計帯域が該最大帯域制限値を越えたときのみ、該合計帯域が該最大帯域値を越えているユーザのＴＣＰセッション確認応答パケットを所定の時間だけ遅延させると共に、、該合計帯域が該帯域制限解除値を越えていないユーザのＴＣＰセッション確認応答パケットの該所定の時間の遅延量を少なくするか又は無くする帯域制限部と、
を備えたことを特徴とする帯域制御装置。
【請求項５】
請求項２又は４において、
該所定の時間が、該確認応答パケットを受信した時から該確認応答パケットに対するデータパケットを受信した時までの時間に基づき決定されることを特徴とした帯域制御装置。
【請求項６】
請求項１〜４の内のいずれか一つにおいて、
該帯域計測部が、１又は複数の第１データパケットに対する第１確認応答から、該第１確認応答後の１又は複数の第２データパケットに対する第２確認応答までの確認応答間時間を計測するタイマと、該１又は複数の第２データパケットのデータ長を計数する計数部と、該合計データ長を該確認応答間時間で割った値を帯域値とする演算部と、を備えたことを特徴とする帯域制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は帯域制御装置に関し、特に、インターネット等のIPネットワークにおける帯域制御装置に関するものである。
近年、インターネットは、xDSL(x Digital Subscriber Line)及びFTTH(Fiber To The Home)等の高速アクセス回線が普及し、ますます広帯域化が進んでいる。これに伴い、コンテンツもユーザが高速アクセス回線を利用することを前提にした大容量のものが増加している。また、ピア・ツー・ピア(Peer To Peer)によるユーザ同士間の大量データ転送も増加している。このようなネットワークにおいては、有限の伝送帯域を公平にユーザに割り当てる帯域制御技術が重要である。
【背景技術】
【０００２】
図18は、一般的なネットワークの構成を示している。このネットワークは、ルータ110z_5〜110z_8を含むインターネット300、ルータ110z_1〜110z_4を含むインターネット・サービス・プロバイダ(ISP：Internet Service Provider)310_1、コンテンツ510_1を有するサーバ500_1が接続されているISP310_2、コンテンツ510_2を有するサーバ500_2が接続されているISP310_3、及びコンテンツ210を有するユーザ端末200_4が接続されているISP310_4で構成されている。
【０００３】
インターネット300は、ルータ110z_5及びルータ110z_1を経由してISP310_1に接続されている。さらに、インターネット300は、それぞれ、ルータ110z_6〜110z_8を経由して、ISP310_2〜310_4に接続されている。
また、ルータ110z_2には、ユーザ端末200_3が接続され、ルータ110z_3には、ユーザ端末200_1，200_2が接続されている。
【０００４】
ユーザ端末200_1は、それぞれ、TCP/IPプロトコルにしたがって、サーバ500_1、サーバ500_2、及びユーザ端末200_4の間にセッション410_1〜410_3(以下、符号410で総称する場合がある。)を確立し、コンテンツ510_1〜510_3(以下、符号510で総称する場合がある。)のデータファイルをダウンロードしている。
図19は、図18において、セッション410の確立、及びデータファイルのダウンロードで用いられるTCP/IPパケット700のフォーマットを示している。
【０００５】
TCP/IPパケット700は、IPヘッダ(この例ではIPv4ヘッダ)710、TCPヘッダ720、及びデータ730で構成されている。
IPヘッダ710には、サービスタイプ710a、送信元アドレス710b、宛先アドレス710c等が含まれている。TCPヘッダ720には、送信元ポート番号720a、宛先ポート番号720b、シーケンス番号720c、確認応答番号720d、コントロール720e、ウィンドウ720f、及びオプション720gが含まれている。コントロール720eには、確認応答(ACK)ビット720e1及び確立要求(SYN)ビット720e2が含まれ、オプション720gには、MSS(Max Segment Size：TCPセブメントのデータ部分の最大サイズ(MACフレームの場合、1460Byte)、図示せず。)が含まれている。
【０００６】
図20は、図18においてユーザ端末200_1が、サーバ500_1からコンテンツ510_1をダウンロードする場合の動作手順を示している。この手順を以下に説明する。
ステップT900(T901〜T903)：ユーザ端末200_1とサーバ500_1との間で３ウェイハンドシェイクが行われる。なお、３ウェイハンドシェイクは、ユーザ端末200_1とサーバ500_1との間で双方向にセッションを確立するために制御用データが交換されるが、ここでは、サーバ500_1からユーザ端末200_1に向かうセッション確立のための主に制御用データを示す。
ステップT901：サーバ500_1は、確立要求ビット(SYN)720e1＝“1”に設定したパケット700_121を、ユーザ端末200_1に送出して、セッション410の確立を要求する。
【０００７】
ステップT902：ユーザ端末200_1は、確立要求ビット720e2＝“1”、確認応答ビット(ACK)720e1＝“1”、MSS＝“1000”及びウィンドウ720f＝“4000”に設定したパケット700_122をサーバ500_1に返送し、セッション410の確立要求に対する応答を行うとともに、逆方向のセッション410の確立を要求する。
ステップT903：サーバ500_1は、確認応答ビット(ACK)720e1＝“1”のパケット700_123をユーザ端末200_1に返送し、セッション410の確立要求に応答する。これにより、ユーザ端末200_1とサーバ500_1との間に、セッション410が確立する。
【０００８】
ステップT904：サーバ500_1は、シーケンス番号720c＝“1000”のデータパケット700_124をユーザ端末200_1に送信する。
ステップT905：ユーザ端末200_1は、確認応答ビット720e1＝“1”、次シーケンス番号720cを示す確認応答番号720d＝“2000”、及びウィンドウ720f＝“4000”が設定された確認応答パケット700_124をサーバ500_1に応答する。
【０００９】
ステップT906：この後、スロースタートアルゴリズムにしたがってデータパケット700が、サーバ500_1からユーザ端末200_1に伝送されるが、ここでは、説明は省略する。
ステップT907〜T910：サーバ500_1は、それぞれ、シーケンス番号720c＝“2000”，“3000”，“4000”，“5000”のデータパケット700_126〜700_129をユーザ端末200_1に送信する。
【００１０】
ステップT911：ユーザ端末200_1は、確認応答ビット720e1＝“1”、確認応答番号720d＝“6000”、及びウィンドウ720f＝“4000”が設定された確認応答パケット700_130をサーバ500_1に応答する。
ステップT912〜T915：サーバ500_1は、それぞれ、シーケンス番号720c＝“6000”，“7000”，“8000”，“9000”のパケット700_131〜700_134をユーザ端末200_1に送信する。
【００１１】
ステップT916：ユーザ端末200_1は、確認応答ビット720e1＝“1”、確認応答番号720d＝“10000”、及びウィンドウ720f＝“4000”を示す確認応答パケット700_135をサーバ500_1に応答する。
これにより、確認応答番号720d＝“1000”〜“10000”のデータが、サーバ500_1からユーザ端末200_1に送信されたことになる。
【００１２】
図21は、図18に示したネットワークにおいて、ユーザ端末200_1が、サーバ500_1のコンテンツ510_1をダウンロードするため、ルータ110z_3，110z_1，110z_5，及び110z_6を経由するセッション410_1(410_1a，410_1b)を確立し、ユーザ端末200_2が、サーバ500_2のコンテンツ510_2をダウンロードするため、ルータ110z_3，110z_1，110z_5，及び110z_7を経由するセッション410_2(410_2a，410_2b)を確立し、ユーザ端末200_3が、ユーザ端末200_4のコンテンツ510_2をダウンロードするため、ルータ110z_2，110z_1，110z_5，及び110z_8を経由するセッション410_3(410_3a，410_3b)を確立している。
【００１３】
このとき、ユーザ端末200_1が、サーバ500_1のコンテンツ510_1をダウンロードを高速で行うため、セッション410_1と並列にセッション410_4(410_4a，410_4b)及びセッション410_5(410_5a，410_5b)を確立した場合、ルータ110z_1の帯域が不足し、パケットの輻輳が発生し、例えば、セッション410_2及びセッション410_3(破線表示)のパケットが廃棄される。
【００１４】
この廃棄されたパケットに対するTCPのパケット再送が行われ、この再送がますますパケットの輻輳の原因なる。
DiffServe帯域制御
IPネットワークにおける従来の帯域制御方法としてDiffServ(Differenciated Service)技術がある。このDiffServ技術は、IPパケットのTOSフィールドを用いて帯域制御を行っている。
【００１５】
DiffServeは、パケットに優先順位を割り当て、インターネット内部の中継処理の優先制御を行う技術である。IPパケットのヘッダに用意されていたTOSフィールドを、新たにDS（diffserve）フィールドとして再定義し，このフィールドにパケット優先度を記述する。
優先順序が低いパケットは輻輳時に廃棄させるポリシング機能がある。また、出力時のデータレートを一定としてバースト性を排除したシェーピング機能がある。
【００１６】
すなわち、この帯域制御は、或る設定値以上の帯域(throughput)でパケットを伝送するとパケット廃棄が発生するものであり、この帯域制御されたTCPセッション上では廃棄されたパケットに対する再送要求が行われ、これによって再送されたパケットが余計な帯域(bandwidth)を消費するという問題があった。
RED帯域制御
DiffServ技術の問題点を解決する帯域制御方法として、近年、RED(Random Early Detection)技術による帯域制御方法がある。この帯域制御方法は、パケットの輻輳廃棄が起こる前に予め或る程度のパケットを廃棄しておくことで、輻輳を回避しようとするものである。しかしながら、RED(Random Early Detection)技術による帯域制御は、意図的なパケット廃棄が発生してしまうという問題があった。
【００１７】
TCPレイヤ帯域制御技術
また、TCPレイヤにおける従来の帯域制御技術として、(1)スロースタートアルゴリズムや、(2)輻輳回避アルゴリズム等の方式がある。
(1)スロースタートアルゴリズムは、データ送信の最初の段階ではTCPセグメント(以下、パケットと称することがある。)の１往復時間に１MSSまでのデータを送出し、その後、確認応答が返って来た数分だけ増やして送出するアルゴリズムである。
【００１８】
(2)輻輳回避アルゴリズムは、TCPセグメントの１往復時間に送信データ量を１MSSずつ増加させるアルゴリズムである。
しかしながら、これらのアルゴリズム(1)(2)だけではネットワークの輻輳時に結局パケット廃棄が発生するため、前述の帯域制御と同様の問題がある。
ストリーム型通信帯域制御
また、ストリームを統合し扱う情報通信ネットワークに接続された情報通信端末装置(例えば、サーバ、コンピュータ等)において、音声・画像等のマルチメディアデータ、コンピュータデータ等のストリーム型通信における帯域制御方法として次のようなものがある。
【００１９】
すなわち、通信アプリケーションと独立に帯域制御手段を設け、この手段は、ユーザが希望する帯域と使おうとする通信アプリケーションの必要とする帯域とから得られる値を本情報通信端末装置の要求帯域として算出し、この要求帯域がその時点の伝送路の利用可能帯域以下である場合、伝送路の帯域を予約した後、通信アプリケーションのストリームの送受信を開始し、利用可能帯域を越えている場合、ユーザからの通信要求を拒絶する(例えば、特許文献１参照。)。
【００２０】
しかしながら、この帯域制御方法は、情報通信端末装置に対してユーザが要求帯域を予約するものであり、帯域が無ければユーザ要求は拒絶され、ユーザに対して公平でなく、ネットワークにおける輻輳廃棄も発生する。
【特許文献１】特開平11-98152号                                                以上説明したように、インターネットにおけるダウンロードデータの大容量化や、ピア・ツー・ピアの普及による大容量データ転送が増加すると共に、ユーザは実行速度を上げるために複数のダウンロードを同時間帯に行うことが多くなっている。しかし、ルータ伝送帯域やルータリソースは全ユーザ回線帯域の総和を保証したものではないため、輻輳廃棄やネットワーク輻輳崩壊などの弊害が発生している。
【００２１】
また、TCP輻輳制御はセッション単位で行うものであり複数セッション接続しているユーザとそうでないユーザとの間で不公平が生じる。また、ウィンドウサイズを意図的に大きく設定することで帯域を奪うユーザも考えらる。
さらに、従来のDiffserveによる優先制御では優先度の低いパケットが廃棄され、ポリシングによる帯域制御によっても帯域超過分は廃棄され、REDにおいても廃棄を伴う。この結果、パケット再送が発生しネットワークの負荷を上げてしまう。
【００２２】
従って本発明は、インターネット等のIPネットワークにおける帯域制御装置において、各ユーザのパケットを廃棄することを無くすること、また、ユーザに帯域を公平に割り当てることを課題とする。
【発明の開示】
【００２３】
上記の課題を解決するため、本発明の帯域制御装置は、ユーザ毎に１又は複数のＴＣＰセッションの合計帯域を計測する帯域計測部と、該合計帯域が、予め設定された最大帯域値を越えているか否かを判定する判定部と、該合計帯域が該最大帯域値を越えているユーザのＴＣＰセッション確認応答パケットのウィンドウサイズを減少させるウィンドウサイズ変更部と、を備える。
【００２４】
図１は、本発明の帯域制御装置の原理を示している。ユーザ端末200_1が、例えば、それぞれサーバ500_1，500_2からファイルをダウンロードするとき、ユーザ端末200_1とサーバ500_1との間では、３つのTCPセッション410_1〜410_3が確立され、ユーザ端末200_1とサーバ500_2との間では、１つのTCPセッション410_4が確立される。すなわち、１又は複数のTCPセッションが確立され、このTCPセッション410_1〜410_4を経由してファイルがダウンロードされる。
【００２５】
ユーザ端末200_2，200_3についても、同様にファイルをダウンロードするとき、１又は複数のTCPセッションが確立される(図示せず。)。
帯域計測部は、ユーザ端末200_1の各TCPセッション410_1〜410_4の帯域を合計した値(合計帯域)を計測する。判定部は、この合計帯域が予め設定された最大帯域値を越えているか否かを判定し、その判定結果をウィンドウサイズ変更部に通知する。
【００２６】
ウィンドウサイズ変更部は、ユーザ端末200_1のTCPセッション410_1〜410_4の確認応答パケットのウィンドウサイズ(図20参照。)を減少させる。
これにより、サーバ500_1，500_2からユーザ端末200_1に送出される単位時間当たりの合計データパケット(図示せず。)数が少なくなり、以て合計帯域(帯域)が少なくなり、いずれかのユーザのパケットを廃棄することなく、ユーザ間で帯域を公平に割り当てることが可能になる。
【００２７】
なお、予め設定する最大スループット値は、全ユーザに同一値であってもよいし、ユーザ毎に異なる値にしてもよい。
また、上記において、該判定部は、該合計帯域が該最大帯域より小さい予め設定された帯域制限解除値を越えているか否かを判定し、該ウィンドウサイズ変更部は、該合計帯域が該帯域制限解除値を越えていないユーザのTCPセッション確認応答パケットのウィンドウサイズを増加させる。
【００２８】
すなわち、判定部は、各ユーザの合計帯域が予め設定された帯域制限解除値を越えているか否かを判定し、越えていない場合、帯域制限部に越えていないユーザを通知する。ウィンドウサイズ変更部は、通知されたユーザのTCPセッション確認応答パケットのウィンドウサイズを増加させる。
これにより、合計帯域が帯域制限解除値を越えていないユーザの帯域を増加させることができる。
【００２９】
また、上記の課題を解決するため、本発明の帯域制御装置は、ユーザ毎に１又は複数のTCPセッションの合計帯域を計測する帯域計測部と、該合計帯域が予め設定された最大帯域値を越えているか否かを判定する判定部と、該合計帯域が該最大帯域値を越えているユーザのTCPセッション確認応答パケットを所定の時間だけ遅延させる確認応答時間変更部とを備える。
【００３０】
すなわち、図１において、帯域計測部は、ユーザ端末200_1の各TCPセッション410_1〜410_4の帯域を合計した値(合計帯域)を計測し、判定部は、この値が予め設定された最大帯域値を越えているか否かを判定し、その判定結果を確認応答時間変更部に通知する。
確認応答時間変更部は、ユーザ端末200_1の、例えばTCPセッション410_1の確認応答パケット700_1を遅延させた確認応答パケット700_1'をサーバ500_1に送出する。
【００３１】
これにより、サーバ500_1からユーザ端末200_1に送出されるデータパケット(図示せず。)の送出タイミング遅れ、すなわち、ユーザ端末200_1の合計帯域が減少し、いずれかのユーザのパケットを廃棄することなく、ユーザ間で帯域を公平に割り当てることが可能になる。
また、上記において、該判定部は、該合計帯域が予め設定された帯域制限解除値を越えているか否かを判定し、該確認応答時間変更部は、該合計帯域が該帯域制限解除値を越えていないユーザのTCPセッション確認応答パケットの該所定の時間の遅延量を少なくするか又は無くする。
【００３２】
すなわち、判定部は、各ユーザの合計帯域が該最大帯域より小さい予め設定された帯域制限解除値を越えているか否かを判定し、越えていない場合、確認応答時間変更部に越えていないユーザを通知する。確認応答時間変更部は、通知されたユーザのTCPセッション確認応答パケットの送出時間遅延を少なくするか又は無くする。
これにより、合計帯域が帯域制限解除値を越えていないユーザの帯域を増加させることができる。
【００３３】
さらに、上記において、該所定の時間が、該確認応答パケットを受信した時から該確認応答パケットに対するデータパケットを受信した時までの時間に基づき決定されることが可能である。
すなわち、確認応答パケットをユーザ側から受信した時からこの確認応答パケットに対するデータパケットを、例えばサーバから受信した時までの往復時間を計測し、この時間に基づき決定した、例えば、該往復時間の２倍だけ、その後、受信した確認応答パケットを遅延させる。なお、該往復時間は、複数の往復時間を平均した平均往復時間としてもよい。
【００３４】
また、上記の課題を解決するため、本発明の帯域制御装置は、ユーザ毎に１又は複数のTCPセッションの合計帯域を計測し、全ユーザの該合計帯域を総計した総計帯域を算出する帯域計測部と、該総計帯域が装置全体の帯域に基づき決定される最大帯域制限値を越えているか否かを判定する判定部と、該総計帯域が該最大帯域制限値を越えたときのみ、ユーザ毎の帯域制限を行う帯域制限部とを備える。
【００３５】
すなわち、帯域計測部は、各ユーザの合計帯域を計測し、全ユーザの合計帯域を総計した総計帯域を算出する。装置全体の帯域に余裕が無くなるとき帯域値を最大帯域制限値として予め決定されており、判定部は、該総計帯域が最大帯域制限値を越えているか否かを判定し、帯域制限部は、最大帯域制限値を越えたときのみ、ユーザ毎の帯域制限を行う。これにより、パケットの廃棄を無くすることが可能になる。
【００３６】
また、上記において、該帯域制限部を、該総計帯域が該最大帯域制限値を越えたとき、TCPセッション確認応答パケットのウィンドウサイズを減少させるウィンドウサイズ変更部としてもよい。
すなわち、帯域制限部として、ウィンドウサイズ変更部を用いて、総計帯域が最大帯域制限値を越えたとき、TCPセッション確認応答パケットのウィンドウサイズを減少させるようにしてもよい。
【００３７】
また、上記において、該判定部は、該合計帯域が予め設定された該最大帯域制限値以下の帯域制限解除値を越えているか否かを判定し、該ウィンドウサイズ変更部は、該合計帯域が該帯域制限解除値を越えていないユーザのTCPセッション確認応答パケットのウィンドウサイズを増加させてもよい。
これにより、合計帯域が帯域制限解除値を越えていないユーザの帯域を増加させることができる。
【００３８】
また、上記において、該帯域制限部を、該総計帯域が該最大帯域制限値を越えたとき、TCPセッション確認応答パケットを遅延させる確認応答時間変更部としてもよい。
すなわち、帯域制限部として、確認応答時間変更部を用いて、総計帯域が最大帯域制限値を越えたとき、TCPセッション確認応答パケットを遅延させるようにしてもよい。
【００３９】
また、上記において、該判定部は、該合計帯域が予め設定された該最大帯域制限値以下の帯域制限解除値を越えているか否かを判定し、該確認応答時間変更部は、該合計帯域が該帯域制限解除値を越えていないユーザのTCPセッション確認応答パケットの時間遅延量を少なくするか又は無くするようにしてもよい。
【００４０】
これにより、合計帯域が帯域制限解除値を越えていないユーザの帯域を増加させることができる。
さらに、上記において、帯域計測部は、１又は複数の第１データパケットに対する第１確認応答から、該第１確認応答後の１又は複数の第２データパケットに対する第２確認応答までの確認応答間時間を計測するタイマと、該１又は複数の第２データパケットのデータ長を計数する計数部と、該合計データ長を該確認応答間時間で割った値を帯域値とする演算部とを備えることができる。
【００４１】
すなわち、タイマは、１又は複数の第１データパケットに対する第１確認応答から、該第１確認応答後の１又は複数の第２データパケットに対する第２確認応答までの確認応答間時間を計測する。
計数部は、例えば、第１確認応答及び第２確認応答に含まれる確認応答番号に基づき、第１確認応答から第２確認応答までのデータ長を計測する。なお、このデータ長は、第１確認応答から第２確認応答までに受信したデータパケットに基づき計測してもよい。
【００４２】
演算部は、該第１確認応答から第２確認応答までに送信された１又は複数の第２データパケットの合計データ長を確認応答間時間で割った値を帯域値とする。
これにより、例えば、TCPセッションの帯域を計測することができる。
なお、第１確認応答と第２確認応答の間に複数の確認応答があってもよく、この場合、より平均的な帯域値を演算することが可能である。
【発明を実施するための最良の形態】
【００４３】
実施例(1)：ウィンドウサイズ変更
図２は、本発明に係る帯域制御装置100aの実施例(1)を示しており、この帯域制御装置100aは、帯域計測部10a、ウィンドウサイズ変更部20a、最大帯域超過判定部30、及び最大帯域値/帯域制限解除値設定部40を備えている。
帯域計測部10aは、管理テーブル50a、IPキャプチャ11、及びTCPキャプチャ12を備えている。管理テーブル50aには、タイマ50a_10が含まれている。
【００４４】
動作において、最大帯域値/帯域制限解除値設定部40は、管理テーブル50に予め設定されている、又は外部からオペレータが設定した最大帯域値50a_1及び帯域制限解除値50a_2を最大帯域超過判定部30に与える。帯域計測部10aは、ユーザ端末200_1から受信した確認応答パケット700_aに基づきユーザ毎に合計帯域50a_12を計測し、この合計帯域50a_12を判定部30に与えるとともに確認応答パケット700_aをウィンドウサイズ変更部20aに送出する。
【００４５】
判定部30は、最大帯域値50a_1及び帯域制限解除値50a_2と合計帯域50a_12とを比較して、帯域制御を行うか否かの判定結果801をウィンドウサイズ変更部20aに与える。ウィンドウサイズ変更部20aは、判定結果801が帯域制御を行うことを示すとき、ウィンドウ720f(図19参照。)を変更した確認応答パケット700_bをサーバ500_1に送信する。これにより、ユーザ毎に帯域(スループット)を制御することが可能になる。
【００４６】
動作手順例
図３は、本発明の帯域制御装置100aの動作手順例を示している。この動作手順例を以下に説明する。帯域制御装置100aは、図18で示したユーザ端末200_1(IPアドレス＝“1.1.1.1”)とサーバ500_1との間の、例えば、輻輳が発生する可能性のあるルータ110z_1に実装される。なお、帯域制御装置100aは、ユーザ端末200_1又はサーバ500_1に実装してもよい。
【００４７】
ステップT200〜T203：図21に示した従来例のステップT901〜T903と同様にステップT200，T201，T203で、パケット700_21〜700_23が送受信される３ウェイハンドシェイクが行われ、ユーザ端末200_1とサーバ500_1との間でセッション410_1が確立されるが、異なる点は、ステップT202が追加されていることである。
ステップT202：帯域制御装置100a(図２参照。)の帯域計測部10aにおいて、TCPキャプチャ12はパケット700_22のTCPヘッダ720の確認応答ビット720e1＝“1”、確立要求ビット720e2＝“1”を検出し、パケット700_2が確認応答/確立要求パケットであると認識する。そして、IPキャプチャ11は、パケット700_22のIPヘッダ710の送信元アドレス(IPアドレス)710b＝“1.1.1.1”を検出し、この送信元アドレス710b＝“1.1.1.1”に対応する、すなわち、ユーザ端末200_1に対応する管理テーブル50aを作成する。
【００４８】
図４は、図２に示した管理テーブル50aの実施例を示している。この管理テーブル50aは、ユーザ端末200_1(送信元アドレス＝“1.1.1.1”)に対応したテーブルであり、予め登録された最大帯域値50a_1＝“2.8M(Byte/s)”及び帯域制限解除値50a_2＝“2.3M(Byte/s)”、並びにセッション50a_3、送信元ポート50a_4、宛先ポート50a_5、確認応答番号50a_6、確認応答番号50a_7、データ長50a_8、ウィンドウ50a_9、確認応答間時間50a_10(タイマを兼用)、帯域50a_11、及び合計帯域50a_12で構成されている。
【００４９】
同図(1)及び(2)の管理テーブル50aは、ユーザ端末200_1とサーバ500_1との間にセッション410_1のみ確立された場合を示している。
ステップT204：サーバ500_1は、データパケット700_24をユーザ端末200_1に宛てたデータ転送を開始する。ユーザ端末200_1は、サーバ500_1に宛てて確認応答パケット(図示せず。)を送出する。データ転送開始から一定期間は、スロースタート期間であり、この期間にも確認応答パケット及びデータパケットの送受信は行われるが、スロースタート期間中のデータ転送量は大容量転送中に比べると小さいことから、帯域の計測を行わないので図示及び説明は省略する。スロースタート期間終了後、計測監視状態(ユーザ単位の帯域計測)になる。
【００５０】
ステップT205：ユーザ端末200_1は、サーバ500_1に宛てて確認応答パケット700_25を送出する。
ステップT206：帯域制御装置100aにおいて、帯域計測部10aは、パケット700_25のTCPヘッダ720の確認応答ビット720e1＝“1”であることにより確認応答パケット700_25であると判断する。
【００５１】
そして、帯域計測部10aは、確認応答パケット700_25のIPヘッダ710及びTCPヘッダ720を参照して、それぞれ、IPアドレス＝“1.1.1.1”の管理テーブル50aのセッション50a_3、セッション410_1に対応した送信元ポート50a_4、宛先ポート50a_5、確認応答番号50a_6、及びウィンドウ50a_9に、セッション番号＝“410_1”、パケット700_25の送信元ポート番号720a＝“1000”、宛先ポート番号720b＝“2000”、確認応答番号720d＝“2000”、及びウィンドウ720f＝“3000”を設定する(図4(1)参照。)。さらに、帯域計測部10aは、タイマ50a_10を起動する。
【００５２】
ステップT207〜209：サーバ500_1は、受信した確認応答パケット700_25のウィンドウ720f＝“3000”にしたがって、それぞれ、シーケンス番号＝“2000”，“3000”，及び“4000”のデータパケット700_26〜700_28をユーザ端末200_1に送出する。
ステップT210：ユーザ端末200_1は、サーバ500_1に宛てて、確認応答番号720d＝“5000”及びウィンドウ720f＝“3000”が設定された確認応答パケット700_29を送出する。
【００５３】
ステップT211：帯域制御装置100aにおいて、帯域計測部10aは、それぞれ、受信した確認応答パケット700_29の確認応答番号720d＝“5000”及び最新データのウィンドウ720f＝“3000”を、管理テーブル50a(図4(2)参照)の確認応答番号50a_7及びウィンドウ50a_9に設定する。また、帯域計測部10aは、タイマ50a_10が計測したパケット700_25の受信時からパケット700_29の受信時までの確認応答間時間50a_10＝“0.03(s)”を読み出して保持した後、タイマ50a_10をリセットした後、再起動する。さらに、帯域計測部10aは、受信した確認応答パケット700_29(図２では符号700_a)をウィンドウサイズ変更部20aに与える。
【００５４】
最大帯域値/帯域制限解除値設定部40は、オペレータから与えられた、又は管理テーブル50aから読み出した最大帯域値50a_1＝“2.8M”及び帯域制限解除値50a_2＝“2.3M”を最大帯域超過判定部30に与える。
最大帯域超過判定部30は、確認応答パケット700_29を受信したことを契機として、管理テーブル50aから読み出した合計帯域50a_12＝“0（この時点では、帯域(スループット)50a_11＝“100kBps”は演算されていない。）”が最大帯域値50a_1＝“2.8M”を超過しているか否かを判定し、判定結果801＝“超過していない”をウィンドウサイズ変更部20aに与える。
【００５５】
ウィンドウサイズ変更部20aは、確認応答パケット700_29のウィンドウ720fを変更せずにサーバ500_1に転送する。このように、合計帯域50a_12が最大帯域値50a_1より小さい場合、帯域制御は実行されない。
ステップT212：さらに、帯域計測部10aは、確認応答番号50a_7＝“5000”と確認応答番号50a_6＝“2000”との差分であるデータ長50a_8＝“3000”を求め、このデータ長50a_8＝“3000”及び確認応答間時間50a_10＝“0.03”から帯域(スループット)50a_11を次式(1)に基づいて求める。
【００５６】
【数１】
0004128198.tif 000002
帯域計測部10aは、セッション50a_3＝“410_1”の帯域50a_11＝“100kBps”から合計帯域50a_12＝“100kBps”を求める(図4(2)参照。)。
図５は、ユーザ端末200_1とサーバ500_1との間で、さらにセッション410_2が確立されデータ転送が行われた動作手順例を示している。この動作手順例を以下に説明する。
【００５７】
インターネットを利用してユーザ端末200_1が、サーバ500_1からデータをダウンロードする場合、ユーザ端末200_1とサーバ500_1との間にTCPセッションが一つ確立する。さらに、ユーザ端末200_1が、サーバ500_1若しくは別のサーバ500_2からも同時にデータをダウンロードしようとした場合にも別の一つのTCPセッションが確立される。このように、１つのユーザ端末200_1が、同時に複数のTCPセッションを確立可能になる。
【００５８】
ステップT300〜T303：３ウェイハンドシェイクが実行されセッション410_2が確立され、IPアドレス＝“1.1.1.1”に対応する管理テーブル50aに、送信元ポート50a_4＝“1001”に対応するセッション410_2の行が追加される(図4(3)参照)。
ステップT304：サーバ500_1が、データパケット700_34をユーザ端末200_1に宛てて送信する。
【００５９】
ステップT305，T306：ユーザ端末200_1が、確認応答パケット700_35をサーバ500_1に宛てて送信し、帯域制御装置100aにおいて、帯域計測部10aは、それぞれ、管理テーブル50aのセッション50a_3＝“410_2”、送信元ポート50a_4＝“1001”、宛先ポート50a_5“2000”、確認応答番号50a_6＝“3000”、及びウィンドウ50a_9＝“2000”に設定する(図4(3)参照。)。さらに、帯域計測部10aは、タイマ50a_10を起動する。
【００６０】
ステップT307：サーバ500_1が、データパケット700_36をユーザ端末200_1に宛てて送信する。
ステップT308：ユーザ端末200_1は、サーバ500_1に宛てて、確認応答番号720d＝“4000”及びウィンドウ720f＝“2000”が設定された確認応答パケット700_37を送出する。
ステップT309：帯域制御装置100aにおいて、帯域計測部10aは、管理テーブル50a(同図(3)参照。)の確認応答番号50a_7＝“4000”及びウィンドウ50a_9＝“2000”に設定すると共に、タイマ50a_10が計測したパケット700_35の受信時からパケット700_37の受信時までの確認応答間時間50a_10＝“0.02(s)”を読み出して保持した後、タイマ50a_10を再起動する。
【００６１】
ウィンドウサイズ変更部20aは、最大帯域超過判定部30から与えられた判定結果801で合計帯域50a_12＝“100k”が最大帯域値50a_1＝“2.8M”を超過していないことを知り、帯域計測部10aから受信した確認応答パケット700_37をウィンドウ720f＝“2000”を変更せずにサーバ500_1に転送する。帯域制御は実行されない。
ステップT310：帯域計測部10aは、“4000(＝確認応答番号50a_7)”−“3000(＝確認応答番号50a_6)”＝“1000(＝データ長50a_8)”を演算し、この“1000(＝データ長50a_8)”/“0.02(＝確認応答間時間50a_10)”＝“50k(＝帯域50a_11)”を式(1)で演算した後、合計帯域50a_12＝“150k”を求める(同図(3)参照。)。
【００６２】
図６は、ユーザ端末200_1とサーバ500_1の間でさらにセッション410_3が確立されデータ転送が行われる動作手順例を示している。この動作手順例を以下に説明する。
ステップT400〜T403：３ウェイハンドシェイクが実行されセッション410_3が確立され、管理テーブル50aにセッション410_3の行が追加される(同図(3)参照。)。
ステップT404：サーバ500_1が、データパケット700_43をユーザ端末200_1に宛てて送信する。
【００６３】
ステップT405，T406：ユーザ端末200_1が、確認応答パケット700_44をサーバ500_1に宛てて送信し、帯域制御装置100aにおいて、帯域計測部10aは、それぞれ、管理テーブル50aのセッション50a_3＝“410_3”、送信元ポート50a_4＝“1002”、宛先ポート50a_5＝“2000”、確認応答番号50a_6＝“2000”、及びウィンドウ50a_9＝“4000”に設定する。さらに、帯域計測部10aは、タイマ50a_10を起動する。
【００６４】
図７は、図４に示した管理テーブル50aを示しており、この管理テーブル50aには、さらに、ユーザ端末200_1とサーバ500_1との間で追加確立されたセッション410_3〜410_5のデータが登録されている。
ステップT407〜T410：サーバ500_1が、データパケット700_45〜700_48をユーザ端末200_1に宛てて送信する。
【００６５】
ステップT411：ユーザ端末200_1は、サーバ500_1に宛てて、確認応答番号720d＝“6000”及びウィンドウ720f＝“4000”が設定された確認応答パケット700_49を送出する。
ステップT412：帯域制御装置100aにおいて、帯域計測部10aは、管理テーブル50a(図7(1)参照)のセッション50a_3＝“410_3”の確認応答番号50a_7＝“6000”及びウィンドウ50a_9＝“4000”に設定すると共に、タイマ50a_10が計測したパケット700_44の受信時からパケット700_49の受信時までの時間＝“0.004(s)”を読み出して保持した後、タイマ50a_10を再起動する。
【００６６】
ウィンドウサイズ変更部20aは、最大帯域超過判定部30から与えられた判定結果801で合計帯域50a_12＝“150k”が最大帯域値50a_1＝“2.8M”を超過していないことを知り、帯域計測部10aから受信した確認応答パケット700_37をウィンドウ720f＝“4000”を変更せずにサーバ500_1に転送する。帯域制御は実行されない。
ステップT413：さらに、帯域計測部10aは、“6000(＝確認応答番号50a_7)”−“2000(＝確認応答番号50a_6)”＝“4000(＝データ長50a_8)”を演算し、この“4000”/“0.004(＝確認応答間時間50a_10)”＝“1M(＝帯域50a_11)”を式(1)に基づき演算した後、合計帯域50a_12＝“1.15M”を求る。
【００６７】
図８は、ユーザ端末200_1とサーバ500_1の間でさらにセッション410_4が確立されデータ転送が行われる動作手順例を示している。この動作手順例を以下に説明する。
ステップT500〜T504：図6のステップT400〜T404と同様であり、セッション410_4が確立され、管理テーブル50aにセッション410_4の行が追加され(図7(1)参照。)、データパケット700_53が、サーバ500_1からユーザ端末200_1に送信される。
【００６８】
ステップT505〜T515：図6のステップT405〜T413と同様であるが、ステップT405〜T413より２つ多いデータパケット700_55〜700_60がサーバ500_1からユーザ端末200_1に送信され、管理テーブル50aのセッション50a_3＝“410_4”、送信元ポート50a_4＝“1003”、宛先ポート50a_5“2000”、確認応答番号50a_6＝“5000”、確認応答番号50a_7＝“11000”、及びウィンドウ50a_9＝“6000”、データ長50a_8＝“6000”に設定され、タイマ50a_10＝“0.004”が保持された後、再起動され、確認応答パケット700_37が変更されずにサーバ500_1に送出され、帯域50a_11＝“1.5M”が式(1)で算出され後、合計帯域50a_12＝“2.65M”が求められる。
【００６９】
図９は、ユーザ端末200_1とサーバ500_1の間でさらにセッション410_5が確立されデータ転送が行われた動作手順例を示している。この動作手順例を以下に説明する。
ステップT600〜T604：図6のステップT400〜T404と同様であり、セッション410_5が確立され、管理テーブル50aにセッション410_5の行が追加され(図7(1)参照。)、データパケット700_73が、サーバ500_1からユーザ端末200_1に送信される。
【００７０】
ステップT605〜T613：図6のステップT405〜T413と同様であり、管理テーブル50aのセッション50a_3＝“410_5”の行において、送信元ポート50a_4＝“1004”、宛先ポート50a_5“2000”、確認応答番号50a_6＝“20000”、確認応答番号50a_7＝“24000”、及びウィンドウ50a_9＝“4000”に設定され、データ長50a_8＝“4000”及び帯域50a_11＝“500k”が演算され、タイマ50a_10＝“0.008(s)”が計時され、この時間を保持した後タイマ50a_10が再起動される。
【００７１】
また、帯域計測部10aは、確認応答パケット700_79をウィンドウサイズ変更部20aに与え、ウィンドウサイズ変更部20aは、判定結果801(合計帯域50a_12＝“2.65M”＜最大帯域値＝“2.8M”)に基づき、確認応答パケット700_79を変更せずにサーバ500_1に転送する。この時点では、帯域制御は実行されない。
さらに、帯域計測部10aは、帯域50a_11＝“500k”を式(1)で演算した後(図7(1)のステップS10)、合計帯域50a_12＝“3.15M”を求める。
【００７２】
図10は、図９に示したセッション410_5におけるデータ転送の続きを示している。
ステップT605〜T613：図９のステップT605〜T613と同一ステップを示している。
ステップT614〜T619：管理テーブル50a(図7(1)参照。)のセッション50a_3＝“410_5”の行において、送信元ポート50a_4＝“1004”、宛先ポート50a_5＝“2000”、確認応答番号50a_6＝“24000”、確認応答番号50a_7＝“28000”、及びウィンドウ50a_9＝“4000”が再設定される(同図(1)のステップS11参照。)。計時されたタイマ50a_10＝“0.008(s)”が保持された後、タイマ50a_10が再起動される。
【００７３】
ウィンドウサイズ変更部20aは、判定結果801(合計帯域50a_12＝“3.15M”＞最大帯域値50a_1＝“2.8M”：帯域超過の検出、同図(1)のステップS12参照。)に基づき、確認応答パケット700_84のウィンドウ720f＝“4000”を、例えば半分の“2000”にした確認応答パケット700_85をサーバ500_1に送出する帯域制御が行われる(同図(2)のステップS13参照。)。
【００７４】
ステップT620：データ長50a_8＝“4000”、及び帯域50a_11＝“500k”が演算された後、合計帯域50a_12＝“3.15M”が求められる。
図7(2)を参照して、以後の動作を説明する。
ステップS14，S15：サーバ500_1は、指定されたウィンドウサイズ内でデータを送信して来るため、データパケットが減り、帯域が減少する。すなわち、セッション410_5の帯域50a_11は、“250k”に減少し、合計帯域50a_12＝“2.9M”となる。
【００７５】
ステップS16：この合計帯域50a_12＝“2.9M”が、まだ最大帯域値50a_1＝“2.8M”を超過しているため、次に確認応答パケットを受信したセッション410_4のウィンドウ720f＝“6000”が、半分の“3000”に設定する帯域制御が行われる。
ステップS17，S18：セッション410_4の帯域50a_11＝“0.75M”に減少し、帯域制限解除値＝“2.3M”＜合計帯域50a_12＝“2.15M”＜最大帯域値50a_1＝“2.8M”となる。この後、次に受信したセッション410の確認応答パケット700のウィンドウ720fの値を変更せずにトランスペアレントに送信する。これにより、全ユーザに対して公平な帯域制御を行うことが可能になる。
【００７６】
なお、上述した帯域制御では、各ユーザの最大帯域を2.8MByte/sに制限する場合であり、セッション数やウィンドウサイズには関係なく合計帯域で判断している。
実施例(2)：確認応答時間変更
図11は、本発明に係る帯域制御装置100bの実施例(2)を示している。この帯域制御装置100bが、図２に示した帯域制御装置100aと異なる点は、それぞれ、ウィンドウサイズ変更部20a及び帯域計測部10aの代わりに確認応答時間変更部20b及び帯域計測部10bを備え、この帯域計測部10bを構成する管理テーブル50bには、２つのタイマ50b_10，50b_12を備えていることである。
【００７７】
また、帯域計測部10bが、最大帯域値/帯域制限解除値設定部40に最大帯域値50b_1及び帯域制限解除値50b_2を与え、最大帯域超過判定部30に合計帯域50b_14を与えることも異なっている。
動作において、この帯域制御装置100bが、帯域制御装置100aと異なる点は、確認応答時間変更部20bが、予め設定された最大帯域値50b_1又は帯域制限解除値50b_2を合計帯域が超過したか否かの判定結果に基づき、ユーザ毎に受信した確認応答パケット700_bを転送する時間を遅延させることである。
【００７８】
この遅延時間は、確認応答パケット(例えば、確認応答番号720d＝“2000”)をサーバ500_1に与えてから、それに対応するデータパケット(例えば、シーケンス番号720c＝“2000”)を受信するまでの応答時間を基準として、この基準時間の例えば180％増しにする。
なお、応答時間の信頼性を増すために、平均応答時間を用いる。また、平均応答時間は、受信データパケットの廃棄、遅延等も考慮した平均を取る。
【００７９】
図12は、図11に示した管理テーブル50bの実施例を示している。この管理テーブル50bが、図７に示した管理テーブル50aと異なる点は、平均往復時間50b_10及び変更時間50b_11が追加されていることである。
管理テーブル50bは、図3、5、6、8〜10に示した帯域制御装置100aの動作手順例と同様に、ユーザ(IPアドレス)毎に作成され、同一ユーザに対応するセッションの帯域が、式(1)に基づき計測され、ユーザの全セッションの合計帯域が求められる。
【００８０】
図12(1)には、図3、5、6、8〜10に示した帯域制御装置100aの動作手順と同様の確認応答パケット700及びデータパケット700が、ユーザ端末200_1とサーバ500_1との間で送受信された場合に設定される値が示されている。各セッション410_1〜410_5の送信元ポート50b_4、宛先ポート50b_5、確認応答番号50b_6、確認応答番号50b_7、データ長50b_8、ウィンドウ50b_9、確認応答間時間50b_12、及び帯域50b_13、及び合計帯域50b_14に設定されたデータの値は、それぞれ、図7(1)の各セッション410_1〜410_5の送信元ポート50a_4、宛先ポート50a_5、確認応答番号50a_6、確認応答番号50a_7、データ長50a_8、ウィンドウ50a_9、確認応答間時間50a_10、及び帯域50a_11、及び合計帯域50a_12と同一である。
【００８１】
図13は、帯域制御装置100bの動作手順を示している。この動作手順例を以下に説明する。図10に示したステップT605〜T618と同様に、ユーザ端末200_1のセッション410_5が追加された後、ユーザ端末200_1とサーバ500_1との間で、確認応答パケット及びデータパケットが送受信される。
ステップT700：ユーザ端末200_1は、確認応答パケット700_100をサーバ500_1に宛てて送出する。
【００８２】
ステップT701〜T704：サーバ500_1は、データパケット700_101〜70_104をユーザ端末200_1に宛てて送出する。
ステップT705：ユーザ端末200_1は、確認応答パケット700_105をサーバ500_1に宛てて送出する。
ステップT706：確認応答番号720d＝“2000”の確認応答パケット700_105を受信した帯域計測部10bにおいて、管理テーブル50b内のタイマ50b_10及び50b_12が起動する。以後のタイマ50b_12の動作は、図7に示したタイマ50a_10と同様であるので説明は省略する。
【００８３】
ステップT707〜T710：サーバ500_1は、データパケット700_106〜70_109をユーザ端末200_1に宛てて送出する。帯域計測部10bにおいて、タイマ50b_10は、確認応答番号720d＝“2000”と同一のシーケンス番号720c＝“2000”のデータパケット700_106の受信した時、停止する。すなわち、タイマ50b_10は、平均往復時間50b_10（確認応答パケット700_105の転送時からデータパケット700_106の受信時までの時間)を計測する。なお、この平均往復時間50b_10は、各セッション410_1〜410_5毎に確認応答パケットを受信する度に行われ、図7(1)では、それぞれ、“0.01(s)”、“0.01(s)”、“0.08(s)”、“0.08(s)”、“0.08(s)”が計測されている。
【００８４】
ステップT711：ユーザ端末200_1は、確認応答パケット700_110をサーバ500_1に宛てて送出する。
ステップT712：帯域制御装置100bにおいて、図10のステップT619，T620と同様に、最大帯域超過判定部30は帯域超過発生を検出し、確認応答時間変更部20bは、確認応答パケット700_110を、タイマ50b_10に保持されていた“0.08(s)”の188%増しにした“0.15(s)”だけ遅らせた確認応答パケット700_111をサーバ500_1に転送する。
【００８５】
ステップT713〜T718：サーバ500_1は、データパケット700_112〜700_115をユーザ端末200_1に送信する。
ステップT719：この結果、例えば、データパケット700_112は、確認応答パケット700_110が遅延されない場合、時点T715'にユーザ端末200_1に到着する筈であるが、時間T715だけ遅れて到着したことになり、セッション410_5の帯域を減少させたことなる。したがって、ユーザ端末200_1の合計帯域50b_14も減少することが可能になる。
【００８６】
以後、図７に示したステップS10〜S18と同様のステップS20〜S28が実行され、合計帯域50b_14が、最大帯域値50b_1を超過している場合、確認応答パケットが遅延される。
その後の最大帯域超過判定において、帯域超過が無くなればそのままの遅延時間で全てのセッション410_1〜410_5が動作する。さらに、その後、ユーザの合計帯域50b_14が帯域制限解除値50b_2を下回れば、確認応答パケットを遅延させていたセッション410_1の変更時間＝“0(s)”にして、ユーザ端末200_1からの確認応答パケットを遅延させずにそのままトランスペアレントに転送する。
【００８７】
図14は、上述した実施例(1)又は実施例(2)の帯域制御で、各セッション410_1〜410_5の帯域50a_11又は50b_13、及び合計帯域50a_12又は50b_14の時間的な推移を示している。この推移を以下に説明する。
ステップT800：セッション410_1〜410_3が、順次確立される。
ステップT801，T802：セッション410_4が確立され、このセッション410_4の確認応答パケット700_4aを契機に、合計帯域50a_12が最大帯域値50a_1以上であることが認識され、セッション410_4の帯域制限が開始される。
【００８８】
ステップT803，T804：セッション410_2の確認応答パケット700_2aを契機に、まだ、合計帯域50a_12が最大帯域値50a_1以上であることが認識され、セッション410_2の帯域制限が開始される。
ステップT805：合計帯域50a_12が最大帯域値50a_1以下であり、帯域制限はそのまま継続する。
【００８９】
ステップT806，T807：セッション410_5が確立され、このセッション410_4の確認応答パケット700_4bを契機に、合計帯域50a_12が最大帯域値50a_1以上であることが認識され、セッション410_4の帯域制限が開始される。
ステップT808，T809：セッション410_3の確認応答パケット700_3bを契機に、まだ、合計帯域50a_12が最大帯域値50a_1以上であることが認識され、セッション410_3の帯域制限が開始される。
【００９０】
ステップT810：合計帯域50a_12が最大帯域値50a_1以下であり、帯域制限はそのまま継続する。
ステップT811，T812：セッション410_1が終了し、合計帯域50a_12が帯域制限解除値50a_2以下になる。
ステップT813：セッション410_4の確認応答パケット700_4cを契機に、合計帯域50a_12が帯域制限解除値50a_2以下であることが認識され、セッション410_4の帯域制限が解除される。
【００９１】
ステップT814，T815：合計帯域50a_12が最大帯域値50a_1以上になり、セッション410_5の確認応答パケット700_5bを契機に、合計帯域50a_12が最大帯域値50a_1以上であることが認識され、セッション410_5の帯域制限が開始される。
ステップT816：合計帯域50a_12が最大帯域値50a_1以下であり、帯域制限はそのまま継続する。
【００９２】
ステップT817，T818：セッション410_5が終了し、合計帯域50a_12が帯域制限解除値50a_2以下になる。
ステップT819：セッション410_3の確認応答パケット700_3cを契機に、合計帯域50a_12が帯域制限解除値50a_2以下であることが認識され、セッション410_3の帯域制限が解除される。
【００９３】
ステップT820：合計帯域50a_12が、帯域制限解除値50a_2以上且つ最大帯域値50a_1以下であり、帯域制限が行われない状態が継続する。
これにより、ユーザに対応する合計帯域50a_12の帯域制御が行われたことになる。
実施例(3)：装置全体の帯域調整したネットワーク
図15は、ISP310_1を示しており、ISP310_1は、複数のユーザを収容しインターネット300との接続を行っている。すなわち、ISP310_1は、ユーザ側に実装されてたルータ110_1〜110_3(以下、符号110で総称することがある。)に、それぞれ、ユーザ端末200_1_1〜200_1_ｉ、ユーザ端末200_2_1〜200_2_j、ユーザ端末200_3_1〜200_3_k(以下、符号200で総称することがある。)を収容し、ルータ110_4及びルータ110_5を経由してインターネット300に接続されている。
【００９４】
ルータ110_1〜110_3は、それぞれ、本発明の帯域制御装置100_1〜100_3を備えており、これらの帯域制御装置100_1〜100_3には、それぞれ、管理テーブル60_1〜60_3(図示せず。)が含まれている。
図16(1)〜(3)は、それぞれ、図15に示した管理テーブル60_1〜60_3を示しており、各管理テーブル60_1〜60_3は、それぞれ、最大帯域制限値60_1_1〜60_3_1、並びに対応するルータ110に接続された各ユーザ端末200の帯域制限値60_1_2及び現使用帯域60_1_3、帯域制限値60_2_2及び現使用帯域60_2_3、並びに帯域制限値60_3_2及び現使用帯域60_3_3、並びに総計帯域60_1_4〜60_3_4で構成されている。
【００９５】
最大帯域制限値60_1_1〜60_3_1には、ユーザに対する帯域制限の有/無を示すフィールドも含まれている。
同図(4)は、総計帯域60_4を示しており、総計帯域60_4には、管理テーブル60_1〜60_3の現使用帯域60_1_3〜60_3_3の総計帯域60_1_4〜60_31_4が集計される。
管理テーブル60_1のユーザ端末200_1_1〜200_1_iの現使用帯域は、それぞれ、3.0MBps〜x.xMBpであり、この総計帯域60_1_4は48.0MBpsである。同様に、管理テーブル60_2，60_3の総計帯域60_2_4，60_3_4は、それぞれ、70.0MBps及び28.0MBpsである。総計帯域60_1_4〜60_3_4の合計が、総計帯域60_4＝“146M”である。
【００９６】
動作において、ISP310_1の制御部(図示せず。)は、帯域制御装置100_1〜100_3の総計帯域60_4＝“146MBps”を算出し、予め設定した最大帯域値＝“130MBps”を超過した場合、各ルータ単位さらにはユーザ単位に帯域制限する。
管理テーブル60_1〜60_3には、ルータ(帯域制御装置)毎に、最大帯域制限値60_1_1＝“有、40M”、最大帯域制限値60_2_1＝“有、50M”、最大帯域制限値60_3_1＝“無、40M”が設定されている。
【００９７】
管理テーブル60_1，60_2には、ユーザ端末毎に、それぞれ、“3.0M”及び“4.0M”が設定されている。管理テーブル60_3には、現使用帯域の総計帯域60_3_4＝“28.0M”が、最大帯域制限値60_3_1＝、40M”に達していないのでユーザ端末に帯域制限を行っていない。
これにより、ISP310_1では、インターネット300又はISP310_1内のユーザ端末200とのデータ転送が、輻輳廃棄を発生すること無く可能になる。
【００９８】
図17は、実施例(1)〜実施例(3)の帯域制御を行ったネットワークの状態を示しており、本発明においては、ユーザ単位(実施例(3)では、例えば、最大帯域制限値を越えたルータ110_2，110_3の帯域制御装置100_2，100_3において)で帯域制限を行うため、パケットの輻輳廃棄が無く、また、特定のユーザに帯域を占領されること無く公平な帯域制限が可能になる。
【００９９】
以上、説明したように本発明の帯域制御装置によれば、帯域計測部10が、ユーザ毎に１又は複数のTCPセッションの合計帯域を計測し、ウィンドウサイズ変更部20aが、該合計帯域が予め設定された最大帯域値を越えているユーザのTCPセッションの確認応答パケットのウィンドウサイズを減少させるか、又は、確認応答時間変更部が、該確認応答パケットを遅延させることにより、各ユーザのパケット700を廃棄することを無くすること、また、ユーザに帯域を公平に割り当てることが可能になる。
【０１００】
すなわち、１つのルータに収容されるそれぞれのユーザ帯域が、ヘビーユーザ（同時間帯での大容量のデータ転送者）によって極端に小さいままになってしまうということを防ぐことができ、ベストエフォート型の公平を保つことが可能となる。
また、例えば、或るルータのデータ転送が多くなり、輻輳状態に陥り廃棄を起こすことになった場合、廃棄分のTCP再送制御が行われることとなりネットワーク及びサーバ等に負荷をかけることとなるが、ユーザに対して帯域制限をかければ輻輳発生頻度を低減させることが可能となる。
【０１０１】
また、統計的に輻輳を起こしやすいルータに、本発明の帯域制御装置を備えることで、輻輳廃棄を未然に防ぐことが可能となり、ネットワークの最適運用が可能になる。
【図面の簡単な説明】
【０１０２】
【図１】本発明に係る帯域制御装置の原理を示したブロック図である。
【図２】本発明に係る帯域制御装置の実施例(1：ウィンドウサイズ変更)を示しブロック図である。
【図３】本発明に係る帯域制御装置におけるウィンドウサイズ変更の動作手順例(1)を示したシーケンス図である。
【図４】本発明に係る帯域制御装置におけるウィンドウサイズ変更の管理テーブル例(1)を示した図である。
【図５】本発明に係る帯域制御装置におけるウィンドウサイズ変更の動作手順例(2)を示したシーケンス図である。
【図６】本発明に係る帯域制御装置におけるウィンドウサイズ変更の動作手順例(3)を示したシーケンス図である。
【図７】本発明に係る帯域制御装置におけるウィンドウサイズ変更の管理テーブル例(1：続き)を示した図である。
【図８】本発明に係る帯域制御装置のウィンドウサイズ変更の動作手順例(4)を示したシーケンス図である。
【図９】本発明に係る帯域制御装置のウィンドウサイズ変更の動作手順例(5)を示したシーケンス図である。
【図１０】本発明に係る帯域制御装置の動作手順例(5：続き)を示したシーケンス図である。
【図１１】本発明に係る帯域制御装置の実施例(2：確認応答時間変更)を示しブロック図である。
【図１２】本発明に係る帯域制御装置における確認応答時間変更の管理テーブル例(2)を示した図である。
【図１３】本発明に係る帯域制御装置における確認応答時間変更の動作手順例(1)を示したシーケンス図である。
【図１４】本発明に係る帯域制御装置のウィンドウサイズ変更及び確認応答時間変更における合計帯域の推移例を示した図である。
【図１５】本発明に係る帯域制御装置全体の帯域制御を行った場合のネットワーク構成例を示したブロック図である。
【図１６】本発明に係る帯域制御装置全体の帯域制御を行った場合の管理テーブル例を示した図である。
【図１７】本発明に係る帯域制御装置における帯域制御後の最適化が行われたネットワークを示したブロック図である。
【図１８】一般的なルータ(帯域制御装置)を用いたネットワーク構成を示したブロック図である。
【図１９】一般的なTCP/IPパケットのフォーマットを示した図である。
【図２０】一般的な帯域制御装置を用いたネットワークにおけるデータ転送動作手順を示したシーケンス図である。
【図２１】一般的な帯域制御装置を用いたネットワークにおける輻輳発生状態を示したブロック図である。
【符号の説明】
【０１０３】
100，100_1〜100_3，100a，100b，100z，100z_1〜100z_9  帯域制御装置
110，110_1〜110_9，110z，110z_1〜110z_9  ルータ
10a，10b  帯域計測部              11  IPキャプチャ
12  TCPキャプチャ
20a  ウィンドウサイズ変更部       20b  確認応答時間変更部
30  最大帯域超過判定部           40  最大帯域値/帯域制限解除値設定部
50a，50b  管理テーブル           50a_1，50b_1  最大帯域値
50a_2，50b_2  帯域制限解除値      50a_3，50b_3  セッション
50a_4，50b_4  送信元ポート        50a_5，50b_5  宛先ポート
50a_6，50a_7，50b_6，50b_7  確認応答番号
50a_8，50b_8  データ長           50a_9，50b_9  ウィンドウ
50a_10，50b_10  確認応答間時間、タイマ
50a_11，50b_13  帯域             50a_12，50b_14  合計帯域
50b_11  変更時間                 50b_12  確認応答間時間、タイマ
60_1〜60_3  管理テーブル          60_4  総計帯域
60_1_1〜60_3_1  最大帯域制限値    60_1_2〜60_3_2  帯域制限値
60_1_3〜60_3_3  現使用帯域       60_1_4〜60_3_4  総計帯域
150_1〜150_3  xDSL、FTTH
200，200_1〜200_4，200_1_1〜200_3_k  ユーザ端末
300  インターネット              310_１〜310_4  ISP
410，410_１〜410_5，410_1a〜410_6a，410_1b〜410_6b  セッション
500_1〜500_2  サーバ         510_1〜510_3  コンテンツ
700  TCP/IPパケット
700_21〜700_135  、確認応答パケット、確立要求パケット、データパケット
700_a〜700_d，700_1〜700_4，700_1’〜700_4’  確認応答パケット
700_1a〜700_1c，700_2a〜700_2c，700_3a〜700_3c  確認応答パケット
700_4a〜700_4d，700_5a，700_5b  確認応答パケット
710  IPヘッダ                    710a  サービスタイプ
710b  送信元アドレス             710c  宛先アドレス
720  TCPヘッダ                   720a  送が元ポート番号
720b  宛先ポート番号             720c  シーケンス番号
720d  確認応答番号               720e  コントロール
720e1  確認応答ビット            720e2  確立要求ビット
720f  ウィンドウ                 720g  オプション
730  データ                       801  判定結果
図中、同一符号は同一又は相当部分を示す。
【図１】
0004128198.tif 000003
【図２】
0004128198.tif 000004
【図３】
0004128198.tif 000005
【図４】
0004128198.tif 000006
【図５】
0004128198.tif 000007
【図６】
0004128198.tif 000008
【図７】
0004128198.tif 000009
【図８】
0004128198.tif 000010
【図９】
0004128198.tif 000011
【図１０】
0004128198.tif 000012
【図１１】
0004128198.tif 000013
【図１２】
0004128198.tif 000014
【図１３】
0004128198.tif 000015
【図１４】
0004128198.tif 000016
【図１５】
0004128198.tif 000017
【図１６】
0004128198.tif 000018
【図１７】
0004128198.tif 000019
【図１８】
0004128198.tif 000020
【図１９】
0004128198.tif 000021
【図２０】
0004128198.tif 000022
【図２１】
0004128198.tif 000023