図面 (/)

技術 フロ—制御方法

出願人 株式会社超高速ネットワーク・コンピュータ技術研究所
発明者 榎本正
出願日 1999年1月22日 (22年1ヶ月経過) 出願番号 1999-014110
公開日 2000年8月4日 (20年6ヶ月経過) 公開番号 2000-216811
状態 拒絶査定
技術分野 広域データ交換
主要キーワード 最小ウィンドウ 平均時間間隔 周期プログラム 送信済データ 更新時間間隔 受信時間間隔 コンファメーション 送信履歴データ
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2000年8月4日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (10)

課題

急激なスループットの変動にも対応でき、しかも、ノイズ的な変動に過敏に反応することを抑制する。

解決手段

今回受信した(n)−ACK送達確認されたデータと所定個数を超えないもっとも以前に受信した(n)−ACKで送達が確認されたデータとの差分量を、両(n)−ACKの受信時刻差除算して最新のスループットを算出し、この推定スループットに基づき送信ウィンドウサイズを算出する。また、急激な送信ウィンドウサイズの変化があった場合にも、送信されるデータが推定したスループットを越えないようにするため、1つの短い周期区切り周期内送信可能なデータ量を周期の時間と推定スループットにより求め、その周期内に送信可能な(n)−DATA量に制限する。

概要

背景

一般に、OSI参照モデルトランスポート層(第4層)では、TCPなどのコネクション型通信プロトコルを用いて、ネットワークに依存せず、各通信端末で動作する上位アプリケーション間すなわちエンド・ツー・エンドのデータ転送サービスが提供される。

このような通信プロトコルでは、トラフィック過負荷によりデータ転送の渋滞を回避するため、フロー制御として、通信相手との間の実質的な転送速度すなわちスループットに基づいて、送信ウィンドウサイズを制御するものとなっている。従来のフロー制御では、所定の時間の間に通信相手からのACKにより送達が確認されたデータ量をその固定時間で割ることにより、スループットを推定するものとなっていた。

概要

急激なスループットの変動にも対応でき、しかも、ノイズ的な変動に過敏に反応することを抑制する。

今回受信した(n)−ACKで送達確認されたデータと所定個数を超えないもっとも以前に受信した(n)−ACKで送達が確認されたデータとの差分量を、両(n)−ACKの受信時刻差除算して最新のスループットを算出し、この推定スループットに基づき送信ウィンドウサイズを算出する。また、急激な送信ウィンドウサイズの変化があった場合にも、送信されるデータが推定したスループットを越えないようにするため、1つの短い周期区切り周期内送信可能なデータ量を周期の時間と推定スループットにより求め、その周期内に送信可能な(n)−DATA量に制限する。

目的

しかしながら、このような従来のフロー制御方法では、所定の固定時間における送達確認データ量をスループットとして算出しているため、新たなスループットを得るためには少なくとも固定時間だけ時間が必要となり、スループットの変化に遅れなく追従したフロー制御を実行することができないという問題があった。さらに、受信応答の平均受信数が固定時間の間では1未満となる低速回線には適用が難しいという問題点があった。本発明はこのような課題を解決するものであり、スループットの変化にも忠実に対応でき、低速回線にも適用可能であり、しかも、ノイズ的な変動に過敏に反応することを抑制する仕組みも備えたフロー制御方法を提供することを目的としている。

効果

実績

技術文献被引用数
5件
牽制数
7件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

送信側から送信した転送データが受信側で受信されたことを示す受信側からの受信応答に基づいて、順次、送信側から転送データを送信するとともに、送信側で推定した受信側へのデータ転送に対するスループットに応じて送信ウィンドウサイズを変更することによりデータ転送量を制御するフロー制御方法において、送信側では、所定範囲内でもっとも以前に受信された第2の受信応答により確認されたデータ以降、新たに受信した第1の受信応答により確認されたデータまでのデータ量を、第1の受信応答を受信した時刻と第2の受信応答を受信した時刻との時間差除算することにより推定スループットを算出し、この推定スループットと、転送データの送信からそれぞれの転送データに対する受信応答の検出までに要する受信応答検出時間(RTT)のうち最も小さい最小受信応答検出時間との積を用いて、送信ウィンドウサイズを、直接、算出することを特徴とするフロー制御方法。

請求項2

請求項1記載のフロー制御方法において、所定の時間間隔の間に転送可能な最大の送信データ量を、前記推定スループットと前記所定の時間間隔との積で求められる周期内送信可能データ量までに制限することにより、送信データ量が推定スループットを越えないように制御することを特徴とするフロー制御方法。

技術分野

0001

