説明

エッジノードおよび帯域制御方法

【課題】帯域保証ネットワークでのデータ転送において、帯域制御の対象フローが多重化された場合においても、保証した帯域を効率よく利用して高いスループットを保つ。
【解決手段】帯域情報保持部は、帯域保証ネットワークにてサービス対象フローに割り当てられた保証帯域を保持する。伝搬遅延時間算出部は、サービス対象フローの伝搬遅延時間を計測する。ウィンドウサイズ算出部は、サービス対象フローの保証帯域とサービス対象フローの伝搬遅延時間とから、サービス対象フローのデータが保証帯域以内の帯域となるウィンドウサイズを算出する。ACKスケジューリング部は、伝搬遅延時間とウィンドウサイズをもとに、データ送信端末に送信するサービス対象フローのACKパケットの送信タイミングをスケジューリングする。広告ウィンドウサイズ書き込み部は、ウィンドウサイズをACKパケットに書き込む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、端末間でネットワークを介してデータを送受信するシステムにおけるフロー制御に関する。
【背景技術】
【0002】
パソコンなどの端末の間ではインターネットなどのコンピュータネットワークを介した通信が行われる。この通信によってファイル等のデータが転送される。この種のデータ転送システムでは、トランスポート層のプロトコルとして、標準的なトランスポートプロトコルであるTCP(Transmission Control Protocol)が用いられることが多い。
【0003】
また、データ転送においては大容量のデータを高速に転送することが要求されることがある。これに対してTCPのウィンドウサイズを一定に制御することでスループットを向上させる検討がなされている。
【非特許文献1】服部 恭太、外5名, “エッジルータにおけるTCPフローレート制御方式の検討”, 電子情報通信学会総合大会(B−6−54), 2007年3月, p.54
【発明の開示】
【発明が解決しようとする課題】
【0004】
TCPでは、ウィンドウサイズをパケット廃棄に従って自律的に変化させる帯域制御が行われる。しかし、保証された帯域以上のトラヒックがネットワークに流入するのを防ぐためにネットワークの入り口でバーストサイズを規定したトークンバケット型の流入制限を行っている帯域保証ネットワークでのデータ転送においては、スループットが鋸歯状になり、保証された帯域を十分に活用できないという課題があった。
【0005】
上述したTCPプロトコルに変更を加えることで保証された帯域に合わせて一定のスループットでデータを送信する技術や広告ウィンドウサイズを一定に制御する技術には、この課題に対する対策がある。
【0006】
しかし、非特許文献1に記載された、広告ウィンドウサイズを一定に制御する技術では、フローが多重化されることが考慮されていなかった。そのため、帯域制御の対象となるフローが高多重化されるほど、算出したフローのパケット送信タイミングと実際に送信が可能なパケット送信タイミングとのずれが大きくなる。その結果、ネットワークの入り口で、設定されたバーストサイズを超えるバースト性のあるフローとなるために、流入制限によりパケットの廃棄が発生し、フロー毎に保証された帯域の利用効率が低下するという問題があった。
【0007】
本発明の目的は、帯域保証ネットワークでのデータ転送において、帯域制御の対象フローが多重化された場合においても、保証した帯域を効率よく利用することを可能にする技術を提供することである。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本発明のエッジノードは、
データ送信端末からデータ受信端末へ送信できる帯域が保証された帯域保証ネットワークにおいて前記データ送信端末と前記データ受信端末の間に配置されるエッジノードであって、
前記帯域保証ネットワークにて前記データ送信端末から前記データ受信端末へのサービス対象フローに割り当てられた保証帯域を保持する帯域情報保持部と、
前記サービス対象フローの伝搬遅延時間を計測する伝搬遅延時間算出部と、
前記帯域情報保持部に保持されている前記サービス対象フローの保証帯域と、前記伝搬遅延時間算出部で計測された前記サービス対象フローの伝搬遅延時間とから、前記サービス対象フローのデータが前記保証帯域以内の帯域となるウィンドウサイズを算出するウィンドウサイズ算出部と、
前記伝搬遅延時間と前記ウィンドウサイズをもとに、前記データ送信端末に送信する前記サービス対象フローのACKパケットの送信タイミングをスケジューリングするACKスケジューリング部と、
前記ウィンドウサイズを前記ACKパケットに書き込む広告ウィンドウサイズ書き込み部と、
を有する。
【0009】
本発明によれば、伝搬遅延時間とウィンドウサイズをもとに、データ送信端末に送信するACKパケットの送信タイミングをスケジューリングするので、帯域制御の対象フローが多重化される場合でも、フローのバースト化を緩和することができる。
【0010】
また、前記ACKスケジューリング部は前記ACKパケットの送信間隔を制御することにしてもよい。
【0011】
また、前記ACKスケジューリング部は、前記データ受信端末から受信したACKパケットに書かれていたACKナンバーである送信可能ACKナンバーと、前記データ送信端末に前回送信したACKパケットに書き込んだACKナンバーである転送済ACKナンバーと、前記サービス対象フローの最大セグメントサイズとに基づいて、次回送信するACKパケットに書き込むACKナンバーを決定することにしてもよい。
【0012】
これによれば、最大セグメントサイズを考慮してACKナンバーを制御することにより、フローのバースト化を緩和し、データを効率よく転送することができる。その結果、流入制限によるパケット廃棄を低減し、保証帯域を効率よく利用してスループットを向上させることができる。
【0013】
また、前記ACKスケジューリング部は、前記伝搬遅延時間算出部で計測された複数のサービス対象フローの伝搬遅延時間から単位時間を定め、該単位時間毎に、前記複数のサービス対象フローのそれぞれについてACKパケットの送信数を算出することしてもよい。
【0014】
また、前記ACKスケジューリング部は、前記複数のサービス対象フローの伝搬遅延時間のうち最も長い伝搬遅延時間を前記単位時間とすることにしてもよい。
【0015】
また、前記ACKスケジューリング部は、前記複数のサービス対象フローについて送信するACKパケットが前記単位時間内で等間隔となるように前記ACKパケットの送信タイミングを決定することにしてもよい。
【0016】
また、フローの振り分けを行い、前記データ受信端末から受信した前記サービス対象フローのACKパケットを前記ACKスケジューリング部に送るフロー識別・振り分け部を更に有することにしてもよい。
【0017】
また、前記伝搬遅延時間算出部で計測された前記伝搬遅延時間を、サービス対象フローのコネクション情報と対応付けて保持するフロー情報保持部を更に有することにしてもよい。
【発明の効果】
【0018】
本発明によれば、帯域制御の対象フローが多重化される場合でもフローのバースト化を緩和することができ、パケット廃棄を低減し、保証帯域を効率よく利用して高いスループットを維持することができる。
【発明を実施するための最良の形態】
【0019】
一般的なTCPでは広告ウィンドウと輻輳ウィンドウという2つのウィンドウが定義される。広告ウィンドウのサイズは受信側で受信バッファの状態に依存して決定される。輻輳ウィンドウのサイズはデータ送信側でパケット廃棄の状況に応じて決定される。フロー制御に用いるウィンドウサイズには広告ウィンドウサイズと輻輳ウィンドウサイズのうちいずれか小さいほうが選択される。このウィンドウサイズはACKが到着したときに更新される。
【0020】
本実施形態では、データの送信側となるデータ送信端末と、データの受信側となるデータ受信端末との間は、帯域保証ネットワークによって帯域が保証される構成である。従って、保証帯域以下でデータを送出している限りパケットの廃棄が生じないことが想定される。
【0021】
それゆえ、データが保証帯域以下で送出されるように広告ウィンドウサイズを調節すればパケットの廃棄を防ぐことができる。パケットの廃棄が生じなければ輻輳ウィンドウサイズが小さくならないので常に広告ウィンドウサイズがTCPウィンドウサイズに採用されることになる。その結果、スループットが鋸歯状に変動しなくなり保証帯域の効率的な利用が可能となる。
【0022】
そこで、本実施形態では、データ送信端末とデータ受信端末の間でエッジノードがデータ送信側とデータ受信側の間の伝搬遅延時間を測定し、その伝搬遅延時間と、帯域保証ネットワークによる保証帯域とから、データが保証帯域以内で送出されるようなウィンドウサイズを算出し、算出したウィンドウサイズを、データ送信端末へ送信するACKパケットに広告ウィンドウサイズとして書き込む。
【0023】
これにより、データ送信端末からデータ受信端末へ送信するデータの帯域を保証帯域内で安定的に制御できるので、保証帯域を効率よく利用することができる。
【0024】
さらに、エッジノードは、計測した伝搬遅延時間と、算出したウィンドウサイズとをもとに、データ送信端末に送信するACKパケットの送信タイミングをスケジューリングする。これにより、サービス対象フローが多重化される場合でもフローのバースト化を緩和することができる。その結果、流入制限によるパケット廃棄が低減され、保証帯域を効率よく利用して高いスループットを維持することができる。また、例えば、TCPを用いた帯域保証サービスの運用において、データ送信端末のTCPプロトコルスタックを変更する必要が無い。
【0025】
また、エッジノードは、データ送信端末にACKパケットに送信する際、そのACKパケットに書き込むACKナンバーを、データ受信端末から受信したACKパケットに書かれていたACKナンバーと、データ送信端末に前回送信したACKパケットに書き込んだACKナンバーと、サービス対象フローの最大セグメントサイズとに基づいて制御する。MSSを考慮してACKナンバーを制御することにより、フローのバースト化を緩和し、データを効率よく転送することができる。その結果、流入制限によるパケット廃棄を低減し、保証帯域を効率よく利用してスループットを向上させることができる。
【0026】
以下、本実施形態について図面を参照して詳細に説明する。
【0027】
図1は、本実施形態によるデータ送信システムの構成を示すブロック図である。図1を参照すると、本実施形態のデータ送信システムは、エッジノード11,12および、帯域管理サーバ13を有している。帯域管理サーバ13は図面上ではRACSと表記する。RACSはResource and Admission Control Sub−systemの略である。
【0028】
データ送信端末14はエッジノード11に接続され、データ受信端末15はエッジノード12に接続されている。エッジノード11とエッジノード12は帯域保証ネットワーク16上でデータを送受信することができる。これによりデータ送信端末14からのデータがエッジノード11とエッジノード12を介してデータ受信端末15へ転送される。
【0029】
帯域管理サーバ13は帯域保証ネットワーク16の全リンクの帯域情報を集中的に管理する装置である。帯域情報にはリンクに割り当てられた保証帯域の情報が含まれている。帯域管理サーバ13は管理している各リンクの帯域情報をエッジノード11,12に通知する。帯域管理サーバ13による帯域管理によって、データ送信端末14からデータ受信端末15へのリンクは帯域保証ネットワーク16での保証帯域が確保される。その結果、データ送信端末14が保証帯域以下でデータを送出する限り帯域保障ネットワーク16内でのパケット廃棄は発生しない。
【0030】
図2は、本実施形態のエッジノードの構成を示すブロック図である。図2を参照すると、エッジノード11は、データ受信部21、フロー識別・振り分け部22、伝搬遅延時間算出部23、データ送信部24、帯域情報保持部25、フロー情報保持部26、ウィンドウサイズ算出部27、広告ウィンドウサイズ書き込み部28、およびACKスケジューリング部29を有している。
【0031】
データ受信部21は、データパケットやACKパケットなどのパケットを受信し、フロー識別・振り分け部22に送る。
【0032】
フロー識別・振り分け部22は、帯域情報保持部25に帯域情報とともに保持されているユーザ情報を元に、帯域を保証したデータ転送のサービスの対象となるフロー(サービス対象フロー)と、帯域を保証したデータ転送のサービスの対象とならないフロー(サービス非対象フロー)とを識別する。サービス非対象フローは、例えばサービスに非加入のユーザのパケットである。
【0033】
さらにフロー識別・振り分け部22は、サービス対象フローのACKパケットを、経路22aを通して、ACKスケジューリング部29へ振り分ける。また、フロー識別・振り分け部22は、サービス非対象フローのパケット、およびサービス対象フローのデータパケットを、経路22bを通してデータ送信部24へ振り分ける。
【0034】
伝搬遅延時間算出部23は、データ送信端末14とデータ受信端末15の間の往復伝搬遅延時間(以下、単に「往復伝搬遅延時間」という)17を計測する。
【0035】
データ送信部24は、フロー識別・振り分け部22からのパケットと、広告ウィンドウサイズ書き込み部29からのパケットとを、帯域保証ネットワーク16を介してエッジノード12へ送信する。
【0036】
帯域情報保持部25は、帯域管理サーバ13から通知されたサービス対象ユーザの帯域情報とユーザ情報(宛先・送信元IPアドレス、宛先・送信元ポート番号)とを対応付けて保持する。帯域情報には、サービス対象フローに割り当てられた保証帯域の情報が含まれている。サービス対象フローは、ユーザ情報により識別することができる。
【0037】
フロー情報保持部26は、フロー識別・振り分け部22で識別されるサービス対象フローのコネクション情報と、伝搬遅延時間算出部23で算出された往復伝搬遅延時間17とを対応付けて保持する。
【0038】
ウィンドウサイズ算出部27は、フロー情報保持部26に保持されている往復伝搬遅延時間17と、帯域情報保持部25に保持されている帯域情報の保証帯域とを用いて、データの送出帯域が保証帯域以内となるようなウィンドウサイズを算出する。
【0039】
広告ウィンドウサイズ書き込み部28は、ACKスケジューリング部29で作成されたデータ送信端末14宛のACKパケットのウィンドウフィールドに、ウィンドウサイズ算出部27で算出されたウィンドウサイズの値を書き込み、そのACKパケットをデータ送信部24に送る。
【0040】
ACKスケジューリング部29は、伝搬遅延時間算出部23から通知された往復伝搬遅延時間17とウィンドウサイズ算出部27から通知されたウィンドウサイズとに基づき、各サービス対象フローのACKパケットの送信タイミングをスケジューリングし、そのスケジューリングに従ってACKパケットを作成し、作成したACKパケットを広告ウィンドウサイズ書き込み部28に送る。
【0041】
図3は、フロー識別・振り分け部22によるパケット振り分けを説明するための図である。図3を参照して、フロー識別・振り分け部22によるパケット振り分けを詳細に説明する。
【0042】
データ送信端末14とデータ受信端末15間でコネクションが確立されると、データの転送が開始される。エッジノード11のフロー識別・振り分け部22は、データ受信端末15からのACKパケットを受信すると、サービス対象フローのACKパケットであるか否か判定をする。サービス対象フローのACKパケットであれば、フロー識別・振り分け部22は、そのACKパケットを、経路22aを通してACKスケジューリング部29に送る。サービス非対象フローのパケットやサービス対象フローのデータパケットに関しては、フロー識別・振り分け部22は、そのパケットを、経路22bを通してデータ送信部24に送る。
【0043】
図4は、往復伝搬遅延時間を計測する時のエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。図4を参照すると、データ送信端末14側のエッジノード11において、フロー識別・振り分け部22がSYNパケットを観測すると(ステップ101)、サービス対象フローのユーザ情報と共に、往復伝搬遅延時間計測開始要求を伝搬遅延時間算出部23に送る(ステップ102)。これにより伝搬遅延時間算出部23は往復伝搬遅延時間17の計測を開始する。その後、フロー識別・振り分け部22は、前記SYNに対するSYN/ACKパケットを観測する(ステップ103)。その後、フロー識別・振り分け部22は、前記SYN/ACKに対するACKパケットを観測すると(ステップ104)、ユーザ情報と共に往復伝搬遅延時間計測終了要求を伝搬遅延時間算出部23に送る(ステップ105)。これにより伝搬遅延時間算出部23は往復伝搬遅延時間17の計測を終了する。
【0044】
往復伝搬遅延時間17の計測を終えた伝搬遅延時間算出部23は、計測した往復伝搬遅延時間17を、ユーザ情報と共に、往復伝搬遅延時間報告としてフロー情報保持部26に通知する(ステップ106)。また、伝搬遅延時間算出部26は、計測した往復伝搬遅延時間17を、ユーザ情報と共に、往復伝搬遅延時間報告としてACKスケジューリング部29にも通知する(ステップ107)。
【0045】
図5は、ウィンドウサイズを算出するときのエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。フロー情報保持部26が、伝搬遅延時間算出部23からの往復伝搬遅延時間報告を受信すると(ステップ201)、ウィンドウサイズ算出部27に対して、往復伝搬遅延時間17およびユーザ情報と共に、帯域保証ウィンドウ計算要求を送る(ステップ202)。
【0046】
帯域保証ウィンドウ計算要求を受けたウィンドウサイズ算出部27は、そのユーザ情報を基に、そのユーザ情報に対応する保証帯域を帯域情報保持部25に対して要求する(ステップ203)。帯域情報保持部25は、ウィンドウサイズ算出部27からの要求に応じて保証帯域を返送する(ステップ204)。
【0047】
ウィンドウサイズ算出部27は、帯域情報保持部25から取得した保証帯域と、フロー情報保持部26から取得した往復伝搬遅延時間とを基に、データ送信端末14が保証帯域以内でデータを送出するようなウィンドウサイズを算出する(ステップ205)。このとき保証帯域と一致する帯域でデータが送出されるようなウィンドウサイズが好適である。
【0048】
ウィンドウサイズの求め方は、例えば式(1)により求めることができる。
【0049】
【数1】

