(57)【特許請求の範囲】
【請求項１】
データ送信端末からデータ受信端末へデータを送信できる帯域が保証された帯域保証ネットワークにおいて前記データ送信端末と前記データ受信端末との間に配置されるノード装置であって、
前記データ送信端末と前記データ受信端末との間における伝播遅延時間を算出する伝播遅延時間算出部と、
前記帯域保証ネットワークにおいて前記データ送信端末から前記データ受信端末へのサービス対象フローに割り当てられた保証帯域と、前記伝播遅延時間算出部にて算出された伝播遅延時間とに基づいて、前記サービス対象フローのデータが前記保証帯域以内の帯域となるウィンドウサイズを算出するウィンドウサイズ算出部と、
前記ウィンドウサイズ算出部にて算出されたウィンドウサイズを、前記データ送信端末の帯域制御に使用させるために前記データ送信端末に通知するウィンドウサイズ書き込み部と、
前記ウィンドウサイズ算出部にて算出されたウィンドウサイズに従って、前記サービス対象フローのＳＹＮパケット内のオプションの書き換えを行うオプション制御部と、を有することを特徴とするノード装置。
【請求項２】
前記オプション制御部は、前記ウィンドウサイズ算出部にて算出されたウィンドウサイズに従って、前記サービス対象フローのＳＹＮパケット内の最大セグメントサイズの書き換えを行うことを特徴とする、請求項１に記載のノード装置。
【請求項３】
前記オプション制御部は、前記ウィンドウサイズ算出部にて算出されたウィンドウサイズに従って、前記サービス対象フローのＳＹＮパケット内のスケーリングオプションの書き換えを行うことを特徴とする、請求項１に記載のノード装置。
【請求項４】
データ送信端末からデータ受信端末へデータを送信できる帯域が保証された帯域保証ネットワークにおいて前記データ送信端末から前記データ受信端末へのデータ送信の帯域を制御する帯域制御方法であって、
前記データ送信端末と前記データ受信端末との間における伝播遅延時間を算出するステップと、
前記帯域保証ネットワークにおいて前記データ送信端末から前記データ受信端末へのサービス対象フローに割り当てられた保証帯域と、前記算出された伝播遅延時間とに基づいて、前記サービス対象フローのデータが前記保証帯域以内の帯域となるウィンドウサイズを算出するステップと、
前記算出されたウィンドウサイズを、前記データ送信端末の帯域制御に使用させるために前記データ送信端末に通知するステップと、
前記算出されたウィンドウサイズに従って、前記サービス対象フローのＳＹＮパケット内のオプションの書き換えを行うステップと、を有することを特徴とする帯域制御方法。
【請求項５】
前記オプションの書き換えを行うステップでは、
前記算出されたウィンドウサイズに従って、前記サービス対象フローのＳＹＮパケット内の最大セグメントサイズの書き換えを行うことを特徴とする、請求項４に記載の帯域制御方法。
【請求項６】
前記オプションの書き換えを行うステップでは、
前記算出されたウィンドウサイズに従って、前記サービス対象フローのＳＹＮパケット内のスケーリングオプションの書き換えを行うことを特徴とする、請求項４に記載の帯域制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末間でネットワークを介してデータを送受信するシステムにおけるフロー制御に関する。
【背景技術】
【０００２】
一般的に、パソコンなどの端末の間では、インターネットなどのコンピュータネットワークを介した通信が行われる。この通信によってファイル等のデータが転送される。この種のデータ転送システムでは、トランスポート層のプロトコルとして、標準的なトランスポートプロトコルであるＴＣＰ（Transmission Control Protocol）が用いられることが多い。
【０００３】
また、データ転送においては、大容量のデータを高速に転送することが要求されることがある。これに対しては、ＴＣＰのウィンドウサイズを一定に制御することでスループットを向上させる検討がなされている（例えば、非特許文献１参照。）。
【非特許文献１】“エッジルータにおけるＴＣＰフローレート制御方式の検討”，電子情報通信学会総合大会，２００７年３月
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ＴＣＰでは、ウィンドウサイズをパケット廃棄に従って自律的に変化させる帯域制御が行われる。しかし、保証された帯域以上のトラヒックがネットワークに流入するのを防ぐためにネットワークの入り口で流入制限を行っている帯域保証ネットワークでのデータ転送においては、スループットが鋸歯状になり、保証された帯域を十分に活用できないという課題があった。
【０００５】
ここで、上述したＴＣＰプロトコルに変更を加えることにより、保証された帯域に合わせて一定のスループットでデータを送信する技術や広告ウィンドウサイズを一定に制御する技術には、上述した課題に対する対策がある。
【０００６】
しかし、ＴＣＰには、データ送信時において最大セグメントサイズ（以下、ＭＳＳと称する）以下のデータを送信しないというＮａｇｌｅアルゴリズムやデータ受信時において複数のデータに対してまとめて１つのＡＣＫを返すという遅延ＡＣＫアルゴリズムが搭載されている。
【０００７】
そのために、Ｎａｇｌｅアルゴリズムや遅延ＡＣＫアルゴリズムによる遅延が発生し、“計測した往復伝搬遅延時間（以下、ＲＴＴと称する）ごとに書き換えたウィンドウサイズ分のデータが送受信完了”という上記技術の大前提が崩れ、書き換えるウィンドウサイズの大きさによってはスループットが極端に低下してしまうという問題がある。
【０００８】
また、広告ウィンドウサイズを一定に制御する技術では、ＴＣＰオプション中にスケーリングオプションが有効になっている場合、スケーリングオプション内のスケーリングファクター（以下、ＳＦと称する）に従ってビットシフトが行われるために、書き換えるウィンドウサイズの大きさによっては、ビットシフトによる丸め誤差の影響によりスループットが極端に低下してしまうという問題がある。
【０００９】
そこで、本発明の目的は、帯域保証ネットワークでのデータ転送において、ＲＴＴや保証帯域の大きさに依存することなく、保証した帯域を効率よく利用して高いスループットを保つことができるノード装置および帯域制御方法を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するために本発明のノード装置は、
データ送信端末からデータ受信端末へデータを送信できる帯域が保証された帯域保証ネットワークにおいて前記データ送信端末と前記データ受信端末との間に配置されるノード装置であって、
前記データ送信端末と前記データ受信端末との間における伝播遅延時間を算出する伝播遅延時間算出部と、
前記帯域保証ネットワークにおいて前記データ送信端末から前記データ受信端末へのサービス対象フローに割り当てられた保証帯域と、前記伝播遅延時間算出部にて算出された伝播遅延時間とに基づいて、前記サービス対象フローのデータが前記保証帯域以内の帯域となるウィンドウサイズを算出するウィンドウサイズ算出部と、
前記ウィンドウサイズ算出部にて算出されたウィンドウサイズを、前記データ送信端末の帯域制御に使用させるために前記データ送信端末に通知するウィンドウサイズ書き込み部と、
前記ウィンドウサイズ算出部にて算出されたウィンドウサイズに従って、前記サービス対象フローのＳＹＮパケット内のオプションの書き換えを行うオプション制御部と、を有することを特徴とする。
【００１１】
上記のように構成された本発明においては、ＳＹＮパケット（ＳＹＮ、ＳＹＮ／ＡＣＫパケットの総称）内のオプションであるＭＳＳとＳＦを制御する。これらのオプションはデータ送信端末とデータ受信端末との間のＲＴＴと保証帯域とを基に算出したウィンドウサイズ（以下、ＢＧＷＮＤと称する）に従って制御される。
【００１２】
以下に処理手順を示す。
【００１３】
Ｓｔｅｐ１：ＢＧＷＮＤの算出
ノード装置が、計測したＲＴＴと保証帯域とを基にＢＧＷＮＤを算出する。
【００１４】
Ｓｔｅｐ２：ＳＹＮ、ＳＹＮ／ＡＣＫパケット内のオプションの書き換え
ノード装置が、算出したＢＧＷＮＤを基にＭＳＳとＳＦを算出し、算出した値でＳＹＮ、ＳＹＮ／ＡＣＫパケット中に存在するＭＳＳとＳＦの書き換えを行う。
【００１５】
本発明は、ノード装置がＳＹＮ、ＳＹＮ／ＡＣＫパケット内のオプションを制御するのみなので、データ送信端末はそれを基に既存の動作をするだけとなり、データ送信端末のプロトコルに本発明に特有の機能を加えることなくスループットを改善することができる。
【発明の効果】
【００１６】
以上説明したように本発明によれば、ＴＣＰを用いた帯域保証サービス運用時にデータ送信端末のＴＣＰプロトコルスタックの変更を必要とすることなく、Ｎａｇｌｅアルゴリズムや遅延ＡＣＫにより発生する遅延の影響やスケーリングオプションによる広告ウィンドウの丸め誤差の影響によるスループット低下を改善し、保証帯域内で安定的にスループットを制御できるので、保証帯域を効率よく利用することが可能となる。
【発明を実施するための最良の形態】
【００１７】
以下に、本発明を実施するための最良の形態について説明する。
【００１８】
一般的なＴＣＰでは、広告ウィンドウと輻輳ウィンドウという２つのウィンドウが定義される。広告ウィンドウのサイズは、受信側で受信バッファの状態に依存して決定される。また、輻輳ウィンドウのサイズは、データ送信側でパケット廃棄の状況に応じて決定される。フロー制御に用いるウィンドウサイズには、広告ウィンドウサイズと輻輳ウィンドウサイズのうちいずれか小さい方が選択される。このウィンドウサイズは、ＡＣＫが到着した時に更新される。
【００１９】
本実施形態では、データの送信側となるデータ送信端末と、データの受信側となるデータ受信端末との間は、帯域保証ネットワークによって帯域が保証される構成となっている。従って、保証帯域以下でデータを送出している限りパケットの廃棄が生じないことが想定される。それゆえ、データが保証帯域以下で送出されるように広告ウィンドウサイズを調節すればパケットの廃棄を防ぐことができる。パケットの廃棄が生じなければ輻輳ウィンドウサイズが小さくならないので、常に広告ウィンドウサイズがＴＣＰウィンドウサイズに採用されることになる。その結果、スループットが鋸歯状に変動しなくなり保証帯域の効率的な利用が可能となる。
【００２０】
そこで、本実施形態では、データ送信端末とデータ受信端末との間で、ノード装置となるエッジノードがデータ送信側とデータ受信側との間における伝播遅延時間と、帯域保証ネットワークによる保証帯域とから、データが保証帯域以内で送出されるようなウィンドウサイズを算出し、データ受信端末からデータ送信端末へのＡＣＫパケットに記載される広告ウィンドウサイズを、算出したウィンドウサイズの値に書き換える。
【００２１】
これにより、データ送信端末からデータ受信端末へ送信するデータのレートを保証帯域内で安定的に制御できるので、保証帯域を効率よく利用することができる。
【００２２】
また、ＢＧＷＮＤに従って、ＳＹＮ、ＳＹＮ／ＡＣＫ中に存在するＭＳＳとＳＦの書き換えを行うことで、Ｎａｇｌｅアルゴリズムや遅延ＡＣＫにより発生する遅延の影響やスケーリングオプションによる広告ウィンドウの丸め誤差の影響によるスループット低下を改善し、保証帯域内で安定的にスループットを制御できるので、保証帯域を効率よく利用することが可能となる。
【００２３】
以下、本実施形態について図面を参照して詳細に説明する。
【００２４】
図１は、本発明の一実施形態のノード装置を用いたデータ送信システムの構成を示すブロック図である。
【００２５】
図１を参照すると、本実施形態におけるデータ送信システムは、データ送信端末１４と、データ受信端末１５と、ノード装置であるエッジノード１１，１２と、帯域管理サーバ（ＲＡＣＳ）１３と、を有している。
【００２６】
データ送信端末１４は、エッジノード１１に接続され、データ受信端末１５は、エッジノード１２に接続されている。エッジノード１１とエッジノード１２は、帯域保証ネットワーク１６上でデータを送受信することができる。これにより、データ送信端末１４からのデータが、エッジノード１１とエッジノード１２を介してデータ受信端末１５へ転送される。
【００２７】
帯域管理サーバ１３は、帯域保証ネットワーク１６の全リンクの帯域情報を集中的に管理する装置である。帯域情報には、リンクに割り当てられた保証帯域の情報が含まれている。帯域管理サーバ１３は、管理している各リンクの帯域情報をエッジノード１１，１２に通知する。帯域管理サーバ１３による帯域管理によって、データ送信端末１４からデータ受信端末１５へのリンクは、帯域保証ネットワーク１６での保証帯域が確保される。その結果、データ送信端末１４が保証帯域以下でデータを送出する限り帯域保証ネットワーク１６内でのパケット廃棄は発生しない。また、エッジノード１１は、データ送信端末１４とデータ受信端末１５との間の往復伝搬遅延時間１７を計測する。
【００２８】
図２は、図１に示したエッジノード１１の構成を示すブロック図である。
【００２９】
図２を参照すると、エッジノード１１は、データ受信部２１と、フロー識別・振り分け部２２と、伝搬遅延時間算出部２３と、データ送信部２４と、帯域情報保持部２５と、フロー情報保持部２６と、ウィンドウサイズ算出部２７と、広告ウィンドウサイズ書き込み部２８と、オプション制御部２９と、を有している。
【００３０】
データ受信部２１は、データパケットやＡＣＫパケットなどのパケットを受信し、フロー識別・振り分け部２２に送る。
【００３１】
フロー識別・振り分け部２２は、帯域情報保持部２５に帯域情報とともに保持されているユーザ情報を基に、帯域を保証したデータ転送のサービスの対象となるフロー（サービス対象フロー）と、帯域を保証したデータ転送のサービスの対象とならないフロー（サービス非対象フロー）とを識別する。さらに、フロー識別・振り分け部２２は、サービス対象フローのＡＣＫパケットをルート２２ａを通して広告ウィンドウサイズ書き込み部２８へ振り分け、また、サービス非対象フローのパケットおよびサービス対象フローのデータパケットをルート２２ｃを通してデータ送信部２４へ振り分け、また、サービス対象フローのＳＹＮ、ＳＹＮ／ＡＣＫパケットをルート２２ｂを通してオプション制御部２９へ振り分ける。
【００３２】
伝搬遅延時間算出部２３は、データ送信端末１４とエッジノード１１の間と、エッジノード１１とデータ受信端末１５の間の往復伝播遅延時間をそれぞれ計測する。
【００３３】
帯域情報保持部２５は、帯域管理サーバ１３から通知されたサービス対象ユーザの帯域情報とユーザ情報（宛先・送信元ＩＰアドレス、宛先・送信元ポート番号）とを対応付けて保持する。帯域情報には、リンクに割り当てられた保証帯域の情報が含まれている。リンクは、ユーザ情報により識別することができる。
【００３４】
フロー情報保持部２６は、フロー識別・振り分け部２２で識別されるサービス対象フローのコネクション情報と、伝搬遅延時間算出部２３で算出された往復伝播遅延時間とを対応付けて保持する。
【００３５】
ウィンドウサイズ算出部２７は、フロー情報保持部２６に保持されているデータ送信端末１４とデータ受信端末１５との間の往復伝搬遅延時間１７と、帯域情報保持部２５に保持されている帯域情報の保証帯域とを用いて、データの送出帯域が保証帯域以内となるようなウィンドウサイズ（ＢＧＷＮＤ）を算出する。
【００３６】
広告ウィンドウサイズ書き込み部２８は、データ受信端末１５からデータ送信端末１４へのＡＣＫパケットのウィンドウフィールドに、ウィンドウサイズ算出部２７で算出されたウィンドウサイズの値を書き込み、そのＡＣＫパケットをデータ送信部２４に送る。なお、そのＡＣＫパケットは最終的にはデータ送信端末１４へと転送され、そのＡＣＫパケットのウィンドウフィールドに書き込まれたウィンドウサイズの値は、データ送信端末１４での帯域制御に使用される。
【００３７】
データ送信部２４は、フロー識別・振り分け部２２からのパケットと、広告ウィンドウサイズ書き込み部２８からのパケットとを、帯域保証ネットワーク１６を介してエッジノード１２もしくはデータ送信端末１４へ送信する。
【００３８】
オプション制御部２９は、フロー識別・振り分け部２２から転送されたＳＹＮ、ＳＹＮ／ＡＣＫパケットに対して、ウィンドウサイズ算出部２７から通知されたＢＧＷＮＤに従ってＭＳＳとスケーリングオプションを制御する。
【００３９】
ここで、フロー識別・振り分け部２２によるパケット振り分けについて詳細に説明する。
【００４０】
図３は、図２に示したフロー識別・振り分け部２２によるパケット振り分けを説明するための図である。
【００４１】
データ送信端末１４とデータ受信端末１５との間でコネクションが確立されると、データの転送が開始される。フロー識別・振り分け部２２は、データ受信端末１５からのＡＣＫパケットを受信すると、サービス対象フローのＡＣＫパケットであるか否か判定をする。サービス対象フローのＡＣＫパケットであれば、フロー識別・振り分け部２２は、そのＡＣＫパケットを、ルート２２ａを通して広告ウィンドウサイズ書き込み部２８に送る。また、データ送信端末１４からのＳＹＮパケットやデータ受信端末１５からのＳＹＮ／ＡＣＫパケットを受信すると、フロー識別・振り分け部２２は、そのＳＹＮパケットやＳＹＮ／ＡＣＫパケットを、ルート２２ｂを通してオプション制御部２９に送る。また、サービス非加入ユーザパケットやデータパケットを受信すると、フロー識別・振り分け部２２は、そのサービス非加入ユーザパケットやデータパケットを、ルート２２ｃを通してデータ送信部２４に送る。
【００４２】
図４は、図２に示したエッジノード１１において、往復伝播遅延時間を計測する時のブロック間の信号のやりとりを示すシーケンス図である。以下では、データ送信端末１４とエッジノード１１間の伝播遅延時間が小さいとして、エッジノード１１とデータ受信端末１５間の往復伝播遅延時間が往復伝搬遅延時間１７であるとする。
【００４３】
図４を参照すると、データ送信端末１４側のエッジノード１１において、フロー識別・振り分け部２２は、データ送信端末１４からのＳＹＮパケットを観測すると（ステップ１０１）、サービス対象フローのユーザ情報と共に、往復伝搬遅延時間１７の計測開始要求を伝搬遅延時間算出部２３に送る（ステップ１０２）。これにより、伝搬遅延時間算出部２３は往復伝搬遅延時間１７の計測を開始する。
【００４４】
また、フロー識別・振り分け部２２は、上記ＳＹＮパケットに対するデータ受信端末１５からのＳＹＮ／ＡＣＫパケットを観測すると（ステップ１０３）、上記ユーザ情報と共に、往復伝搬遅延時間１７の計測終了要求を伝搬遅延時間算出部２３に送る（ステップ１０４）。これにより、伝搬遅延時間算出部２３は往復伝搬遅延時間１７の計測を終了する。
【００４５】
その後、往復伝搬遅延時間１７の計測を終えた伝搬遅延時間算出部２３は、計測した往復伝搬遅延時間１７を上記ユーザ情報と共に、往復伝搬遅延時間１７の報告としてフロー情報保持部２６に通知する（ステップ１０５）。
【００４６】
図５は、図２に示したエッジノード１１において、ウィンドウサイズを算出する時のブロック間の信号のやりとりを示すシーケンス図である。
【００４７】
図５を参照すると、フロー情報保持部２６は、伝搬遅延時間算出部２３からの往復伝播遅延時間１７の報告を受信すると（ステップ２０１）、ウィンドウサイズ算出部２７に対して、データ送信端末１４とデータ受信端末１５との間の往復伝搬遅延時間１７とユーザ情報と共に、帯域保証ウィンドウ計算要求を通知する（ステップ２０２）。
【００４８】
帯域保証ウィンドウ計算要求を受けたウィンドウサイズ算出部２７は、上記ユーザ情報を基にして、帯域情報保持部２５に対して、上記ユーザ情報に対応する保証帯域を要求する（ステップ２０３）。
【００４９】
帯域情報保持部２５は、ウィンドウサイズ算出部２７からの保証帯域値要求に応じて、保証帯域を返送する（ステップ２０４）。
【００５０】
データ送信端末１４とデータ受信端末１５との間の往復伝搬遅延時間１７と保証帯域を受信したウィンドウサイズ算出部２７は、それらの値を元に、データ送信端末１４が保証帯域以内でデータを送出するようなウィンドウサイズを算出する（ステップ２０５）。このとき、保証帯域と一致するレートでデータが送出されるようなウィンドウサイズが好適である。
【００５１】
ウィンドウサイズは、例えば式（１）により求めることができる。
【００５２】
【数１】
0004828555.tif 000002
【００５３】
図６は、図２に示したエッジノード１１において、広告ウィンドウ書き込み時とＭＳＳ、ＳＦ書き込み時のブロック間の信号のやりとりを示すシーケンス図である。
【００５４】
図６を参照すると、まず、ウィンドウサイズ算出部２７は、サービス対象フローのウィンドウサイズを算出する（ステップ３０１）。続いて、ウィンドウサイズ算出部２７は、算出したウィンドウサイズと、そのサービス対象フローのユーザ情報とを、広告ウィンドウサイズ書き込み部２８に通知する（ステップ３０２）。広告ウィンドウサイズ書き込み部２８は、ウィンドウサイズ算出部２７から通知されたウィンドウサイズの値を、フロー識別・振り分け部２２からのＡＣＫパケットのウィンドウフィールドに書き込む（ステップ３０３）。広告ウィンドウサイズ書き込み部２８で広告ウィンドウサイズが書き込まれたＡＣＫパケットはデータ送信部２４に送られる。
【００５５】
続いて、ウィンドウサイズ算出部２７は、算出したウィンドウサイズと、上記ユーザ情報とを、オプション制御部２９に通知する（ステップ３０４）。オプション制御部２９は上記ユーザ情報をもとに、制御対象となるデータ受信端末１５からのＳＹＮ／ＡＣＫパケットを特定し、そのＳＹＮ／ＡＣＫパケット中のオプション内のＭＳＳとＳＦの書き換えを行う（ステップ３０５）。
【００５６】
上記ウィンドウサイズを基に算出されるＭＳＳは、例えば、式（２）においてｎが最小となる際の整数として求めることができる。また、ＳＦは、例えば、式（３）を満たす最小の整数として求めることができる。
【００５７】
【数２】
0004828555.tif 000003
【００５８】
【数３】
0004828555.tif 000004
【００５９】
なお、図６では、データ受信端末１５からのＳＹＮ／ＡＣＫパケットを制御対象としているが、データ送信端末１４からのＳＹＮパケットを制御対象とする場合のＭＳＳとＳＦの書き換え方法も、上記と同様である。
【図面の簡単な説明】
【００６０】
【図１】本発明の一実施形態のノード装置を用いたデータ送信システムの構成を示すブロック図である。
【図２】図１に示したエッジノードの構成を示すブロック図である。
【図３】図２に示したフロー識別・振り分け部によるパケット振り分けを説明するための図である。
【図４】図２に示したエッジノードにおいて、往復伝搬遅延時間を計測する時のブロック間の信号のやりとりを示すシーケンス図である。
【図５】図２に示したエッジノードにおいて、ウィンドウサイズを算出する時のブロック間の信号のやりとりを示すシーケンス図である。
【図６】図２に示したエッジノードにおいて、広告ウィンドウ書き換え時とオプション制御時のブロック間の信号のやりとりを示すシーケンス図である。
【符号の説明】
【００６１】
１１，１２    エッジノード
１３    帯域管理サーバ
１４    データ送信端末
１５    データ受信端末
１６    帯域保証ネットワーク
１７    往復伝搬遅延時間
２１    データ受信部
２２    フロー識別・振り分け部
２３    伝搬遅延時間算出部
２４    データ送信部
２５    帯域情報保持部
２６    フロー情報保持部
２７    ウィンドウサイズ算出部
２８    広告ウィンドウサイズ書き込み部
２９    オプション制御部
【図１】
0004828555.tif 000005
【図２】
0004828555.tif 000006
【図３】
0004828555.tif 000007
【図４】
0004828555.tif 000008
【図５】
0004828555.tif 000009
【図６】
0004828555.tif 000010