(57)【要約】【課題】レート制御フロー高多重時においても保証帯域を効率よく利用する。【解決手段】トークン管理部２７が、データ送信端末とデータ受信端末との間のスループットに基づいて更新したトークン量がデータパケット用トークンバケットの大きさを超えた分をＲＴＴ計測用トークンバケットに追加し、ＲＴＴ計測用トークンバケット内のトークン量が閾値以上である場合、ウィンドウサイズ算出部２６が、スループットと、ネットワークにて保証された通信帯域である保証帯域と、ＲＴＴ計測用トークンバケット内のトークン量と、データ送信端末とデータ受信端末との間における伝搬遅延時間とに基づいてウィンドウサイズを算出し、広告ウィンドウサイズ書き込み部２３が、データ受信端末からデータ送信端末へ送信されてきたＡＣＫパケットのウィンドウサイズを算出したウィンドウサイズへ書き換える。【選択図】図２
2011035607.tif 000002
【特許請求の範囲】
【請求項１】
データ送信端末とデータ受信端末との間の通信帯域が保証された帯域保証ネットワークと接続され、前記データ送信端末と前記データ受信端末との間に設けられたエッジノードであって、
前記保証された通信帯域である保証帯域をサービス対象フローごとに保持する帯域情報保持部と、
前記サービス対象フローごとにデータパケット用トークンバケットとＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）計測用トークンバケットとを具備し、前記データ送信端末から前記データ受信端末へ送信されたデータのスループットを測定し、前記スループットに基づいて前記データパケット用トークンバケット内のトークン量を更新し、該更新したトークン量が前記データパケット用トークンバケットの大きさを超えた場合、前記データパケット用トークンバケットの大きさを超えた分のトークン量を前記ＲＴＴ計測用トークンバケットに追加し、前記ＲＴＴ計測用トークンバケット内のトークン量があらかじめ設定された閾値以上である場合、ウィンドウサイズを算出する要求であるウィンドウサイズ算出要求を出力するトークン管理部と、
前記トークン管理部が前記ウィンドウサイズ算出要求を出力した場合、前記スループットと、前記保証帯域と、前記ＲＴＴ計測用トークンバケット内のトークン量と、前記データ送信端末と前記データ受信端末との間における伝搬遅延時間と、に基づいてウィンドウサイズを算出するウィンドウサイズ算出部と、
当該サービス対象フローにて前記データ受信端末から前記データ送信端末へ送信されてきたＡＣＫ（Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）パケットに示されたウィンドウサイズを前記ウィンドウサイズ算出部が算出したウィンドウサイズへ書き換える広告ウィンドウサイズ書き込み部とを有するエッジノード。
【請求項２】
請求項１に記載のエッジノードにおいて、
前記データ送信端末から送信されてきたデータパケットが、前記サービス対象であるかどうかを識別し、該データパケットが前記サービス対象であると識別した場合、該データパケットのデータパケットサイズを通知するフロー識別・振り分け部を有し、
前記トークン管理部は、前記フロー識別・振り分け部から通知されたデータパケットサイズと、前記データ受信端末へ最近転送したデータパケットを送信したときから該通知までの時間と、前記保証帯域とに基づいて、前記スループットを算出することを特徴とするエッジノード。
【請求項３】
請求項１に記載のエッジノードにおいて、
前記ウィンドウサイズ算出部は、前記伝搬遅延時間を３ｗａｙ−ｈａｎｄｓｈａｋｅパケットを用いて算出することを特徴とするエッジノード。
【請求項４】
データ送信端末とデータ受信端末との間の通信帯域が保証された帯域保証ネットワークと接続され、前記データ送信端末と前記データ受信端末との間に設けられたエッジノードにおけるウィンドウサイズ制御方法であって、
前記保証された通信帯域である保証帯域をサービス対象フローごとに保持する処理と、
前記データ送信端末から前記データ受信端末へ送信されたデータのスループットを測定する処理と、
前記スループットに基づいて前記サービス対象フローごとに設けられたデータパケット用トークンバケット内のトークン量を更新する処理と、
前記更新したトークン量が前記データパケット用トークンバケットの大きさを超えた場合、前記データパケット用トークンバケットの大きさを超えた分のトークン量を前記サービス対象フローごとに設けられたＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）計測用トークンバケットに追加する処理と、
前記ＲＴＴ計測用トークンバケット内のトークン量があらかじめ設定された閾値以上である場合、前記スループットと、前記保証帯域と、前記ＲＴＴ計測用トークンバケット内のトークン量と、前記データ送信端末と前記データ受信端末との間における伝搬遅延時間と、に基づいてウィンドウサイズを算出する処理と、
当該サービス対象フローにて前記データ受信端末から前記データ送信端末へ送信されてきたＡＣＫ（Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）パケットに示されたウィンドウサイズを前記算出したウィンドウサイズへ書き換える処理とを有するウィンドウサイズ制御方法。
【請求項５】
請求項４に記載のウィンドウサイズ制御方法において、
前記データ送信端末から送信されてきたデータパケットが、前記サービス対象であるかどうかを識別する処理と、
該データパケットが前記サービス対象であると識別した場合、該データパケットのデータパケットサイズと、前記データ受信端末へ最近転送したデータパケットを送信したときから該識別までの時間と、前記保証帯域とに基づいて、前記スループットを算出する処理とを有することを特徴とするウィンドウサイズ制御方法。
【請求項６】
請求項４に記載のウィンドウサイズ制御方法において、
前記伝搬遅延時間を３ｗａｙ−ｈａｎｄｓｈａｋｅパケットを用いて算出する処理を有することを特徴とするウィンドウサイズ制御方法。
【請求項７】
データ送信端末とデータ受信端末との間の通信帯域が保証された帯域保証ネットワークと接続され、前記データ送信端末と前記データ受信端末との間に設けられたエッジノードに、
前記保証された通信帯域である保証帯域をサービス対象フローごとに保持する手順と、
前記データ送信端末から前記データ受信端末へ送信されたデータのスループットを測定する手順と、
前記スループットに基づいて前記サービス対象フローごとに設けられたデータパケット用トークンバケット内のトークン量を更新する手順と、
前記更新したトークン量が前記データパケット用トークンバケットの大きさを超えた場合、前記データパケット用トークンバケットの大きさを超えた分のトークン量を前記サービス対象フローごとに設けられたＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）計測用トークンバケットに追加する手順と、
前記ＲＴＴ計測用トークンバケット内のトークン量があらかじめ設定された閾値以上である場合、前記スループットと、前記保証帯域と、前記ＲＴＴ計測用トークンバケット内のトークン量と、前記データ送信端末と前記データ受信端末との間における伝搬遅延時間と、に基づいてウィンドウサイズを算出する手順と、
当該サービス対象フローにて前記データ受信端末から前記データ送信端末へ送信されてきたＡＣＫ（Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）パケットに示されたウィンドウサイズを前記算出したウィンドウサイズへ書き換える手順とを実行させるためのプログラム。
【請求項８】
請求項７に記載のプログラムにおいて、
前記データ送信端末から送信されてきたデータパケットが、前記サービス対象であるかどうかを識別する手順と、
該データパケットが前記サービス対象であると識別した場合、該データパケットのデータパケットサイズと、前記データ受信端末へ最近転送したデータパケットを送信したときから該識別までの時間と、前記保証帯域とに基づいて、前記スループットを算出する手順とを実行させるためのプログラム。
【請求項９】
請求項７に記載のプログラムにおいて、
前記伝搬遅延時間を３ｗａｙ−ｈａｎｄｓｈａｋｅパケットを用いて算出する手順を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットデータの送受信に用いるウィンドウサイズを制御するエッジノード、ウィンドウサイズ制御方法およびプログラムに関する。
【背景技術】
【０００２】
パソコンなどの端末の間では、インターネットなどのコンピュータネットワークを介した通信が行われる。この通信によってファイル等のデータが転送される。この種のデータ転送システムでは、トランスポート層のプロトコルとして、標準的なトランスポートプロトコルであるＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）が用いられることが多い。
【０００３】
また、データ転送においては大容量のデータを高速に転送することが要求されることがある。これに対してＴＣＰのウィンドウサイズを一定に制御することでスループットを向上させる検討がなされている（例えば、非特許文献１参照。）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】“エッジルータにおけるＴＣＰフローレート制御方式の検討”、電子情報通信学会総合大会，２００７年３月
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＴＣＰでは、ウィンドウサイズをパケット廃棄に従って自律的に変化させる帯域制御が行われる。すなわち、パケット廃棄が発生しなければウィンドウサイズを増加させ続ける特徴がある。そのため、保証された帯域以上のトラヒックがネットワークに流入するのを防ぐためにネットワークの入り口で流入制限を行っている帯域保証ネットワークにおけるＴＣＰ通信では、保証した帯域以上のレートでデータ送信を行うためにネットワークの入り口で流入制限によるパケット廃棄が発生し、ＴＣＰの輻輳制御が働くことでスループットが鋸歯状になり、保証された帯域を十分に活用できないという課題があった。
【０００６】
この課題への対策として、上述したＴＣＰプロトコルに変更を加えることで保証された帯域に合わせて一定のスループットでデータを送信する技術や広告ウィンドウサイズを一定に制御する技術が考えられている。
【０００７】
一方、この広告ウィンドウサイズを一定に制御する技術では、経由するネットワーク装置でのキューイング遅延や受信端末における遅延ＡＣＫアルゴリズムによる遅延時間の揺らぎを考慮に入れていない。そのため、通信開始時に計測した伝搬遅延時間をもとに算出したウィンドウサイズで制御し続けた場合、伝搬遅延時間が揺らいでしまうと、算出したウィンドウサイズでは帯域遅延積を小さく見積もりすぎて保証した帯域を十分に活用できないという問題点がある。
【０００８】
本発明の目的は、帯域保証ネットワークでのデータ転送において、キューイング遅延や遅延ＡＣＫアルゴリズムによる遅延時間の変動が発生した場合においても保証した帯域を効率よく利用して高いスループットを保つことができるエッジノード、ウィンドウサイズ制御方法およびプログラムを提供することである。
【課題を解決するための手段】
【０００９】
本発明のエッジノードは、
データ送信端末とデータ受信端末との間の通信帯域が保証された帯域保証ネットワークと接続され、前記データ送信端末と前記データ受信端末との間に設けられたエッジノードであって、
前記保証された通信帯域である保証帯域をサービス対象フローごとに保持する帯域情報保持部と、
前記サービス対象フローごとにデータパケット用トークンバケットとＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）計測用トークンバケットとを具備し、前記データ送信端末から前記データ受信端末へ送信されたデータのスループットを測定し、前記スループットに基づいて前記データパケット用トークンバケット内のトークン量を更新し、該更新したトークン量が前記データパケット用トークンバケットの大きさを超えた場合、前記データパケット用トークンバケットの大きさを超えた分のトークン量を前記ＲＴＴ計測用トークンバケットに追加し、前記ＲＴＴ計測用トークンバケット内のトークン量があらかじめ設定された閾値以上である場合、ウィンドウサイズを算出する要求であるウィンドウサイズ算出要求を出力するトークン管理部と、
前記トークン管理部が前記ウィンドウサイズ算出要求を出力した場合、前記スループットと、前記保証帯域と、前記ＲＴＴ計測用トークンバケット内のトークン量と、前記データ送信端末と前記データ受信端末との間における伝搬遅延時間と、に基づいてウィンドウサイズを算出するウィンドウサイズ算出部と、
当該サービス対象フローにて前記データ受信端末から前記データ送信端末へ送信されてきたＡＣＫ（Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）パケットに示されたウィンドウサイズを前記ウィンドウサイズ算出部が算出したウィンドウサイズへ書き換える広告ウィンドウサイズ書き込み部とを有する。
【００１０】
また、前記データ送信端末から送信されてきたデータパケットが、前記サービス対象であるかどうかを識別し、該データパケットが前記サービス対象であると識別した場合、該データパケットのデータパケットサイズを通知するフロー識別・振り分け部を有し、
前記トークン管理部は、前記フロー識別・振り分け部から通知されたデータパケットサイズと、前記データ受信端末へ最近転送したデータパケットを送信したときから該通知までの時間と、前記保証帯域とに基づいて、前記スループットを算出することを特徴とする。
【００１１】
また、前記ウィンドウサイズ算出部は、前記伝搬遅延時間を３ｗａｙ−ｈａｎｄｓｈａｋｅパケットを用いて算出することを特徴とする。
【００１２】
また、本発明のウィンドウサイズ制御方法は、
データ送信端末とデータ受信端末との間の通信帯域が保証された帯域保証ネットワークと接続され、前記データ送信端末と前記データ受信端末との間に設けられたエッジノードにおけるウィンドウサイズ制御方法であって、
前記保証された通信帯域である保証帯域をサービス対象フローごとに保持する処理と、
前記データ送信端末から前記データ受信端末へ送信されたデータのスループットを測定する処理と、
前記スループットに基づいて前記サービス対象フローごとに設けられたデータパケット用トークンバケット内のトークン量を更新する処理と、
前記更新したトークン量が前記データパケット用トークンバケットの大きさを超えた場合、前記データパケット用トークンバケットの大きさを超えた分のトークン量を前記サービス対象フローごとに設けられたＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）計測用トークンバケットに追加する処理と、
前記ＲＴＴ計測用トークンバケット内のトークン量があらかじめ設定された閾値以上である場合、前記スループットと、前記保証帯域と、前記ＲＴＴ計測用トークンバケット内のトークン量と、前記データ送信端末と前記データ受信端末との間における伝搬遅延時間と、に基づいてウィンドウサイズを算出する処理と、
当該サービス対象フローにて前記データ受信端末から前記データ送信端末へ送信されてきたＡＣＫ（Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）パケットに示されたウィンドウサイズを前記算出したウィンドウサイズへ書き換える処理とを有する。
【００１３】
また、前記データ送信端末から送信されてきたデータパケットが、前記サービス対象であるかどうかを識別する処理と、
該データパケットが前記サービス対象であると識別した場合、該データパケットのデータパケットサイズと、前記データ受信端末へ最近転送したデータパケットを送信したときから該識別までの時間と、前記保証帯域とに基づいて、前記スループットを算出する処理とを有することを特徴とする。
【００１４】
また、前記伝搬遅延時間を３ｗａｙ−ｈａｎｄｓｈａｋｅパケットを用いて算出する処理を有することを特徴とする。
【００１５】
また、本発明のプログラムは、
データ送信端末とデータ受信端末との間の通信帯域が保証された帯域保証ネットワークと接続され、前記データ送信端末と前記データ受信端末との間に設けられたエッジノードに実行させるためのプログラムであって、
前記保証された通信帯域である保証帯域をサービス対象フローごとに保持する手順と、
前記データ送信端末から前記データ受信端末へ送信されたデータのスループットを測定する手順と、
前記スループットに基づいて前記サービス対象フローごとに設けられたデータパケット用トークンバケット内のトークン量を更新する手順と、
前記更新したトークン量が前記データパケット用トークンバケットの大きさを超えた場合、前記データパケット用トークンバケットの大きさを超えた分のトークン量を前記サービス対象フローごとに設けられたＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）計測用トークンバケットに追加する手順と、
前記ＲＴＴ計測用トークンバケット内のトークン量があらかじめ設定された閾値以上である場合、前記スループットと、前記保証帯域と、前記ＲＴＴ計測用トークンバケット内のトークン量と、前記データ送信端末と前記データ受信端末との間における伝搬遅延時間と、に基づいてウィンドウサイズを算出する手順と、
当該サービス対象フローにて前記データ受信端末から前記データ送信端末へ送信されてきたＡＣＫ（Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）パケットに示されたウィンドウサイズを前記算出したウィンドウサイズへ書き換える手順とを実行させる。
【００１６】
また、前記データ送信端末から送信されてきたデータパケットが、前記サービス対象であるかどうかを識別する手順と、
該データパケットが前記サービス対象であると識別した場合、該データパケットのデータパケットサイズと、前記データ受信端末へ最近転送したデータパケットを送信したときから該識別までの時間と、前記保証帯域とに基づいて、前記スループットを算出する手順とを実行させる。
【００１７】
また、前記伝搬遅延時間を３ｗａｙ−ｈａｎｄｓｈａｋｅパケットを用いて算出する手順を実行させる。
【発明の効果】
【００１８】
以上説明したように、本発明においては、データ送信端末とデータ受信端末との間で測定されたスループットに基づいてデータパケット用トークンバケット内のトークン量を更新し、更新したトークン量がデータパケット用トークンバケットの大きさを超えた分をＲＴＴ計測用トークンバケットに追加し、ＲＴＴ計測用トークンバケット内のトークン量が閾値以上である場合、スループットと、ネットワークにて保証された通信帯域である保証帯域と、ＲＴＴ計測用トークンバケット内のトークン量と、データ送信端末とデータ受信端末との間における伝搬遅延時間とに基づいてウィンドウサイズを算出し、データ受信端末からデータ送信端末へ送信されてきたＡＣＫパケットのウィンドウサイズを算出したウィンドウサイズへ書き換える構成としたため、キューイング遅延やデータ受信端末における遅延ＡＣＫアルゴリズムによる遅延時間の揺らぎに対応し、レート制御フロー高多重時においても保証帯域内で安定的にスループットを制御できるので、保証帯域を効率よく利用することが可能となる。
【図面の簡単な説明】
【００１９】
【図１】本発明のエッジノードが設けられた通信システムの実施の一形態を示す図である。
【図２】図１に示したエッジノードの内部構成を示すブロック図である。
【図３】図２に示したフロー識別・振り分け部によるパケット振り分けを説明するための図である。
【図４】本形態におけるウィンドウサイズ制御方法のうち、ウィンドウサイズを算出するまでの処理を説明するためのシーケンス図である。
【図５】本形態におけるウィンドウサイズ制御方法のうち、ウィンドウサイズを算出してから当該ウィンドウサイズを書き込むまでの処理を説明するためのシーケンス図である。
【図６】図２に示したトークン管理部における各制御対象ＴＣＰフロー毎に準備されたトークンバケットの更新の様子を示すイメージ図である。
【発明を実施するための形態】
【００２０】
以下に、本発明の実施の形態について図面を参照して説明する。
【００２１】
図１は、本発明のエッジノードが設けられた通信システムの実施の一形態を示す図である。
【００２２】
本形態は図１に示すように、エッジノード１１，１２と、帯域管理サーバ１３と、データ送信端末１４と、データ受信端末１５とから構成されている。
【００２３】
データ送信端末１４は、エッジノード１１と接続され、エッジノード１１を介して帯域保証ネットワーク１６へパケットデータを送信する通信端末である。
【００２４】
データ受信端末１５は、エッジノード１２と接続され、エッジノード１２を介して帯域保証ネットワーク１６から送信されてきたパケットデータを受信する通信端末である。
【００２５】
帯域管理サーバ１３は、帯域保証ネットワーク１６の全リンクの帯域情報を集中的に管理する装置である。帯域情報にはリンクに割り当てられた保証帯域の情報が含まれている。帯域管理サーバ１３は、管理している各リンクの帯域情報をエッジノード１１，１２へ通知する。帯域管理サーバ１３による帯域管理によって、データ送信端末１４からデータ受信端末１５へのリンクは帯域保証ネットワーク１６での保証帯域が確保される。その結果、データ送信端末１４が保証帯域以下でデータを送出する限り帯域保証ネットワーク１６内でのパケット廃棄は発生しない。
【００２６】
エッジノード１１，１２は、通信帯域が保証された通信ネットワークである帯域保証ネットワーク１６と接続され、データ送信端末１４とデータ受信端末１５との間の帯域保証ネットワーク１６を介しての通信を実現している。また、エッジノード１１，１２は、データ送信端末１４とデータ受信端末１５との間でＴＣＰを用いた通信が行われる場合、トークンパケット方式のポリシング制御を行い、ウィンドウサイズを制御する。
【００２７】
ここで、ウィンドウサイズについて説明する。
【００２８】
一般的なＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）では、到達確認を待たずに送信できるデータの大きさを示すウィンドウとして、広告ウィンドウと輻輳ウィンドウとの２つのウィンドウが定義される。広告ウィンドウのサイズはデータ受信側で受信バッファの状態に依存して決定される。一方、輻輳ウィンドウのサイズはデータ送信側でパケット廃棄の状況に応じて決定される。フロー制御に用いるウィンドウサイズには、広告ウィンドウサイズと輻輳ウィンドウサイズとのうちいずれか小さな方が選択される。このウィンドウサイズは、データパケットに対する応答パケットであるＡＣＫ（Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）パケット（以下、ＡＣＫと称する）が到着したときに更新される。
【００２９】
図２は、図１に示したエッジノード１１の内部構成を示すブロック図である。なお、図１に示したエッジノード１２についても同じ構成を有する。
【００３０】
図１に示したエッジノード１１には図２に示すように、データ受信部２１と、フロー識別・振り分け部２２と、広告ウィンドウサイズ書き込み部２３と、データ送信部２４と、帯域情報保持部２５と、ウィンドウサイズ算出部２６と、トークン管理部２７とが設けられている。
【００３１】
データ受信部２１は、データパケットやＡＣＫパケットなどのパケットを受信し、受信したパケットをフロー識別・振り分け部２２へ出力する。
【００３２】
帯域情報保持部２５は、帯域管理サーバ１３から通知されたサービス対象ユーザの帯域情報とユーザ情報（宛先・送信元ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス、宛先・送信元ポート番号）とを対応付けて保持する。帯域情報には、リンクに割り当てられた保証帯域の情報が含まれている。
【００３３】
フロー識別・振り分け部２２は、帯域情報保持部２５に帯域情報とともに保持されているユーザ情報に基づいて、帯域を保証したデータ転送のサービスの対象となるフロー（サービス対象フロー）と、帯域を保証したデータ転送のサービスの対象とならないフロー（サービス非対象フロー）とを識別する。さらにフロー識別・振り分け部２２は、サービス対象フローのＡＣＫパケットを通して広告ウィンドウ書き込み部２３へ出力する。また、フロー識別・振り分け部２２は、サービス非対称フローのパケット及び、サービス対象フローのデータパケットをデータ送信部２４へ出力する。また、フロー識別・振り分け部２２は、サービス対象フローのデータパケットのデータパケットサイズとフロー情報とをトークン管理部２７へ通知し、サービス対象フローの帯域制御に用いる。
【００３４】
広告ウィンドウ書き込み部２３は、データ受信端末１５からデータ送信端末１４へ送信されたＡＣＫパケットのウィンドウサイズを示すウィンドウフィールドに、ウィンドウサイズ算出部２６で算出されたウィンドウサイズの値を書き込む。また、広告ウィンドウ書き込み部２３は、ウィンドウサイズの値を書き込んだＡＣＫパケットをデータ送信部２４へ出力する。
【００３５】
データ送信部２４は、フロー識別・振り分け部２２から出力されてきたパケットを、帯域保証ネットワーク１６を介してエッジノード１２へ送信する。また、データ送信部２４は、広告ウィンドウ書き込み部２３から出力されてきたＡＣＫパケットを、帯域保証ネットワーク１６を介してエッジノード１２へ送信する。
【００３６】
ウィンドウサイズ算出部２６は、トークン管理部２７において計測したデータ送信端末１４とデータ受信端末１５との間のデータスループットと、帯域情報保持部２５に保持されている帯域情報の保証帯域とを用いて、データの送出帯域が保証帯域以内となるようなウィンドウサイズを算出する。
【００３７】
トークン管理部２７は、サービス対象フローが保証帯域以上のレートでのデータを送出しないように、任意のタイミングでトークンを追加する。また、トークン管理部２７は、サービス対象フローのデータパケットがフロー識別・振り分け部２２を通過した際にフロー識別・振り分け部２２から通知されるデータパケットサイズに基づいて、データ送信端末１４とデータ受信端末１５との間のスループットを測定する。また、トークン管理部２７は、測定したスループットをウィンドウサイズ算出部２６へ通知する。
【００３８】
図３は、図２に示したフロー識別・振り分け部２２によるパケット振り分けを説明するための図である。以下に、図３を参照して、フロー識別・振り分け部２２によるパケット振り分けを詳細に説明する。
【００３９】
データ送信端末１４とデータ受信端末１５との間でコネクションが確立されると、データの転送が開始される。エッジノード１１のフロー識別・振り分け部２２は、データ受信端末１５からのＡＣＫパケットを受信すると、当該ＡＣＫパケットがサービス対象フローのＡＣＫパケットであるか否か判定をする。サービス対象フローのＡＣＫパケットであると判定した場合、フロー識別・振り分け部２２は当該ＡＣＫパケットを広告ウィンドウ書き込み部２３へ出力する。また、サービス非加入ユーザパケットやデータパケットであると判定した場合は、フロー識別・振り分け部２２は当該サービス非加入ユーザパケットやデータパケットをデータ送信部２４へ出力する。
【００４０】
以下に、本形態におけるウィンドウサイズ制御方法について説明する。
【００４１】
図４は、本形態におけるウィンドウサイズ制御方法のうち、ウィンドウサイズを算出するまでの処理を説明するためのシーケンス図である。
【００４２】
サービス対象であるデータ送信端末１４から送信されたデータパケットがエッジノード１１のフロー識別・振り分け部２２に到着すると（ステップ２０１）、フロー識別・振り分け部２２はデータパケットサイズ通知として、トークン管理部２７へ、サービス対象フローのユーザ情報と当該データパケットのデータサイズとを通知する（ステップ２０２）。
【００４３】
すると、当該データパケットはフロー識別・振り分け部２２からデータ送信部２４へ出力（転送）される（ステップ２０３）。
【００４４】
データパケットサイズ通知を受けたトークン管理部２７は、ステップ２０２にて通知を受けた時刻Ｔ２からデータ受信端末１５へ転送済みの最新のデータパケットを送信した（最近データパケットを送信した）時刻Ｔ１を減算した値と、当該データパケットサイズとに基づいて、当該フローに該当するトークンバケット（データパケット用トークンバケット）内のトークン更新を行う（ステップ２０４）。
【００４５】
更新後のトークン量は、例えば（式１）により求めることができる。
【００４６】
更新後のトークン量［ｋＢ］＝更新前のトークン量［ｋＢ］＋保証帯域［ｋｂｐｓ］×（Ｔ２−Ｔ１）÷８［ｂｉｔｓ／Ｂｙｔｅ］−データパケットサイズ［Ｂｙｔｅ］…（式１）
ここで、（保証帯域［ｋｂｐｓ］×（Ｔ２−Ｔ１）÷８［ｂｉｔｓ／Ｂｙｔｅ］）が時刻Ｔ１から時刻Ｔ２までに当該保証帯域にて通過可能なデータサイズであり、通知を受けたデータパケットサイズをその通過可能なデータサイズから差し引くことにより、データ送信端末１４とデータ受信端末１５との間のスループットに相当する値を得ることとなる。つまり、更新後のトークン量は、更新前のトークン量とスループットとから算出される。
【００４７】
このとき、更新後のトークン量がトークンバケットの大きさＬ［ｋＢ］よりも大きな場合、更新後のトークン量［ｋＢ］がＬ［ｋＢ］を超えた分はＲＴＴ計測用トークンバケットに追加される。
【００４８】
トークン更新を行ったトークン管理部２７は、ＲＴＴ計測用トークンバケット内のトークン量Ｍ［ｋＢ］と事前に設定した閾値Ｘ［ｋＢ］とを比較する（ステップ２０５）。
【００４９】
Ｍ［ｋＢ］がＸ［ｋＢ］以上である場合、トークン管理部２７はウィンドウサイズ算出部２６に対して、サービス対象フローのユーザ情報とΔＴ（＝Ｔ２−Ｔ１）とＲＴＴ計測用トークンバケット内のトークン量Ｍと共にウィンドウサイズ算出要求を出力する（ステップ２０６）。また、トークン管理部２７は、ＲＴＴ計測用トークンバケットに溜まっているトークンを０に設定する（ステップ２０７）。
【００５０】
ウィンドウサイズ算出要求を受けたウィンドウサイズ算出部２６は、そのユーザ情報に基づいて、帯域情報保持部２５に対してユーザ情報に対応する保証帯域を要求する（ステップ２０８）。すると、帯域情報保持部２５は、ウィンドウサイズ算出部２６からの要求に応じて保証帯域を返送する（ステップ２０９）。
【００５１】
帯域情報保持部２５から保証帯域が返送されると、ウィンドウサイズ算出部２６は、データ送信端末１４が保証帯域以内でデータを送出するようなウィンドウサイズを算出する（ステップ２１０）。このとき、保証帯域と一致するレートでデータが送出されるようなウィンドウサイズが好適である。
【００５２】
ウィンドウサイズは、例えば（式２）により求めることができる。
【００５３】
ウィンドウサイズ［ｋＢ］＝保証帯域［ｋｂｐｓ］×初期書き換えウィンドウサイズ÷（保証帯域［ｋｂｐｓ］×ΔＴ−Ｍ［ｋＢ］）…（式２）
なお、初期書き換えウィンドウサイズは３ｗａｙ−ｈａｎｄｓｈａｋｅパケット内のオプションとして記載されている最大セグメントサイズ（ＭＳＳ）の倍数、もしくは３ｗａｙ−ｈａｎｄｓｈａｋｅパケットを用いて計測したＲＴＴ値を基に算出した、例えば（式３）により求めることができる。
【００５４】
初期書き換えウィンドウサイズ［ｋＢ］＝保証帯域［ｋｂｐｓ］×ＲＴＴ÷８［ｂｉｔｓ／Ｂｙｔｅ］…（式３）
ここで、ＲＴＴは、ＴＣＰで一般的に用いられるＲｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ（データを送信してから、ＡＣＫが返信されてくるまでの時間）である。
【００５５】
なお、保証帯域がＬａｙｅｒ２での計測値に設定されている場合、書き換えるウィンドウサイズはＬａｙｅｒ４での大きさを指定するため、（式２）と（式３）とはそれぞれ以下のようにＬａｙｅｒ２のヘッダのサイズとＬａｙｅｒ３のヘッダのサイズとＴＣＰヘッダのサイズとを考慮した（式４）と（式５）とでそれぞれ算出してもよい。
【００５６】
ウィンドウサイズ［ｋＢ］＝保証帯域［ｋｂｐｓ］×初期書き換えウィンドウサイズ÷（保証帯域［ｋｂｐｓ］×ΔＴ−Ｍ［ｋＢ］）×（最大セグメントサイズ÷（最大セグメントサイズ＋Ｌａｙｅｒ２のヘッダサイズ＋Ｌａｙｅｒ３のヘッダサイズ＋ＴＣＰヘッダサイズ））÷８［ｂｉｔｓ／Ｂｙｔｅ］…（式４）
初期書き換えウィンドウサイズ［ｋＢ］＝保証帯域［ｋｂｐｓ］×ＲＴＴ÷８［ｂｉｔｓ／Ｂｙｔｅ］×（最大セグメントサイズ÷（最大セグメントサイズ＋Ｌａｙｅｒ２のヘッダサイズ＋Ｌａｙｅｒ３のヘッダサイズ＋ＴＣＰヘッダサイズ））÷８［ｂｉｔｓ／Ｂｙｔｅ］…（式５）
なお、上記ウィンドウサイズはＴＣＰスループットが帯域遅延積（保証帯域×ＲＴＴ）から算出可能なことを利用したものである。
【００５７】
図５は、本形態におけるウィンドウサイズ制御方法のうち、ウィンドウサイズを算出してから当該ウィンドウサイズを書き込むまでの処理を説明するためのシーケンス図である。
【００５８】
まず、ウィンドウサイズ算出部２６がサービス対象フローのウィンドウサイズを算出する（ステップ３０１）。
【００５９】
続いて、ウィンドウサイズ算出部２６は算出したウィンドウサイズと、そのサービス対象フローのユーザ情報とを、広告ウィンドウサイズ書き込み部２３へ通知する（ステップ３０２）。
【００６０】
広告ウィンドウサイズ書き込み部２３は、ウィンドウサイズ算出部２６から通知されたウィンドウサイズの値を、フロー識別・振り分け部２２から出力されてきたＡＣＫパケットのウィンドウフィールドへ書き込む（ステップ３０３）。
【００６１】
そして、広告ウィンドウサイズ書き込み部２３は、ウィンドウサイズ算出部２６から通知されたウィンドウサイズの値を書き込んだＡＣＫパケットをデータ送信部２４へ出力する。
【００６２】
図６は、図２に示したトークン管理部２７における各制御対象ＴＣＰフロー毎に準備されたトークンバケットの更新の様子を示すイメージ図である。
【００６３】
図６に示したトークンバケット４０−１〜４０−ｎ、バーストサイズ４１−１〜４１−ｎ、ＲＴＴ計測用トークンバケット４２−１〜４２−ｎの各番号はフロー毎に割り当てられた番号である。
【００６４】
上述したステップ２０２にてフロー識別・振り分け部２２からトークン管理部２７のトークン更新指示部４５宛てにデータパケットサイズ通知によって通知されたデータパケットサイズと、フロー情報をもとに該当するトークンバケット内のトークン量が更新される。（ステップ４０１）。
【００６５】
上述したように本実施形態では、データの送信側となるデータ送信端末１４と、データの受信側となるデータ受信端末１５との間は、帯域保証ネットワーク１６によって帯域が保証される構成である。従って、保証帯域以下でデータを送出している限りパケットの廃棄が生じないことが想定される。それゆえ、データが保証帯域以下で送出されるように広告ウィンドウサイズを調節すればパケットの廃棄を防ぐことができる。パケットの廃棄が生じなければ輻輳ウィンドウサイズが小さくならないため、常に広告ウィンドウサイズがＴＣＰウィンドウサイズに採用されることになる。その結果、スループットが鋸歯状に変動しなくなり保証帯域の効率的な利用が可能となる。
【００６６】
そこで、本実施形態では、データ送信端末１４とデータ受信端末１５との間でエッジノード１１，１２がデータ送信側とデータ受信側との間のスループットと、帯域保証ネットワークによる保証帯域とから、データが保証帯域以内で送出されるようなウィンドウサイズを算出し、データ受信端末１５からデータ送信端末１４へ送信されるＡＣＫパケットに記載される広告ウィンドウサイズを、算出したウィンドウサイズの値に書き換える。
【００６７】
これにより、データ送信端末１４からデータ受信端末１５へ送信するデータのレートを保証帯域内で安定的に制御できるため、保証帯域を効率よく利用することができる。
【００６８】
また、エッジノード１１，１２が、ＡＣＫ番号に基づいて現在のデータスループットを計測し、計測したスループットをもとに現在の伝搬遅延時間を算出することで、キューイング遅延や遅延ＡＣＫアルゴリズムによる遅延揺らぎの影響を回避し、保証帯域を効率よく利用して高いスループットを保つことが可能となる。
【００６９】
なお、上述したエッジノード１１，１２に設けられた各構成要素が行う処理は、目的に応じて作製された論理回路で行うようにしても良い。また、処理内容を記述したプログラムをエッジノード１１，１２にて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムをエッジノード１１，１２に読み込ませ、実行するものであっても良い。エッジノード１１，１２にて読取可能な記録媒体とは、フロッピー（登録商標）ディスク、光磁気ディスク、ＤＶＤ、ＣＤなどの移設可能な記録媒体の他、エッジノード１１，１２内に内蔵されたＲＯＭ、ＲＡＭ等のメモリやＨＤＤ等を指す。この記録媒体に記録されたプログラムは、エッジノード１１，１２内のＣＰＵ（不図示）にて読み込まれ、ＣＰＵの制御によって、上述したものと同様の処理が行われる。ここで、ＣＰＵは、プログラムが記録された記録媒体から読み込まれたプログラムを実行するコンピュータとして動作するものである。
【符号の説明】
【００７０】
１１，１２    エッジノード
１３    帯域管理サーバ
１４    データ送信端末
１５    データ受信端末
１６    帯域保証ネットワーク
２１    データ受信部
２２    フロー識別・振り分け部
２３    広告ウィンドウ書き込み部
２４    データ送信部
２５    帯域情報保持部
２６    ウィンドウサイズ算出部
２７    トークン管理部
４０−１〜４０−ｎ    トークンバケット
４１−１〜４１−ｎ    バーストサイズ
４２−１〜４２−ｎ    ＲＴＴ計測用トークンバケット
４５    トークン更新指示部
【図１】
2011035607.tif 000003
【図２】
2011035607.tif 000004
【図３】
2011035607.tif 000005
【図４】
2011035607.tif 000006
【図５】
2011035607.tif 000007
【図６】
2011035607.tif 000008