(57)【要約】【課題】データフロー制御を行う複数のデータフローが一定量のバッファを共有する状況において、バッファサイズが小さい場合でも、各データフローの最大伝送レートを実現する。【解決手段】１以上のデータフローを送信する送信装置２と、１以上のデータフローを受信する受信装置３とを備え、受信装置３は、送信装置２から送信される１以上のデータフローのデータを一時蓄積するバッファ１０を備えるデータ伝送システム１において、受信装置３は、バッファ１０の空き容量と１以上のデータフローのネットワーク４の滞留状況とに基づき送信装置２に対して送信を許可する１以上のデータフローのデータ量を計算する手段としてのデータ量計算部１１を備える。【選択図】図１
2010200005.tif 000002
【特許請求の範囲】
【請求項１】
１以上のデータフローを送信する送信装置と、
１以上の上記データフローを受信する受信装置とを備え、
上記受信装置は、上記送信装置から送信される１以上の上記データフローのデータを一時蓄積するバッファを備えるデータ伝送システムにおいて、
上記受信装置は、上記バッファの空き容量と１以上の上記データフローの伝送路滞留状況とに基づき上記送信装置に対して送信を許可する１以上の上記データフローのデータ量を計算する手段を備え、
この計算する手段は、上記バッファの空き容量が伝送路滞留中である１以上の上記データフローの内のデータ量の最大値、あるいは、当該最大値から上位Ｎ件（Ｎは予め規定された自然数）までの値の合計値となるように上記データ量を計算する、
ことを特徴とするデータ伝送システム。
【請求項２】
１以上のデータフローを送信する送信装置と、
１以上の上記データフローを受信する受信装置とを備え、
上記受信装置は、上記送信装置から送信される１以上の上記データフローのデータを一時蓄積するバッファを備えるデータ伝送システムにおいて、
上記受信装置は、上記バッファの空き容量と１以上の上記データフローの伝送路滞留状況とに基づき上記送信装置に対して送信を許可する１以上の上記データフローのデータ量を計算する手段を備え、
この計算する手段は、上記バッファの全容量から伝送路滞留中の１以上の上記データフローの内のデータ量の最大値、あるいは、当該最大値から上位Ｎ件（Ｎは予め規定された自然数）までの値の合計値を減算した値を、さらに、上記バッファを使用している１以上の上記データフローのそれぞれに対して所定の条件に基づき分配する容量に基づいて上記データ量を設定する、
ことを特徴とするデータ伝送システム。
【請求項３】
請求項２記載のデータ伝送システムにおいて、
前記所定の条件は、１以上の前記データフローのそれぞれに対して前回許可した前記データ量と前記バッファ内に蓄積された１以上の前記データフローのそれぞれのデータ量とを比較し、その差分に応じて分配する容量を決定するという条件である、
ことを特徴とするデータ伝送システム。
【請求項４】
１以上のデータフローを送信する送信装置と、
１以上の上記データフローを受信する受信装置とを備え、
上記受信装置は、上記送信装置から送信される１以上の上記データフローのデータを一時蓄積するバッファを備えるデータ伝送システムにおいて、
上記受信装置は、上記バッファの空き容量と１以上の上記データフローの伝送路滞留状況とに基づき上記送信装置に対して送信を許可する１以上の上記データフローのデータ量を計算する手段を備え、
この計算する手段は、上記バッファの全容量から伝送路滞留中の１以上の上記データフローの内のデータ量の最大値、あるいは、当該最大値から上位Ｎ件（Ｎは予め規定された自然数）までの値の合計値を減算した値を、さらに、上記バッファを使用している１以上の上記データフローの本数で除算した均等値に基づいて上記データ量を設定する、
ことを特徴とするデータ伝送システム。
【請求項５】
１以上のデータフローを送信する送信装置と、
１以上の上記データフローを受信する受信装置とを備え、
上記受信装置は、上記送信装置から送信される１以上の上記データフローのデータを一時蓄積するバッファを備えるデータ伝送システムにおいて、
上記受信装置は、上記バッファの空き容量と１以上の上記データフローの伝送路滞留状況とに基づき上記送信装置に対して送信を許可する１以上の上記データフローのデータ量を計算する手段を備え、
上記受信装置は、受信したデータの位置情報を前記送信装置に通知する手段を備え、
上記送信装置は、
上記受信装置から通知された上記位置情報とこれから送信するデータの位置情報とを比較することにより上記送信装置から既に送信したが上記受信装置が未受信であるデータ量を算出する手段と、
この算出する手段の算出結果を上記受信装置に通知する手段と、
を備え、
上記計算する手段は、この通知する手段により通知された算出結果に基づき上記伝送路滞留状況を認識する、
ことを特徴とするデータ伝送システム。
【請求項６】
請求項５記載のデータ伝送システムにおいて、
前記送信装置は、前記受信装置に通知する手段として、送信するデータに前記算出結果を書き込む、
ことを特徴とするデータ伝送システム。
【請求項７】
１以上のデータフローを送信する送信装置と、
１以上の上記データフローを受信する受信装置とを備え、
上記受信装置は、上記送信装置から送信される１以上の上記データフローのデータを一時蓄積するバッファを備えるデータ伝送システムにおいて、
上記受信装置は、上記バッファの空き容量と１以上の上記データフローの伝送路滞留状況とに基づき上記送信装置に対して送信を許可する１以上の上記データフローのデータ量を計算する手段を備え、
この計算する手段は、データの受信レートと伝送路における往復伝播遅延時間との積により上記伝送路滞留状況を推定する、
ことを特徴とするデータ伝送システム。
【請求項８】
１以上のデータフローを送信する送信装置と、
１以上の上記データフローを受信する受信装置とを備え、
上記受信装置は、上記送信装置から送信される１以上の上記データフローのデータを一時蓄積するバッファを備えるデータ伝送システムにおいて、
上記受信装置は、上記バッファの空き容量と１以上の上記データフローの伝送路滞留状況とに基づき上記送信装置に対して送信を許可する１以上の上記データフローのデータ量を計算する手段を備え、
この計算する手段は、以前に送信を許可した１以上の上記データフローのデータ量に基づいて上記伝送路滞留状況を推定する、
ことを特徴とするデータ伝送システム。
【請求項９】
情報処理装置にインストールすることにより、その情報処理装置に、請求項１から８のいずれか１項記載のデータ伝送システムにおける前記送信装置または前記受信装置の演算機能または制御機能を実現する、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ伝送システムおよびプログラムに関する。
【背景技術】
【０００２】
現在のインターネットにおいて、データの受信装置におけるバッファのオーバーフローを回避するフロー制御機構が、ＴＣＰ(Transmission Control Protocol)には備わっている（例えば、非特許文献１参照）。これは受信装置から送信装置に返すフィードバック（ＡＣＫ：Acknowledgement）に“Ｗｉｎｄｏｗ”と呼ばれる領域があり、ここに受信装置のバッファの空き容量が記録される。このＡＣＫを受信装置から受け取った送信装置がこの“Ｗｉｎｄｏｗ”に記録された空き容量以上のデータを送信しないというものである。
【０００３】
このような送信装置と受信装置とからなるデータ伝送システムでは、データの伝送中にパケットロスが発生するとロスパケット以降のパケットをバッファから読み出せず、以降に送信装置から送信されたパケットが受信装置のバッファに流れ込む。このときに、フロー制御機構により受信装置のバッファには送信装置からネットワークに送信されたデータ量以上の空き容量が確保されている。このため、受信装置は、以降のパケットをバッファ内に蓄えることができ、オーバーフローは発生しない。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】“ＲＦＣ７９３  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ．”Ｓｅｐｔｅｍｂｅｒ  １９８１．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
現在広く用いられているＴＣＰは１対１通信を前提としており、受信装置のバッファも１つのデータフローに１つが想定される。複数のデータフローが確立される場合も、受信装置では、各データフローのそれぞれにバッファが確保される。
【０００６】
しかし、受信装置の１つのバッファを送信装置の複数のデータフローで共有する場合、そのバッファの使用方法は定められていない。例えば、受信装置の１つのバッファを送信装置の複数のデータフローで共有している状況において、受信装置に受信された各データフローに対するＡＣＫがこの１つのバッファの空き容量をＷｉｎｄｏｗとして通知した場合、送信装置では、全ＡＣＫのＷｉｎｄｏｗに記録された空き容量の和を利用できると誤認してしまう。このため、送信装置は、送信レートを上昇させてしまう。これにより送信装置からは受信装置のバッファの空き容量以上のデータが送信され、バッファのオーバーフローが発生する。
【０００７】
また、受信装置のバッファを共用するデータフローでバッファを均等分割した場合には、データフローの要求レートに関わらず各データフローに対して同じバッファ容量が割り当てられる。このため、要求レートの大きなデータフローに十分なバッファ容量が与えられず、十分な伝送レートを達成できないという問題がある。
【０００８】
本発明は、このような背景の下に行われたものであって、１以上のデータフローが一定量のバッファを共有する状況において、バッファサイズが小さい場合でも、各データフローの伝送レートを向上させることができ、バッファの効率化を図ることができるデータ伝送システムおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第一の観点は、データ伝送システムである。すなわち、本発明のデータ伝送システムは、１以上のデータフローを送信する送信装置と、１以上のデータフローを受信する受信装置とを備え、受信装置は、送信装置から送信される１以上のデータフローのデータを一時蓄積するバッファを備えるデータ伝送システムにおいて、受信装置は、バッファの空き容量と１以上のデータフローの伝送路滞留状況とに基づき送信装置に対して送信を許可する１以上のデータフローのデータ量を計算する手段を備えるものである。
【００１０】
このときに、計算する手段は、バッファの空き容量が伝送路滞留中である１以上のデータフローの内のデータ量の最大値、あるいは、当該最大値から上位Ｎ件（Ｎは予め規定された自然数）までの値の合計値となるようにデータ量を計算することができる。
【００１１】
あるいは、計算する手段は、バッファの全容量から伝送路滞留中の１以上のデータフローの内のデータ量の最大値、あるいは、当該最大値から上位Ｎ件（Ｎは予め規定された自然数）までの値の合計値を減算した値を、さらに、バッファを使用している１以上のデータフローのそれぞれに対して所定の条件に基づき分配する容量に基づいてデータ量を設定することができる。
【００１２】
例えば、所定の条件は、１以上のデータフローのそれぞれに対して前回許可したデータ量とバッファ内に蓄積された１以上のデータフローのそれぞれのデータ量とを比較し、その差分に応じて分配する量を決定するという条件である。
【００１３】
あるいは、計算する手段は、バッファの全容量から伝送路滞留中の１以上のデータフローの内のデータ量の最大値、あるいは、当該最大値から上位Ｎ件（Ｎは予め規定された自然数）までの値の合計値を減算した値を、さらに、バッファを使用している１以上のデータフローの本数で除算した均等値に基づいてデータ量を設定することができる。
【００１４】
また、受信装置は、受信したデータの位置情報を送信装置に通知する手段を備え、送信装置は、受信装置から通知された位置情報とこれから送信するデータの位置情報とを比較することにより送信装置から既に送信したが受信装置が未受信であるデータ量を算出する手段と、この算出する手段の算出結果を受信装置に通知する手段と、を備え、計算する手段は、この通知する手段により通知された算出結果に基づき伝送路滞留状況を認識することができる。このときに、例えば、送信装置は、受信装置に通知する手段として、送信するデータに算出結果を書き込むことができる。
【００１５】
例えば、計算する手段は、データの受信レートと伝送路における往復伝播遅延時間との積により伝送路滞留状況を推定することができる。
【００１６】
例えば、計算する手段は、以前に送信を許可した１以上のデータフローのデータ量に基づいて伝送路滞留状況を推定することができる。
【００１７】
本発明の第二の観点は、プログラムである。すなわち、本発明のプログラムは、情報処理装置にインストールすることにより、その情報処理装置に、本発明のデータ伝送システムにおける送信装置または受信装置の演算機能または制御機能を実現するものである。
【発明の効果】
【００１８】
本発明によれば、データフロー制御を行う複数のデータフローが一定量のバッファを共有する状況において、バッファサイズが小さい場合でも、各データフローの伝送レートを向上させることができ、受信バッファの効率化を図ることができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第一の実施の形態に係るデータ伝送システムの全体構成図である。
【図２】図１のデータ伝送システムにおけるパケットへの順序番号の付与の様子を示す図である。
【図３】図１の受信装置のデータ書き込み機能部におけるパケットの順序番号に基づくパケットの読み出し手順を示すフローチャートを示す図である。
【図４】図１のデータ伝送システムにおけるパケットロスが発生した場合のバッファへのパケット蓄積の様子を示す図である。
【図５】図１のデータ伝送システムにおけるバッファの１つ目の利用形態を示す図である。
【図６】図１のデータ伝送システムにおけるバッファの２つ目の利用形態を示す図である。
【図７】本発明の実施の形態における許容データ量の通知手順を示すフローチャートを示す図である。
【図８】本発明の第二の実施の形態における空き容量の分配手順を説明するための図である。
【図９】本発明の第三の実施の形態における空き容量の分配手順を説明するための図である。
【図１０】本発明の第四の実施の形態におけるパケットへのデータ量値の付与およびデータ量計算部での当該データ量値の取得の様子を示す図である。
【図１１】本発明の第五の実施の形態における伝送路滞留状況の認識手順を説明するための図である。
【発明を実施するための形態】
【００２０】
（本発明の第一の実施の形態に係るデータ伝送システム１の構成について）
本発明の第一の実施の形態に係るデータ伝送システム１の構成を図１に示す。データ伝送システム１は、送信装置２、受信装置３、ネットワーク（伝送路）４を備える。また、送信装置２は、データ読み出し機能部５、６、７を備える。受信装置３は、データ書き込み機能部８、９、バッファ１０、データ量計算部１１を備える。
【００２１】
ここでは、バッファ１０およびデータ量計算部１１はネットワークインタフェースカード（ＮＩＣ：Network Interface Card）に備えられている。これにより、ＮＩＣによってフロー制御機構を実現することができる。ＮＩＣは、受信装置３に着脱自在である。このため、ＮＩＣのみを交換することによって従来の受信装置を簡単に本発明の実施の形態に係る受信装置３とすることができる。なお、バッファ１０およびデータ量計算部１１の設置位置については、ＮＩＣに限定されることなく、この他にも様々な設置位置とすることができる。
【００２２】
（データ伝送システム１の動作の概要について）
データ伝送システム１は、伝送レートの異なる複数のデータフローによってバッファ１０が共有されている状況にある。なお、図１の例では、１台の送信装置２によって複数のデータフローが送信されているが、これは説明を分り易くするためであって、複数台の送信装置から複数のデータフローが送信される場合もある。
【００２３】
このような状況下において、データフロー毎の帯域に合わせたバッファ１０の使用を実現する。このために、データ量計算部１１は、送信装置２に通知するバッファ１０の空き容量である値を、ネットワーク４中に滞留しているデータ量、あるいはデータフロー毎のバッファ１０の使用量を元に適応的に変化させる。これにより、帯域の大きなデータフローの通信量を大きくする。
【００２４】
なお、データ読み出し機能部５、６、７、データ書き込み機能部８、９は、伝送すべきデータを生成して送信する、あるいは送られてきたデータを受け取る機能部である。これらの機能部は、サーバ等で動作するオペレーションシステム、アプリケーション、スレッド等のソフトウェアに実装され、ＣＰＵ(Central Processing Unit)、主メモリ上で動作するものである。
【００２５】
また、データ読み出し機能部５、６、７、データ書き込み機能部８、９は、それぞれ送信装置２のデータ送信側フロー制御機能部（不図示）、受信装置３のデータ受信側フロー制御機能部（不図示）の機能の一部を示すものである。すなわち、データ送信側フロー制御機能部、データ受信側フロー制御機能部は、データ読み出し機能部５、６、７、データ書き込み機能部８、９の他、アプリケーションプログラムとのデータの引渡しやデータ生成を行う機能部である。しかしながら、以降の説明では、便宜上、データ読み出し機能部５、６、７、データ書き込み機能部８、９のみについて図示し、これを説明する。
【００２６】
（データ伝送システム１の動作の詳細について）
データ伝送システム１の動作の詳細について図１を参照して説明する。データ伝送システム１は、送信装置２のデータ読み出し機能部５、６、７から受信装置３のデータ書き込み機能部８、９にデータを伝送する。このとき、第一の実施の形態においては、データ書き込み機能部８、９の前段のネットワークインタフェースカード（ＮＩＣ）にバッファ１０が具備されている。このバッファ１０で送信装置２のデータ読み出し機能部５、６、７から送られてきたデータフローを一時蓄積する。このデータフローを受信装置３のデータ書き込み機能部８、９が読み出す。
【００２７】
さらに、複数のデータ読み出し機能部５、６、７から１つのＮＩＣを介して同時にデータフローの伝送が行われる場合や、１つのデータ読み出し機能部５、６、７のいずれかからのデータ伝送であっても１つのＮＩＣを介して並列伝送が行われる場合に、これら複数のデータフロー（すなわち、あるデータ読み出し機能部５、６、７からデータ書き込み機能部８、９へのデータの流れ）がデータ書き込み機能部８、９のＮＩＣあるいはそのバッファ１０を共用する。
【００２８】
ここで、バッファ１０のオーバーフローを防止するため、受信装置３のデータ量計算部１１は、バッファ１０の使用状況とネットワーク４中に滞留するデータ量から「データ読み出し機能部５、６、７がネットワーク４に送信することが許容されるデータ量（許容データ量）」を算出し（ステップＳ１）、送信装置２のデータ読み出し機能部５、６、７に通知する（ステップＳ２）。この通知を受けたデータ読み出し機能部５、６、７は、読み出そうとしているデータフローの内、ネットワーク４中の該当データフローのデータ量が通知された量以下となるようにデータを読み出して送出する（ステップＳ３）。これによりデータフローの制御を行うことができる。
【００２９】
なお、図２に示すように、データ読み出し機能部５〜７から読み出されたデータフローに含まれるパケットには、それぞれ順序番号（例えば、♯３〜♯７、＊１〜＊５）が付与される。データ書き込み機能部８、９では、この順序番号に従ってバッファ１０からパケットを読み出す。
【００３０】
この手順を図３にフローチャートに示す。すなわち、受信装置３がパケットを受信し（ステップＳ１０）、このパケットがこれまでに読み出したパケットの中で最も大きい順序番号ｓｅｑよりも１つ大きな順序番号のパケットであれば（ステップＳ１１のＹｅｓ）、このパケットを読み出すと共に順序番号ｓｅｑを１つ加算する（ステップＳ１２）。
【００３１】
したがって、例えば、データ読み出し機能部５から読み出された順序番号Ｎ（Ｎは自然数）のパケットがデータ読み出し機能部６から読み出された順序番号Ｎ＋１のパケットよりも遅れてバッファ１０に到着したとしても、バッファ１０からは順序番号Ｎ、順序番号Ｎ＋１の順にパケットが読み出される。よって、各データフローの伝送遅延のバラツキは順序番号によって吸収される。
【００３２】
（データ伝送システム１のバッファ１０について）
データ伝送システム１のバッファ１０について図４、図５、図６、図７を参照して説明する。まず、図４の上段に示すように、データ書き込み機能部８、９がバッファ１０からデータを順番に読み出す場合、データ伝送中にパケット♯１のロスが発生したときは、図４の下段に示すように、ロスしたパケット♯１以降のパケット♯２〜♯１２は該当パケット♯１が再送されるまで読み出すことができない。
【００３３】
この場合、図４の下段に示すように、ロスしたパケット♯１以降のネットワーク４中に滞留していたデータ（パケット♯２〜♯６）が全てバッファ１０に蓄積される。そのため、パケットロスが発生してもバッファ１０がオーバーフローしないためには、ネットワーク４中に滞留しているデータ量だけの空きを保持しておく必要がある。
【００３４】
ここで、バッファ１０の利用形態として、図５、図６に示すように、２つの利用形態が考えられる。すなわち、１つ目の利用形態は、図５に示すように、データ読み出し機能部５、６、７毎（すなわち、データフロー毎）にバッファ１０の空き容量１２、１３、１４を用意する利用形態である。これに対し、２つ目の利用形態は、図６に示すように、データフロー毎に用意する空き容量１２、１３、１４を１つに束ねて共用空き容量１５として制御する利用形態である。
【００３５】
この１つ目の利用形態は、従来技術に準ずる利用形態である。これに対し、２つ目の利用形態は、伝送レートの向上のために複数のデータフローで１つの空き容量を確保するものである。これによれば、従来は、データフロー毎に確保されていた空き容量を、バッファ１０を共有する全てのデータフローで１つとして効率化を図ることができる。よって、データ伝送システム１では、この２つ目のバッファ１０の利用形態を採用する。
【００３６】
例えば、データ量計算部１１は、送信装置２に通知する値を制御し、バッファ１０の空き容量が複数のデータフローのうち最大であるネットワーク４中に滞留するデータ量となるように許容データ量を計算し（図１のステップＳ１）、データ読み出し機能部５、６、７に許容データ量を通知する（図１のステップＳ２）。あるいは、データ量計算部１１は、２つのデータフローの同時パケットロスに備えるならば、全データフローの内、上位２つのデータフローのネットワーク４中に滞留しているデータ量だけの共用空き容量１５を保持するように許容データ量を計算し（図１のステップＳ１）、データ読み出し機能部５、６、７に許容データ量を通知する（図１のステップＳ２）。具体的には許容データ量を通知するたびに下式を計算し値を更新することで、上記を達成する。
【００３７】
バッファ１０内の空き容量＞各データフローのネットワーク４中に滞留しているデータ量の内の最大値、あるいは上位Ｎ件（Ｎは予め規定された自然数）までの値の合計値
→各データフローの新通知量＝各データフローの旧通知量＋正定数
バッファ１０内の空き容量＜各データフローのネットワーク４中に滞留しているデータ量の内の最大値、あるいは上記Ｎ件（Ｎは予め規定された自然数）までの値の合計値
→各データフローの新通知量＝各データフローの旧通知量−正定数
【００３８】
なお、ステップＳ２において、許容データ量を通知する手順は、図７に示すとおりである。すなわち、受信装置３がパケットを受信すると（ステップＳ２０）、データ量計算部１１は、最後に許容データ量を通知してから受信したパケット数ｐｎｕｍに“１”を加算する（ステップＳ２１）。データ量計算部１１は、このパケット数が再度、許容データ量を通知するパケット数Ｎに達したら（ステップＳ２２でＹｅｓ）、許容データ量を通知すると共にｐｎｕｍを“０”に戻す（ステップＳ２３）。
【００３９】
（本発明の第二の実施の形態に係るデータ伝送システム１Ａについて）
本発明の第二の実施の形態に係るデータ伝送システム１Ａについて図８を参照して説明する。データ伝送システム１Ａとデータ伝送システム１とでは一部が異なる。以下では、第一の実施の形態と同一または同種の部材は同一または同一系の符号を用いて説明し、その説明を省略または簡略化し、かつ異なる部材について主として説明する。なお、データ伝送システム１Ａの全体的な基本構成は、データ伝送システム１の構成と同じである。
【００４０】
まず、バッファ１０Ａの全容量から確保すべき共用空き容量１５であるデータフロー毎のネットワーク４中のデータ量の内の最大値、あるいは、上位Ｎ件（Ｎは予め規定された自然数）までの値の合計値を減算する（ステップＳ３０）。この残りの容量を各データフローに所定の条件に基づいて分配する（ステップＳ３１）。これにより、各データフローがバッファ１０Ａ中にデータを蓄積できる容量が生成される。この容量は、分配された容量１６、１７、１８および共用空き容量１５に相当する。
【００４１】
次に、各データフローのバッファ１０Ａ内に蓄積されるデータ量が、この分配された容量１６、１７、１８になるように、データ量計算部１１は、各データフローに対して送信装置２に通知する許容データ量を算出する（図１のステップＳ１）。データ量計算部１１は、具体的には許容データ量を通知（図１のステップＳ２）するたびに下式を計算し値を算出する（図１のステップＳ１）。
【００４２】
該当データフローに分配された容量１６、１７、１８のサイズ＞該当データフローのバッファ１０内データ量
→各データフローの新通知量＝各データフローの旧通知量＋正定数
該当データフローに分配された容量１６、１７、１８のサイズ＜該当データフローのバッファ１０内データ量
→各データフローの新通知量＝各データフローの旧通知量−正定数
【００４３】
なお、各データフローの新通知量は、各データフローの旧通知量に対して正定数を加減している。これは上述したように該当データフローのバッファ内データ量が分配された容量１６、１７、１８となるように（あるいは、近づくように）、正定数の加減によって送出データ量の制限（フロー制御）を行うためである。
【００４４】
（本発明の第三の実施の形態に係るデータ伝送システム１Ｂについて）
本発明の第三の実施の形態に係るデータ伝送システム１Ｂについて図９を参照して説明する。データ伝送システム１Ｂとデータ伝送システム１とでは一部が異なる。以下では、第一の実施の形態と同一または同種の部材は同一または同一系の符号を用いて説明し、その説明を省略または簡略化し、かつ異なる部材について主として説明する。なお、データ伝送システム１Ｂの全体的な基本構成は、データ伝送システム１の構成と同じである。
【００４５】
本発明の第三の実施の形態においては、バッファ１０Ｂの全容量から確保すべき共用空き容量１５であるデータフロー毎のネットワーク中に滞留するデータ量の内の最大値、あるいは上位Ｎ件（Ｎは予め規定された自然数）までの値の合計値を減算する（ステップＳ４０）。その後、残りの容量を全データフローに均等に分配する（ステップＳ４１）。これにより、各データフローがバッファ１０Ｂ中にデータを蓄積できる容量が生成される。この容量は、分配された容量１９、２０、２１および共用空き容量１５に相当する。
【００４６】
以下の説明は、第二の実施の形態の説明と同じである。
【００４７】
（本発明の第四の実施の形態に係るデータ伝送システム１Ｃについて）
本発明の第四の実施の形態に係るデータ伝送システム１Ｃについて図１、図８を参照して説明する。なお、図１における符号１は、符号１Ｃと読み替えて説明する。データ伝送システム１Ｃとデータ伝送システム１とでは一部が異なる。以下では、第一の実施の形態と同一または同種の部材は同一または同一系の符号を用いて説明し、その説明を省略または簡略化し、かつ異なる部材について主として説明する。なお、データ伝送システム１Ｃの全体的な基本構成は、データ伝送システム１の構成と同じである。
【００４８】
データ伝送システム１Ｃでは、データ読み出し機能部（図１の５、６、７）に通知する許容データ量の算出（図１のステップＳ１）に、該当データフローに分配された容量（図８の１６、１７、１８）と該当データフローのバッファ１０内のデータ量との差を用いる。具体的には、そのデータフローが実際に使用しているバッファ１０の容量とそのデータフローに分配された容量１６、１７、１８との差に正定数をかけ、直前に通知した許容データ量に加算することで算出する（図１のステップＳ１）ものである。
【００４９】
これを実現するデータ読み出し機能部（図１の５、６、７）に通知する許容データ量算出（図１のステップＳ１）のための式には以下がある。以下の式では
（バッファ１０の全容量−確保すべき空き容量）／データフロー数）
の部分がそのデータフローに分配された容量（図８の１６、１７、１８）に相当する。
【００５０】
新通知量
＝旧通知量＋旧バッファ１０内の該当データフローのデータ量
＋定数×｛（（バッファ１０の全容量−確保すべき空き容量）／データフロー数）−バッファ１０内の該当データフローのデータ量｝−バッファ１０内の該当データフローのデータ量
【００５１】
また、本実施の形態ではバッファ１０の全容量から確保すべき空き容量であるデータフロー毎のネットワーク中に滞留するデータ量の内の最大値、あるいは上位Ｎ件（Ｎは予め規定された自然数）までの値の合計値を減算した残りを均等に分割しているが、その限りではなく、例えば、予め定められたデータフロー毎の重みによって分配することもできる。この場合の式は以下である。
【００５２】
新通知量
＝旧通知量＋旧バッファ１０内の該当データフローのデータ量
＋定数×｛（（バッファ１０の全容量−確保すべき空き容量）×（該当データフローの重み／全データフローの重みの和））−バッファ１０内の該当データフローのデータ量｝−バッファ１０内の該当データフローのデータ量
【００５３】
上記の式中の定数は通知量の発散または大きな振動を抑えるための１より小さな正の数である。
【００５４】
（本発明の第五の実施の形態に係るデータ伝送システム１Ｄについて）
本発明の第五の実施の形態に係るデータ伝送システム１Ｄについて図１０を参照して説明する。データ伝送システム１Ｄとデータ伝送システム１とでは一部が異なる。以下では、第一の実施の形態と同一または同種の部材は同一または同一系の符号を用いて説明し、その説明を省略または簡略化し、かつ異なる部材について主として説明する。なお、データ伝送システム１Ｄの全体的な基本構成は、データ伝送システム１の構成と同じである。
【００５５】
データ伝送システム１Ｄは、データ読み出し機能部５Ｄ、６Ｄ、７Ｄがネットワーク４中に滞留するデータ量をデータパケットに重畳して通知することで、データ量計算部１１Ｄがこの値を知ることができる。具体的には、まず、受信装置３Ｄは、受信中のパケットの位置情報を送信装置２Ｄに通知する（ステップＳ５０）。データ読み出し機能部５Ｄ、６Ｄ、７Ｄはこのパケットの位置情報とデータ読み出し機能部５Ｄ、６Ｄ、７Ｄから送信中のデータの位置情報の差分から、ネットワーク４中に滞留するデータ量を算出する（ステップＳ５１）。データ読み出し機能部５Ｄ、６Ｄ、７Ｄは、算出したネットワーク４に滞留するデータ量をデータ量値２２としてパケットに付与する（ステップＳ５２）。
【００５６】
受信装置３Ｄのバッファ１０Ｄがパケットを受信すると、データ量計算部１１Ｄは、パケットからデータ読み出し機能部５Ｄ、６Ｄ、７Ｄが付与したネットワーク４中に滞留するデータ量値２２を得る（ステップＳ５３）。
【００５７】
なお、ここで位置情報とは、例えばパケットに付与された順序番号である。図１０の例では、順序番号“♯６”のパケットがバッファ１０Ｄに受信されている。データ量計算部１１Ｄは、この順序番号“♯６”をデータ読み出し機能部５Ｄ、６Ｄ、７Ｄに通知する。これにより、データ読み出し機能部５Ｄ、６Ｄ、７Ｄは、自己が順序番号“♯６”を付与したパケットが現在バッファ１０Ｄの位置にあることを認識できる。
【００５８】
（本発明の第六の実施の形態に係るデータ伝送システム１Ｅについて）
本発明の第六の実施の形態に係るデータ伝送システム１Ｅについて図１１を参照して説明する。データ伝送システム１Ｅとデータ伝送システム１とでは一部が異なる。以下では、第一の実施の形態と同一または同種の部材は同一または同一系の符号を用いて説明し、その説明を省略または簡略化し、かつ異なる部材について主として説明する。なお、データ伝送システム１Ｅの全体的な基本構成は、データ伝送システム１の構成と同じである。
【００５９】
データ伝送システム１Ｅでは、該当データフローの帯域遅延積をネットワーク４中に滞留するデータ量の代用とする。帯域遅延積は伝送レートとネットワーク遅延の積として得られる。ここで用いる帯域は、データ量計算部１１Ｅが受信レートを算出することで得られる。具体的には、過去一定時間内に受信したデータ量をその一定時間で割ることで得られる。
【００６０】
また、遅延量は、ＮＴＰ(Network Time Protocol)の手法を用いて計測できる。具体的には受信装置３Ｅのデータ量計算部１１Ｅが遅延計測用のパケットを送信する（ステップＳ６０）。これは許容データ量の通知（図１のステップＳ２）に付加してもよい。送信装置２Ｅのデータ読み出し機能部５Ｅ、６Ｅ、７Ｅは、遅延計測用のパケットを受信すると（ステップＳ６１）、遅延計測返答パケットを受信装置３Ｅに送信する（ステップＳ６２）。これはデータパケットに付加してもよい。受信装置３Ｅのデータ量計算部１１Ｅは、遅延計測返答パケットを受信すると（ステップＳ６３）、これを受信した時刻から遅延計測用のパケットを送信した時刻を引くことで往復伝播遅延時間を計算する（ステップＳ６４）。データ量計算部１１Ｅでは、伝送レートと往復伝播遅延時間とを掛け合わせ、ネットワーク４中に滞留するデータ量として用いる。
【００６１】
（本発明の第七の実施の形態に係るデータ伝送システム１Ｆについて）
本発明の第七の実施の形態に係るデータ伝送システム１Ｆについて説明する。データ伝送システム１Ｆとデータ伝送システム１とでは一部が異なる。以下では、第一の実施の形態と同一または同種の部材は同一または同一系の符号を用いて説明し、その説明を省略または簡略化し、かつ異なる部材について主として説明する。なお、データ伝送システム１Ｆの全体的な基本構成は、データ伝送システム１の構成と同じであるので図示は省略する。
【００６２】
データ伝送システム１Ｆでは、受信装置３Ｆ（不図示）のデータ量計算部１１Ｆ（不図示）が送信装置２Ｆ（不図示）に通知した許容データ量を送信装置２Ｆが送信したネットワーク４中に滞留するデータ量として代用する。データ量計算部１１Ｆにおいてデータフロー毎に通知した許容データ量を記憶しておき、新しく許容データ量を算出する際に記憶しておいた許容データ量を用いる。
【００６３】
なお、データ伝送システム１Ｆにおいては、他の実施の形態における「フロー毎のネットワーク４中に滞留するデータ量の内の最大値、あるいは上位Ｎ件（Ｎは予め規定された自然数）までの値の合計値」を「データフロー毎のデータ読み出し機能部５Ｆ、６Ｆ、７Ｆに通知した許容データ量の内の最大値、あるいは上記Ｎ件（Ｎは予め規定された自然数）までの値の合計値」と読み替えて適用することができる。
【００６４】
（プログラムの実施の形態）
また、送信装置２、２Ｄ、２Ｅ、２Ｆ、受信装置３、３Ｄ、３Ｅ、３Ｆの各部は、所定のプログラムにより動作する汎用の情報処理装置（ＣＰＵ(Central Processing Unit)、ＤＳＰ(Digital Signal
Processor)、マイクロプロセッサ（マイクロコンピュータ）など）によって構成されてもよい。例えば、汎用の情報処理装置は、メモリ、ＣＰＵ、入出力ポートなどを有する。汎用の情報処理装置のＣＰＵは、メモリなどから所定のプログラムとして制御プログラムを読み込んで実行する。これにより、汎用の情報処理装置には、送信装置２、２Ｄ、２Ｅ、２Ｆ、受信装置３、３Ｄ、３Ｅ、３Ｆの各部の機能が実現される。
【００６５】
なお、汎用の情報処理装置が実行する制御プログラムは、送信装置２、２Ｄ、２Ｅ、２Ｆ、受信装置３、３Ｄ、３Ｅ、３Ｆの出荷前に、汎用の情報処理装置のメモリなどに記憶されたものであっても、送信装置２、２Ｄ、２Ｅ、２Ｆ、受信装置３、３Ｄ、３Ｅ、３Ｆの出荷後に、汎用の情報処理装置のメモリなどに記憶されたものであってもよい。また、制御プログラムの一部が、送信装置２、２Ｄ、２Ｅ、２Ｆ、受信装置３、３Ｄ、３Ｅ、３Ｆの出荷後に、汎用の情報処理装置のメモリなどに記憶されたものであってもよい。送信装置２、２Ｄ、２Ｅ、２Ｆ、受信装置３、３Ｄ、３Ｅ、３Ｆの出荷後に、汎用の情報処理装置のメモリなどに記憶される制御プログラムは、例えば、ＣＤ−ＲＯＭなどのコンピュータ読取可能な記録媒体に記憶されているものをインストールしたものであっても、インターネットなどの伝送媒体を介してダウンロードしたものをインストールしたものであってもよい。
【００６６】
また、制御プログラムは、汎用の情報処理装置によって直接実行可能なものだけでなく、ハードディスクなどにインストールすることによって実行可能となるものも含む。また、圧縮されたり、暗号化されたりしたものも含む。
【００６７】
（本発明の実施の形態に係る効果について）
受信装置３は、バッファ１０の空き容量とデータフローのネットワーク４の滞留状況とに基づき送信装置２に対して送信を許可するデータフローのデータ量を計算する。これにより、データフロー制御を行う複数のデータフローが一定量のバッファを共有する状況において、バッファサイズが小さい場合でも、各データフローの最大伝送レートを実現することができ、バッファ１０の効率化を図ることができる。
【００６８】
データ量計算部１１は、バッファ１０の空き容量がネットワーク４に滞留中であるデータフローの内のデータ量の最大値、あるいは、当該最大値から上位Ｎ件（Ｎは予め規定された自然数）までの値の合計値となるようにデータ量を計算する。これにより、データフローの全てについて計算する必要がなく、バッファ１０の有効利用を実現しつつ計算の処理負荷を軽減できる。
【００６９】
あるいは、データ量計算部１１は、バッファ１０の全容量からネットワーク４に滞留中のデータフローの内のデータ量の最大値、あるいは、当該最大値から上位Ｎ件（Ｎは予め規定された自然数）までの値の合計値を減算した値を、さらに、バッファ１０を使用しているデータフローのそれぞれに対して所定の条件に基づき分配する容量に基づいてデータ量を設定する。これにより、各データフローについて最適となる許容データ量を計算することができる。
【００７０】
例えば、所定の条件は、データフローのそれぞれに対して前回許可したデータ量とバッファ１０内に蓄積されたデータフローのそれぞれのデータ量とを比較し、その差分に応じて分配する容量を決定するという条件である。これによれば、データフローの実際の伝送状況を精度良くデータフローの制御に反映させることができる。
【００７１】
あるいは、データ量計算部１１は、バッファ１０の全容量からネットワーク４に滞留中のデータフローの内のデータ量の最大値、あるいは、当該最大値から上位Ｎ件（Ｎは予め規定された自然数）までの値の合計値を減算した値を、さらに、バッファ１０を使用しているデータフローの本数で除算した均等値に基づいてデータ量を設定する。これによれば、各データフローについてデータ量が均等に割当てられるのでデータ量計算部１１の計算処理を簡単にすることができる。
【００７２】
一方、データフローによってはバッファ１０に均等に割当てられた空き容量に過不足が生じる場合がある。しかしながら、共用空き容量１５を確保しているので、空き容量の過不足についてはこの共用空き容量１５によって吸収することができる。
【００７３】
また、データ量計算部１１Ｄは、パケットに付与されたデータ量値２２に基づきネットワーク４の滞留状況を認識する。これによれば、送信装置２Ｄと受信装置３Ｄとの連携動作によって、精度良くデータフローのネットワーク４の滞留状況を把握することができる。
【００７４】
その他の方法として、データ量計算部１１は、データの受信レートと伝送路における往復伝播遅延時間との積によりデータフローのネットワーク４の滞留状況を推定することができる。これによれば、容易に入手できるパラメータを用いてデータフローのネットワーク４の滞留状況を容易に推定できる。
【００７５】
あるいは、データ量計算部１１Ｆは、以前に送信を許可したデータフローのデータ量に基づいてデータフローのネットワーク４の滞留状況を推定することができる。これによれば、受信装置３Ｆにおいて容易に検出できるパラメータを用いてデータフローのネットワーク４の滞留状況を容易に推定できる。
【００７６】
また、送信装置２、２Ｄ、２Ｅ、２Ｆ、受信装置３、３Ｄ、３Ｅ、３Ｆの各部をプログラムによって実現することにより、大量生産や設計変更に対し、容易に適用可能となる。
【００７７】
（変形例）
本発明の実施の形態は、その要旨を逸脱しない限り、様々に変更が可能である。例えば、バッファ１０を１個のバッファメモリとして説明したが、複数のバッファメモリを組み合わせてバッファ１０を構成してもよい。また、共用空き容量１５専用のバッファメモリを用意するなど、メモリ領域をその役割に応じて分割した構成でもよい。
【００７８】
また、ネットワーク４は、インターネットやプライベートネットワークなど、あらゆるネットワークを含む。また、ネットワーク４は、有線回線または無線回線による伝送路であってもよい。また、データフローは、固定長パケットによるものであっても可変長パケットによるものであってもよい。
【００７９】
また、第五の実施の形態において、位置情報は、例えばパケットに付与された順序番号であると説明したが、パケットにタイムスタンプを付与し、これを位置情報としてもよい。その他にも個々のパケットを識別できる情報があれば、これを位置情報として用いることができる。例えば、パケットの送信元アドレスや宛先アドレスあるいはこれらの組合せなど、パケット毎に一意に定まる情報であればこれをパケットの位置情報として利用することができる。
【符号の説明】
【００８０】
１、１Ａ、１Ｂ、１Ｃ、１Ｄ、１Ｅ、１Ｆ…データ伝送システム、２、２Ｄ、２Ｅ、２Ｆ…送信装置、３、３Ｄ、３Ｅ、３Ｆ…受信装置、４…ネットワーク、５、５Ｄ、５Ｅ、５Ｆ、６、６Ｄ、６Ｅ、６Ｆ、７、７Ｄ、７Ｅ、７Ｆ…データ読み出し機能部（算出する手段、受信装置に通知する手段）、８、９…データ書き込み機能部、１０、１０Ａ、１０Ｂ、１０Ｃ、１０Ｄ、１０Ｅ…バッファ、１１、１１Ｄ、１１Ｅ、１１Ｆ…データ量計算部（計算する手段、送信装置に通知する手段）、１２、１３、１４…空き容量、１６〜２１…分配された容量、１５…共用空き容量、２２…データ量値
【図１】
2010200005.tif 000003
【図２】
2010200005.tif 000004
【図３】
2010200005.tif 000005
【図４】
2010200005.tif 000006
【図５】
2010200005.tif 000007
【図６】
2010200005.tif 000008
【図７】
2010200005.tif 000009
【図８】
2010200005.tif 000010
【図９】
2010200005.tif 000011
【図１０】
2010200005.tif 000012
【図１１】
2010200005.tif 000013