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