(57)【要約】【課題】帯域保証ネットワークでのデータ転送において、帯域制御の対象フローが多重化された場合においても、保証した帯域を効率よく利用する。【解決手段】帯域情報保持部は、帯域保証ネットワークにてサービス対象フローに割り当てられた保証帯域を保持する。伝搬遅延時間算出部は、サービス対象フローの伝搬遅延時間を計測する。ウィンドウサイズ算出部は、サービス対象フローの保証帯域と伝搬遅延時間から、データが保証帯域以内の帯域となるウィンドウサイズを算出する。ＡＣＫスケジューリング部は、データ受信端末から受信したＡＣＫパケットに書かれていたＡＣＫ番号と、データ送信端末に前回送信したＡＣＫパケットに書き込んだＡＣＫ番号の差が大きいサービス対象フローを優先してＡＣＫパケットの送信タイミングをスケジューリングする。広告ウィンドウサイズ書き込み部は、ウィンドウサイズをＡＣＫパケットに書き込む。【選択図】図２
2010093371.tif 000002
【特許請求の範囲】
【請求項１】
データ送信端末からデータ受信端末へ送信できる帯域が保証された帯域保証ネットワークにおいて前記データ送信端末と前記データ受信端末の間に配置されるエッジノードであって、
前記帯域保証ネットワークにて前記データ送信端末から前記データ受信端末へのサービス対象フローに割り当てられた保証帯域を保持する帯域情報保持部と、
前記サービス対象フローの伝搬遅延時間を計測する伝搬遅延時間算出部と、
前記帯域情報保持部に保持されている前記サービス対象フローの保証帯域と、前記伝搬遅延時間算出部で計測された前記サービス対象フローの伝搬遅延時間とから、前記サービス対象フローのデータが前記保証帯域以内の帯域となるウィンドウサイズを算出するウィンドウサイズ算出部と、
前記データ受信端末から受信したＡＣＫパケットに書かれていたＡＣＫ番号である到着済ＡＣＫ番号と、前記データ送信端末に前回送信したＡＣＫパケットに書き込んだＡＣＫ番号である送信済ＡＣＫ番号との差であるＡＣＫ番号差が大きいサービス対象フローを優先して、前記データ送信端末に送信する前記サービス対象フローのＡＣＫパケットの送信タイミングをスケジューリングするＡＣＫスケジューリング部と、
前記ウィンドウサイズを前記ＡＣＫパケットに書き込む広告ウィンドウサイズ書き込み部と、
を有するエッジノード。
【請求項２】
前記サービス対象フローのそれぞれについてデータパケット送信権であるトークンを管理しており、前記サービス対象フローの前記保証帯域に応じたレートで前記トークンを追加し、前記データ送信端末にＡＣＫパケットが送信されるとき、該ＡＣＫパケットに付与されたＡＣＫ番号と、該データ送信端末の送信済ＡＣＫ番号との番号差だけ前記トークンを減算するトークン管理部を更に有する、請求項１に記載のエッジノード。
【請求項３】
前記ＡＣＫスケジューリング部は、前記サービス対象フローのＡＣＫパケットを送信するとき、該サービス対象フローの前記ＡＣＫ番号差と前記トークンの量を比較し、いずれか少ない方の分だけデータを送出することを許可するＡＣＫ番号を前記ＡＣＫパケットに付与する、請求項２に記載のエッジノード。
【請求項４】
前記ＡＣＫスケジューリング部は、前記サービス対象フローの前記ＡＣＫ番号差が前記トークンの量より大きければ、該サービス対象フローの前記送信済ＡＣＫ番号に前記トークンを加算した値を次回のＡＣＫパケットのＡＣＫ番号とし、該ＡＣＫパケットを前記データ送信端末に送信する、請求項３に記載のエッジノード。
【請求項５】
フローの振り分けを行い、前記データ受信端末から受信した前記サービス対象フローのＡＣＫパケットを前記ＡＣＫスケジューリング部に送るフロー識別・振り分け部を更に有する、請求項１から４のいずれか１項に記載のエッジノード。
【請求項６】
前記伝搬遅延時間算出部で計測された前記伝搬遅延時間を、サービス対象フローのコネクション情報と対応付けて保持するフロー情報保持部を更に有する、請求項１から５のいずれか１項に記載のエッジノード。
【請求項７】
データ送信端末からデータ受信端末へ送信できる帯域が保証された帯域保証ネットワークにおける前記データ送信端末から前記データ受信端末へのデータ送信の帯域を制御するための帯域制御方法であって、
前記帯域保証ネットワークにて前記データ送信端末から前記データ受信端末へのサービス対象フローに割り当てられた保証帯域を予め保持し、
前記サービス対象フローの伝搬遅延時間を計測し、
前記サービス対象フローの保証帯域と伝搬遅延時間から、前記サービス対象フローのデータが前記保証帯域以内の帯域となるウィンドウサイズを算出し、
前記データ受信端末から受信したＡＣＫパケットに書かれていたＡＣＫ番号である到着済ＡＣＫ番号と、前記データ送信端末に前回送信したＡＣＫパケットに書き込んだＡＣＫ番号である送信済ＡＣＫ番号との差であるＡＣＫ番号差が大きいサービス対象フローを優先して、前記データ送信端末に送信する前記サービス対象フローのＡＣＫパケットの送信タイミングをスケジューリングし、
前記ウィンドウサイズを前記ＡＣＫパケットに書き込む広告ウィンドウサイズ書き込む、帯域制御方法。
【請求項８】
前記サービス対象フローのそれぞれについてデータパケット送信権であるトークンを管理しており、
前記サービス対象フローの前記保証帯域に応じたレートで前記トークンを追加し、
前記データ送信端末にＡＣＫパケットが送信されるとき、該ＡＣＫパケットに付与されたＡＣＫ番号と、該データ送信端末の送信済ＡＣＫ番号との番号差だけ前記トークンを減算する、
請求項７に記載の帯域制御方法。
【請求項９】
前記サービス対象フローの送信済ＡＣＫ番号に、該サービス対象フローの前記トークンを加算した値を、該サービス対象フローの次回のＡＣＫパケットのＡＣＫ番号とし、該ＡＣＫパケットを前記データ送信端末に送信する、請求項８に記載の帯域制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末間でネットワークを介してデータを送受信するシステムにおけるフロー制御に関する。
【背景技術】
【０００２】
パソコンなどの端末の間ではインターネットなどのコンピュータネットワークを介した通信が行われる。この通信によってファイル等のデータが転送される。この種のデータ転送システムでは、トランスポート層のプロトコルとして、標準的なトランスポートプロトコルであるＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）が用いられることが多い。
【０００３】
また、データ転送においては大容量のデータを高速に転送することが要求されることがある。これに対してＴＣＰのウィンドウサイズを一定に制御することでスループットを向上させる検討がなされている。
【非特許文献１】服部  恭太、外５名，  “エッジルータにおけるＴＣＰフローレート制御方式の検討”，  電子情報通信学会総合大会（Ｂ−６−５４），  ２００７年３月，  ｐ．５４
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ＴＣＰでは、ウィンドウサイズをパケット廃棄に従って自律的に変化させる帯域制御が行われる。しかし、保証された帯域以上のトラヒックがネットワークに流入するのを防ぐためにネットワークの入り口でバーストサイズを規定したトークンバケット型の流入制限を行っている帯域保証ネットワークでのデータ転送においては、スループットが鋸歯状になり、保証された帯域を十分に活用できないという課題があった。
【０００５】
上述したＴＣＰプロトコルに変更を加えることで保証された帯域に合わせて一定のスループットでデータを送信する技術や広告ウィンドウサイズを一定に制御する技術には、この課題に対する対策がある。
【０００６】
しかし、非特許文献１に記載された、広告ウィンドウサイズを一定に制御する技術では、フローが多重化されることが考慮されていなかった。そのため、帯域制御の対象となるフローが高多重化されるほど、算出したフローのパケット送信タイミングと実際に送信が可能なパケット送信タイミングとのずれが大きくなる。その結果、ネットワークの入り口で、設定されたバーストサイズを超えるバースト性のあるフローとなるために、流入制限によりパケットの廃棄が発生し、フロー毎に保証された帯域の利用効率が低下するという問題があった。
【０００７】
本発明の目的は、帯域保証ネットワークでのデータ転送において、帯域制御の対象フローが多重化された場合においても、保証した帯域を効率よく利用することを可能にする技術を提供することである。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明のエッジノードは、
データ送信端末からデータ受信端末へ送信できる帯域が保証された帯域保証ネットワークにおいて前記データ送信端末と前記データ受信端末の間に配置されるエッジノードであって、
前記帯域保証ネットワークにて前記データ送信端末から前記データ受信端末へのサービス対象フローに割り当てられた保証帯域を保持する帯域情報保持部と、
前記サービス対象フローの伝搬遅延時間を計測する伝搬遅延時間算出部と、
前記帯域情報保持部に保持されている前記サービス対象フローの保証帯域と、前記伝搬遅延時間算出部で計測された前記サービス対象フローの伝搬遅延時間とから、前記サービス対象フローのデータが前記保証帯域以内の帯域となるウィンドウサイズを算出するウィンドウサイズ算出部と、
前記データ受信端末から受信したＡＣＫパケットに書かれていたＡＣＫ番号である到着済ＡＣＫ番号と、前記データ送信端末に前回送信したＡＣＫパケットに書き込んだＡＣＫ番号である送信済ＡＣＫ番号との差であるＡＣＫ番号差が大きいサービス対象フローを優先して、前記データ送信端末に送信する前記サービス対象フローのＡＣＫパケットの送信タイミングをスケジューリングするＡＣＫスケジューリング部と、
前記ウィンドウサイズを前記ＡＣＫパケットに書き込む広告ウィンドウサイズ書き込み部と、
を有している。
【０００９】
本発明によれば、複数のサービス対象フローのＡＣＫパケットをスケジューリングし、そのスケジューリングにおいて、到着済ＡＣＫ番号と送信済ＡＣＫ番号の差であるＡＣＫ番号差が大きいサービス対象フローを優先するので、フロー多重時に発生するフローのバースト化を緩和するとともに、データ受信端末がより多くのデータを受信できる状態のサービス対象フローを優先させ、データを効率よく転送することができる。
【００１０】
また、前記サービス対象フローのそれぞれについてデータパケット送信権であるトークンを管理しており、前記サービス対象フローの前記保証帯域に応じたレートで前記トークンを追加し、前記データ送信端末にＡＣＫパケットが送信されるとき、該ＡＣＫパケットに付与されたＡＣＫ番号と、該データ送信端末の送信済ＡＣＫ番号との番号差だけ前記トークンを減算するトークン管理部を更に有することにしてもよい。
【００１１】
また、前記ＡＣＫスケジューリング部は、前記サービス対象フローのＡＣＫパケットを送信するとき、該サービス対象フローの前記ＡＣＫ番号差と前記トークンの量を比較し、いずれか少ない方の分だけデータを送出することを許可するＡＣＫ番号を前記ＡＣＫパケットに付与することにしてもよい。
【００１２】
また、前記ＡＣＫスケジューリング部は、前記サービス対象フローの前記ＡＣＫ番号差が前記トークンの量より大きければ、該サービス対象フローの前記送信済ＡＣＫ番号に前記トークンを加算した値を次回のＡＣＫパケットのＡＣＫ番号とし、該ＡＣＫパケットを前記データ送信端末に送信することにしてもよい。
【００１３】
これによれば、データ送信端末は、保証帯域とデータ受信端末からの許可の両方を順守しながら最大限のデータを送信することができるので、保証帯域を効率よく利用してスループットを向上させることができる。
【００１４】
また、フローの振り分けを行い、前記データ受信端末から受信した前記サービス対象フローのＡＣＫパケットを前記ＡＣＫスケジューリング部に送るフロー識別・振り分け部を更に有することにしてもよい。
【００１５】
また、前記伝搬遅延時間算出部で計測された前記伝搬遅延時間を、サービス対象フローのコネクション情報と対応付けて保持するフロー情報保持部を更に有することにしてもよい。
【発明の効果】
【００１６】
本発明によれば、フロー多重時に発生するフローのバースト化を緩和するとともに、データ受信端末がより多くのデータを受信できる状態のサービス対象フローを優先させ、データを効率よく転送することができる。
【発明を実施するための最良の形態】
【００１７】
一般的なＴＣＰでは広告ウィンドウと輻輳ウィンドウという２つのウィンドウが定義される。広告ウィンドウのサイズは受信側で受信バッファの状態に依存して決定される。輻輳ウィンドウのサイズはデータ送信側でパケット廃棄の状況に応じて決定される。フロー制御に用いるウィンドウサイズには広告ウィンドウサイズと輻輳ウィンドウサイズのうちいずれか小さいほうが選択される。このウィンドウサイズはＡＣＫが到着したときに更新される。
【００１８】
本実施形態では、データの送信側となるデータ送信端末と、データの受信側となるデータ受信端末との間は、帯域保証ネットワークによって帯域が保証される構成である。従って、保証帯域以下でデータを送出している限りパケットの廃棄が生じないことが想定される。
【００１９】
それゆえ、データが保証帯域以下で送出されるように広告ウィンドウサイズを調節すればパケットの廃棄を防ぐことができる。パケットの廃棄が生じなければ輻輳ウィンドウサイズが小さくならないので常に広告ウィンドウサイズがＴＣＰウィンドウサイズに採用されることになる。その結果、スループットが鋸歯状に変動しなくなり保証帯域の効率的な利用が可能となる。
【００２０】
そこで、本実施形態では、データ送信端末とデータ受信端末の間でエッジノードがデータ送信側とデータ受信側の間の伝搬遅延時間を測定し、その伝搬遅延時間と、帯域保証ネットワークによる保証帯域とから、データが保証帯域以内で送出されるようなウィンドウサイズを算出し、算出したウィンドウサイズを、データ送信端末へ送信するＡＣＫパケットに広告ウィンドウサイズとして書き込む。
【００２１】
これにより、データ送信端末からデータ受信端末へ送信するデータの帯域を保証帯域内で安定的に制御できるので、保証帯域を効率よく利用することができる。
【００２２】
また、エッジノードは、データ受信端末から受信したデータ送信端末宛てのＡＣＫパケットに付与されていたＡＣＫ番号と、データ送信端末に前回送信したＡＣＫパケットに付与したＡＣＫ番号とのＡＣＫ番号差を算出し、ＡＣＫ番号差の大きなサービス対象フローのＡＣＫパケットを優先的に転送する。
【００２３】
したがって、本実施形態によれば、複数のサービス対象フローのＡＣＫパケットをスケジューリングするので、サービス対象フローが多重化される場合でもフローのバースト化を緩和することができる。その結果、流入制限によるパケット廃棄が低減され、保証帯域を効率よく利用して高いスループットを維持することができる。また、例えば、ＴＣＰを用いた帯域保証サービスの運用において、データ送信端末のＴＣＰプロトコルスタックを変更する必要が無い。
【００２４】
更に、本実施形態によれば、複数のサービス対象フローに関するＡＣＫパケットのスケジューリングにおいて、到着済ＡＣＫ番号と送信済ＡＣＫ番号の差であるＡＣＫ番号差が大きいサービス対象フローを優先する。その結果、データ受信端末がより多くのデータを受信できる状態のサービス対象フローを優先させ、データを効率よく転送することができる。
【００２５】
また、エッジノードは、サービス対象フローのＡＣＫパケットを送信するとき、そのサービス対象フローのＡＣＫ番号差とトークンの量を比較し、いずれか少ない方の分だけデータを送出することを許可するＡＣＫ番号をＡＣＫパケットに付与する。これにより、データ送信端末は、保証帯域とデータ受信端末からの許可の両方を順守しながら最大限のデータを送信することができる。その結果、保証帯域を効率よく利用してスループットを向上させることができる。
【００２６】
以下、本実施形態について図面を参照して詳細に説明する。
【００２７】
図１は、本実施形態によるデータ送信システムの構成を示すブロック図である。図１を参照すると、本実施形態のデータ送信システムは、エッジノード１１，１２および、帯域管理サーバ１３を有している。帯域管理サーバ１３は図面上ではＲＡＣＳと表記する。ＲＡＣＳはＲｅｓｏｕｒｃｅ  ａｎｄ  Ａｄｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｓｕｂ−ｓｙｓｔｅｍの略である。
【００２８】
データ送信端末１４はエッジノード１１に接続され、データ受信端末１５はエッジノード１２に接続されている。エッジノード１１とエッジノード１２は帯域保証ネットワーク１６上でデータを送受信することができる。これによりデータ送信端末１４からのデータがエッジノード１１とエッジノード１２を介してデータ受信端末１５へ転送される。
【００２９】
帯域管理サーバ１３は帯域保証ネットワーク１６の全リンクの帯域情報を集中的に管理する装置である。帯域情報にはリンクに割り当てられた保証帯域の情報が含まれている。帯域管理サーバ１３は管理している各リンクの帯域情報をエッジノード１１，１２に通知する。帯域管理サーバ１３による帯域管理によって、データ送信端末１４からデータ受信端末１５へのリンクは帯域保証ネットワーク１６での保証帯域が確保される。その結果、データ送信端末１４が保証帯域以下でデータを送出する限り帯域保証ネットワーク１６内でのパケット廃棄は発生しない。
【００３０】
図２は、本実施形態のエッジノードの構成を示すブロック図である。図２を参照すると、エッジノード１１は、データ受信部２１、フロー識別・振り分け部２２、伝搬遅延時間算出部２３、データ送信部２４、帯域情報保持部２５、フロー情報保持部２６、ウィンドウサイズ算出部２７、広告ウィンドウサイズ書き込み部２８、およびＡＣＫスケジューリング部２９を有している。
【００３１】
データ受信部２１は、データパケットやＡＣＫパケットなどのパケットを受信し、フロー識別・振り分け部２２に送る。
【００３２】
フロー識別・振り分け部２２は、帯域情報保持部２５に帯域情報とともに保持されているユーザ情報を元に、帯域を保証したデータ転送のサービスの対象となるフロー（サービス対象フロー）と、帯域を保証したデータ転送のサービスの対象とならないフロー（サービス非対象フロー）とを識別する。サービス非対象フローは、例えばサービスに非加入のユーザのパケットである。
【００３３】
さらにフロー識別・振り分け部２２は、サービス対象フローのＡＣＫパケットを、経路２２ａを通して、ＡＣＫスケジューリング部２９へ振り分ける。また、フロー識別・振り分け部２２は、サービス非対象フローのパケット、およびサービス対象フローのデータパケットを、経路２２ｂを通してデータ送信部２４へ振り分ける。
【００３４】
伝搬遅延時間算出部２３は、データ送信端末１４とデータ受信端末１５の間の往復伝搬遅延時間（以下、単に「往復伝搬遅延時間」という）１７を計測する。
【００３５】
データ送信部２４は、フロー識別・振り分け部２２からのパケットと、広告ウィンドウサイズ書き込み部２９からのパケットとを、帯域保証ネットワーク１６を介してエッジノード１２へ送信する。
【００３６】
帯域情報保持部２５は、帯域管理サーバ１３から通知されたサービス対象ユーザの帯域情報とユーザ情報（宛先・送信元ＩＰアドレス、宛先・送信元ポート番号）とを対応付けて保持する。帯域情報には、サービス対象フローに割り当てられた保証帯域の情報が含まれている。サービス対象フローは、ユーザ情報により識別することができる。
【００３７】
フロー情報保持部２６は、フロー識別・振り分け部２２で識別されるサービス対象フローのコネクション情報と、伝搬遅延時間算出部２３で算出された往復伝搬遅延時間１７とを対応付けて保持する。
【００３８】
ウィンドウサイズ算出部２７は、フロー情報保持部２６に保持されている往復伝搬遅延時間１７と、帯域情報保持部２５に保持されている帯域情報の保証帯域とを用いて、データの送出帯域が保証帯域以内となるようなウィンドウサイズを算出する。
【００３９】
広告ウィンドウサイズ書き込み部２８は、ＡＣＫスケジューリング部２９で作成されたデータ送信端末１４宛のＡＣＫパケットのウィンドウフィールドに、ウィンドウサイズ算出部２７で算出されたウィンドウサイズの値を書き込み、そのＡＣＫパケットをデータ送信部２４に送る。
【００４０】
ＡＣＫスケジューリング部２９は、データ受信端末から到着済のＡＣＫパケットのＡＣＫ番号とデータ送信端末に送信済のＡＣＫパケットのＡＣＫ番号の差であるＡＣＫ番号差と、ＡＣＫトークン管理部３０内にサービス対象フロー毎に保持されているトークン量とを参照し、ＡＣＫ番号差とトークン量のいずれか少ない方の分だけのデータがデータ送信端末１４から送信されるようなＡＣＫ番号を算出し、そのＡＣＫ番号を付与したＡＣＫパケットを作成して広告ウィンドウサイズ書き込み部２８に送る。トークン量の分だけのデータが送信されるようなＡＣＫ番号は、データ送信端末１４へ送信済みのＡＣＫパケット内のＡＣＫ番号にトークン量の値を加算した値である。
【００４１】
ＡＣＫトークン管理部３０は、サービス対象フロー毎にトークン量を管理する。具体的には、ＡＣＫトークン管理部３０は、帯域情報保持部２５から通知された保証帯域に従ってトークンを追加するとともに、ＡＣＫスケジューリング部２９でＡＣＫパケットが作成されたとき、前回のＡＣＫパケットのＡＣＫ番号と今回のＡＣＫパケットのＡＣＫ番号の差分だけトークンを減算する。
【００４２】
図３は、フロー識別・振り分け部２２によるパケット振り分けを説明するための図である。図３を参照して、フロー識別・振り分け部２２によるパケット振り分けを詳細に説明する。
【００４３】
データ送信端末１４とデータ受信端末１５間でコネクションが確立されると、データの転送が開始される。エッジノード１１のフロー識別・振り分け部２２は、データ受信端末１５からのＡＣＫパケットを受信すると、サービス対象フローのＡＣＫパケットであるか否か判定をする。サービス対象フローのＡＣＫパケットであれば、フロー識別・振り分け部２２は、そのＡＣＫパケットを、経路２２ａを通してＡＣＫスケジューリング部２９に送る。サービス非対象フローのパケットやサービス対象フローのデータパケットに関しては、フロー識別・振り分け部２２は、そのパケットを、経路２２ｂを通してデータ送信部２４に送る。
【００４４】
図４は、往復伝搬遅延時間を計測する時のエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。図４を参照すると、データ送信端末１４側のエッジノード１１において、フロー識別・振り分け部２２がＳＹＮパケットを観測すると（ステップ１０１）、サービス対象フローのユーザ情報と共に、往復伝搬遅延時間計測開始要求を伝搬遅延時間算出部２３に送る（ステップ１０２）。これにより伝搬遅延時間算出部２３は往復伝搬遅延時間１７の計測を開始する。その後、フロー識別・振り分け部２２は、前記ＳＹＮに対するＳＹＮ／ＡＣＫパケットを観測する（ステップ１０３）。その後、フロー識別・振り分け部２２は、前記ＳＹＮ／ＡＣＫに対するＡＣＫパケットを観測すると（ステップ１０４）、ユーザ情報と共に往復伝搬遅延時間計測終了要求を伝搬遅延時間算出部２３に送る（ステップ１０５）。これにより伝搬遅延時間算出部２３は往復伝搬遅延時間１７の計測を終了する。
【００４５】
往復伝搬遅延時間１７の計測を終えた伝搬遅延時間算出部２３は、計測した往復伝搬遅延時間１７を、ユーザ情報と共に、往復伝搬遅延時間報告としてフロー情報保持部２６に通知する（ステップ１０６）。
【００４６】
図５は、ウィンドウサイズを算出するときのエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。フロー情報保持部２６が、伝搬遅延時間算出部２３からの往復伝搬遅延時間報告を受信すると（ステップ２０１）、ウィンドウサイズ算出部２７に対して、往復伝搬遅延時間１７およびユーザ情報と共に、帯域保証ウィンドウ計算要求を送る（ステップ２０２）。
【００４７】
帯域保証ウィンドウ計算要求を受けたウィンドウサイズ算出部２７は、そのユーザ情報を基に、そのユーザ情報に対応する保証帯域を帯域情報保持部２５に対して要求する（ステップ２０３）。帯域情報保持部２５は、ウィンドウサイズ算出部２７からの要求に応じて保証帯域を返送する（ステップ２０４）。
【００４８】
ウィンドウサイズ算出部２７は、帯域情報保持部２５から取得した保証帯域と、フロー情報保持部２６から取得した往復伝搬遅延時間とを基に、データ送信端末１４が保証帯域以内でデータを送出するようなウィンドウサイズを算出する（ステップ２０５）。このとき保証帯域と一致する帯域でデータが送出されるようなウィンドウサイズが好適である。
【００４９】
ウィンドウサイズの求め方は、例えば式（１）により求めることができる。
【００５０】
【数１】
2010093371.tif 000003
【００５１】
上記ヘッダサイズには、イーサネット（登録商標）、ＩＰ、ＴＣＰのヘッダサイズが含まれる。
【００５２】
図６は、ＡＣＫパケットに広告ウィンドウサイズを書き込む時のエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。図６を参照すると、まずウィンドウサイズ算出部２７がサービス対象フローのウィンドウサイズを算出する（ステップ３０１）。続いて、ウィンドウサイズ算出部２７は算出したウィンドウサイズと、そのサービス対象フローのユーザ情報を広告ウィンドウサイズ書き込み部２８に通知する（ステップ３０２）。広告ウィンドウサイズ書き込み部２８は、ウィンドウサイズ算出部２７から通知されたウィンドウサイズの値を、ＡＣＫスケジューリング部２９からのＡＣＫパケットのウィンドウフィールドに書き込む（ステップ３０３）。広告ウィンドウサイズ書き込み部２８で広告ウィンドウサイズが書き込まれたＡＣＫパケットはデータ送信部２４に送られる。
【００５３】
図７は、ユーザ（サービス対象フロー）毎にトークンレートが設定される際の機能ブロック間の信号のやりとりを示すシーケンス図である。トークンレートは、ＡＣＫトークン管理部３０で管理されているトークンに追加されるトークンのレートである。トークンレートは保証帯域に依存した値となる。
【００５４】
図７を参照すると、帯域情報保持部２５からＡＣＫトークン管理部３０に保証帯域とユーザ情報とが通知される（ステップ４０１）。その際、更にパケットサイズが通知されてもよい。
【００５５】
ＡＣＫトークン管理部３０は、ユーザ情報により識別されるサービス対象フローのトークンレートを保証帯域に基づいて設定する（ステップ４０２）。
【００５６】
トークンレートの求め方は例えば式（２）により求めることできる。
【００５７】
【数２】
2010093371.tif 000004
【００５８】
時間粒度は時間の細分化の単位である。トークン追加のタイミングは、例えば、ＡＣＫスケジューリング部２９がＡＣＫトークン管理部３０のトークンを参照したときとしてもよい。そのときに追加されるトークン量は、ＡＣＫスケジューリング部２９からトークンの参照が行われた時刻と前回トークンの参照が行われた時刻との差に、上記トークンレートを乗算した値を用いてもよい。
【００５９】
なお、イーサネット（登録商標）、ＩＰ、ＴＣＰのヘッダサイズを考慮する場合にはパケットサイズからヘッダとデータの比率を求め、その比率に基づいて保証帯域の値を調整すればよい。
【００６０】
図８は、ＡＣＫスケジューリング部２９がスケジューリングに用いるフロー情報テーブル３３の一例を示すイメージ図である。図８を参照すると、フロー情報テーブル３３には、フロー番号４１、送信済ＡＣＫ番号４２、到着済ＡＣＫ番号４３、およびＡＣＫ番号差４４が含まれている。
【００６１】
フロー番号４１はサービス対象フロー毎に割り当てられた番号である。送信済ＡＣＫ番号４２は、データ送信端末１４に送信済のＡＣＫパケットに付与したＡＣＫ番号を記憶する領域である。到着済ＡＣＫ番号４３は、データ受信端末１５から到着したＡＣＫパケットに付与されていたＡＣＫ番号を記憶する領域である。ＡＣＫ番号差４４は、到着済ＡＣＫ番号４３に記載されている値から送信済ＡＣＫ番号４２に記載されている値を減算した値を記憶する領域である。
【００６２】
図９は、ＡＣＫスケジューリング部２９の構成を示すブロック図である。また図９には、ＡＣＫスケジューリング部２９とＡＣＫトークン管理部３０の連携によりＡＣＫパケットの送信制御を行う際の機能ブロック間の信号のやりとりが示されている。
【００６３】
図９を参照すると、ＡＣＫスケジューリング部２９は、ＡＣＫパケット作成部３１、ＡＣＫパケット送信制御管理部３２、およびＡＣＫ番号記憶部３４−１〜３４−Ｎを有している。ＡＣＫパケット送信制御管理部３２は、各サービス対象フローのＡＣＫパケットの送信タイミングを制御するためのフロー情報テーブル３３を備えている。フロー情報テーブル３３の内容については図８に示した通りである。
【００６４】
ＡＣＫ番号記憶部３４−１〜３４−Ｎは各サービス対象フローに対応しており、フロー識別・振り分け部２２から振り分けられたＡＣＫパケット５００のＡＣＫ番号を記憶する。また、ＡＣＫ番号記憶部３４は、ＡＣＫパケット送信制御管理部３２に対して、到着したＡＣＫパケットのＡＣＫ番号を通知するためのＡＣＫ番号通知５０１を送る。
【００６５】
ＡＣＫパケット送信制御管理部３２は、通知されたＡＣＫ番号の値で、フロー情報テーブル３３における当該サービス対象フローの到着済ＡＣＫ番号４３のフィールドを更新する。同時に、ＡＣＫパケット送信制御管理部３２は、到着済ＡＣＫ番号４３から送信済ＡＣＫ番号を減算し、ＡＣＫ番号差４４のフィールドも更新する。
【００６６】
いずれかのサービス対象フローのＡＣＫ番号差を更新したとき、ＡＣＫパケット送信制御管理部３２は、複数のサービス対象フローのうちＡＣＫ番号差が最も大きな値のサービス対象フローを選出しなおす。
【００６７】
ＡＣＫトークン管理部３０には、複数のサービス対象フローのそれぞれのトークン３５−１〜３５−Ｎが管理されている。ＡＣＫパケット送信制御管理部３２は、ＡＣＫトークン管理部３０に対するトークン参照５０２を実施することにより、選出したサービス対象フローについてＡＣＫトークン管理部３０で管理されているトークンの値を参照する。また、その際、ＡＣＫパケット送信制御管理部３２は、ＡＣＫトークン管理部３０の管理しているトークンの値に対し、今回のトークンを参照した時刻と前回のトークンを参照した時刻との差にトークンレートを乗算した値を追加する。また、その際、ＡＣＫパケット送信制御管理部３２は、自身内部のフロー情報テーブル３３に保持されているＡＣＫ番号差の値をＡＣＫトークン管理部３０に通知する。
【００６８】
ＡＣＫトークン管理部３０は、管理しているトークンの値と、ＡＣＫパケット送信制御管理部３０から通知されたＡＣＫ番号差とを比較する。
【００６９】
トークンの値がＡＣＫ番号差４４の値より大きければ、ＡＣＫトークン管理部３０は、ＡＣＫ番号差４４の値をトークン通知５０３によってＡＣＫパケット送信制御管理部３２に通知し、管理しているトークンの値からＡＣＫ番号差４４を減算する。一方、ＡＣＫ番号差４４の方がトークンの値より大きければ、ＡＣＫトークン管理部３０は、トークンの値をトークン通知５０３によってＡＣＫパケット送信制御管理部３２に通知し、管理しているトークンの値を０にする。
【００７０】
ＡＣＫパケット送信制御管理部３２は、ＡＣＫトークン管理部３０からのトークン通知５０３で得た値をフロー情報テーブル３３の送信済ＡＣＫ番号４２に加算するとともに、加算結果として得られた送信済ＡＣＫ番号４２をＡＣＫ番号とするＡＣＫパケットの送信を指示するためのＡＣＫ送信指示５０４を当該ＡＣＫ番号記憶部３４に送る。
【００７１】
ＡＣＫ送信指示５０４を受けたＡＣＫ番号記憶部３４は、指示されたＡＣＫ番号のＡＣＫパケットの作成を要求するためのＡＣＫパケット作成要求５０５をＡＣＫパケット作成部３１に送る。
【００７２】
ＡＣＫパケット作成部３１は、ＡＣＫパケット作成要求５０５における要求に応じたＡＣＫパケットを作成し、広告ウィンドウサイズ書き込み部２８に送る。
【図面の簡単な説明】
【００７３】
【図１】本実施形態によるデータ通信システムの構成を示すブロック図である。
【図２】本実施形態のエッジノードの構成を示すブロック図である。
【図３】フロー識別・振り分け部によるパケット振り分けを説明するための図である。
【図４】往復伝搬遅延時間を計測する時のエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。
【図５】ウィンドウサイズを算出する時のエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。
【図６】ウィンドウサイズ算出時のエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。
【図７】ＡＣＫトークン管理部において、ユーザ毎にトークンレートが設定される際の機能ブロック間の信号のやりとりを示すシーケンス図である。
【図８】ＡＣＫスケジューリング部がスケジューリングに用いるフロー情報テーブルの一例を示すイメージ図である。
【図９】ＡＣＫスケジューリング部２９の構成を示すブロック図である。
【符号の説明】
【００７４】
１１，１２    エッジノード
１３    帯域管理サーバ
１４    データ送信端末
１５    データ受信端末
１６    帯域保証ネットワーク
１７    往復伝搬遅延時間
２１    データ受信部
２２    フロー識別・振り分け部
２３    伝搬遅延時間算出部
２４    データ送信部
２５    帯域情報保持部
２６    フロー情報保持部
２７    ウィンドウサイズ算出部
２８    広告ウィンドウサイズ書き込み部
２９    ＡＣＫスケジューリング部
３０    ＡＣＫトークン管理部
３１    ＡＣＫパケット作成部
３２    ＡＣＫパケット送信制御管理部
３３    フロー情報テーブル
３４    ＡＣＫ番号記憶部
４１    フロー番号
４２    送信済ＡＣＫ番号
４３    到着済ＡＣＫ番号
４４    ＡＣＫ番号差
【図１】
2010093371.tif 000005
【図２】
2010093371.tif 000006
【図３】
2010093371.tif 000007
【図４】
2010093371.tif 000008
【図５】
2010093371.tif 000009
【図６】
2010093371.tif 000010
【図７】
2010093371.tif 000011
【図８】
2010093371.tif 000012
【図９】
2010093371.tif 000013