【0050】
上記ヘッダサイズには、イーサネット(登録商標)、IP、TCPのヘッダサイズが含まれる。
【0051】
図6は、ACKパケットに広告ウィンドウサイズを書き込む時のエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。図6を参照すると、まずウィンドウサイズ算出部27がサービス対象フローのウィンドウサイズを算出する(ステップ301)。続いて、ウィンドウサイズ算出部27は算出したウィンドウサイズと、そのサービス対象フローのユーザ情報を広告ウィンドウサイズ書き込み部28に通知する(ステップ302)。広告ウィンドウサイズ書き込み部28は、ウィンドウサイズ算出部27から通知されたウィンドウサイズの値を、ACKスケジューリング部29からのACKパケットのウィンドウフィールドに書き込む(ステップ303)。広告ウィンドウサイズ書き込み部28で広告ウィンドウサイズが書き込まれたACKパケットはデータ送信部24に送られる。
【0052】
また、ウィンドウサイズ算出部27は算出したウィ+ンドウサイズと、そのサービス対象フローのユーザ情報をACKスケジューリング部29にも通知する(ステップ304)。ACKスケジューリング部29は、ウィンドウサイズ算出部27から通知されたウィンドウサイズと、伝搬遅延時間算出部23から通知された往復伝搬遅延時間17をもとに、各サービス対象フローのACKパケットのスケジューリングを実施する(ステップ305)。
【0053】
図7は、ACKスケジューリング部29の構成を示すブロック図である。図7を参照すると、ACKスケジューリング部29は、ACKナンバー記憶部30−1〜30−N、ACKパケット作成部31、およびACKパケット送信制御管理部32を有している。
【0054】
ACKパケット送信制御管理部32は、各サービス対象フローのACKパケットの送信タイミングを制御するためのフロー情報テーブル33を備えている。フロー情報テーブル33の内容については図8を参照して後述する。ACKパケット送信制御管理部32は、ウィンドウサイズ算出部27からウィンドウサイズ通知400を受けると、通知されたウィンドウサイズの値をフロー情報テーブル33に格納する。
【0055】
ACKナンバー記憶部30−1〜30−Nは、サービス対象フローにそれぞれ対応している。ACKナンバー記憶部30は、対応するサービス対象フローについて、広告ウィンドウサイズ書き込み部28に前回転送したACKナンバー(以下「転送済みACKナンバー」という)を記憶している。
【0056】
フロー識別・振り分け部22からは、各サービス対象フローのACKパケット401が、そのサービス対象フローに対応するACKナンバー記憶部30に送られる。ACKナンバー記憶部30−1〜30−Nは、振り分けられたACKパケット401に書かれていたACKナンバー(以下「送信可能ACKナンバー」という)を記憶する。
【0057】
ACKパケット送信制御管理部32は、フロー情報テーブル33を利用したスケジューリングにより、ACKパケットを送信するサービス対象フローを決定し、そのサービス対象フローに対応するACKナンバー記憶部30にACK送信指示402を送る。図7には、ACK送信指示402がACKナンバー記憶部30−1に送られる例が示されている。なお、フロー情報テーブル33を利用したスケジューリングの詳細については図8を参照して後述する。
【0058】
ACK送信指示402を受けたACKナンバー記憶部30は、予め記憶している送信可能ACKナンバーと転送済みACKナンバーとの差が最大セグメントサイズ(以下「MSS」という)以上であれば、ACKパケット作成部31に対してACKパケットの作成を要求するためのACKパケット作成要求403を送る。
【0059】
ここで、送信可能ACKナンバーと転送済みACKナンバーの差はデータ受信端末15によって許可されたデータ量を意味する。許可されたデータ量がMSS以上であれば、データ送信端末14はMSSのデータを搭載したパケットを送信することができる。
【0060】
その際、ACKナンバー記憶部30は、ACKパケットに付与するACKナンバーを、ACKパケット作成要求403にて指示する。指示するACKナンバーは、例えば、転送済みACKナンバーにMSSを加算した番号にしてもよい。これにより、MSSのデータを搭載した1個のパケットがデータ送信端末14からデータ受信端末15へ送信されることが想定される。これにより、フローのバースト化を緩和することができ、帯域の利用効率を向上させることができる。
【0061】
なお、ACK送信指示402を受けたとき、予め記憶している送信可能ACKナンバーと転送済みACKナンバーとの差がMSSに満たない場合、ACKナンバー記憶部30は、ACKパケットを送信しないことに決定し、ACKパケット送信制御管理部32に対して、スケジューリングを次のサービス対象フローに移行させるための再スケジューリング要求404を送る。
【0062】
次に、フロー情報テーブル33の内容及びそれを用いたスケジューリングについて説明する。スケジューリングは上述したようにACKスケジューリング部29によって行われる。
【0063】
図8は、フロー情報テーブル33の内容及びそれを用いたスケジューリングの一例を示す図である。図8において、フロー番号41、ウィンドウサイズ42、往復伝搬遅延時間(RTT;Round Trip Time)43、単位時間当たりに送信すべきACK数44、および、送信すべき残りACK数45が、フロー情報テーブル33に記録される情報である。単位時間は、伝搬遅延時間算出部23で計測された複数のサービス対象フローの伝搬遅延時間から定めることができる。例えば、ACKスケジューリング部29は、複数のサービス対象フローの伝搬遅延時間のうち最も長い伝搬遅延時間を単位時間とすればよい。あるいは、ACKスケジューリング部29は、複数のサービス対象フローの伝搬遅延時間の最小公倍数の時間を単位時間としてもよい。
【0064】
フロー番号41はフロー毎に割り当てられた番号である。ウィンドウサイズ42はウィンドウサイズ算出部27から通知されたウィンドウサイズが記録される領域である。RTT43は伝搬遅延時間算出部23から通知された伝搬遅延時間が記録される領域である。
【0065】
単位時間あたりに送信すべきACK数44は、それぞれのサービス対象フローについて単位時間あたりに送信しなければならないACKパケットの個数が記録される領域である。登録したサービス対象フローのRTTの中で最も大きいRTTが単位時間とされる。
【0066】
送信すべき残ACK数45は、単位時間が経過するまでにあと何個のACKパケットを送信すべきかがサービス対象フロー毎に記録される領域である。送信すべき残ACK数45には、単位時間が経過毎に、単位時間当たりに送信すべきACK数44分の数値が加算される。
【0067】
図8の例では、サービス対象フローとしてフロー番号1〜4の4つのフローがある。また図8には各サービス対象フローの各項目に格納される数値の例が記入されている。送信すべき残ACK数45には、単位時間が経過したときの値が示されている。
【0068】
送信タイミング46には、フロー番号41、ウィンドウサイズ42、RTT43、単位時間当たりに送信すべきACK数44、送信すべき残ACK数45がそれぞれ表中に記された値の場合における、各サービス対象フローのACKパケットの送信するタイミングが示されている。図中の●(黒丸)がACKパケットの送信タイミングを示している。サービス対象フロー毎に記入された縦の破線は、各サービス対象フローのRTTが経過する時刻を示している。また本例ではACKパケットの送信タイミングを等間隔に制御するものとする。
【0069】
ACKスケジューリング部29のACKパケット送信制御管理部32は、フロー番号41の値が小さいサービス対象フローからラウンドロビン方式で送信すべき残ACK45の値を調べる。送信すべき残ACK45の値が0より大きい場合、ACKパケット送信制御管理部32は、ACK送信指示402を当該ACKナンバー記憶部30に送る。
【0070】
送信可能ACKナンバーと転送済みACKナンバーとの差がMSS以上であるとする。ACKナンバー記憶部30がACKパケット作成部31にACKパケット作成要求を送り、ACKパケット作成部31がACKパケットを作成して送信する。
【0071】
次に、ACKパケット送信制御管理部32は、ACKパケットを等間隔にするための時間が経過するのを待った後、1つインクリメントしたフロー番号41のサービス対象フローについて、送信すべき残ACK数45の値を調べる。ACKパケットを等間隔にするために待つ時間は、単位時間÷(単位時間あたりに送信すべきACK数44の和)である。
【0072】
送信すべき残ACK数45の値が0の場合、もしくは再スケジューリング要求404を受けた場合、ACKパケット送信制御管理部32は、1つインクリメントしたフロー番号41のフローの送信すべき残ACK数45の値を調べる。例えば、図8の例では、ラウンドロビン2週目の先頭においてフロー番号=1のサービス対象フローのACKパケットが送信されていない。これは、フロー番号=1のサービス対象フローがRTT中に1つのデータパケットしか送信できないため、エッジノードが送信可能なACKパケットの数が残っていないためである。すなわち、送信可能ACKナンバーと転送済みACKナンバーとの差がMSSに満たないためである。
【0073】
このようにラウンドロビンで送信すべき残ACK数45と、ACKの送信が可能か否かを調べることにより、ACKパケットの送信タイミングをサービス対象フロー間で良好に制御することができる。
【図面の簡単な説明】
【0074】
【図1】本実施形態によるデータ通信システムの構成を示すブロック図である。
【図2】本実施形態のエッジノードの構成を示すブロック図である。
【図3】フロー識別・振り分け部によるパケット振り分けを説明するための図である。
【図4】往復伝搬遅延時間を計測する時のエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。
【図5】ウィンドウサイズを算出する時のエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。
【図6】ウィンドウサイズ算出時のエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。
【図7】ACKスケジューリング部29の構成を示すブロック図である。
【図8】フロー情報テーブル33の内容及びそれを用いたスケジューリングの一例を示す図である。
【符号の説明】
【0075】
11,12 エッジノード
13 帯域管理サーバ
14 データ送信端末
15 データ受信端末
16 帯域保証ネットワーク
17 往復伝搬遅延時間
21 データ受信部
22 フロー識別・振り分け部
23 伝搬遅延時間算出部
24 データ送信部
25 帯域情報保持部
26 フロー情報保持部
27 ウィンドウサイズ算出部
28 広告ウィンドウサイズ書き込み部
29 ACKスケジューリング部
30 ACKナンバー記憶部
31 ACKパケット作成部
32 ACKパケット送信制御管理部
33 フロー情報テーブル
41 フロー番号
42 ウィンドウサイズ
43 RTT
44 単位時間あたりに送信すべきACK数
45 送信すべき残ACK数
46 ACKパケット送信イメージ