本発明は、フロー制御方法に関し、特に送信側で推定したスループットに基づいて送信ウィンドウサイズを変更することによりフロー制御を行うフロー制御方法に関するものである。

背景技術

0002

一般に、OSI参照モデルトランスポート層(第4層)では、TCPなどのコネクション型通信プロトコルを用いて、ネットワークに依存せず、各通信端末で動作する上位アプリケーション間すなわちエンド・ツー・エンドのデータ転送サービスが提供される。

0003

このような通信プロトコルでは、トラフィック過負荷によりデータ転送の渋滞を回避するため、フロー制御として、通信相手との間の実質的な転送速度すなわちスループットに基づいて、送信ウィンドウサイズを制御するものとなっている。従来のフロー制御では、所定の時間の間に通信相手からのACKにより送達が確認されたデータ量をその固定時間で割ることにより、スループットを推定するものとなっていた。

発明が解決しようとする課題

0004

しかしながら、このような従来のフロー制御方法では、所定の固定時間における送達確認データ量をスループットとして算出しているため、新たなスループットを得るためには少なくとも固定時間だけ時間が必要となり、スループットの変化に遅れなく追従したフロー制御を実行することができないという問題があった。さらに、受信応答の平均受信数が固定時間の間では1未満となる低速回線には適用が難しいという問題点があった。本発明はこのような課題を解決するものであり、スループットの変化にも忠実に対応でき、低速回線にも適用可能であり、しかも、ノイズ的な変動に過敏に反応することを抑制する仕組みも備えたフロー制御方法を提供することを目的としている。

課題を解決するための手段

0005

このような目的を達成するために、本発明によるフロー制御方法は、送信側では、所定範囲内でもっとも以前に受信された第2の受信応答により確認されたデータ以降、新たに受信した第1の受信応答により確認されたデータまでのデータ量を、第1の受信応答を受信した時刻と第2の受信応答を受信した時刻との時間差除算することにより推定スループットを算出し、この推定スループットと、転送データの送信からそれぞれの転送データに対する受信応答の検出までに要する受信応答検出時間(RTT)のうち最も小さい最小受信応答検出時間との積を用いて、送信ウィンドウサイズを、直接、算出するようにしたものである。

0006

また、所定の時間間隔の間に転送可能な最大の送信データ量を、前記推定スループットと前記所定の時間間隔との積で求められる周期内送信可能データ量までに制限することにより、送信データ量が推定スループットを越えないように制御するようにしたものである。

発明を実施するための最良の形態

0007

次に、本発明について図面を参照して説明する。図1は本発明の一実施形態であるフロー制御方法が適用される通信プロトコルのデータ転送制御部を示す説明図である。以下、OSI参照モデルの第n層で用いられる通信プロトコルのデータ転送制御部を例に説明する。

0008

第n層には、通信相手との間で所定のコネクションを設定・解放するコネクション設定解放制御部11と、推定したスループットに基づいてフロー制御を行うデータ転送制御部12とが設けられている。各層は、隣接上位層からの「リクエスト(要求)」に応じて「コンファメーション(確認)」を返送し、また必要に応じて「インディケーション(指示)」を送信し「レスポンス応答)」を受信することにより、隣接上位層との間で各種制御およびデータのやりとりが行われる。

0009

また、通信相手の(n)層との間では、上位層から要求された送信データ(n)−DATAを転送し、受信側では送信側に対して受信確認(n)−ACKを送信することにより、(n)−DATAの受信を送信側に通知する。なお、(n)−DATA内に(n)−ACKと同じ情報を設定することにより(n)−DATAが(n)−ACK機能を併せ持つプロトコルの場合、以下で用いる(n)−ACKには(n)−ACK機能を併せ持つ(n)−DATAが含まれているものとする。

0010

(n)−DATA送信履歴14はn層でのデータ送信履歴情報であり、(n)−ACK受信履歴15はn層での受信側からの受信応答の受信履歴である。最小RTT16は、過去の受信応答検出時間(ラウンドトリップタイム:RTT)のうち最小のRTTであり、最大ACK間隔26はスループット計算に直前に受信した(n)−ACKと最大何個前のACKの2つのACKを使用するかを表している。

0011

送信ウィンドウサイズ17は本方式で計算した送信ウィンドウサイズ、推定スループット18は本方式で計算した最新の推定スループット、相手受信ウィンドウサイズ19は通信相手から通知された相手の受信ウィンドウサイズである。送達未確認データ量20は送信済データのうち相手から受信応答がなされていないデータ量である。

0012

