(57)【要約】【課題】帯域保証ネットワークでのデータ転送において、ネットワーク内等で発生したパケット廃棄に伴って低下する輻輳ウィンドウサイズを早期に向上させることを可能にしたエッジノードを提供する。【解決手段】データ送信端末からデータ受信端末へデータ送信される帯域が保証された帯域保証ネットワークにおいてデータ送信端末とデータ受信端末の間に配置されるエッジノードであって、通過する重複ACKの数が閾値を越えると、データ送信端末がサービス対象フローのデータパケットを再送する再送制御モードになったことを認識し、伝送されるデータパケットのシーケンス番号とデータパケットのACKパケットのACK番号とを比較して再送制御モードが終了したか否かを判定するACK分割制御部と、ACK分割制御部が再送制御モードの終了を認識すると、ACKパケットを分割するACK分割部と、を有する。【選択図】図１
2012044278.tif 000002
【特許請求の範囲】
【請求項１】
データ送信端末からデータ受信端末へデータ送信される帯域が保証された帯域保証ネットワークにおいて前記データ送信端末と前記データ受信端末の間に配置されるエッジノードであって、
通過する重複ACKの数が閾値を越えると、前記データ送信端末がサービス対象フローのデータパケットを再送する再送制御モードになったことを認識し、伝送されるデータパケットのシーケンス番号と該データパケットのACKパケットのACK番号とを比較して前記再送制御モードが終了したか否かを判定するACK分割制御部と、
前記ACK分割制御部が前記再送制御モードの終了を認識すると、前記ACKパケットを分割するACK分割部と、
を有するエッジノード。
【請求項２】
前記ACK分割制御部は、
前記データパケットのシーケンス番号と前記ACKパケットのACK番号の対応付けにより計測される伝播遅延時間が所定の基準時間と比べて大きいか否かを判定することで、前記再送制御モードが終了したか否かを判定し、または、前記サービス対象フローのSYNパケットと該SYNパケットのACKパケットであるSYN／ACKパケットとの対応付け、もしくは該SYN／ACKパケットと該SYN／ACKパケットのACKパケットとの対応付けにより計測される伝播遅延時間までに通過するデータパケットの最大シーケンス番号と前記ACKパケットのACK番号とを比較し、その比較の結果に基づいて前記再送制御モードが終了したか否かを判定する、請求項１に記載のエッジノード。
【請求項３】
前記ACK分割制御部は、
前記重複ACKに対して前記データ送信端末から再送されたデータパケットを受信するまでに通過したデータパケットのうち最大のシーケンス番号と通過したACKパケットのACK番号とを比較し、その比較の結果に基づいて前記再送制御モードが終了したか否かを判定する、請求項１に記載のエッジノード。
【請求項４】
前記ACK分割部は、
前記ACKパケットを分割する際の分割数であるACK分割数として、前記データパケットと前記ACKパケットのサイズ比に基づいて算出する、請求項２または３に記載のエッジノード。
【請求項５】
前記ACK分割部は、
複数パケット廃棄に対応するためのSelective ACKオプションが前記ACKパケットに付与されている場合、該Selective ACKオプションを削除して該ACKパケットを分割する、請求項１から４のいずれか１項に記載のエッジノード。
【請求項６】
データ送信端末からデータ受信端末へデータ送信される帯域が保証された帯域保証ネットワークにおいて前記データ送信端末から前記データ受信端末へのデータ送信の帯域を制御するエッジノードによる帯域制御方法であって、
通過する重複ACKの数をカウントし、
前記重複ACKの数が閾値を越えると、前記データ送信端末がサービス対象フローのデータパケットを再送する再送制御モードになったことを認識し、
伝送されるデータパケットのシーケンス番号と該データパケットのACKパケットのACK番号とを比較して前記再送制御モードが終了したか否かを判定し、前記再送制御モードが終了したと判定すると、前記ACKパケットの分割処理を行う、帯域制御方法。
【請求項７】
前記再送制御モードが終了したか否かの判定は、
前記データパケットのシーケンス番号と前記ACKパケットのACK番号の対応付けにより計測される遅延時間が所定の基準時間と比べて大きいか否かを判定すること、または、前記サービス対象フローのSYNパケットと該SYNパケットのACKパケットであるSYN／ACKパケットとの対応付け、もしくは該SYN／ACKパケットと該SYN／ACKパケットのACKパケットとの対応付けにより計測される遅延時間までに通過するデータパケットの最大シーケンス番号と前記ACKパケットのACK番号とを比較し、その比較の結果に基づいて判定することである、請求項６に記載の帯域制御方法。
【請求項８】
前記再送制御モードが終了したか否かの判定は、
前記重複ACKに対して前記データ送信端末から再送されたデータパケットを受信するまでに通過したデータパケットのうち最大のシーケンス番号と通過したACKパケットのACK番号とを比較し、その比較の結果に基づいて判定するものである、請求項６に記載の帯域制御方法。
【請求項９】
前記ACKの分割処理は、
前記ACKパケットを分割する際の分割数であるACK分割数として、前記データパケットと前記ACKパケットのサイズ比に基づいて算出する処理を有する、請求項７または８に記載の帯域制御方法。
【請求項１０】
前記ACKの分割処理は、
複数パケット廃棄に対応するためのSelective ACKオプションが前記ACKパケットに付与されている場合、該Selective ACKオプションを削除して該ACKパケットを分割する処理を有する、請求項６から９のいずれか１項に記載の帯域制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末間でネットワークを介してデータを送受信する際のフロー制御を行うエッジノードおよび帯域制御方法に関する。
【背景技術】
【０００２】
パソコンなどの端末の間ではインターネットなどのコンピュータネットワークを介した通信が行われる。この通信によってファイル等のデータが転送される。この種のデータ転送システムでは、トランスポート層のプロトコルとして、標準的なトランスポートプロトコルであるTCP（Transmission Control Protocol）が用いられることが多い。
【０００３】
TCPでは、ウィンドウサイズをパケット廃棄に従って自律的に変化させる帯域制御が行われる。このため、保証された帯域以上のトラヒックがネットワークに流入するのを防ぐためにネットワークの入り口で流入制限を行っている帯域保証ネットワークでのデータ転送においては、スループットが鋸歯状になり、保証された帯域を十分に活用できないという課題があった。また、ユーザネットワーク内でパケット廃棄が発生した場合に、輻輳ウィンドウ（congestion window: CWND）のサイズが低下することで、保証する帯域を有効に使いきれない問題があった。
【０００４】
この問題に対する対策の一例が、非特許文献１に開示されている。この文献には、ネットワークのエッジノードが広告ウィンドウサイズを一定に制御し、かつパケット廃棄が発生した際にACKパケットの分割を行うことで、保証された帯域に合わせて一定のスループットでデータを送信する技術が開示されている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Kyota Hattori, Kentaro Ogawa, Masaru Katayama, Michihiro Aoki, and Shinichiro Chaki, "The method for improving TCP performance in bandwidth-guaranteed network", APCC2009
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、非特許文献１に開示された技術においては、単純に、既に受け取ったACKと同じACK番号のACK（以下では、重複ACKと称する）を認識してACKを分割するのみであるため、分割したACKに対して不必要なデータパケットの再送が発生し帯域の利用効率が低下する場合があった。以下、原因を詳細に説明する。
【０００７】
昨今普及しているWindows VISTA（登録商標）などのOS(Operating System)に搭載されているTCPスタックにはNewRenoベースのFast Retransmissionの仕組みが実装されている。このNew RenoベースのFast Retransmissionでは、１ウィンドウ中に複数のデータパケットがバースト的に廃棄されたときに発生する、輻輳ウィンドウサイズの低下を改善することを目的として、重複ACKによってパケット廃棄を認識した瞬間にウィンドウ内に存在するデータパケットすべてに対してACKが返信されるまでは、新しいACKを１つ受信するだけで、そのACKに対応するデータパケット以降のデータパケットを再送する再送制御を行っている（以下では、再送制御モードと称する）。
【０００８】
このNewRenoベースの再送制御を行うTCPに対してACK分割を行った場合に、１RTT（Round Trip Time：往復伝播遅延時間）中に複数のデータパケットが廃棄されると、再送制御モード中のACKに対しても分割を行うことになり、本来ウィンドウサイズを向上させるために行っていたものが、分割した全てのACKに対して再送制御が発生してしまうという問題があった。
【０００９】
本発明は上述したような技術が有する問題点を解決するためになされたものであり、帯域保証ネットワークでのデータ転送において、ネットワーク内等で発生したパケット廃棄に伴って低下する輻輳ウィンドウサイズを早期に向上させることを可能にしたエッジノードおよび帯域制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するための本発明のエッジノードは、データ送信端末からデータ受信端末へデータ送信される帯域が保証された帯域保証ネットワークにおいて前記データ送信端末と前記データ受信端末の間に配置されるエッジノードであって、
通過する重複ACKの数が閾値を越えると、前記データ送信端末がサービス対象フローのデータパケットを再送する再送制御モードになったことを認識し、伝送されるデータパケットのシーケンス番号と該データパケットのACKパケットのACK番号とを比較して前記再送制御モードが終了したか否かを判定するACK分割制御部と、
前記ACK分割制御部が前記再送制御モードの終了を認識すると、前記ACKパケットを分割するACK分割部と、
を有する構成である。
【００１１】
また、本発明の帯域制御方法は、データ送信端末からデータ受信端末へデータ送信される帯域が保証された帯域保証ネットワークにおいて前記データ送信端末から前記データ受信端末へのデータ送信の帯域を制御するエッジノードによる帯域制御方法であって、
通過する重複ACKの数をカウントし、
前記重複ACKの数が閾値を越えると、前記データ送信端末がサービス対象フローのデータパケットを再送する再送制御モードになったことを認識し、
伝送されるデータパケットのシーケンス番号と該データパケットのACKパケットのACK番号とを比較して前記再送制御モードが終了したか否かを判定し、前記再送制御モードが終了したと判定すると、前記ACKパケットの分割処理を行うものである。
【発明の効果】
【００１２】
本発明によれば、複数パケットが廃棄されたときに輻輳ウィンドウの低下を改善する帯域保証サービスに対して、パケット廃棄や転送タイムアウトなどにより輻輳ウィンドウが低下した場合でも、保証帯域内で安定的にスループットを制御できるので、保証帯域を効率よく利用することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態によるデータ通信システムの一構成例を示すブロック図である。
【図２】本実施形態のエッジノードの一構成例を示すブロック図である。
【図３】フロー識別・振り分け部によるパケット振り分けを説明するための図である。
【図４】往復伝播遅延時間を計測するときのエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。
【図５】ウィンドウサイズを算出するときのエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。
【図６】ACKパケットに広告ウィンドウサイズを書き込むときのエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。
【図７】ACK分割の要否判定を行うときのエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。
【図８】ACK分割部にACK分割からACK分割停止でのエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。
【発明を実施するための形態】
【００１４】
一般的なTCPでは広告ウィンドウと輻輳ウィンドウという２つのウィンドウが定義される。広告ウィンドウのサイズは受信側で受信バッファの状態に依存して決定される。輻輳ウィンドウのサイズはデータ送信側でパケット廃棄の状況に応じて決定される。フロー制御に用いられるウィンドウサイズには、広告ウィンドウサイズと輻輳ウィンドウサイズのうち、いずれか小さいほうが選択される。このウィンドウサイズはACKが到着したときに更新される。
【００１５】
本実施形態では、データの送信側となるデータ送信端末と、データの受信側となるデータ受信端末との間は、帯域保証ネットワークによって帯域が保証される構成である。したがって、保証帯域以下でデータを送出している限りパケットの廃棄が生じないことが想定される。それゆえ、データが保証帯域以下で送出されるように広告ウィンドウサイズを調節すればパケットの廃棄を防ぐことができる。パケットの廃棄が生じなければ輻輳ウィンドウサイズが小さくならないので常に広告ウィンドウサイズがTCPウィンドウサイズに採用されることになる。その結果、スループットが鋸歯状に変動しなくなり保証帯域の効率的な利用が可能となる。
【００１６】
そこで、本実施形態では、データ送信端末とデータ受信端末の間でエッジノードがデータ送信側とデータ受信側の間の伝播遅延時間と、帯域保証ネットワークによる保証帯域とから、データが保証帯域以内で送出されるようなウィンドウサイズを算出し、データ受信端末からデータ送信端末へのACKパケットに記載される広告ウィンドウサイズを、算出したウィンドウサイズの値に書き換える。
【００１７】
これにより、データ送信端末からデータ受信端末へ送信するデータのレートを保証帯域内で安定的に制御できるので、保証帯域を効率よく利用することができる。
【００１８】
また、エッジノードがパケット廃棄認識時にウィンドウ中に存在する最も大きいシーケンス番号を認識して記憶し、通過するACKパケットのACK番号とそのシーケンス番号の比較を行い、記憶したシーケンス番号よりも大きなACK番号のACKが到着した際に、このACKの分割を行う。これにより、NewRenoベースの再送制御のような、１ウィンドウ中に複数パケットが廃棄されたときに発生する、輻輳ウィンドウサイズの低下を改善するTCPに対しても、ユーザネットワーク等で発生するパケット廃棄や転送タイムアウトにより発生するスループットの低下を改善し、保証帯域を効率よく利用して高いスループットを保つことが可能となる。
【００１９】
以下、本実施形態について図面を参照して詳細に説明する。
【００２０】
図１は、本実施形態によるデータ送信システムの構成を示すブロック図である。図１を参照すると、本実施形態のデータ送信システムは、エッジノード１１，１２、および帯域管理サーバ（Resource Admission Control Subsystem: RACS）１３を有している。
【００２１】
データ送信端末１４はエッジノード１１に接続され、データ受信端末１５はエッジノード１２に接続されている。エッジノード１１とエッジノード１２は帯域保証ネットワーク１６上でデータを送受信することができる。これによりデータ送信端末１４からのデータがエッジノード１１とエッジノード１２を介してデータ受信端末１５へ転送される。
【００２２】
帯域管理サーバ１３は帯域保証ネットワーク１６の全リンクの帯域情報を集中的に管理する装置である。帯域情報にはリンクに割り当てられた保証帯域の情報が含まれている。帯域管理サーバ１３は管理している各リンクの帯域情報をエッジノード１１，１２に通知する。帯域管理サーバ１３による帯域管理によって、データ送信端末１４からデータ受信端末１５へのリンクは帯域保証ネットワーク１６での保証帯域が確保される。その結果、データ送信端末１４が保証帯域以下でデータを送出する限り帯域保証ネットワーク１６内でのパケット廃棄は発生しない。また、エッジノード１１はデータ送信端末１４とデータ受信端末１５の間のデータ送信端末とデータ受信端末間の往復伝播遅延時間１７を計測する。
【００２３】
図２は、本実施形態のエッジノードの構成を示すブロック図である。
【００２４】
図２を参照すると、エッジノード１１は、データ受信部２１、フロー識別・振り分け部２２、伝播遅延時間算出部２３、データ送信部２４、帯域情報保持部２５、フロー情報保持部２６、ウィンドウサイズ算出部２７、広告ウィンドウサイズ書き込み部２８、ACK分割部２９、およびACK分割制御部３０を有している。
【００２５】
データ受信部２１は、データパケットやACKパケットなどのパケットを受信し、フロー識別・振り分け部２２に送る。
【００２６】
フロー識別・振り分け部２２は、帯域情報保持部２５に帯域情報とともに保持されているユーザ情報を元に、帯域を保証したデータ転送のサービスの対象となるフロー（以下では、サービス対象フローと称する）と、帯域を保証したデータ転送のサービスの対象とならないフロー（以下では、サービス非対象フローと称する）とを識別する。さらに、フロー識別・振り分け部２２は、サービス対象フローのACKパケットを信号線２２ａを介して広告ウィンドウサイズ書き込み部２８へ、サービス非対称フローのパケットおよびサービス対象フローのデータパケットを信号線２２ｃを介してデータ送信部２４へと振り分ける。
【００２７】
伝播遅延時間算出部２３は、データ送信端末１４とエッジノード１２の間とエッジノード１１とデータ送信端末１４の間の往復伝播遅延時間を計測する。
【００２８】
データ送信部２４は、フロー識別・振り分け部２２からのパケットと、広告ウィンドウサイズ書き込み部２８からのパケットとを、帯域保証ネットワーク１６を介してエッジノード１２へ送信する。
【００２９】
帯域情報保持部２５は、帯域管理サーバ１３から通知されたサービス対象ユーザの帯域情報とユーザ情報（宛先・送信元IPアドレス、宛先・送信元ポート番号）とを対応付けて保持する。帯域情報には、リンクに割り当てられた保証帯域の情報が含まれている。リンクは、ユーザ情報により識別することができる。
【００３０】
フロー情報保持部２６は、フロー識別・振り分け部２２で識別されるサービス対象フローのコネクション情報と、伝播遅延時間算出部２３で算出された往復伝播遅延時間とを対応付けて保持する。
【００３１】
ウィンドウサイズ算出部２７は、フロー情報保持部２６に保持されているデータ送信端末とデータ受信端末間の往復伝播遅延時間１７と、帯域情報保持部２５に保持されている帯域情報の保証帯域とを用いて、データの送出帯域が保証帯域以内となるようなウィンドウサイズを算出する。
【００３２】
広告ウィンドウサイズ書き込み部２８は、データ受信端末１５からデータ送信端末１４へのACKパケットのウィンドウフィールドに、ウィンドウサイズ算出部２７で算出されたウィンドウサイズの値を書き込み、そのACKパケットをデータ送信部２４に送る。
【００３３】
ACK分割部２９は、フロー識別・振り分け部２２から転送されたACKに対してACK分割を行い、分割したACKを広告ウィンドウサイズ書き込み部２８に転送する。
【００３４】
ACK分割制御部３０には、重複ACKをカウントするための重複ACK計測テーブルが格納されている。重複ACK計測テーブルには、輻輳ウィンドウサイズが低下したか否かの判定基準となる、重複ACKの数の閾値が記述されている。また、重複ACK計測テーブルには、到着したACKパケットのACK番号と、重複ACKを受け取った回数である重複ACKカウンタと、シーケンス番号が記録される。
【００３５】
ACK分割制御部３０は、フロー識別・振り分け部２２からの要求にしたがって重複ACKのカウントを行うことで輻輳ウィンドウサイズの低下を認識すると、輻輳ウィンドウサイズの低下が認められた際に通過するデータパケットのシーケンス番号を記憶し、到着するACKパケットのACK番号と記憶したシーケンス番号と比較し、記憶したシーケンス番号より大きなACK番号のACKパケットが到着すると、フロー識別・振り分け部２２にACK分割要求を転送する。
【００３６】
図３は、フロー識別・振り分け部２２によるパケット振り分けを説明するための図である。図３を参照して、フロー識別・振り分け部２２によるパケット振り分けを詳細に説明する。
【００３７】
データ送信端末１４とデータ受信端末１５間でコネクションが確立されると、データの転送が開始される。エッジノード１１のフロー識別・振り分け部２２は、データ受信端末１５からのACKパケットを受信すると、サービス対象フローのACKパケットか否か判定をする。そのACKパケットがサービス対象フローのACKパケットであれば、次に、フロー識別・振り分け部２２は、分割対象のACKか否かを判定する。そのACKが分割非対象ACKの場合、フロー識別・振り分け部２２は、分割非対象ACKを、信号線２２ａを介して広告ウィンドウサイズ書き込み部２８に送る。そのACKがサービス対象フローのACKパケットであり、かつ、フロー識別・振り分け部２２がACK分割制御部３０からACK分割要求を受けている場合、フロー識別・振り分け部２２は、そのACKを分割対象ACKとして信号線２２ｂを介してACK分割部２９に送る。サービス非加入ユーザパケットやデータパケットに関しては、フロー識別・振り分け部２２は、サービス非加入ユーザパケットやデータパケットを、信号線２２ｃを介してデータ送信部２４に送る。
【００３８】
図４は、往復伝播遅延時間を計測する時のエッジノード内のブロック間の信号のやり取りを示すシーケンス図である。
【００３９】
なお、SYN-SYN/ACK往復伝播遅延時間は、SYN（同期）パケットとそのACKであるSYN/ACKパケットの往復伝播遅延時間であり、SYN/ACK-ACK往復伝播遅延時間は、SYN/ACKパケットとそのACKパケットの往復伝播遅延時間である。
【００４０】
図４を参照すると、データ送信端末１４側のエッジノード１１において、フロー識別・振り分け部２２は、SYNパケットを観測すると（ステップ１０１）、サービス対象フローのユーザ情報・入力ポート情報と共にSYN-SYN/ACK往復伝播遅延時間計測開始要求を伝播遅延時間算出部２３に送る（ステップ１０２）。これにより伝播遅延時間算出部２３はセッション接続要求受信側とエッジノード１１間のSYN-SYN/ACK往復伝播遅延時間の計測を開始する。
【００４１】
その後、フロー識別・振り分け部２２は、SYNに対するSYN/ACKパケットを観測すると（ステップ１０３）、サービス対象フローのユーザ情報・入力ポート情報と共にSYN-SYN/ACK往復伝播遅延時間計測終了要求を伝播遅延時間算出部２３に送る（ステップ１０４）。これにより伝播遅延時間算出部２３はセッション接続要求受信側とエッジノード１１間のSYN-SYN/ACK往復伝播遅延時間の計測を終了する。
【００４２】
同時に、フロー識別・振り分け部２２は、サービス対象フローのユーザ情報・入力ポート情報と共にSYN/ACK-ACK往復伝播遅延時間計測開始要求を伝播遅延時間算出部２３に送る（ステップ１０５）。これにより伝播遅延時間算出部２３はセッション接続要求側とエッジノード１１間のSYN/ACK-ACK往復伝播遅延時間の計測を開始する。その後、フロー識別・振り分け部２２は、SYN/ACKに対するACKパケットを観測すると（ステップ１０６）、サービス対象フローのユーザ情報・入力ポート情報と共にSYN/ACK-ACK往復伝播遅延時間計測終了要求を伝播遅延時間算出部２３に送る（ステップ１０７）。これにより伝播遅延時間算出部２３はセッション接続要求側とエッジノード１１間のSYN/ACK-ACK往復伝播遅延時間の計測を終了する。
【００４３】
SYN-SYN/ACK往復伝播遅延時間とSYN/ACK-ACK往復伝播遅延時間の計測を終えた伝播遅延時間算出部２３は、SYN-SYN/ACK往復伝播遅延時間とSYN/ACK-ACK往復伝播遅延時間の和を往復伝播遅延時間１７とし、往復伝播遅延時間１７をユーザ情報と共に、データ送信端末とデータ受信端末間の往復伝播遅延時間報告としてフロー情報保持部２６に通知する（ステップ１０８）。同時に、SYN-SYN/ACK往復伝播遅延時間とSYN/ACK-ACK往復伝播遅延時間をユーザ情報と入力ポート情報とをACK分割制御部３０に通知する（ステップ１０９）。
【００４４】
図５は、ウィンドウサイズを算出するときのエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。
【００４５】
フロー情報保持部２６は、伝播遅延時間算出部２３から往復伝播遅延時間報告を受信すると（ステップ２０１）、ウィンドウサイズ算出部２７に対して、データ送信端末とデータ受信端末間の往復伝播遅延時間１７とユーザ情報と共に、帯域保証ウィンドウ計算要求（ステップ２０２）を通知する。帯域保証ウィンドウ計算要求（ステップ２０２）を受けたウィンドウサイズ算出部２７は、そのユーザ情報を基にして、帯域情報保持部２５に対してユーザ情報に対応する保証帯域を要求する（ステップ２０３）。
【００４６】
帯域情報保持部２５は、ウィンドウサイズ算出部２７からの要求に応じて保証帯域を返送する（ステップ２０４）。データ送信端末とデータ受信端末間の往復伝播遅延時間１７と保証帯域を受信したウィンドウサイズ算出部２７は、それらの値を基に、データ送信端末１４が保証帯域以内でデータを送出するようなウィンドウサイズを算出する（ステップ２０５）。このとき保証帯域と一致するレートでデータが送出されるようなウィンドウサイズが好適である。
【００４７】
ウィンドウサイズの求め方は、例えば式（１）により求めることができる。式（１）の「データ送信端末とデータ受信端末間の往復伝播遅延時間」は往復伝播遅延時間１７である。
【００４８】
【数１】
2012044278.tif 000003
【００４９】
図６は、ACKパケットに広告ウィンドウサイズを書き込む時のエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。
【００５０】
図６を参照すると、まずウィンドウサイズ算出部２７がサービス対象フローのウィンドウサイズを算出する（ステップ３０１）。続いて、ウィンドウサイズ算出部２７は算出したウィンドウサイズと、そのサービス対象フローのユーザ情報を広告ウィンドウサイズ書き込み部２８に通知する（ステップ３０２）。広告ウィンドウサイズ書き込み部２８は、ウィンドウサイズ算出部２７から通知されたウィンドウサイズの値を、フロー識別・振り分け部２２からのACKパケットのウィンドウフィールドに書き込む（ステップ３０３）。広告ウィンドウサイズ書き込み部２８で広告ウィンドウサイズが書き込まれたACKパケットはデータ送信部２４に送られる。続いて、ウィンドウサイズ算出部２７は算出したウィンドウサイズと、そのサービス対象フローのユーザ情報をACK分割部２９に通知する（ステップ３０４）。
【００５１】
図７は、ACK分割制御部３０が重複ACKの計測およびACK分割要否判定を行って、ACK分割要求をフロー識別・振り分け部２２に通知する際のエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。
【００５２】
図７を参照すると、まずフロー識別・振り分け部２２にサービス対象ユーザのACKが到着すると（ステップ４０１）、フロー識別・振り分け部２２はACK分割制御部３０に対して重複ACK計測要求としてユーザ情報とACK番号を送信する（ステップ４０２）。ACK分割制御部３０は、フロー識別・振り分け部２２から重複ACK計測要求の通知を受けると、受信したACK番号とユーザ情報にしたがってACK分割制御部３０内に存在する重複ACK計測テーブル内を参照し、フロー識別・振り分け部２２から通知されたACKが重複ACKか確認する。（ステップ４０３）。
【００５３】
ステップ４０３において、ACK分割制御部３０が参照した結果、ステップ４０２でフロー識別・振り分け部２２から通知されたACKが重複ACKでない場合、ACK分割制御部３０は、重複ACK計測テーブル内の重複ACKカウンタをクリアする（ステップ４０４）。一方、フロー識別・振り分け部２２から通知されたACKが重複ACKであれば、重複ACK計測テーブル内の重複ACKカウンタを増加させる（ステップ４０５）。ステップ４０５の後に重複ACKカウンタが閾値を超えていた場合（ステップ４０６）、データ送信端末１４が再送制御モードに入ったことを認識する（ステップ４０７）。
【００５４】
TCPでは、データパケット内のシーケンス番号に対して、ACK内のACK番号を対応づけることによりデータ受信状況をデータ送信端末１４に伝えることが可能である。すなわち、重複ACKがデータ送信端末１４に到着することは、データ受信端末１５がそのACK番号に対応するシーケンス番号のデータパケットを受信できていないことを意味する。データ送信端末１４は重複ACKを認識すると輻輳ウィンドウサイズを低下させる。この仕組みを利用して、エッジノード１１のACK分割制御部３０は、重複ACK数を計測することで輻輳ウィンドウサイズの低下を認識する。
【００５５】
なお、データ受信端末１５はデータパケットを送信後、一定の時間以上経過してもデータパケットに対するACKが返信されない場合、パケット廃棄が発生したとみなして輻輳ウィンドウサイズを低下させる。この仕組みを利用して、エッジノード１１のACK分割制御部３０は、通過するデータパケットとACKがエッジノードを通過する時刻を計測することによって輻輳ウィンドウサイズの低下を認識してもよい。例えば、ACK分割制御部３０は、通過するデータパケット内のシーケンス番号とACKパケット内のACK番号を記録し、これらのパケットの対応付けにより計測された伝播遅延時間を予め決められた基準時間と比較して、計測された伝播遅延時間の方が基準時間よりも大きい場合に、輻輳ウィンドウサイズが低下したと認識する。その後、その伝播遅延時間が基準時間よりも小さくなると、ACK分割制御部３０は、データ送信端末１４の再送制御モードが終了したと認識する。
【００５６】
次に、フロー識別・振り分け部２２にサービス対象ユーザのデータが到着すると（ステップ４０８）、フロー識別・振り分け部２２はACK分割制御部３０に対してシーケンス番号計測要求としてユーザ情報とシーケンス番号を送信する（ステップ４０９）。ACK分割制御部３０は、フロー識別・振り分け部２２からシーケンス番号計測要求の通知を受けると、データ送信端末１４が再送制御モードであって、シーケンス番号をまだ記憶していない場合、または、記憶済みのシーケンス番号よりもステップ４０９によって通知されたシーケンス番号の方が大きい場合（ステップ４１０）、ステップ４０９によって通知されたシーケンス番号を記憶する（ステップ４１１）。
【００５７】
さらに、ステップ４０２で通知されたACK番号に対して、データ送信端末１４が再送制御モードで、かつ、到着ACK番号よりも、記憶していたシーケンス番号のほうが大きい場合（ステップ４１２）、ACK分割制御部３０は、データ送信端末１４の再送制御モードが終了したと認識し、フロー識別・振り分け部２２に対してACK分割要求を送信し（ステップ４１３）、記憶していたシーケンス番号をクリアする（ステップ４１４）。
【００５８】
NewRenoベースの再送制御に対応可能となるように、再送制御モード中においてACK分割を実施しないために、パケット廃棄認識毎にウィンドウ中に存在する最も大きいシーケンス番号を記憶する。この到着データパケットのシーケンス番号の認識は、エッジノード１１がパケット廃棄発生を認識した瞬間から、エッジノード１１とデータ送信端末１４との間の遅延時間後まで実施し、再送制御モード中であれば、それ以降の新たなシーケンス番号の記憶を行わなくてもよい。
【００５９】
ステップ４１０において、記憶される対象となるシーケンス番号は、例えば、再送制御モードになった時刻からSYN-SYN/ACK往復伝播遅延時間もしくはSYN/ACK-ACK往復伝播遅延時間、または、SYN-SYN/ACK往復伝播遅延時間とSYN/ACK-ACK往復伝播遅延時間を足した時間のいずれかの時間の経過後までに通過するデータパケットの最大シーケンス番号としてもよい。
【００６０】
また、ステップ４１０において、記憶される対象となるシーケンス番号は、エッジノード１１がパケット廃棄発生を認識することで、再送制御モードになったときにエッジノード１１を通過したACKパケットのACK番号に対して再送されたパケットである再送制御パケットがエッジノード１１に到着するまでに、エッジノード１１を通過したデータパケットの最大のシーケンス番号としてもよい。また、パケット廃棄の認識は、重複ACKの認識やタイマーカウントでもよい。
【００６１】
ステップ４１２における、到着ACK番号と記憶していたシーケンス番号との比較は、例えば式（２）のように行うことができる。
【００６２】
【数２】
2012044278.tif 000004
【００６３】
図８は、ACK分割部２９がACKを分割する際のエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。
【００６４】
図８を参照すると、まずフロー識別・振り分け部２２にACK分割要求が到着すると（ステップ６０１）、フロー識別・振り分け部２２は、ACK分割要求に伴って通知されたユーザ情報にしたがって、ユーザ情報に該当するACKをACK分割部２９に転送する（ステップ６０２）。ACK分割部２９は、フロー識別・振り分け部２２からACKを受け取ると、受け取ったACKを分割する（ステップ６０３）。
【００６５】
ステップ６０３でACKを分割する際、ACK分割部２９は、次のようにして分割数を決める。１つのACKに対して、ACKを分割し過ぎると、輻輳がアクセス網内で発生し、逆にCWNDを低下させる可能性がある。そのため、ACKによって占有される帯域が保証帯域よりも小さくなるように、ACK１パケットあたりの分割数は、保証帯域が上り下りで等しいことを考慮に入れて、MTU（最大転送ユニット）とACKパケットとのサイズ比とするのが最良である。これにより、ACK分割部２９は、MTUとACKパケットとのサイズ比を分割数として算出する。例えば、MTUのサイズが１５１４Byteであり、ACKパケットのサイズが６０Byteである場合、ACKパケットの分割数であるACK分割数は、２５（≒１５１４÷６０）となる。MTUの代わりにデータパケットとしてもよい。
【００６６】
ACK分割部２９は、分割したACKを広告ウィンドウ書き込み部２８に送る（ステップ６０４）。ACK分割部２９は、ACKの分割数がステップ６０３で決めた値に達しなければ（ステップ６０５）、ステップ６０３に戻って、ACKの分割を行い、ACKの分割数がステップ６０３で決めた値に達すると、フロー識別・振り分け部２２に転送解除を要求する（ステップ６０６）。
【００６７】
なお、ACK分割を行う際、次のように行ってもよい。エッジノード１１が輻輳ウィンドウサイズの低下を認識した際に、輻輳ウィンドウサイズを早期に向上させるためにACKの分割を行う。これは、データ送信端末１４がACK受信毎に輻輳ウィンドウサイズを上昇させる性質を利用するものである。また、データ送信端末１４は、現在認識しているACK番号より大きな値のACK番号のACKが到着した際に輻輳ウィンドウサイズを上昇させる性質がある。この性質を利用して、ACK分割部２９は、ACK分割を行う際、分割対象ACKに対して、既にデータ送信端末１４に転送済みのACKのACK番号と分割対象ACKのACK番号の間の値で分割対象ACKのACK番号を書き換えたものを複数作成してもよい。例えば、データ送信端末１４に転送済みのACKのACK番号が「１０００」で、分割対象ACKのACK番号が「２０００」である場合、「１０００」と「２０００」の間のACK番号を付与したACKを作成する。
【００６８】
また、ACK分割を行う際に、ACK分割部２９は、複数パケット廃棄に対応するためのSelective ACK（SACK）オプションがACKパケットに付与されている場合、SACKオプションを削除してACK分割を行ってもよい。SACKオプション付きのACKパケットは、複数の廃棄されたパケットをまとめて通知するものであるため、このオプション付きのACKパケットを分割しても、同じ内容の情報を付加したパケットが複製されるだけで、作成されたACKパケットは無効になってしまうからである。
【００６９】
また、ステップ６０３の処理における、ACKの分割数を数１（式（１））のウィンドウサイズに基づいて決めてもよい。
【００７０】
本実施形態によれば、１ウィンドウ中に複数パケットが廃棄されたときに発生する、輻輳ウィンドウの低下を改善するTCPを用いた帯域保証サービス運用時に、データ送信端末のTCPプロトコルスタックの変更を必要とすることなく、パケット廃棄や転送タイムアウトにより輻輳ウィンドウが低下した場合でも、保証帯域内で安定的にスループットを制御できるので、保証帯域を効率よく利用することが可能となる。上記帯域保証サービスとして、例えば、NewRenoベースの再送制御に、本実施形態を適用可能である。
【００７１】
上述したように、エッジノードが輻輳ウィンドウサイズの低下にしたがってACKパケットを操作するのみなので、データ送信端末はそれを基に既存の動作をするだけであり、データ送信端末のプロトコルに対して本発明の特有な機能を加えることなくスループットを改善できる。
【符号の説明】
【００７２】
１１、１２    エッジノード
１３    帯域管理サーバ
１４    データ送信端末
１５    データ受信端末
１６    帯域保証ネットワーク
２１    データ受信部
２２    フロー識別・振り分け部
２３    伝播遅延時間算出部
２４    データ送信部
２５    帯域情報保持部
２６    フロー情報保持部
２７    ウィンドウサイズ算出部
２８    広告ウィンドウサイズ書き込み部
２９    ACK分割部
３０    ACK分割制御部
【図１】
2012044278.tif 000005
【図２】
2012044278.tif 000006
【図３】
2012044278.tif 000007
【図４】
2012044278.tif 000008
【図５】
2012044278.tif 000009
【図６】
2012044278.tif 000010
【図７】
2012044278.tif 000011
【図８】
2012044278.tif 000012