【特許請求の範囲】
【請求項1】
データ送信端末からデータ受信端末へ送信できる帯域が保証された帯域保証ネットワークにおいて前記データ送信端末と前記データ受信端末の間に配置されるエッジノードであって、
前記帯域保証ネットワークにて前記データ送信端末から前記データ受信端末へのサービス対象フローに割り当てられた保証帯域を保持する帯域情報保持部と、
前記サービス対象フローの伝搬遅延時間を計測する伝搬遅延時間算出部と、
前記帯域情報保持部に保持されている前記サービス対象フローの保証帯域と、前記伝搬遅延時間算出部で計測された前記サービス対象フローの伝搬遅延時間とから、前記サービス対象フローのデータが前記保証帯域以内の帯域となるウィンドウサイズを算出するウィンドウサイズ算出部と、
前記伝搬遅延時間と前記ウィンドウサイズをもとに、前記データ送信端末に送信する前記サービス対象フローのACKパケットの送信タイミングをスケジューリングするACKスケジューリング部と、
前記ウィンドウサイズを前記ACKパケットに書き込む広告ウィンドウサイズ書き込み部と、
を有するエッジノード。
【請求項2】
前記ACKスケジューリング部は前記ACKパケットの送信間隔を制御する、請求項1に記載のエッジノード。
【請求項3】
前記ACKスケジューリング部は、前記データ受信端末から受信したACKパケットに書かれていたACKナンバーである送信可能ACKナンバーと、前記データ送信端末に前回送信したACKパケットに書き込んだACKナンバーである転送済ACKナンバーと、前記サービス対象フローの最大セグメントサイズとに基づいて、次回送信するACKパケットに書き込むACKナンバーを決定する、請求項1または2に記載のエッジノード。
【請求項4】
前記ACKスケジューリング部は、前記伝搬遅延時間算出部で計測された複数のサービス対象フローの伝搬遅延時間から単位時間を定め、該単位時間毎に、前記複数のサービス対象フローのそれぞれについてACKパケットの送信数を算出する、請求項1から3のいずれか1項に記載のエッジノード。
【請求項5】
前記ACKスケジューリング部は、前記複数のサービス対象フローの伝搬遅延時間のうち最も長い伝搬遅延時間を前記単位時間とする、請求項4に記載のエッジノード。
【請求項6】
前記ACKスケジューリング部は、前記複数のサービス対象フローについて送信するACKパケットが前記単位時間内で等間隔となるように前記ACKパケットの送信タイミングを決定する、請求項4または5に記載のエッジノード。
【請求項7】
フローの振り分けを行い、前記データ受信端末から受信した前記サービス対象フローのACKパケットを前記ACKスケジューリング部に送るフロー識別・振り分け部を更に有する、請求項3に記載のエッジノード。
【請求項8】
前記伝搬遅延時間算出部で計測された前記伝搬遅延時間を、サービス対象フローのコネクション情報と対応付けて保持するフロー情報保持部を更に有する、請求項1から7のいずれか1項に記載のエッジノード。
【請求項9】
データ送信端末からデータ受信端末へ送信できる帯域が保証された帯域保証ネットワークにおける前記データ送信端末から前記データ受信端末へのデータ送信の帯域を制御するための帯域制御方法であって、
前記帯域保証ネットワークにて前記データ送信端末から前記データ受信端末へのサービス対象フローに割り当てられた保証帯域を予め保持し、
前記サービス対象フローの伝搬遅延時間を計測し、
前記サービス対象フローの前記保証帯域と前記伝搬遅延時間から、前記サービス対象フローのデータが前記保証帯域以内の帯域となるウィンドウサイズを算出し、
前記伝搬遅延時間と前記ウィンドウサイズをもとに前記サービス対象フローのACKパケットの送信タイミングをスケジューリングし、
前記ウィンドウサイズを前記ACKパケットに書き込んで前記データ送信端末へ送信する、帯域制御方法。
【請求項10】
前記サービス対象フローのACKパケットの送信タイミングをスケジューリングすることにより、前記ACKパケットの送信間隔を制御する、請求項9に記載の帯域制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2010−93370(P2010−93370A)
【公開日】平成22年4月22日(2010.4.22)
【国際特許分類】
【出願番号】特願2008−258764(P2008−258764)
【出願日】平成20年10月3日(2008.10.3)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】