また、送信済データ量更新時間間隔25は周期内送信済データ量を更新するプログラム起動される一定周期の時間間隔であり、周期内送信可能データ量22は本方式により計算されたその周期内に送信可能なデータ量である。周期内送信済データ量21は、その周期内に送信済のデータ量であり周期プログラムにより0に初期設定される。

0013

さらに、周期内送信可能データ量(繰り越し)23は、推定スループット18が小さいために1周期内に1つの(n)−DATAを送信できない場合においても、周期内送信データ量の端数の累積をとることにより、複数回の送信済データ量更新周期の後に1つの(n)−DATA送信することを可能とするためのデータである。送信データ量27は、(n)−DATAを送信する処理において、その時点での送信可能データ量を示すデータである。

0014

次に、図2を参照して、本発明の動作について説明する。図2本発明のフロー制御動作を示す状態遷移フローである。以下では、OSI参照モデル第n層のデータ転送処理におけるフロー制御を例に説明する。なお、ここでは、データ転送開始後の処理動作について説明し、他の事象、例えばデータ転送の開始・終了時などの処理動作についての説明は省略する。

0015

送信側第n層のデータ制御部により、送信側から送信した第n層のデータ、すなわち(n)−DATAが送信される。これが受信側で正常に受信された場合、受信側第n層データ転送制御部(図示せず)は、受信した(n)−DATAの受信確認、すなわち(n)−ACKを送信側に対して返送する。

0016

なお、この(n)−ACKにより、受信確認されたデータの位置を示す受信シーケンス番号(アクノリッジナンバ:ACK)や、受信側で受信可能なデータ量を示す受信ウィンドウサイズ(ウィンドウ:WNDW)などの制御情報が送信側に通知される。

0017

送信側のデータ転送制御部12では、ACKまたはタイムアウトまたは送信済データ量更新周期待ち状態(以下、イベント待ち状態と記す:ステップ100)において、受信側からの(n)−ACKを受信した場合には(ステップ101)、その(n)−ACK受信シーケンス番号を確認し、(n)−ACK受信履歴15を参照して、前回通知された受信シーケンス番号と今回通知されたものを比較する(ステップ102)。

0018

ここで、受信シーケンス番号が更新されていない場合は(ステップ102:NO)、受信側で新たにデータが受信処理されておらず、送信ウィンドウサイズの更新処理が不要であると判断して、イベント待ち状態(ステップ100)に戻る。また、受信シーケンス番号が更新されている場合は(ステップ102:YES)、図3に示すような、ACK受信履歴更新処理(ステップ103)に移行する。

0019

図3はACK受信履歴更新処理を示すフローチャートである。まず、(n)−ACK受信履歴15に、今回受信した(n)−ACKの受信時刻確認データすなわち受信シーケンス番号を登録し(ステップ30)、送達未確認データ量20から、今回受信した(n)−ACKにて送達が確認されたデータ量を減算し(ステップ31)、処理を終了する。このACK受信履歴更新処理(ステップ103)の後、図4に示すような最小RTT算出処理(ステップ104)に移行する。

0020

図4は、最小RTT算出処理を示すフローチャートである。まず、(n)−ACK受信履歴15から今回受信した(n)−ACKの受信時刻をTrとして取得するとともに、(n)−DATA送信履歴14から、今回受信した(n)−ACKにより受信確認された(n)−DATA送信時刻Tsを取得する。そして、この受信時刻Trと送信時刻Tsとの時間差を求めることにより、今回受信した(n)−ACKに関する受信応答検出時間RTT(WRTT)を算出する(ステップ40)。

0021

ここで、今回得られたWRTTと、通信開始から今までに算出したRTTのうち最も小さい値の最小RTT16とを比較し(ステップ41)、今回得られたRTTの方が小さい場合にのみ(ステップ41:YES)、最小RTT16を更新記憶し(ステップ42)、処理を終了する。このように最小RTT算出処理104を実行した後、図5に示すような、推定スループット算出処理(ステップ105)を実行する。

0022

図5は推定スループット算出処理を示すフローチャートである。まず、(n)−ACK受信履歴15に登録されている履歴登録数をKとして取得する(ステップ50)。次に、Kが2以上かを判定し(ステップ51)、Kが1以下の場合は(ステップ51:NO)処理を終了する。一方、Kが2以上の場合は(ステップ51:YES)、Kと最大(利用)ACK間隔26とを比較し大きくない方をNとして取得する(ステップ52)。

0023

次に(n)−ACK受信履歴15と(n)−DATA送信履歴14とから、N個前の(n)−ACKにより受信が確認されたデータ以降から、今回受信した(n)−ACKにより受信が確認された(n)−DATAまでに受信が確認されたデータ量(m)を算出する。

0024

