JP4766703B2 - エッジノードおよび帯域制御方法 - Google Patents

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

Info

Publication number
JP4766703B2
JP4766703B2 JP2008046104A JP2008046104A JP4766703B2 JP 4766703 B2 JP4766703 B2 JP 4766703B2 JP 2008046104 A JP2008046104 A JP 2008046104A JP 2008046104 A JP2008046104 A JP 2008046104A JP 4766703 B2 JP4766703 B2 JP 4766703B2
Authority
JP
Japan
Prior art keywords
ack
data transmission
data
bandwidth
service target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008046104A
Other languages
English (en)
Other versions
JP2009206733A (ja
Inventor
恭太 服部
賢太郎 小川
勝 片山
道宏 青木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2008046104A priority Critical patent/JP4766703B2/ja
Publication of JP2009206733A publication Critical patent/JP2009206733A/ja
Application granted granted Critical
Publication of JP4766703B2 publication Critical patent/JP4766703B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、端末間でネットワークを介してデータを送受信する際のフロー制御を行うエッジノードおよび帯域制御方法に関する。
パソコンなどの端末の間ではインターネットなどのコンピュータネットワークを介した通信が行われる。この通信によってファイル等のデータが転送される。この種のデータ転送システムでは、トランスポート層のプロトコルとして、標準的なトランスポートプロトコルであるTCP(Transmission Control Protocol)が用いられることが多い。
一般的なTCPでは広告ウィンドウと輻輳ウィンドウという2つのウィンドウが定義されている。広告ウィンドウのサイズはデータ受信側で受信バッファの状態に依存して決定される。輻輳ウィンドウのサイズはデータ送信側でパケット廃棄の状況に応じて決定される。フロー制御に用いられるウィンドウサイズには広告ウィンドウと輻輳ウィンドウのうちいずれか小さい方が選択される。ウィンドウサイズは、応答確認のためのパケットであるACK(Acknowledgement)パケットがデータ送信側に到着したときに更新される。
上述のフロー制御によるデータ転送においては、大容量のデータを高速に転送することが要求されることがある。これに対してTCPのウィンドウサイズを一定に制御することでスループットを向上させる検討がなされている(非特許文献1)。
"エッジルータにおけるTCPフローレート制御方式の検討",電子情報通信学会総合大会,2007年3月 "有線・無線混在ネットワークのためのTCP動的ACK分割手法の解析的評価",電子情報通信学会総合大会,2006年3月
TCPでは、輻輳ウィンドウのサイズをパケット廃棄にしたがって自律的に変化させる帯域制御が行われる。しかし、保証された帯域以上のトラヒックがネットワークに流入するのを防ぐためにネットワークの入り口で流入制限を行っている帯域保証ネットワークにおけるデータ転送では、スループットが鋸歯状に変動し、保証された帯域を十分に活用できないという課題があった。
この課題の対策として、上述したTCPプロトコルに変更を加えることなく、広告ウィンドウを書き換えることで、保証された帯域に合わせた一定のスループットでデータを送信する技術がある(非特許文献1)。しかし、この技術は輻輳ウィンドウよりも広告ウィンドウのサイズが大きいという前提の下で用いられる制御であり、例えばユーザネットワーク内でパケット廃棄が発生すると、輻輳ウィンドウのサイズの低下に伴ってウィンドウサイズが低い値に更新され、その結果、スループットが低下し、保証する帯域を有効に使いきれないという問題があった。
輻輳ウィンドウのサイズが低下する問題の対処方法として、ACKパケットをデータ受信端末で分割する方式が検討されている(非特許文献2)。しかし、不必要にデータ受信端末でACKパケットを分割してしまうと、キャリアのネットワーク内に過剰なACKパケットが流入し、他のフローを逼迫させる可能性がある。
本発明は上述したような技術が有する問題点を解決するためになされたものであり、パケット廃棄や転送タイムアウトにより低下する輻輳ウィンドウのサイズを早期に向上させ、保証された帯域を効率よく利用可能にしたエッジノードおよび帯域制御方法を提供することを目的とする。
上記目的を達成するための本発明のエッジノードは、データ送信端末からデータ受信端末にデータ送信される帯域が保証された帯域保証ネットワークにおいて前記データ送信端末と前記データ受信端末の間に設けられたエッジノードであって、
前記帯域保証ネットワークにて前記データ送信端末から前記データ受信端末へのサービス対象フローに割り当てられた保証帯域の情報を保持する帯域情報保持部と、
前記サービス対象フローの伝播遅延時間を計測する伝播遅延時間算出部と、
前記帯域情報保持部に保持されている前記サービス対象フローの保証帯域の情報と、前記伝播遅延時間算出部で計測された伝播遅延時間とから、前記サービス対象フローのデータが前記保証帯域以内の帯域となるウィンドウサイズを算出するウィンドウサイズ算出部と、
前記ウィンドウサイズ算出部で算出された前記ウィンドウサイズを前記データ送信端末の帯域制御に使用させるために前記データ送信端末に通知する広告ウィンドウサイズ書き込み部と、
前記データ送信端末におけるデータ送信レートを監視する輻輳ウィンドウ低下判断部と、
前記輻輳ウィンドウ低下判定部が前記データ送信レートの低下を認識すると、前記データ送信端末に転送される、前記サービス対象フローのACKパケットを分割するACK分割部と、
を有する構成である。
また、本発明の帯域制御方法は、データ送信端末からデータ受信端末にデータ送信される帯域が保証された帯域保証ネットワークにおいて前記データ送信端末から前記データ受信端末へのデータ送信の帯域を制御するための帯域制御方法であって、
前記帯域保証ネットワークにて前記データ送信端末から前記データ受信端末へのサービス対象フローに割り当てられた保証帯域の情報を保持し、
前記サービス対象フローの前記帯域保証ネットワークにおける伝播遅延時間を計測し、該伝播遅延時間と前記保証帯域の情報から、前記サービス対象フローのデータが前記保証帯域以内の帯域となるウィンドウサイズを算出し、
算出された前記ウィンドウサイズを前記データ送信端末の帯域制御に使用し、
前記データ送信端末におけるデータ送信レートを監視し、
前記データ送信端末における前記データ送信レートが低下すると、前記サービス対象フローのACKパケットを分割するものである。
本発明によれば、帯域保証サービス運用時にデータ送信端末のプロトコルスタックの変更を必要とすることなく、パケット廃棄や転送タイムアウトにより輻輳ウィンドウのサイズが低下した場合でも保証帯域内で安定的にスループットを制御でき、保証帯域を効率よく利用できる。
本実施形態では、データの送信側となるデータ送信端末と、データの受信側となるデータ受信端末との間は、帯域保証ネットワークによって帯域が保証されている構成である。そのため、保証帯域以下でデータを送出している限りパケットの廃棄が生じないことが想定される。それゆえ、データが保証帯域以下で送出されるように広告ウィンドウのサイズを調節すればパケットの廃棄を防ぐことができる。パケットの廃棄が生じなければ輻輳ウィンドウのサイズが小さくならないので常に広告ウィンドウのサイズがTCPウィンドウサイズに採用されることになる。その結果、スループットが鋸歯状に変動しなくなり保証帯域の効率的な利用が可能となる。
そこで、本実施形態では、データ送信端末とデータ受信端末の間でエッジノードがデータ送信側とデータ受信側の間の伝播遅延時間と、帯域保証ネットワークによる保証帯域とから、データが保証帯域以内で送出されるようなウィンドウサイズ(以下、BGWND)を算出し、データ受信端末からデータ送信端末へのACKパケットに記載される広告ウィンドウのサイズを、算出したウィンドウサイズの値に書き換える。
これにより、データ送信端末からデータ受信端末へ送信するデータのレートを保証帯域内で安定的に制御できるので、保証帯域を効率よく利用することができる。
さらに、エッジノードが認識したデータ送信端末の輻輳ウィンドウのサイズの低下にしたがって、ACKパケットを分割することで、ユーザネットワーク等で発生するパケット廃棄や転送タイムアウトにより発生するスループットの低下を改善し、保証帯域を効率よく利用して高いスループットを保つことが可能となる。
以下に、本実施形態について図面を参照して詳細に説明する。
図1は本実施形態によるデータ送信システムの一構成例を示すブロック図である。
図1を参照すると、本実施形態のデータ送信システムは、エッジノード11,12および帯域管理サーバ(RACS:Resource Admission Control Subsystem)13を有している。
データ送信端末14はエッジノード11に接続され、データ受信端末15はエッジノード12に接続されている。エッジノード11とエッジノード12は帯域保証ネットワーク16を介して接続され、そのネットワーク経由でデータを送受信することが可能である。これによりデータ送信端末14からのデータがエッジノード11とエッジノード12を介してデータ受信端末15に転送される。
帯域管理サーバ13は帯域保証ネットワーク16の全リンクの帯域情報を集中的に管理する装置である。帯域情報にはリンクに割り当てられた保証帯域の情報が含まれている。帯域管理サーバ13は管理している各リンクの帯域情報をエッジノード11,12に通知する。帯域管理サーバ13による帯域管理によって、データ送信端末14からデータ受信端末15へのリンクは帯域保証ネットワーク16でその保証帯域が確保される。その結果、データ送信端末14が保証帯域以下でデータを送出する限り、保証帯域ネットワーク16内でのパケット廃棄は発生しない。
次に、本実施形態のエッジノードについて説明する。
図2は本実施形態のエッジノードの一構成例を示すブロック図である。エッジノード11,12は同様な構成であるため、ここではエッジノード11の場合で説明する。
図2を参照すると、エッジノード11は、データ受信部21、フロー識別・振り分け部22、伝搬遅延時間算出部23、データ送信部24、帯域情報保持部25、フロー情報保持部26、ウィンドウサイズ算出部27、広告ウィンドウサイズ書き込み部28、ACK分割部29、および輻輳ウィンドウ低下判断部30を有している。
データ受信部21は、データパケットやACKパケットなどのパケットを受信し、フロー識別・振り分け部22に送る。
フロー識別・振り分け部22は、帯域情報保持部25に帯域情報とともに保持されているユーザ情報を元に、帯域を保証したデータ転送のサービスの対象となるフロー(以下では、サービス対象フローと称する)と、帯域を保証したデータ転送のサービスの対象とならないフロー(以下では、サービス非対象フローと称する)とを識別する。ユーザ情報には、サービス対象であるか否かの情報が含まれている。
また、フロー識別・振り分け部22は、サービス対象フローのACKパケットを出力線22aを介して広告ウィンドウサイズ書き込み部28へ、サービス対象フローの分割対象のACKパケットを出力線22bを介してACK分割部29へ、サービス非対象フローのパケットおよびサービス対象フローのデータパケットを出力線22cを介してデータ送信部24へと振り分ける。
伝搬遅延時間算出部23は、データ送信端末14とデータ受信端末15の間の往復伝播遅延時間(RTT:Round Trip Time)17を計測する。
データ送信部24はフロー識別・振り分け部22からのパケットと、広告ウィンドウサイズ書き込み部28からのパケットとを、帯域保証ネットワーク16を介してエッジノード12またはデータ送信端末14へ送信する。なお、データ受信部21およびデータ送信部24を合わせて、外部とデータを送受信するための通信部としてもよい。
帯域情報保持部25は、帯域管理サーバ13から通知されたサービス対象ユーザの帯域情報とユーザ情報(宛先・送信元IPアドレス、宛先・送信元ポート番号)とを対応付けて保持する。帯域情報には、リンクに割り当てられた保証帯域の情報が含まれている。リンクは、ユーザ情報により識別することが可能となる。
フロー情報保持部26は、フロー識別・振り分け部22で識別されるサービス対象フローのコネクション情報と、伝搬遅延時間算出部23で算出された往復伝播遅延時間とを対応付けて保持する。なお、帯域情報保持部25およびフロー情報保持部26は、例えば、ハードディスクや半導体メモリである。
ウィンドウサイズ算出部27は、フロー情報保持部26に保持されているデータ送信端末とデータ受信端末間の往復伝搬遅延時間17と、帯域情報保持部25に保持されている帯域情報の保証帯域とを用いて、データの送出帯域が保証帯域以内となるようなウィンドウサイズを算出する。
広告ウィンドウサイズ書き込み部28は、データ受信端末15からデータ送信端末14へのACKパケットのウィンドウフィールドに、ウィンドウサイズ算出部27で算出されたウィンドウサイズの値を書き込み、そのACKパケットをデータ送信部24に送る。
ACK分割部29は、フロー識別・振り分け部22から転送されたACKパケットに対してACK分割を行い、分割したACKを広告ウィンドウサイズ書き込み部28に転送する。
輻輳ウィンドウ低下判断部30は、フロー識別・振り分け部22からの要求にしたがって重複ACKパケット(以下では、重複ACKと称する)のカウント、および、転送タイムアウトの計測を行って輻輳ウィンドウのサイズを監視し、輻輳ウィンドウのサイズの低下を認めると、フロー識別・振り分け部22にACK分割を要求する。
輻輳ウィンドウ低下判断部30には、重複ACKをカウントするための重複ACK計測テーブルと、転送タイムアウトであるか否かを判断するための情報を記録するための転送タイマ計測テーブルが格納されている。重複ACK計測テーブルには、輻輳ウィンドウのサイズが低下したか否かの判定基準となる重複閾値の情報が予め登録されている。また、重複ACK計測テーブルには、送信したACKパケットのACKナンバと、重複ACKを受け取った回数である重複ACKカウンタが記録される。転送タイマ計測テーブルには、転送タイムアウトであるか否かの判定基準となる転送タイムアウト閾値の情報が予め登録されている。
なお、フロー識別・振り分け部22、伝搬遅延時間算出部23、ウィンドウサイズ算出部27、広告ウィンドウサイズ書き込み部28、ACK分割部29および輻輳ウィンドウ低下判断部30について、それぞれ専用の回路を設けてもよいが、エッジノード11にCPU(Central Processing Unit)(不図示)を設け、それらの処理のうちの一部または全部をCPUに実行させてもよい。この場合プログラムを格納するためのメモリ(不図示)もエッジノードに設ける。
次に、図2に示したフロー識別・振り分け部22によるパケット振り分け処理を詳細に説明する。
図3はフロー識別・振り分け部によるパケット振り分け処理を説明するための図である。
データ送信端末14とデータ受信端末15間でコネクションが確立されると、データの転送が開始される。エッジノード11のフロー識別・振り分け部22は、データ受信端末15からのACKパケットを受信すると、サービス対象フローのACKパケットか否か判定をする。サービス対象フローのACKパケットであれば、フロー識別・振り分け部22は、分割対象のACKか否か判定する。
上記判定でACKパケットが分割非対象ACKである場合、フロー識別・振り分け部22は、分割非対象ACKを出力線22aを介して広告ウィンドウサイズ書き込み部28に送る。上記判定でACKパケットがサービス対象フローのACKパケットであり、かつ、フロー識別・振り分け部22が輻輳ウィンドウ低下判断部30からACK分割要求を受けている場合、フロー識別・振り分け部22は、そのACKパケットを出力線22bを介してACK分割部29に送る。一方、受け取るパケットがサービス非加入ユーザによるパケットであるサービス非加入ユーザパケットやデータパケットであれば、フロー識別・振り分け部22はそれらのパケットを出力線22cを介してデータ送信部24に送る。
次に、往復伝播遅延時間を計測する際の動作手順を説明する。図4は、往復伝播遅延時間を計測するときのエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。
図4を参照すると、データ送信端末14側のエッジノード11において、フロー識別・振り分け部22がSYN(同期)パケットを観測すると(ステップ101)、サービス対象フローのユーザ情報と共に往復伝搬遅延時間17の計測開始要求を伝搬遅延時間算出部23に送る(ステップ102)。これにより伝搬遅延時間算出部23は往復伝搬遅延時間17の計測を開始する。その後、フロー識別・振り分け部22は、SYNパケットに対するSYN/ACKパケットを観測する(ステップ103)。
続いて、フロー識別・振り分け部22は、SYN/ACKに対するACKパケットを観測すると(ステップ104)、ユーザ情報と共に往復伝搬遅延時間17の計測終了要求を伝搬遅延時間算出部23に送る(ステップ105)。これにより伝搬遅延時間算出部23は往復伝搬遅延時間17の計測を終了する。伝搬遅延時間算出部23は、往復伝搬遅延時間17の計測を終えると、計測した往復伝搬遅延時間17をユーザ情報と共に往復伝搬遅延時間報告としてフロー情報保持部26に通知する(ステップ106)。
次に、ウィンドウサイズを算出する際の動作手順を説明する。図5は、ウィンドウサイズを算出するときのエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。
フロー情報保持部26が往復伝播遅延時間算出部23から往復伝播遅延時間報告を受信すると(ステップ201)、ウィンドウサイズ算出部27に対して、往復伝搬遅延時間17およびユーザ情報と共に、帯域保証ウィンドウ計算要求をウィンドウサイズ算出部27に対して通知する(ステップ202)。ウィンドウサイズ算出部27は、帯域保証ウィンドウ計算要求の通知を受けると、一緒に受け取ったユーザ情報を基にして、帯域情報保持部25に対してユーザ情報に対応する保証帯域の情報を要求する(ステップ203)。
帯域情報保持部25は、ウィンドウサイズ算出部27からの要求に応じて保証帯域の情報を返送する(ステップ204)。ウィンドウサイズ算出部27は、往復伝搬遅延時間17と保証帯域の情報を受信すると、それらの情報を基にして、データ送信端末14が保証帯域以内でデータを送出可能なウィンドウサイズを算出する(ステップ205)。このとき保証帯域と一致するレートでデータが送出されるようなウィンドウサイズ(BGWNDに相当)が好適である。
このウィンドウサイズは、例えば、次の式(1)により求めることができる。MSSは最大セグメントサイズであり、HeaderはLayer2,3,4のヘッダサイズの和である。
Figure 0004766703
次に、ACKパケットにウィンドウサイズを書き込む際の動作手順を説明する。図6は、ACKパケットに広告ウィンドウサイズを書き込むときのエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。
図6を参照すると、まずウィンドウサイズ算出部27がサービス対象フローのウィンドウサイズを算出する(ステップ301)。続いて、ウィンドウサイズ算出部27は算出したウィンドウサイズと、そのサービス対象フローのユーザ情報を広告ウィンドウサイズ書き込み部28に通知する(ステップ302)。広告ウィンドウサイズ書き込み部28は、ウィンドウサイズ算出部27から通知されたウィンドウサイズの値を、フロー識別・振り分け部22から受け取るACKパケットのウィンドウフィールドに書き込む(ステップ303)。広告ウィンドウサイズ書き込み部28で広告ウィンドウサイズが書き込まれたACKパケットはデータ送信部24に送られる。続いて、ウィンドウサイズ算出部27は算出したウィンドウサイズと、そのサービス対象フローのユーザ情報をACK分割部29に通知する(ステップ304)。
次に、輻輳ウィンドウ低下判断部30が転送タイムアウトを認識した際の動作手順を説明する。図7は、輻輳ウィンドウ低下判断部30が転送タイムアウトを認識し、ACK分割要求をフロー識別・振り分け部22に通知する際のエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。
図7を参照すると、まずフロー識別・振り分け部22にサービス対象ユーザのデータパケットが到着すると(ステップ401)、フロー識別・振り分け部22は、輻輳ウィンドウ低下判断部30に対してユーザ情報と転送タイマ計測要求を通知する(ステップ402)。輻輳ウィンドウ低下判断部30は、フロー識別・振り分け部22からステップ402の通知を受けると、転送タイマの計測を開始し、転送タイマ計測開始時刻とユーザ情報を輻輳ウィンドウ低下判断部30内に存在する転送タイマ計測テーブルに書き込む(ステップ403)。
続いて、フロー識別・振り分け部22にサービス対象ユーザのACKパケットが到着すると(ステップ404)、フロー識別・振り分け部22は、輻輳ウィンドウ低下判断部30に対してユーザ情報と転送タイマ計測停止要求を通知する(ステップ405)。輻輳ウィンドウ低下判断部30は、フロー識別・振り分け部22からステップ405の通知を受けると、転送タイマの計測を終了し、転送タイマ計測終了時刻とユーザ情報を輻輳ウィンドウ低下判断部30内に存在する転送タイマ計測テーブルに書き込む(ステップ406)。
そして、輻輳ウィンドウ低下判断部30は、転送タイマ計測を終了すると、転送タイマ計測終了時刻と転送タイマ計測開始時刻の差をとり、転送タイムアウト閾値と比較することで転送タイムアウトが発生したかを認識する(ステップ407)。輻輳ウィンドウ低下判断部30は、ステップ407の判定で転送タイムアウトが発生したと認識した場合、輻輳ウィンドウのサイズが低下したと認識し、フロー識別・振り分け部22に対してACK分割要求を通知する(ステップ408)。
なお、データパケットとACKパケットとの対応付けは、データパケットのシーケンスナンバとACKパケットのACKナンバで行う。通常、データパケットのシーケンスナンバにMSSを足した数字のACKナンバのACKパケットが、そのデータパケットに対応する応答確認のためのパケットとなる。また、データパケットとACKパケットとの対応付けは、この場合に限らず、例えば、ウィンドウサイズに対応して複数のデータパケットを連続して送信した場合には、複数のデータパケットのうちの最初のデータパケットと最後のデータパケットに対応するACKパケットとで対応付けをしてもよい。
次に、輻輳ウィンドウ低下判断部30が重複ACKを認識した際の動作手順を説明する。図8は、輻輳ウィンドウ低下判断部30が重複ACKを認識し、ACK分割要求をフロー識別・振り分け部22に通知する際のエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。
図8を参照すると、まずフロー識別・振り分け部22にサービス対象ユーザのACKパケットが到着すると(ステップ501)、フロー識別・振り分け部22は、輻輳ウィンドウ低下判断部30に対して重複ACK計測要求としてユーザ情報とそのACKパケットのACKナンバを送信する(ステップ502)。輻輳ウィンドウ低下判断部30は、フロー識別・振り分け部22からステップ502の通知を受けると、ACKナンバとユーザ情報にしたがって輻輳ウィンドウ低下判断部30内に存在する重複ACK計測テーブル内を参照し、フロー識別・振り分け部22から通知されたACKが重複ACKであるか否かを確認する(ステップ503)。
重複ACK計測テーブルを参照した結果、フロー識別・振り分け部22から通知されたACKが重複ACKではない場合、輻輳ウィンドウ低下判断部30は、重複ACK計測テーブル内の重複ACKカウンタをクリアする(ステップ504)。一方、フロー識別・振り分け部22から通知されたACKが重複ACKである場合、重複ACK計測テーブル内の重複ACKカウンタに1を加える(ステップ505)。ステップ505の後、重複ACKカウンタが重複閾値を超えているか否かを判定し(ステップ506)、重複ACKカウンタが重複閾値を超えている場合、輻輳ウィンドウのサイズが低下したと認識し、フロー識別・振り分け部22に対して、ユーザ情報と共にACK分割要求を通知する(ステップ507)。
なお、重複閾値は、1以上の整数であればよく、予め設定しておいてもよく、ネットワークの状況に応じて更新するようにしてもよい。
次に、ACK分割部29がACKを分割する際の動作手順を説明する。図9は、ACK分割部29がACKを分割する際のエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。
図9を参照すると、まずフロー識別・振り分け部22は、ACK分割要求を受け取った際に(ステップ601)、ACK分割要求に伴って通知されたユーザ情報にしたがって、ユーザ情報に該当するACKパケットをACK分割部29に転送する(ステップ602)。ACK分割部29はACKパケットを受け取ると、そのACKパケットを分割する(ステップ603)。その際、1つのACKパケットの分割数を次のようにして決める。
ACKパケットを分割しすぎると、輻輳がアクセス網内で発生し逆に輻輳ウィンドウを低下させてしまう可能性がある。そのため、ACKパケットによって占有される帯域が保証帯域よりも小さくなるようにする。1つのACKパケットあたりの分割数としては、データパケットとACKパケットのサイズ比(25:1)を参考に最大25分割とするのが最良である。以下では、分割したACKパケットのそれぞれを分割ACKパケットと称する。
ACK分割部29は、フロー識別・振り分け部22からACKの分割の要求を受けると、データ送信端末14宛に続けて転送する2つのACKパケットの間に相当する分割ACKパケットを、24個以下で複数生成する。以下に、具体例を説明する。
ACKナンバ「1000」のACKパケットが重複ACKであるとすると、データ送信端末14では輻輳ウィンドウのサイズが低下する。その後にACKナンバ「2000」のACKパケットが到達すると、ACK分割部29は、ACKナンバ「1000」と「2000」の間のACKナンバをそれぞれ有する分割ACKパケットを生成する。ACKナンバが「1001」、・・・、「1024」の分割ACKパケットが生成されれば、ACKナンバ「1000」と「2000」の間が25分割されたことになる。ただし、各分割ACKパケットについて、ACKナンバ以外の情報は、元のACKナンバ「2000」のACKパケットの情報を複写する。
ACK分割部29は、上述のようにして生成した分割ACKパケットをACKナンバの一番小さいものから順に広告ウィンドウ書き込み部28に渡す。分割ACKパケットのACKパケットは広告ウィンドウ書き込み部28およびデータ送信部24を介してACKナンバの小さい方から順にデータ送信端末14に届けられ、最後にACKナンバ「2000」のACKパケットがデータ送信端末14に届けられる。データ送信端末14は、一度、輻輳ウィンドウのサイズを低下させてしまっているが、ACKナンバ「1000」と「2000」の間の分割ACKパケットを多く受け取ることで、輻輳ウィンドウのサイズを早期に向上させようとする。
データ送信端末14の輻輳ウィンドウのサイズをスループット最大限まで回復させるには、ステップ603におけるACK分割処理が1回だけでは不充分であることも考えられる。そこで、スループットが最大限まで回復するまで、ACKパケットの分割数をカウントし、次のようにしてACKパケットの分割を行う。
分割ACKパケットの数の総和をACK分割数と称すると、ACK分割数Nは、ウィンドウサイズ算出部27から通知されたBGWNDをもとにした式(2)を満たす値のうち最大整数にするのが最良である。
Figure 0004766703
ACK分割部29は、ACK分割数Nが式(2)を満たす最大整数になるまでステップ603のACK分割処理を繰り返し(ステップ605)、ACK分割数Nが式(2)を満たす最大整数に達すると、フロー識別・振り分け部22に対して、ACKパケットを自分に転送しなくてよい旨の転送解除要求を通知する(ステップ606)。
以下に、具体例を用いて説明する。ACK分割部29は、ステップ603でACKナンバ「1000」と「2000」の間を25分割して24個の分割ACKパケットを生成すると、ACK分割数Nが式(2)を満たしているか否かを判定する(ステップ605)。満たしていれば、分割ACKパケットの数を記録し、生成した分割ACKパケットを広告ウィンドウ書き込み部28に渡す。続いて、ACK「3000」のACKパケットが到達すると、ステップACKナンバ「2000」と「3000」の間を25分割して24個の分割ACKパケットを生成し、ステップ605の判定で「No」であれば、既に記録した分割ACKパケットの数に24個を加算し、生成した分割ACKパケットを広告ウィンドウ書き込み部28に渡す。
ステップ603を繰り返し、ACK分割部29は、ステップ605で、ACK分割数Nの値が式(2)の右辺の値を超えていると、右辺の値以下で最大整数を求め、25分割の分割数を減らしてACK分割数Nが式(2)を満たす分割数を求める。求めた分割数で生成した分割ACKパケットを広告ウィンドウ書き込み部28に渡すとともに、フロー識別・振り分け部22に対して、ACKパケットの転送解除要求を通知する(ステップ606)。
このようにして、データ送信端末側の輻輳ウィンドウのサイズが一度低下してしまっても、保証される帯域値までスループットをより早く回復させることができる。保証される帯域値を知らない装置がACK分割処理を行う際、保証される帯域までスループットを上昇させるのに適したACK数がわからないという問題あるが、本実施形態では、スループットを回復できるまでのACK分割数を求めているため、その問題が起きることを防ぐことができる。
本実施形態によるデータ通信システムの一構成例を示すブロック図である。 本実施形態のエッジノードの一構成例を示すブロック図である。 フロー識別・振り分け部によるパケット振り分けを説明するための図である。 往復伝搬遅延時間を計測する時のエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。 ウィンドウサイズを算出するときのエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。 ACKパケットに広告ウィンドウサイズを書き込むときのエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。 輻輳ウィンドウ低下判断部による転送タイムアウト発生の判断からACK分割要求までのエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。 輻輳ウィンドウ低下判断部による重複ACK発生の判断からACK分割要求までのエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。 ACK分割部にACK分割からACK分割停止でのエッジノード内のブロック間の信号のやりとりを示すシーケンス図である。
符号の説明
11,12 エッジノード
13 帯域管理サーバ
14 データ送信端末
15 データ受信端末
16 帯域保証ネットワーク
17 往復伝搬遅延時間
21 データ受信部
22 フロー識別・振り分け部
23 伝搬遅延時間算出部
24 データ送信部
25 帯域情報保持部
26 フロー情報保持部
27 ウィンドウサイズ算出部
28 広告ウィンドウサイズ書き込み部
29 ACK分割部
30 輻輳ウィンドウ低下判断部

Claims (9)

  1. データ送信端末からデータ受信端末にデータ送信される帯域が保証された帯域保証ネットワークにおいて前記データ送信端末と前記データ受信端末の間に設けられたエッジノードであって、
    前記帯域保証ネットワークにて前記データ送信端末から前記データ受信端末へのサービス対象フローに割り当てられた保証帯域の情報を保持する帯域情報保持部と、
    前記サービス対象フローの伝播遅延時間を計測する伝播遅延時間算出部と、
    前記帯域情報保持部に保持されている前記サービス対象フローの保証帯域の情報と、前記伝播遅延時間算出部で計測された伝播遅延時間とから、前記サービス対象フローのデータが前記保証帯域以内の帯域となるウィンドウサイズを算出するウィンドウサイズ算出部と、
    前記ウィンドウサイズ算出部で算出された前記ウィンドウサイズを前記データ送信端末の帯域制御に使用させるために前記データ送信端末に通知する広告ウィンドウサイズ書き込み部と、
    前記データ送信端末におけるデータ送信レートを監視する輻輳ウィンドウ低下判断部と、
    前記輻輳ウィンドウ低下判定部が前記データ送信レートの低下を認識すると、前記データ送信端末に転送される、前記サービス対象フローのACKパケットを分割するACK分割部と、
    を有するエッジノード。
  2. 前記輻輳ウィンドウ低下判断部は、
    前記サービス対象フローのACKパケットの重複受信回数が予め設定された閾値に達すること、または、前記サービス対象フローのデータパケットの受信時刻と該サービス対象フローのACKパケットの受信時刻との間の時間が予め設定された閾値を超えることにより、前記データ送信端末における前記データ送信レートの低下を認識する、請求項1記載のエッジノード。
  3. 前記ACK分割部は、
    前記輻輳ウィンドウ低下判断部で前記データ送信レートの低下が認識されると、前記ウィンドウサイズ算出部で算出された前記ウィンドウサイズにしたがって、前記サービス対象フローのACKパケットを分割したときのパケットである分割ACKパケットの数の上限値を算出する、請求項1または2に記載のエッジノード。
  4. 前記ACK分割部は、
    前記上限値を超えないように生成した前記分割ACKパケットに対して、前記データ受信端末より受け取った前記ACKパケットのうち最後に受け取ったACKパケットのACKナンバよりも大きく、かつ、それぞれ異なるACKナンバを付与する、請求項3に記載のエッジノード。
  5. 前記サービス対象フローを識別してフローを振り分けるフロー識別・振り分け部と、
    前記サービス対象フローのコネクション情報および前記伝播遅延時間を記憶するフロー情報保持部と、をさらに有する請求項1から4のいずれか1項記載のエッジノード。
  6. データ送信端末からデータ受信端末にデータ送信される帯域が保証された帯域保証ネットワークにおいて前記データ送信端末から前記データ受信端末へのデータ送信の帯域を制御するための帯域制御方法であって、
    前記帯域保証ネットワークにて前記データ送信端末から前記データ受信端末へのサービス対象フローに割り当てられた保証帯域の情報を保持し、
    前記サービス対象フローの前記帯域保証ネットワークにおける伝播遅延時間を計測し、該伝播遅延時間と前記保証帯域の情報から、前記サービス対象フローのデータが前記保証帯域以内の帯域となるウィンドウサイズを算出し、
    算出された前記ウィンドウサイズを前記データ送信端末の帯域制御に使用し、
    前記データ送信端末におけるデータ送信レートを監視し、
    前記データ送信端末における前記データ送信レートが低下すると、前記サービス対象フローのACKパケットを分割する、帯域制御方法。
  7. 前記データ送信端末における前記データ送信レートが低下したとの判定は、
    前記サービス対象フローのACKパケットの重複受信回数が予め設定された閾値に達すること、または、前記サービス対象フローのデータパケットの受信時刻と該サービス対象フローのACKパケットの受信時刻との間の時間が予め設定された閾値を超えることにより行う、請求項6記載の帯域制御方法。
  8. 前記サービス対象フローのACKパケットを分割する際、前記ウィンドウサイズ算出部で算出された前記ウィンドウサイズにしたがって、前記サービス対象フローのACKパケットを分割したときのパケットである分割ACKパケットの数の上限値を算出する、請求項6または7に記載の帯域制御方法。
  9. 前記サービス対象フローのACKパケットを分割する際、前記上限値を超えないように生成した前記分割ACKパケットに対して、前記データ受信端末より受け取った前記ACKパケットのうち最後に受け取ったACKパケットのACKナンバよりも大きく、かつ、それぞれ異なるACKナンバを付与する、請求項8に記載の帯域制御方法。
JP2008046104A 2008-02-27 2008-02-27 エッジノードおよび帯域制御方法 Expired - Fee Related JP4766703B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008046104A JP4766703B2 (ja) 2008-02-27 2008-02-27 エッジノードおよび帯域制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008046104A JP4766703B2 (ja) 2008-02-27 2008-02-27 エッジノードおよび帯域制御方法

Publications (2)

Publication Number Publication Date
JP2009206733A JP2009206733A (ja) 2009-09-10
JP4766703B2 true JP4766703B2 (ja) 2011-09-07

Family

ID=41148583

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008046104A Expired - Fee Related JP4766703B2 (ja) 2008-02-27 2008-02-27 エッジノードおよび帯域制御方法

Country Status (1)

Country Link
JP (1) JP4766703B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6464911B2 (ja) * 2015-05-01 2019-02-06 富士通株式会社 情報処理システム、情報処理システムの制御方法及び受信装置
US11153212B2 (en) * 2019-11-20 2021-10-19 International Business Machines Corporation Transmission frequency management for edge devices of an interconnected distributed network

Also Published As

Publication number Publication date
JP2009206733A (ja) 2009-09-10

Similar Documents

Publication Publication Date Title
JP6553196B2 (ja) トラフィックフローの監視
TWI487389B (zh) 避免網路壅塞的方法及其裝置
EP2760182B1 (en) Data communication apparatus, data transmission method, and computer system
US20160094465A1 (en) Apparatus and Method for Controlling Data Flow in Communication System
WO2012127275A1 (en) Buffer sizing for multi-hop network
US11102273B2 (en) Uplink performance management
EP2978171A1 (en) Communication method, communication device, and communication program
EP3560152B1 (en) Determining the bandwidth of a communication link
US10050856B2 (en) Communication device, network available bandwidth estimation method in communication device, and storage medium on which network available bandwidth estimation program has been recorded
JP4698645B2 (ja) フロー制御装置およびフロー制御方法
KR101039550B1 (ko) 데이터 전송률 계산 방법 및 이를 이용한 대역폭 설정 방법
JP5039677B2 (ja) エッジノードおよび帯域制御方法
Abadleh et al. Comparative analysis of TCP congestion control methods
JP4766703B2 (ja) エッジノードおよび帯域制御方法
JP5087595B2 (ja) エッジノード、ウィンドウサイズ制御方法およびプログラム
JP5723307B2 (ja) パケット監視システム
CN113950099B (zh) 一种网络拥塞控制方法及设备
WO2019124290A1 (ja) 送信データ量制御装置、方法および記録媒体
US9882751B2 (en) Communication system, communication controller, communication control method, and medium
JP4828555B2 (ja) ノード装置および帯域制御方法
JP4774411B2 (ja) エッジノードおよび帯域制御方法
JP2015002397A (ja) 通信装置及び通信システム及び通信方法
JP6897769B2 (ja) データ送信装置、方法およびプログラム
JP4797033B2 (ja) Tcpフローレート制御エッジノードにおけるフローレート制御方法及びエッジノード
JP4977677B2 (ja) エッジノードおよび帯域制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110525

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110608

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110613

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140624

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees