(57)【特許請求の範囲】
【請求項１】
データ送信端末からデータ受信端末へデータを送信できる帯域が保証された帯域保証ネットワーク内で前記データ送信端末と前記データ受信端末の間に配置されるフロー制御装置であって、
前記帯域保証ネットワークにて前記データ送信端末から前記データ受信端末へのパケットのフローに割り当てられた保証帯域を保持する帯域情報保持部と、
前記データ送信端末と前記データ受信端末との間で通信されるパケットを受け付け、当該パケットの送信を制御する送受信部と、
前記データ送信端末と前記データ受信端末との間のパケットの第１往復時間と、前記データ送信端末と前記フロー制御装置との間のパケットの第２往復時間と、を計測する計測部と、
前記保証帯域に応じたレートでトークンを追加していき、当該トークンを用いたトークンバケット方式のポリシング制御を行って、前記送受信部に、当該送受信部が受信したデータパケットの送信または廃棄を実行させるトークン管理部と、
前記送受信部が前記データ送信端末宛のＡＣＫパケットを受け付けた際、当該ＡＣＫパケットの受付時から前記第２往復時間経過した時の前記トークン管理部のトークン量を、当該ＡＣＫパケットを用いて予想する仮想トークン管理部と、
前記帯域情報保持部内の保証帯域と、前記計測部にて計測された第１往復時間と、前記仮想トークン管理部にて予想されたトークン量と、に基づいて、前記パケットのフローを管理する管理部と、を含むフロー制御装置。
【請求項２】
前記計測部は、前記データ送信端末と前記データ受信端末とがコネクションを確立するために用いるパケットを利用して、前記第１および第２往復時間を計測する、請求項１に記載のフロー制御装置。
【請求項３】
前記仮想トークン管理部は、前記トークン量を予想するための仮想トークンを保持する、請求項１または２に記載のフロー制御装置。
【請求項４】
前記仮想トークン管理部は、前記トークン管理部で前記トークンが追加される時より前記第２往復時間前に、当該トークンの量に応じて前記仮想トークンの量を追加し、前記送受信部が前記ＡＣＫパケットを受け付けるごとに、当該ＡＣＫパケットのＡＣＫナンバーを取得し今回取得したＡＣＫナンバーと前回取得したＡＣＫナンバーとの差を前記仮想トークンから引く、請求項３に記載のフロー制御装置。
【請求項５】
前記管理部は、
前記保証帯域と前記第１往復時間に基づいてウィンドウサイズを算出するウィンドウサイズ算出部と、
前記仮想トークンの量にしたがって、前記ＡＣＫパケットのウィンドウサイズを、前記ウィンドウサイズ算出部にて算出されたウィンドウサイズと、当該算出されたウィンドウサイズより小さい値のウィンドウサイズと、のいずれかに書き換える広告ウィンドウ書き込み部と、を含む、請求項４に記載のフロー制御装置。
【請求項６】
前記送受信部が前記ＡＣＫパケットを受け付けた際、前記仮想トークンの量が前記ＡＣＫナンバーの差より少ない場合、当該ＡＣＫパケットをバッファリングするバッファ部をさらに含む、請求項４または５に記載のフロー制御装置。
【請求項７】
前記バッファ部は、前記仮想トークンの量が増加した場合、前記ＡＣＫパケットを前記管理部に送信する、請求項６に記載のフロー制御装置。
【請求項８】
データ送信端末からデータ受信端末へデータを送信できる帯域が保証された帯域保証ネットワーク内で前記データ送信端末と前記データ受信端末の間に配置され、また、前記帯域保証ネットワークにて前記データ送信端末から前記データ受信端末へのパケットのフローに割り当てられた保証帯域を保持する帯域情報保持部と、前記データ送信端末と前記データ受信端末との間で通信されるパケットを受け付け、当該パケットの送信を制御する送受信部と、を含むフロー制御装置が行うフロー制御方法であって、
前記データ送信端末と前記データ受信端末との間のパケットの第１往復時間と、前記データ送信端末と前記フロー制御装置との間のパケットの第２往復時間と、を計測する計測ステップと、
前記保証帯域に応じたレートでトークンを追加していき、当該トークンを用いたトークンバケット方式のポリシング制御を行って、前記送受信部に、当該送受信部が受信したデータパケットの送信または廃棄を実行させるトークン管理ステップと、
前記送受信部が前記データ送信端末宛のＡＣＫパケットを受け付けた際、当該ＡＣＫパケットの受付時から前記第２往復時間経過した時の前記トークンの量を、当ＡＣＫパケットを用いて予想する仮想トークン管理ステップと、
前記帯域情報保持部内の保証帯域と、前記第１往復時間と、前記予想されたトークン量と、に基づいて、前記パケットのフローを管理する管理ステップと、を含むフロー制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末間でネットワークを介して送受信されるデータのフロー制御に関する。
【背景技術】
【０００２】
パソコンなどの端末の間では、インターネットなどのコンピュータネットワークを介した通信が行われる。この通信によってファイル等のデータが転送される。この種のデータ転送システムでは、トランスポート層のプロトコルとして、標準的なトランスポートプロトコルであるＴＣＰ（Transmission Control Protocol）が用いられることが多い。
【０００３】
また、データ転送においては大容量のデータを高速に転送することが要求されることがある。これに対して、ＴＣＰのウィンドウサイズを一定に制御することでスループットを向上させる検討が数多くなされている（非特許文献１および２参照）。
【非特許文献１】“ストリーミング配信に適したＴＣＰ制御方式の提案”，電子情報通信学会通信ソサイエティ大会（Ｂ−１１−２），２００６年９月
【非特許文献２】“エッジルータにおけるＴＣＰフローレート制御方式の検討”，電子情報通信学会総合大会，２００７年３月
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ＴＣＰでは、データを保存しておくウィンドウのサイズをパケット廃棄に従って自律的に変化させる帯域制御が行われる。しかし、保証された帯域以上のトラヒックがネットワークに流入するのを防ぐためにネットワークの入り口で流入制限を行っている帯域保証ネットワークでのデータ転送においては、スループットが鋸歯状になり、保証された帯域を十分に活用できないという課題があった。
【０００５】
上述したＴＣＰプロトコルに変更を加えることで保証された帯域に合わせて一定のスループットでデータを送信する技術や広告ウィンドウサイズを一定に制御する技術は、この課題に対する対策となる。
【０００６】
しかし、これらの技術は、遅延揺らぎの影響を考慮に入れておらず、遅延揺らぎによって、保証された帯域以上のスループットになってしまい、ネットワークの入り口におけるポリシング制御によってパケット廃棄が発生する。このため、スループットが極端に低下してしまう課題があった。
【０００７】
本発明の目的は、帯域保証ネットワークでのデータ転送において、遅延揺らぎを許容することで保証帯域を効率よく利用して高いスループットを保つ装置および方法を提供することである。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明のフロー制御装置は、データ送信端末からデータ受信端末へデータを送信できる帯域が保証された帯域保証ネットワーク内で前記データ送信端末と前記データ受信端末の間に配置されるフロー制御装置であって、前記帯域保証ネットワークにて前記データ送信端末から前記データ受信端末へのパケットのフローに割り当てられた保証帯域を保持する帯域情報保持部と、前記データ送信端末と前記データ受信端末との間で通信されるパケットを受け付け、当該パケットの送信を制御する送受信部と、前記データ送信端末と前記データ受信端末との間のパケットの第１往復時間と、前記データ送信端末と前記フロー制御装置との間のパケットの第２往復時間と、を計測する計測部と、前記保証帯域に応じたレートでトークンを追加していき、当該トークンを用いたトークンバケット方式のポリシング制御を行って、前記送受信部に、当該送受信部が受信したデータパケットの送信または廃棄を実行させるトークン管理部と、前記送受信部が前記データ送信端末宛のＡＣＫパケットを受け付けた際、当該ＡＣＫパケットの受付時から前記第２往復時間経過した時の前記トークン管理部のトークン量を、当該ＡＣＫパケットを用いて予想する仮想トークン管理部と、前記帯域情報保持部内の保証帯域と、前記計測部にて計測された第１往復時間と、前記仮想トークン管理部にて予想されたトークン量と、に基づいて、前記パケットのフローを管理する管理部と、を含む。
【０００９】
また、本発明のフロー制御方法は、データ送信端末からデータ受信端末へデータを送信できる帯域が保証された帯域保証ネットワーク内で前記データ送信端末と前記データ受信端末の間に配置され、また、前記帯域保証ネットワークにて前記データ送信端末から前記データ受信端末へのパケットのフローに割り当てられた保証帯域を保持する帯域情報保持部と、前記データ送信端末と前記データ受信端末との間で通信されるパケットを受け付け、当該パケットの送信を制御する送受信部と、を含むフロー制御装置が行うフロー制御方法であって、前記データ送信端末と前記データ受信端末との間のパケットの第１往復時間と、前記データ送信端末と前記フロー制御装置との間のパケットの第２往復時間と、を計測する計測ステップと、前記保証帯域に応じたレートでトークンを追加していき、当該トークンを用いたトークンバケット方式のポリシング制御を行って、前記送受信部に、当該送受信部が受信したデータパケットの送信または廃棄を実行させるトークン管理ステップと、前記送受信部が前記データ送信端末宛のＡＣＫパケットを受け付けた際、当該ＡＣＫパケットの受付時から前記第２往復時間経過した時の前記トークンの量を、当ＡＣＫパケットを用いて予想する仮想トークン管理ステップと、前記帯域情報保持部内の保証帯域と、前記第１往復時間と、前記予想されたトークン量と、に基づいて、前記パケットのフローを管理する管理ステップと、を含む。
【００１０】
上記発明によれば、パケットのフローが、保証帯域と、データ送信端末とデータ受信端末との間のデータの往復時間と、予想されたトークン量と、に基づいて管理される。
【００１１】
予想されたトークン量は、送受信部がデータ送信端末宛のＡＣＫパケットを受け付けた際、ＡＣＫパケットの受付時から第２往復時間経過した時のトークン量を示す。つまり、予想されたトークン量は、データ送信端末がそのＡＣＫパケットの受信に応じて送信するデータパケットを送受信部が受信した時のトークン量の予想値となる。
【００１２】
このため、遅延揺らぎを考慮してトークン量を予測でき、その予測されたトークン量を用いてパケットのフローを管理できる。よって、遅延揺らぎを許容可能となり、保証帯域を効率よく利用して高いスループットを保つことが可能になる。
【００１３】
前記計測部は、前記データ送信端末と前記データ受信端末とがコネクションを確立するために用いるパケットを利用して、前記第１および第２往復時間を計測することが望ましい。
【００１４】
上記発明によれば、コネクションを確立するために用いるパケットを、各往復時間を計測するために利用できる。このため、パケットの増加を抑制可能になる。
【００１５】
前記仮想トークン管理部は、前記トークン量を予想するための仮想トークンを保持することが望ましい。
【００１６】
上記発明によれば、仮想トークンを用いてトークン量を予想することが可能になる。
【００１７】
前記仮想トークン管理部は、前記トークン管理部で前記トークンが追加される時より前記第２往復時間前に、当該トークンの量に応じて前記仮想トークンの量を追加し、前記送受信部が前記ＡＣＫパケットを受け付けるごとに、当該ＡＣＫパケットのＡＣＫナンバーを取得し今回取得したＡＣＫナンバーと前回取得したＡＣＫナンバーとの差を前記仮想トークンから引くことが望ましい。
【００１８】
上記発明によれば、仮想トークンを用いてトークン量を高い精度で予想することが可能になる。
【００１９】
前記管理部は、前記保証帯域と前記往復時間に基づいてウィンドウサイズを算出するウィンドウサイズ算出部と、前記仮想トークンの量にしたがって、前記ＡＣＫパケットのウィンドウサイズを、前記ウィンドウサイズ算出部にて算出されたウィンドウサイズと、当該算出されたウィンドウサイズより小さい値のウィンドウサイズと、のいずれかに書き換える広告ウィンドウ書き込み部と、を含むことが望ましい。
【００２０】
上記発明によれば、例えば、仮想トークンの量が少なくなったときに、ウィンドウサイズを小さくできる。よって、仮想トークンの量に応じて、保証帯域を効率よく利用することが可能になる。
【００２１】
前記送受信部が前記ＡＣＫパケットを受け付けた際、前記仮想トークンの量が前記ＡＣＫナンバーの差より少ない場合、当該ＡＣＫパケットをバッファリングするバッファ部をさらに含むことが望ましい。
【００２２】
上記発明によれば、仮想トークンの量に応じて、保証帯域を効率よく利用することが可能になる。
【００２３】
前記バッファ部は、前記仮想トークンの量が増加した場合、前記ＡＣＫパケットを前記管理部に送信することが望ましい。
【００２４】
上記発明によれば、仮想トークンの量に応じて、保証帯域を効率よく利用することが可能になる。
【発明の効果】
【００２５】
本発明によれば、データ送信端末からデータ受信端末への送信するデータのレートを保証帯域内で安定的に制御できるので、保証帯域を効率よく利用することが可能となる。
【発明を実施するための最良の形態】
【００２６】
一般的なＴＣＰでは、広告ウィンドウと輻輳ウィンドウという２つのウィンドウが定義される。広告ウィンドウのサイズは、受信バッファの状態に依存して、受信側で決定される。輻輳ウィンドウのサイズは、パケット廃棄の状況に応じて、データ送信側で決定される。フロー制御に用いるウィンドウサイズには、広告ウィンドウサイズと輻輳ウィンドウサイズのうち、いずれか小さいほうが選択される。このウィンドウサイズは、ＡＣＫパケットが到着したときに更新される。
【００２７】
本実施形態では、データの送信側となるデータ送信端末と、データの受信側となるデータ受信端末との間は、帯域保証ネットワークによって帯域が保証される構成である。
【００２８】
従って、保証帯域以下でデータを送出している限り、パケットの廃棄が生じないことが想定される。それゆえ、データが保証帯域以下で送出されるように広告ウィンドウサイズを調節すれば、パケットの廃棄を防ぐことができる。
【００２９】
パケットの廃棄が生じなければ、輻輳ウィンドウサイズが小さくならないので、常に広告ウィンドウサイズが、ＴＣＰウィンドウサイズに採用されることになる。その結果、スループットが鋸歯状に変動しなくなり、保証帯域の効率的な利用が可能となる。
【００３０】
そこで、本実施形態では、データ送信端末とデータ受信端末の間で、ポリサー装置が、データ送信側とデータ受信側の間の伝播遅延時間（第１往復期間）と、帯域保証ネットワークによる保証帯域とから、データが保証帯域以内で送出されるようなウィンドウサイズを算出し、データ受信端末からデータ送信端末へのＡＣＫパケットに記載される広告ウィンドウサイズを、算出したウィンドウサイズの値に書き換える。
【００３１】
これにより、データ送信端末からデータ受信端末へ送信するデータのレートを保証帯域内で安定的に制御できるので、保証帯域を効率よく利用することができる。
【００３２】
また、ポリシング制御のトークン容量を予測した上での、広告ウィンドウサイズの書き換えとＡＣＫパケットのバッファリングを行うことで、遅延揺らぎの影響を許容し、保証帯域を効率よく利用して高いスループットを保つことが可能となる。
【００３３】
ここで、本実施形態の概要を説明する。
【００３４】
本発明の一実施形態のポリサー装置は、フロー制御装置の一例であり、トークンパケット型のポリシング制御を行い、かつ、広告ウィンドウサイズの書き換えを行う。
【００３５】
また、ポリサー装置は、コネクション確立パケットを用いて、データ送信端末とポリサー装置の往復伝播遅延時間（以下「Ｓ−ＲＴＴ」（第２往復時間）と称する。）と、データ送信端末とデータ受信端末の往復伝播遅延時間（以下「ＲＴＴ」（第１往復時間）と称する。）と、を計測する。
【００３６】
ポリサー装置は、広告ウィンドウサイズの書き換えには、保証帯域とエンド間のＲＴＴから算出したウィンドウサイズ（以下「ＢＧＷＮＤ）を用いてもよいとする。
【００３７】
また、ポリサー装置は、収容するフロー数×ＡＣＫ１パケットサイズ分のバッファ（バッファ部）と、仮想トークン（ＶＴ：Virtual Token）と、を保持する。ＶＴは、データ送信端末宛のＡＣＫパケットがポリサー装置を通過した瞬間に、その瞬間からＳ−ＲＴＴ後に通過するデータ（データパケット）によって減少するトークン容量を予測するためのものである。ＶＴが追加されるタイミングは、トークンが追加されるＳ−ＲＴＴ前である。
【００３８】
以下に、処理手順を示す。
【００３９】
Ｓｔｅｐ（１）：ＡＣＫパケットがポリサー装置通過時
ポリサー装置が、データ送信端末宛てのＡＣＫパケット内のＡＣＫナンバーをカウントし、現在通過したＡＣＫパケットと１つ前に通過したＡＣＫパケットのＡＣＫナンバーの差（以下「ＤｉｆｆＡＣＫ」と称する。）だけＶＴから引く。これは、Ｓ−ＲＴＴ後にＤｉｆｆＡＣＫサイズのデータがポリサー装置を通過するためである。
【００４０】
なお、Ｓｔｅｐ（１）において、ＤｉｆｆＡＣＫを引く前のＶＴ容量が、ＤｉｆｆＡＣＫより大きい場合は、以下のような処理が行われる。
【００４１】
ポリサー装置は、ＶＴ＝ＶＴ−ＤｉｆｆＡＣＫに従ってＶＴを減らし、ＡＣＫパケット内の広告ウィンドウサイズをＢＧＷＮＤに書き換え、そのＡＣＫパケットをデータ送信端末に送信する。
【００４２】
また、Ｓｔｅｐ（１）において、ＤｉｆｆＡＣＫを引く前のＶＴ容量が、ＤｉｆｆＡＣＫ以下の場合は、以下のような処理が行われる。
【００４３】
これ以上のデータ送信を控えさせるために、ポリサー装置は、ＡＣＫ内の広告ウィンドウサイズを１に書き換え、例えば次のＡＣＫパケットが通過するまでバッファに溜め、その後、データ送信端末に送信する。
【００４４】
Ｓｔｅｐ（２）：ポリサー装置は、ＶＴの容量が増えるまでＳｔｅｐ（１）を繰り返し、ＶＴが増加した瞬間にバッファ内ＡＣＫパケットの広告ウィンドウサイズを、例えば、ｍｉｎ（ＢＧＷＮＤ，ＶＴ）に書き換え、ＡＣＫパケットをデータ送信端末に送信する。
【００４５】
本実施形態では、ポリサー装置がデータ受信端末からデータ送信端末へ通知されるＡＣＫパケットを操作するのみなので、データ送信端末はそれを元に既存の動作をするだけであり、データ送信端末のプロトコルに本発明に特有の機能を加えることなくスループットを改善することができる。
【００４６】
以下、本実施形態について図面を参照して詳細に説明する。
【００４７】
図１は、本実施形態によるデータ送信システムの構成を示すブロック図である。図１を参照すると、本実施形態のデータ送信システムは、ポリサー装置１１、１２、および、帯域管理サーバ１３を有している。
【００４８】
データ送信端末１４は、ポリサー装置１１に接続され、データ受信端末１５は、ポリサー装置１２に接続されている。
【００４９】
ポリサー装置１１とポリサー装置１２は、帯域保証ネットワーク１６上でデータを送受信することができる。これにより、データ送信端末１４からのデータが、ポリサー装置１１とポリサー装置１２を介して、データ受信端末１５へ転送される。
【００５０】
帯域管理サーバ１３は、帯域保証ネットワーク１６の全リンクの帯域情報を集中的に管理する。
【００５１】
帯域情報には、リンクに割り当てられた保証帯域の情報が含まれている。
【００５２】
帯域管理サーバ１３は、管理している各リンクの帯域情報を、ポリサー装置１１および１２に通知する。
【００５３】
帯域管理サーバ１３による帯域管理によって、データ送信端末１４からデータ受信端末１５へのリンクでは、帯域保証ネットワーク１６において保証帯域が確保される。
【００５４】
その結果、データ送信端末１４が保証帯域以下でデータを送出する限り、保証帯域ネットワーク１６内でのパケット廃棄は発生しない。
【００５５】
また、ポリサー装置１１は、ポリサー装置１１とデータ送信端末１４の間の、データ送信端末とデータ送信端末側ポリサー装置間の往復伝搬遅延時間１７（以下、単に「往復伝搬遅延時間１７」とも称する。）、および、データ送信端末１４とデータ受信端末１５の間の、データ送信端末とデータ受信端末間の往復伝搬遅延時間１８（以下、単に「往復伝搬遅延時間１８」とも称する。）を計測する。
【００５６】
図２は、本実施形態のポリサー装置の構成を示すブロック図である。
【００５７】
図２を参照すると、ポリサー装置１１は、データ受信部２１、フロー識別・振り分け部２２、バッファ部２３、データ送信部２４、帯域情報保持部２５、伝播遅延時間算出部２６、フロー情報保持部２７、トークン管理部２８、仮想トークン管理部２９、ウィンドウサイズ算出部３０、および、広告ウィンドウサイズ書き込み部３１を有している。
【００５８】
帯域情報保持部２５は、帯域管理サーバ１３から通知された、サービス対象ユーザの帯域情報とユーザ情報（宛先および送信元のＩＰアドレス、ならびに、宛先および送信元のポート番号）とを対応付けて保持する。なお、以下の説明では、宛先がデータ受信端末１５であり、送信元がデータ送信端末１４とする。
【００５９】
帯域情報には、リンクに割り当てられた保証帯域の情報が含まれている。リンクは、ユーザ情報により識別することができる。
【００６０】
データ受信部２１は、データパケットやＡＣＫパケットなどのパケットを受信し、そのパケットを、フロー識別・振り分け部２２に送る。
【００６１】
フロー識別・振り分け部２２は、データ受信部２１からパケットを受け付けた場合、そのパケット内の宛先および送信元の情報と、帯域情報保持部２５に保持されているユーザ情報と、に基づいて、そのパケットの通信が、帯域を保証したデータ転送のサービスの対象となるフロー（サービス対象フロー）か、または、そのサービスの対象とならないフロー（サービス非対象フロー）かを識別する。
【００６２】
例えば、データ受信部２１からのパケット内の宛先および送信元の情報が、ユーザ情報として、帯域情報保持部２５に保持されている場合、フロー識別・振り分け部２２は、そのパケットの通信がサービス対象フローであると判断する。
【００６３】
一方、データ受信部２１からのパケット内の宛先および送信元の情報が、ユーザ情報として、帯域情報保持部２５に保持されていない場合、フロー識別・振り分け部２２は、そのパケットの通信がサービス非対象フローであると判断する。
【００６４】
フロー識別・振り分け部２２は、データ送信端末１４とデータ受信端末１５間でコネクションが確立されていない状況では、その判断結果およびパケットの種類に基づいて、伝播遅延時間算出部２６に往復伝播遅延時間の測定指示を行う。
【００６５】
具体的には、フロー識別・振り分け部２２は、データ送信端末１４がデータ受信端末１５宛てに送信したＳＹＮパケット（サービス対象フローのパケット）を受け付けた場合、そのＳＹＮパケットに対応するユーザ情報を帯域情報保持部２５から読み取り、そのユーザ情報と、往復伝搬遅延時間１８（データ送信端末とデータ受信端末間の往復伝搬遅延時間）の計測開始要求とを、伝播遅延時間算出部２６に送る。
【００６６】
フロー識別・振り分け部２２は、データ受信端末１５がデータ送信端末１４宛てに送信したＳＹＮ／ＡＣＫパケット（サービス対象フローのパケット）を受け付けた場合、そのＳＹＮ／ＡＣＫパケットに対応するユーザ情報を帯域情報保持部２５から読み取り、そのユーザ情報と、往復伝搬遅延時間１７（データ送信端末とデータ送信端末側ポリサー装置間の往復伝搬遅延時間）の計測開始要求とを、伝播遅延時間算出部２６に送る。
【００６７】
フロー識別・振り分け部２２は、データ送信端末１４がデータ受信端末１５宛てに送信したＡＣＫパケット（サービス対象フローのパケット）を受け付けた場合、そのＡＣＫパケットに対応するユーザ情報を帯域情報保持部２５から読み取り、そのユーザ情報と、往復伝搬遅延時間１７の計測終了要求と、往復伝搬遅延時間１８の計測終了要求とを、伝播遅延時間算出部２６に送る。
【００６８】
フロー識別・振り分け部２２は、データ受信端末１５がデータ送信端末１４宛てに送信したＳＹＮパケット（サービス対象フローのパケット）を受け付けた場合、そのＳＹＮパケットに対応するユーザ情報を帯域情報保持部２５から読み取り、そのユーザ情報と、往復伝搬遅延時間１７の計測開始要求と、往復伝搬遅延時間１８の計測開始要求とを、伝播遅延時間算出部２６に送る。
【００６９】
フロー識別・振り分け部２２は、データ送信端末１４がデータ受信端末１５宛てに送信したＳＹＮ／ＡＣＫパケット（サービス対象フローのパケット）を受け付けた場合、そのＳＹＮ／ＡＣＫパケットに対応するユーザ情報を帯域情報保持部２５から読み取り、そのユーザ情報と、往復伝搬遅延時間１７の計測終了要求とを、伝播遅延時間算出部２６に送る。
【００７０】
フロー識別・振り分け部２２は、データ受信端末１５がデータ送信端末１４宛てに送信したＡＣＫパケット（サービス対象フローのパケット）を受け付けた場合、そのＡＣＫパケットに対応するユーザ情報を帯域情報保持部２５から読み取り、そのユーザ情報と、往復伝搬遅延時間１８の計測終了要求とを、伝播遅延時間算出部２６に送る。
【００７１】
また、フロー識別・振り分け部２２は、データ送信端末１４とデータ受信端末１５間でコネクションが確立された状況では、パケットの通信がサービス対象フローであるか否かの判断結果およびパケットの種類に基づいて、（１）配線２２ａ〜２２ｃを用いたパケットの振り分け、（２）トークン管理部２８へのデータパケットサイズの通知、（３）仮想トークン管理部２９へのＡＣＫパケット内のＡＣＫナンバーの通知、および、（４）ウィンドウサイズ算出部３０へのウィンドウサイズ計算指示を行う。
【００７２】
以下、（１）〜（４）について説明する。
【００７３】
（１）パケットの振り分け
フロー識別・振り分け部２２は、サービス対象フローのＡＣＫパケット（具体的には、データ受信端末１５から送信されたデータ送信端末１４宛てのＡＣＫパケット）を受け付け、さらに、仮想トークン管理部２９からＡＣＫパケット転送要求を受け付けた場合、そのサービス対象フローのＡＣＫパケットを、配線２２ａを通して広告ウィンドウササイズ書き込み部３１に振り分ける。
【００７４】
フロー識別・振り分け部２２は、サービス対象フローのＡＣＫパケット（具体的には、データ受信端末１５から送信されたデータ送信端末１４宛てのＡＣＫパケット）を受け付け、さらに、仮想トークン管理部２９からＡＣＫパケットバッファリング要求を受け付けた場合、そのサービス対象フローのＡＣＫパケットを、配線２２ｂを通してバッファ部２３に振り分ける。
【００７５】
フロー識別・振り分け部２２は、サービス非対象フローのパケットを受け付けた場合、および、サービス対象フローのデータパケットを受け付けた場合、そのパケットを、配線２２ｃを通してデータ送信部２４に振り分ける。
【００７６】
（２）トークン管理部２８へのデータパケットサイズの通知
フロー識別・振り分け部２２は、サービス対象フローのデータパケットを受け付けた場合、そのデータパケットのサイズを、トークン管理部２８に通知する。
【００７７】
（３）仮想トークン管理部２９へのＡＣＫパケット内のＡＣＫナンバーの通知
フロー識別・振り分け部２２は、データ受信端末１５からデータ送信端末１４宛てのＡＣＫパケット（サービス対象フローのパケット）を受け付けた場合、そのＡＣＫパケット内のＡＣＫナンバーを、仮想トークン管理部２９に通知する。
【００７８】
（４）ウィンドウサイズ算出部３０へのウィンドウサイズ計算指示
フロー識別・振り分け部２２は、データ受信端末１５からデータ送信端末１４宛てのＡＣＫパケット（サービス対象フローのパケット）を受け付けた場合、そのＡＣＫパケットに対応するユーザ情報を帯域情報保持部２５から読み取り、そのユーザ情報と、ウィンドウサイズ計算要求とを、ウィンドウサイズ算出部３０を送る。
【００７９】
バッファ部２３は、ポリサー装置１１が収容するフロー数×ＡＣＫ１パケットサイズ分の容量を有し、フロー識別・振り分け部２２からのＡＣＫパケットをバッファリングし、また、仮想トークン管理部２９からバッファリング解除要求を受け付けた場合、バッファリング中のＡＣＫパケットを広告ウィンドウサイズ書き込み部３１へ送る。
【００８０】
データ送信部２４は、フロー識別・振り分け部２２からのパケットと、広告ウィンドウサイズ書き込み部３１からのＡＣＫパケットとを、帯域保証ネットワーク１６を介して、ポリサー装置１２へ送信する。
【００８１】
伝搬遅延時間算出部２６は、計測部の一例であり、データ送信端末１４とポリサー装置１１の間の往復伝播遅延時間１７（第２往復時間）と、データ送信端末１４とデータ受信端末１５の間の往復伝播遅延時間１８（第１往復時間）を計測する。
【００８２】
具体的には、伝搬遅延時間算出部２６は、ユーザ情報と往復伝搬遅延時間１７の計測開始要求を受け付けると、往復伝播遅延時間１７の計測を開始し、ユーザ情報と往復伝搬遅延時間１７の計測終了要求を受け付けると、往復伝播遅延時間１７の計測を終了する。
【００８３】
また、伝搬遅延時間算出部２６は、ユーザ情報と往復伝搬遅延時間１８の計測開始要求と受け付けると、往復伝播遅延時間１８の計測を開始し、ユーザ情報と往復伝搬遅延時間１８の計測終了要求を受け付けると、往復伝播遅延時間１８の計測を終了する。
【００８４】
伝搬遅延時間算出部２６は、ユーザ情報と往復伝播遅延時間１８とをフロー情報保持部２７に送り、また、ユーザ情報と往復伝播遅延時間１７とをトークン管理部２８に送る
フロー情報保持部２７は、フロー識別・振り分け部２２で識別されるサービス対象フローのコネクション情報と、伝搬遅延時間算出部２６で算出された往復伝播遅延時間１８とを対応付けて保持する。
【００８５】
例えば、フロー情報保持部２７は、伝搬遅延時間算出部２６からのユーザ情報（サービス対象フローのコネクション情報）および往復伝播遅延時間１８を互いに対応付けて保持する。
【００８６】
トークン管理部２８は、サービス対象フローが保証帯域以上のレートでのデータを送出しないように、保証帯域に応じた任意のタイミング（レート）でトークンを追加する。
【００８７】
なお、トークン管理部２８は、保証帯域に応じたレートでトークンを追加していき、そのトークンを用いたトークンバケット方式のポリシング制御を行って、フロー識別・振り分け部２２に、フロー識別・振り分け部２２が受信したデータパケットの送信または廃棄を実行させる
例えば、トークン管理部２８は、フロー識別・振り分け部２２からデータパケットのサイズを受け付けたとき、すなわち、サービス対象フローのデータパケットがフロー識別・振り分け部２２に到着したときに、そのサイズ以上のトークンがあれば、その到着したデータパケットのサイズ分のトークンを減らし、パケット転送処理をフロー識別・振り分け部２２に実行させる。
【００８８】
一方、そのサイズ以上のトークンがない場合は、トークン管理部２８は、パケット廃棄処理をフロー識別・振り分け部２２に実行させる。
【００８９】
また、トークン管理部２８は、伝播遅延時間算出部２６からユーザ情報と往復伝播遅延時間１７とを受け付けた場合、その後にパケットを追加するタイミングより往復伝播遅延時間１７前のタイミング（仮想トークン追加時刻）を算出する。
【００９０】
トークン管理部２８は、その仮想トークン追加時刻に、追加予定のトークン量を示した仮想トークン追加要求を仮想トークン管理部２９に送る。なお、追加予定のトークン量は、仮想トークン追加要求を送信してから往復伝播遅延時間１７後にトークン管理部２８が追加するトークン量である。
【００９１】
仮想トークン管理部２９は、仮想トークン追加要求を受け付けた場合、仮想トークン追加要求に示されたトークン量だけ仮想トークンを追加する。
【００９２】
仮想トークン管理部２９は、ＡＣＫパケットがフロー識別・振り分け部２２に受け付けられたときに、具体的には、フロー識別・振り分け部２２からＡＣＫナンバーを受け付けた場合、データ送信端末１４がそのＡＣＫパケットの受信に応じて送信するデータパケットをフロー識別・振り分け部２２が受信する（往復伝播遅延時間１７経過）ことによって減少するトークン管理部２８トークン容量（ＤｉｆｆＡＣＫ）を予測する。
【００９３】
仮想トークン管理部２９は、ＤｉｆｆＡＣＫ分の仮想トークンが存在する場合、ＤｉｆｆＡＣＫ分の仮想トークンを減らし、フロー識別・振り分け部２２に、ＡＣＫパケット転送要求を送信する。
【００９４】
仮想トークン管理部２９は、ＤｉｆｆＡＣＫ分の仮想トークンが存在しない場合、フロー識別・振り分け部２２に、ＡＣＫパケットバッファリング要求を送信し、また、ウィンドウサイズ算出部３０に、ゼロウィンドウ要求を送信する。
【００９５】
また、仮想トークン管理部２９は、バッファ部２３がＡＣＫパケットをバッファリングしている状況でトークン管理部２８から仮想トークン追加要求を受け付けた場合、仮想トークン追加要求内の仮想トークンを追加すると共に、バッファ部２３にバッファリング解除要求を送信する。
【００９６】
ウィンドウサイズ算出部３０は、フロー情報保持部２７に保持されている往復伝搬遅延時間１８と、帯域情報保持部２５に保持されている帯域情報の保証帯域と、を用いて、データの送出帯域が保証帯域以内となるようなウィンドウサイズを算出する。
【００９７】
また、ウィンドウサイズ算出部３０は、仮想トークン管理部２９からゼロウィンドウ要求を受け付けた場合、データ送信端末１４が新たにデータを送出しない大きさのウィンドウサイズを算出する。
【００９８】
ウィンドウサイズ算出部３０は、その算出されたウィンドウサイズと、そのサービス対象フローのユーザ情報とを、広告ウィンドウサイズ書き込み部３１に通知する。
【００９９】
広告ウィンドウサイズ書き込み部３１は、データ受信端末１５からデータ送信端末１４へのＡＣＫパケットのウィンドウフィールドに、ウィンドウサイズ算出部３０で算出されたウィンドウサイズの値を書き込み、そのＡＣＫパケットをデータ送信部２４に送る。
【０１００】
なお、データ受信部２１とフロー識別・振り分け部２２とデータ送信部２４とは、送受信部１に含まれる。送受信部１は、データ送信端末１４とデータ受信端末１５との間で通信されるパケットを受け付け、そのパケットの送信を制御する。
【０１０１】
また、フロー情報保持部２７とウィンドウサイズ算出部３０と広告ウィンドウサイズ書き込み部３１とは、管理部２に含まれる。管理部２は、帯域情報保持部２５内の保証帯域と、伝搬遅延時間算出部２６部にて計測された往復伝搬遅延時間１７と、仮想トークン管理部２９にて予想された仮想トークン量と、に基づいて、データ送信端末１４とデータ受信端末１５の間のパケットのフローを管理する。
【０１０２】
次に、動作を説明する。
【０１０３】
図３は、データ送信端末１４とデータ受信端末１５とのコネクションを確立しながら往復伝播遅延時間を計測するときのポリサー装置１１内のブロック間の信号のやり取りを示すシーケンス図である。
【０１０４】
以下、図３を参照して、コネクションの確立動作と復伝播遅延時間の計測動作とを説明する。
【０１０５】
データ送信端末１４は、データ受信端末１５宛にＳＹＮパケットを送信する。
【０１０６】
フロー識別・振り分け部２２は、ＳＹＮパケットを観測すると（ステップ１０１）、そのＳＹＮパケットがデータ送信端末１４からデータ受信端末１５宛てに送信されたＳＹＮパケットである場合（ステップ１０２）、そのＳＹＮパケットをデータ送信部２４に送り、そのＳＹＮパケットに対応するユーザ情報と往復伝搬遅延時間１８の計測開始要求とを伝播遅延時間算出部２６に送る（ステップ１０５）。
【０１０７】
データ送信部２４は、そのＳＹＮパケットを受け付けると、そのＳＹＮパケットを、帯域保証ネットワーク１６を介してポリサー装置１２へ送信する。
【０１０８】
伝播遅延時間算出部２６は、ユーザ情報と往復伝搬遅延時間１８の計測開始要求とを受け付けると、データ送信端末１４とデータ受信端末１５の間の往復伝播遅延時間１８の計測を開始する。
【０１０９】
データ受信端末１５は、ポリサー装置１２から、そのＳＹＮパケットを受け付けると、データ送信端末１４宛てにＳＹＮ／ＡＣＫパケットを送信する。
【０１１０】
その後、フロー識別・振り分け部２２は、データ受信端末１５からデータ送信端末１４宛てに送信されたＳＹＮ／ＡＣＫパケットを観測すると（ステップ１０３）、そのＳＹＮ／ＡＣＫパケットをデータ送信部２４に送り、そのＳＹＮ／ＡＣＫパケットに対応するユーザ情報と往復伝搬遅延時間１７の計測開始要求とを、伝播遅延時間算出部２６に送る（ステップ１０７）。
【０１１１】
データ送信部２４は、そのＳＹＮ／ＡＣＫパケットを受け付けると、そのＳＹＮ／ＡＣＫパケットを、データ送信端末１４へ送信する。
【０１１２】
伝播遅延時間算出部２６は、ユーザ情報と往復伝搬遅延時間１７の計測開始要求とを受け付けると、データ送信端末１４とデータ送信端末側ポリサー装置１１の間の往復伝搬遅延時間１７の計測を開始する。
【０１１３】
データ送信端末１４は、そのＳＹＮ／ＡＣＫパケットを受け付けると、データ受信端末１５宛にＡＣＫパケットを送信する。
【０１１４】
その後、フロー識別・振り分け部２２は、データ送信端末１４からデータ受信端末１５宛てに送信されたＡＣＫパケットを観測すると（ステップ１０４）、そのＡＣＫパケットをデータ送信部２４に送り、そのＡＣＫパケットに対応するユーザ情報と、往復伝搬遅延時間１７の計測終了要求と、往復伝搬遅延時間１８の計測終了要求とを、伝播遅延時間算出部２６に送る（ステップ１０９）。
【０１１５】
データ送信部２４は、そのＡＣＫパケットを受け付けると、そのＡＣＫパケットを、帯域保証ネットワーク１６を介してポリサー装置１２へ送信する。よって、データ送信端末１４とデータ受信端末１５間でコネクションが確立される。
【０１１６】
伝播遅延時間算出部２６は、ユーザ情報と、往復伝搬遅延時間１７の計測終了要求と、往復伝搬遅延時間１８の計測終了要求とを受け付けると、往復伝搬遅延時間１７および往復伝搬遅延時間１８の計測を終了する。
【０１１７】
一方、ＳＹＮパケットがデータ受信端末１５からデータ送信端末１４宛に送信された場合（ステップ１０２）、フロー識別・振り分け部２２は、そのＳＹＮパケットをデータ送信部２４に送り、そのＳＹＮパケットに対応するユーザ情報と、往復伝搬遅延時間１７の計測開始要求と、往復伝搬遅延時間１８の計測開始要求とを、伝搬遅延時間算出部２６に送る（ステップ１０６）。
【０１１８】
データ送信部２４は、そのＳＹＮパケットを受け付けると、そのＳＹＮパケットを、データ送信端末１４へ送信する。
【０１１９】
伝搬遅延時間算出部２６は、ユーザ情報と往復伝搬遅延時間１７の計測開始要求と往復伝搬遅延時間１８の計測開始要求とを受け付けると、データ送信端末１４とデータ送信端末側ポリサー装置１１の間の往復伝搬遅延時間１７およびデータ送信端末１４とデータ受信端末１５の間の往復伝搬遅延時間１８の計測を開始する。
【０１２０】
その後、フロー識別・振り分け部２２は、データ送信端末１４からデータ受信端末１５へのＳＹＮ／ＡＣＫパケットを観測すると（ステップ１０３）、そのＳＹＮ／ＡＣＫパケットをデータ送信部２４に送り、そのＳＹＮ／ＡＣＫパケットに対応するユーザ情報と、往復伝搬遅延時間１７の計測終了要求とを、伝搬遅延時間算出部２６に送る（ステップ１０８）。
【０１２１】
データ送信部２４は、そのＳＹＮ／ＡＣＫパケットを受け付けると、そのＳＹＮ／ＡＣＫパケットを、帯域保証ネットワーク１６を介してポリサー装置１２へ送信する。
【０１２２】
伝搬遅延時間算出部２６は、ユーザ情報と往復伝搬遅延時間１７の計測終了要求とを受け付けると、データ送信端末１４とデータ送信端末側ポリサー装置１１の間の往復伝搬遅延時間１７の計測を終了する。
【０１２３】
その後、フロー識別・振り分け部２２は、データ受信端末１５からデータ送信端末１４へのＡＣＫパケットを観測すると（ステップ１０４）、そのＡＣＫパケットをデータ送信部２４に送り、そのＡＣＫパケットに対応するユーザ情報と、往復伝搬遅延時間１８の計測終了要求とを、伝搬遅延時間算出部２６に送る（ステップ１１０）。
【０１２４】
データ送信部２４は、そのＡＣＫパケットを受け付けると、そのＡＣＫパケットを、データ送信端末１４へ送信する。よって、データ送信端末１４とデータ受信端末１５間でコネクションが確立される。
【０１２５】
伝搬遅延時間算出部２６は、ユーザ情報と往復伝搬遅延時間１８の計測終了要求とを受け付けると、データ送信端末１４とデータ受信端末１５の間の往復伝搬遅延時間１８の計測を終了する。
【０１２６】
以上のようにして、データ送信端末１４とデータ受信端末１５間でコネクションが確立されながら、ポリサー装置１１とデータ送信端末１４の間の往復伝搬遅延時間１７と、データ送信端末１４とデータ受信端末１５の間の往復伝搬遅延時間１８が計測される。
【０１２７】
伝搬遅延時間算出部２６は、往復伝搬遅延時間１８の計測を終えると、計測した往復伝搬遅延時間１８をユーザ情報と共に、データ送信端末とデータ受信端末間の往復伝搬遅延時間１８報告として、フロー情報保持部２７に通知する（ステップ１１１）。
【０１２８】
フロー情報保持部２７は、データ送信端末とデータ受信端末間の往復伝搬遅延時間１８報告を受け付けると、データ送信端末とデータ受信端末間の往復伝搬遅延時間１８報告を保持する。
【０１２９】
また、伝搬遅延時間算出部２６は、往復伝搬遅延時間１７の計測を終えると、計測した往復伝搬遅延時間１７をユーザ情報と共に、データ送信端末とデータ送信端末側ポリサー装置間の往復伝搬遅延時間１７報告として、トークン管理部２８に通知する（ステップ１１２）。
【０１３０】
トークン管理部２８は、通知されたデータ送信端末とデータ送信端末側ポリサー装置間の往復伝搬遅延時間１７を元に、仮想トークン管理部２９に仮想トークン追加要求を通知する仮想トークン追加時刻を算出する（ステップ１１３）。
【０１３１】
図４は、データ送信端末１４とデータ受信端末１５間でコネクションが確立された後にフロー識別・振り分け部２２が行うパケット振り分けを説明するための説明図である。
【０１３２】
図５は、フロー識別・振り分け部２２がデータ受信端末１５からサービス対象フローのＡＣＫパケットを受け付けたときに行われるウィンドウサイズ算出動作およびＡＣＫパケットの振り分け制御動作を説明するためのシーケンス図である。
【０１３３】
図６は、ＡＣＫパケットの振り分け制御動作に基づいてバッファ部２３にバッファリングされたＡＣＫパケットを広告ウィンドウサイズ書き込み部３１に送る動作を説明するためのシーケンス図である。
【０１３４】
図７は、広告ウィンドウサイズ書き込み部３１がＡＣＫパケットに広告ウィンドウサイズを書き込む時のポリサー装置内のブロック間の信号のやり取りを示すシーケンス図である。
【０１３５】
以下、図４から図７を参照して、フロー識別・振り分け部２２がデータ受信端末１５からサービス対象フローのＡＣＫパケットを受け付けたときのポリサー装置内の動作を説明する。
【０１３６】
データ送信端末１４とデータ受信端末１５間でコネクションが確立されると、データの転送が開始される。
【０１３７】
ポリサー装置１１のフロー識別・振り分け部２２は、データ受信端末１５からのＡＣＫパケットを受信した場合、帯域情報保持部２５を参照して、そのＡＣＫパケットが、サービス対象フローのＡＣＫパケットか否かを判定する。
【０１３８】
そのＡＣＫパケットがサービス対象フローのＡＣＫパケットである場合（図５のステップ２０１）、フロー識別・振り分け部２２は、ウィンドウサイズ算出部３０に対して、サービス対象フローのユーザ情報と共にウィンドウサイズ計算要求を送り（ステップ２０３）、仮想トークン管理部２９に対してＡＣＫパケット内のＡＣＫナンバーを通知する（ステップ２０４）。
【０１３９】
ウィンドウサイズ算出部３０は、ユーザ情報とウィンドウサイズ計算要求を受け付けると、そのユーザ情報を基にして、帯域情報保持部２５に対して、ユーザ情報に対応する保証帯域を要求し（ステップ２１２）、フロー情報保持部２７に対して、ユーザ情報に対応するデータ送信端末とデータ受信端末間の往復伝搬遅延時間１８を要求する（ステップ２１３）。
【０１４０】
フロー情報保持部２７は、ウィンドウサイズ算出部３０からの要求に応じて、データ送信端末とデータ受信端末間の往復伝搬遅延時間１８の値を返送する（ステップ２１４）。
【０１４１】
また、帯域情報保持部２５は、ウィンドウサイズ算出部３０からの要求に応じて、保証帯域を返送する（ステップ２１５）。
【０１４２】
ウィンドウサイズ算出部３０は、データ送信端末とデータ受信端末間の往復伝搬遅延時間１８と保証帯域とを受信すると、それらの値を基に、データ送信端末１４が保証帯域以内でデータを送出するようなウィンドウサイズを算出する（ステップ２１１）。
【０１４３】
このとき、保証帯域と一致するレートでデータが送出されるようなウィンドウサイズが好適である。
【０１４４】
ウィンドウサイズの求め方は、例えば式（１）により求めることができる。
［数１］
ウィンドウサイズ［ＫＢ］＝保証帯域［Ｋｂｐｓ］×データ送信端末とデータ受信端末間の往復伝搬遅延時間１８［ｓｅｃ］÷８［ｂｉｔｓ／Ｂｙｔｅ］          （１）
なお、ウィンドウサイズの求め方は、式（１）に限らず適宜変更可能である。
【０１４５】
一方、仮想トークン管理部２９は、ＡＣＫナンバー通知を受け付けると、そのＡＣＫナンバーを保持し、さらに、このＡＣＫナンバーとこのＡＣＫパケットより１つ前に受信したＡＣＫパケット内のＡＣＫナンバーとの差であるＤｉｆｆＡＣＫを算出する（ステップ２０７）。
【０１４６】
仮想トークン管理部２９は、ＤｉｆｆＡＣＫを算出すると、ＤｉｆｆＡＣＫ分の仮想トークンが存在するか確認する（ステップ２０８）。
【０１４７】
ＤｉｆｆＡＣＫ分の仮想トークンが存在する場合、仮想トークン管理部２９は、ＤｉｆｆＡＣＫ分の仮想トークンを減らし（ステップ２０９）、サービス対象フローのＡＣＫパケットを配線２２ａに転送するように、フロー識別・振り分け部２２に対して、ＡＣＫパケット転送要求を送信する（ステップ２０６）。
【０１４８】
フロー識別・振り分け部２２は、ＡＣＫパケット転送要求を受け付けると、サービス対象フローのＡＣＫパケットを、配線２２ａを通して広告ウィンドウサイズ書き込み部３１に送る（ステップ２０２）。
【０１４９】
一方、ＤｉｆｆＡＣＫ分の仮想トークンが存在しない場合、仮想トークン管理部２９は、ＡＣＫパケットをバッファリングするためにサービス対象フローのＡＣＫパケットを配線２２ｂに転送するように、フロー識別・振り分け部２２に対して、ＡＣＫパケットバッファリング要求を送信し（ステップ２０５）、さらに、データ送信端末１４がこれ以上のデータ送信を行わないように、ウィンドウサイズ算出部３０に対して、ゼロウィンドウ要求を送信する（ステップ２１０）。
【０１５０】
フロー識別・振り分け部２２は、ＡＣＫパケットバッファリング要求を受け付けると、サービス対象フローのＡＣＫパケットを、配線２２ｂを通してバッファ部２３に送り、バッファ部２３は、そのサービス対象フローのＡＣＫパケットをバッファリングする。
【０１５１】
また、ウィンドウサイズ算出部３０は、ゼロウィンドウ要求を受け付けると、サイズが「１」のウィンドウサイズを算出する。本実施形態では、この「１」のウィンドウサイズは、ステップ２１１で算出されたウィンドウサイズより小さい。
【０１５２】
なお、バッファ部２３内のサービス対象フローのＡＣＫパケットは、以下のようにして、広告ウィンドウサイズ書き込み部３１に送られる。
【０１５３】
仮想トークン管理部２９が、トークン管理部２８からの仮想トークン追加要求を受信した時（図６のステップ３０３）、仮想トークン管理部２９は、ステップ３０３で伝えられたトークン量分の仮想トークンを追加する（ステップ３０１）。
【０１５４】
そして、仮想トークン管理部２９は、バッファ部２３がＡＣＫパケットをバッファリングしているかを確認し（ステップ３０２）、バッファリングしている場合は、バッファ部２３に対して、バッファリング解除要求を送信する（ステップ３０４）。
【０１５５】
バッファ部２３は、バッファリング解除要求を受け付けると、バッファリングしていたＡＣＫパケットを、広告ウィンドウサイズ書き込み部３１に対して送信する。
【０１５６】
なお、トークン管理部２８が仮想トークン管理部２９に対して仮想トークン追加要求を送信するタイミングは、トークン管理部２８が管理するトークンが追加されるときより、データ送信端末とデータ送信端末側ポリサー装置間の往復伝搬遅延時間１７だけ早いタイミングである。
【０１５７】
ウィンドウサイズ算出部３０は、以下のようにして、ＡＣＫパケットに広告ウィンドウサイズを書き込む。
【０１５８】
ウィンドウサイズ算出部３０は、サービス対象フローのウィンドウサイズを算出すると（図５のステップ２１１、および、図７のステップ４０１）、算出したウィンドウサイズと、そのサービス対象フローのユーザ情報とを、広告ウィンドウサイズ書き込み部３１に通知する（ステップ４０２）。
【０１５９】
広告ウィンドウサイズ書き込み部３１は、ウィンドウサイズ算出部３０から通知されたウィンドウサイズの値を、フロー識別・振り分け部２２からまたはバッファ部２３からのＡＣＫパケットのウィンドウフィールドに書き込む（ステップ４０３）。
【０１６０】
広告ウィンドウサイズ書き込み部３１は、広告ウィンドウサイズが書き込まれたＡＣＫパケットを、データ送信部２４に送る。
【０１６１】
図８は、サービス対象フローのデータパケットがポリサー装置を通過する時のポリサー装置内のブロック間の信号のやりとりを示すシーケンス図である。
【０１６２】
以下、図４および図８を参照して、フロー識別・振り分け部２２がサービス対象フローのデータパケットを受け付けたときのポリサー装置内の動作を説明する。
【０１６３】
フロー識別・振り分け部２２が、サービス対象フローのデータパケットを観測する（図８のステップ５０１）。
【０１６４】
続いて、フロー識別・振り分け部２２は、観測したデータパケットサイズをトークン管理部２８に通知する（ステップ５０３）。
【０１６５】
トークン管理部２８は、フロー識別・振り分け部２２から通知されたデータサイズ分のトークン量が存在するか確認する（ステップ５０６）。
【０１６６】
データサイズ分のトークン量が存在する場合は、トークン管理部２８は、フロー識別・振り分け部２２に対してパケット転送通知を送信し（ステップ５０５）、データサイズ分だけトークンを減らす（ステップ５０７）。
【０１６７】
フロー識別・振り分け部２２は、パケット転送通知を受け付けると、サービス対象フローのデータパケットを、配線２２ｃを通してデータ送信部２４に送る（ステップ５０２）。
【０１６８】
一方、フロー識別・振り分け部２２を通過するデータパケットサイズ分のトークン量が存在しない場合、トークン管理部２８は、フロー識別・振り分け部２２に対して、パケット廃棄通知を送信する（ステップ５０４）。
【０１６９】
フロー識別・振り分け部２２は、トークン管理部２８からパケット廃棄通知（ステップ５０４）を受信した場合、サービス対象フローのデータパケットを廃棄する（ステップ５０２）。
【０１７０】
次に、図４を参照して、フロー識別・振り分け部２２がサービス非対象フローのパケット（ＡＣＫパケットやデータパケット）を受け付けたときのポリサー装置内の動作を説明する。
【０１７１】
フロー識別・振り分け部２２は、サービス非対象フローのパケットを受け付けると、そのパケットを、配線２２ｃを通してデータ送信部２４に送る。
【０１７２】
本実施形態によれば、以下の効果を奏する。
【０１７３】
ＴＣＰを用いた帯域保証サービス運用時にデータ送信端末１４のＴＣＰプロトコルスタックの変更を必要とすることなく、データ送信端末１４からデータ受信端末１５へ送信するデータのレートを保証帯域内で安定的に制御できるので、保証帯域を効率よく利用することが可能となる。
【０１７４】
本実施形態によれば、管理部２は、パケットのフローを、保証帯域と、データ送信端末１４とデータ受信端末１５との間のデータの往復時間と、仮想トークン管理部２９にて予想されたトークン量と、に基づいて管理する。
【０１７５】
予想されたトークン量は、送受信部１がデータ送信端末１４宛のＡＣＫパケットを受け付けた際、ＡＣＫパケットの受付時から往復伝播遅延時間１７経過した時のトークン管理部２８のトークン量を示す。つまり、予想されたトークン量は、データ送信端末１４がそのＡＣＫパケットの受信に応じて送信するデータパケットを送受信部１が受信した時のトークン管理部２８のトークン量の予想値となる。
【０１７６】
このため、遅延揺らぎを考慮してトークン管理部２８のトークン量を予測でき、その予測されたトークン量を用いてパケットのフローを管理できる。よって、遅延揺らぎを許容可能となり、保証帯域を効率よく利用して高いスループットを保つことが可能になる。
【０１７７】
また、本実施形態では、コネクションを確立するために用いるパケットが、往復伝播遅延時間１７および１８を計測するために利用される。このため、例えば、往復伝播遅延時間計測専用のパケットが使用される場合に比べて、パケットの増加を抑制可能になる。
【０１７８】
また、本実施形態では、仮想トークン管理部２９は、仮想トークンを用いてトークン量を予想する。具体的には、仮想トークン管理部２９は、トークン管理部２８でトークンが追加される時より往復伝播遅延時間１７前に、そのトークンの量に応じて仮想トークンの量を追加し、送受信部１がデータ送信端末宛のＡＣＫパケットを受け付けるごとに、そのＡＣＫパケットのＡＣＫナンバーを取得し今回取得したＡＣＫナンバーと前回取得したＡＣＫナンバーとの差を仮想トークンから引く。
【０１７９】
この場合、仮想トークンを用いて、トークン管理部２８のトークン量を高い精度で予想することが可能になる。
【０１８０】
また、本実施形態では、管理部２は、保証帯域と往復伝播遅延時間１８に基づいてウィンドウサイズを算出するウィンドウサイズ算出部３０と、仮想トークンの量にしたがって、ＡＣＫパケットのウィンドウサイズを、ウィンドウサイズ算出部３０にて算出されたウィンドウサイズと、そのウィンドウサイズより小さい値のウィンドウサイズと、のいずれかに書き換える広告ウィンドウ書き込み部３１と、を含む。
【０１８１】
この場合、例えば、仮想トークンの量が少なくなったときに、ウィンドウサイズを小さくできる。よって、仮想トークンの量に応じて、保証帯域を効率よく利用することが可能になる。
【０１８２】
また、本実施形態では、バッファ部２３は、送受信部１がデータ送信端末１４宛てのＡＣＫパケットを受け付けた際、仮想トークンの量がＡＣＫナンバーの差より少ない場合、そのＡＣＫパケットをバッファリングする。
【０１８３】
また、本実施形態では、バッファ部２３は、仮想トークンの量が増加した場合、バッファリング中のＡＣＫパケットを管理部２に送信する。
【０１８４】
この場合、仮想トークンの量に応じて、保証帯域を効率よく利用することが可能になる。
【０１８５】
以上説明した実施形態において、図示した構成は単なる一例であって、本発明はその構成に限定されるものではない。
【図面の簡単な説明】
【０１８６】
【図１】本実施形態によるデータ通信システムの構成を示すブロック図である。
【図２】本実施形態のポリサー装置の構成を示すブロック図である。
【図３】往復伝搬遅延時間を計測する時のポリサー装置内のブロック間の信号のやりとりを示すシーケンス図である。
【図４】フロー識別・振り分け部によるパケット振り分けを説明するための図である。
【図５】ウィンドウサイズを算出するときのポリサー装置内のブロック間の信号のやりとりを示すシーケンス図である。
【図６】バッファリングしているＡＣＫパケットをデータ送信端末に対して送信する時のポリサー装置内のブロック間の信号のやりとりを示すシーケンス図である。
【図７】ＡＣＫパケットに広告ウィンドウサイズを書き込むときのポリサー装置内のブロック間の信号のやりとりを示すシーケンス図である。
【図８】サービス対象フローのデータパケットがポリサー装置を通過する時のポリサー装置内のブロック間の信号のやりとりを示すシーケンス図である。
【符号の説明】
【０１８７】
１      送受信部
２      管理部
１１、１２    ポリサー装置
１３    帯域管理サーバ
１４    データ送信端末
１５    データ受信端末
１６    帯域保証ネットワーク
１７    データ送信端末とデータ送信端末側ポリサー装置間の往復伝搬遅延時間
１８    データ送信端末とデータ受信端末間の往復伝搬遅延時間
２１    データ受信部
２２    フロー識別・振り分け部
２３    バッファ部
２４    データ送信部
２５    帯域情報保持部
２６    伝搬遅延時間算出部
２７    フロー情報保持部
２８    トークン管理部
２９    仮想トークン管理部
３０    ウィンドウサイズ算出部
３１    広告ウィンドウサイズ書き込み部
【図１】
0004698645.tif 000002
【図２】
0004698645.tif 000003
【図３】
0004698645.tif 000004
【図４】
0004698645.tif 000005
【図５】
0004698645.tif 000006
【図６】
0004698645.tif 000007
【図７】
0004698645.tif 000008
【図８】
0004698645.tif 000009