そして、(n)−ACK受信履歴15から、今回受信した(n)−ACKの受信時刻Tr(m)とN個前の(n)−ACK受信時刻Tr(m)との差で除算することにより、今回受信した(n)−ACKに基づく最新の推定スループットを算出し推定スループット18として記憶する(ステップ53)。このようにして、推定スループット算出処理(ステップ105)を実行した後、図6に示すような、送信ウィンドウサイズ(転送データ量)算出処理(ステップ106)を実行する。

0025

図6は、送信ウィンドウサイズ算出処理を示すフローチャートである。まず、(n)−ACK受信履歴15に登録されている履歴の登録数をKとして取得する(ステップ60)。次に、Kが2以上であるかどうかを判定し(ステップ61)、Kが1以下の場合は(ステップ61:NO)、送信ウィンドウサイズ17に最小ウィンドウサイズの2倍の値を設定して(ステップ62)、処理を終了する。

0026

一方、Kが2以上である場合は(ステップ61:YES)、最小RTT16と推定スループット18との積を相手受信ウィンドウサイズ19と比較し、大きくない方の値をaとして取得する(ステップ63)。そして、aと最小ウィンドウサイズの2倍の値とを比較し、小さくない方を送信ウィンドウサイズに設定し(ステップ64)、処理を終了する。

0027

なお、最小ウィンドウサイズは、通常、データ転送制御に用いるプロトコルによりあらかじめ設定されている。このようにして、送信ウィンドウサイズ算出処理(ステップ106)を実行することにより、最新の推定スループット18に基づく送信ウィンドウサイズ17を算出した後、図7(a)に示す周期内送信可能データ量算出処理(ステップ107)を実行する。

0028

図7(a)は周期内周期内送信可能データ量算出処理を示すフローチャートである。まず、(n)−ACK受信履歴15に登録されている履歴の登録数をKとして取得する(ステップ71)。次に、Kが2以上であるかどうかを判定し(ステップ72)、Kが1以下の場合は(ステップ72:NO)周期内送信可能データ量に最小ウィンドウサイズの2倍の値を設定する。

0029

一方、Kが2以上の場合は(ステップ72YES)、周期内送信済データ量更新時間間隔25と推定スループット18の積に周期内送信可能データ量(繰り越し)23を加えたものを周期内送信可能データ量22に設定する(ステップ74)。このようにして、周期内送信可能データ量22を算出した後に、図7(b)に示す送信可能データ量算出処理(ステップ108)を実行する。

0030

図7(b)は送信可能データ量算出処理を示すフローチャートである。まず、送信ウィンドウサイズ17から送達未確認データ量20を減算した値と、周期内送信可能データ量22から周期内送信済データ量21を減算した値のうち、大きくない方の値を送信可能データ量27に設定し(ステップ75)、処理を終了する。このようにして、送信可能データ量27を算出した後、送信待ちキュー24に送信待ちデータが存在しており、送信可能データ量27がその送信待ちデータのデータ量より小さくない条件が成り立つあいだ(ステップ109:YES)、次の処理を実行する。

0031

まず、送信待ちデータを送信した後(ステップ110)、送信可能データ量27から送信したデータのデータ量を減算し、周期内送信済データ量21および送達未確認データ量20のそれぞれに、送信したデータのデータ量を加え、(n)−DATA送信履歴に送信シーケンス番号と時刻を登録する(ステップ111)。一方、送信待ちキュー24に送信待ちデータが存在していない場合、または送信可能データ量27がその送信待ちデータのデータ量よりも小さくなった場合は(ステップ109:NO)、処理を終了してイベント待ち状態(ステップ100)に戻る。

0032

つぎに、イベント待ち状態(ステップ100)において、(n)−DATA送信から所定期間経過前に(n)−ACKが受信されなかった場合は、(n)−ACK待ちタイムアウトが発生する(ステップ112)。この場合は、図8に示す履歴データクリア処理(ステップ113)を実行する。

0033

図8は、履歴データクリア処理を示すフローチャートである。まず、ACK受信履歴データの登録数を0とすることにより、(n)−ACK受信履歴15をクリアする(ステップ80)。そして、DATA送信履歴データの登録数を0とすることにより(n)−DATAの送信履歴をクリアする(ステップ81)。

0034

続いて、送達未確認データ量20を0にし(ステップ82)、最小RTT16の値を十分大きい値(∝)として(ステップ83)、次の(n)−ACK受信時に算出されるRTTが最小RTT16として登録し直されるようにして処理を終了した後に、前述した図2の最小RTT算出処理(ステップ104)以降の処理を実行する。

0035

また、イベント待ち状態(ステップ100)において、送信済データ量更新時間間隔毎25に、送信済データ量更新周期の通知がなされ(ステップ115)、これに応じて図9に示す周期内送信済データ量更新処理(ステップ116)が実行される。図9は周期内送信済データ量更新処理を示すフローチャートである。まず、周期内送信可能データ量22から周期内送信済データ量21を減算して、周期内送信可能量22の残量を算出する(ステップ90)。

0036

この残量を1つの(n)−DATAにて送信可能な最大データ量である最大データ長で除算した剰余を、周期内送信可能データ量(繰り越し)23に設定する(ステップ91)。そして、周期内送信済データ量21を0に初期設定して(ステップ92)、処理を終了した後、前述の図2の送信可能データ量算出処理(ステップ108)以降を実行する。

発明の効果

0037

以上説明したように、本発明は、送信側において、所定範囲内でもっとも以前に受信された第2の受信応答(ACK)により確認されたデータ以降、新たに受信した第1の受信応答(ACK)により確認されたデータまでのデータ量を、第1の受信応答を受信した時刻と第2の受信応答を受信した時刻との時間差で除算することにより推定スループットを算出し、この推定スループットと、転送データの送信からそれぞれの転送データに対する受信応答の検出までに要する受信応答検出時間(RTT)のうち最も小さい最小受信応答検出時間との積を用いて、送信ウィンドウサイズを、直接、算出するようにしたものである。したがって、従来のように、所定の固定時間の間に通信相手からの受信応答により送達が確認された総データ量を、その固定時間で除算することにより、スループットを推定するものと比較して、受信応答が検出されるごとに新たなスループットを得ることができ、スループットの変化に遅れなく追従するフロー制御を実行することができる。

0038

また、例えば第nレイヤにおいて、(n−1)レイヤ以下の処理方法等の要因により、第nレイヤでのACKすなわち(n)−ACKの受信時間間隔が(n)−ACK受信毎に大きく変動する場合があるが、N個前の(n)−ACKと新たに受信した(n)−ACKの2つのACKを使用することによりこのようなノイズ的な成分を除去しながら、スループットの変化に遅れなく追随可能となる。これは、例えばノイズ成分を±δとし、(n)−ACKを受信する平均時間間隔をT_Ack_Intとしたときのスループット推定式分母が、N=1の場合はT_Ack_Int±2δであるのに対して、N個前の(n)−ACKを使用する場合はN×T_Ack_Int±2δとなって、ノイズ成分±δの影響が1/Nに減少するからである。さらに、スループットの検出周期が固定されてなく、所定時間間隔内の転送可能データ量の制限においても端数部分を次周期に繰り越す処理を行っているため、低速の通信回線にも適用できる。

0039

また、推定スループットが急激に増加しそれに伴い送信ウィンドウサイズが大幅に増加した場合、所定の時間間隔の間に転送可能な最大の送信データ量を、推定スループットと所定の時間間隔との積で求められる周期内送信可能データ量までに制限することにより、送信データ量が推定スループットを越えないように制御するようにしたものである。これにより、例えば通信開始時等に送信ウィンドウサイズが小さな初期値からスループットが初めて推定されることに伴い数百倍等に急激に増加した場合でも、推定スループット以下の割合でデータ転送が可能となり、ネットワークに推定スループットに基づく値を大幅に越える大量のデータを急激に送ることがなくなる。

図面の簡単な説明

0040

図1本発明の一実施の形態によるフロー制御方法が適用される通信プロトコルのデータ転送制御部を示す説明図である。
図2本発明のフロー制御の処理動作を示す状態遷移フローである。
図3ACK受信履歴更新処理を示すフローチャートである。
図4最小RTT算出処理を示すフローチャートである。
図5推定スループット算出処理を示すフローチャートである。
図6送信ウィンドウサイズ算出処理を示すフローチャートである。
図7周期内周期内送信可能データ量算出処理を示すフローチャート、および送信可能データ量算出処理を示すフローチャートである。
図8履歴データクリア処理を示すフローチャートである。
図9周期内送信済データ量更新処理を示すフローチャートである。

--

0041

11…設定解放制御部、12…データ転送制御部、13…プログラム、14…(n)−DATA送信履歴、15…(n)−ACK受信履歴、16…最小RTT、17…送信ウィンドウサイズ、18…推定スループット、19…相手受信ウィンドウサイズ、20…送達未確認データ量、21…周期内送信済データ量、22…周期内送信可能データ量、23…周期内送信可能データ量(繰り越し)、24…送信待ちキュー、25…送信済データ量更新時間間隔、26…最大ACK間隔、27…送信可能データ量。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