(57)【特許請求の範囲】
【請求項１】
データ送信装置が備えるデータ送信用メモリに書き込まれる送信用データのデータ量を受け付ける受付部と、
前記送信用データの送信先であるデータ受信用メモリから読み出される被読出データのデータ量を取得する取得部と、
前記送信用データのデータ量と前記被読出データのデータ量とに基づいて、未送信の前記送信用データを前記データ受信用メモリに記憶させた場合における前記データ受信用メモリの記憶データ量を計数する計数部と、
前記記憶データ量と前記データ受信用メモリの記憶容量とに基づいて、未送信の前記送信用データの送信許否を判別し、送信を許可しないと判別した場合には未送信の前記送信用データを前記データ受信用メモリに送信しないように前記データ送信装置を制御する判別制御部と、
を備えることを特徴とするデータ送信制御装置。
【請求項２】
前記計数部は、送信を許可しないと判別された場合には予め定められた待ち時間が経過したか否かを判別し、前記待ち時間が経過したと判別した場合には前記データ受信用メモリの記憶データ量を計数し、
前記判別制御部は、前記待ち時間経過後に計数された前記記憶データ量と前記データ受信用メモリの記憶容量とに基づいて、未送信の前記送信用データの送信許否を判別し、送信を許可すると判別した場合には前記データ送信用メモリが記憶する未送信の前記送信用データを前記データ受信用メモリに送信するように前記データ送信装置を制御する、
ことを特徴とする請求項１に記載のデータ送信制御装置。
【請求項３】
前記取得部は、複数の前記データ受信用メモリの各々について前記被読出データのデータ量を取得し、
前記計数部は、前記送信用データのデータ量と複数の前記被読出データのデータ量とに基づいて、前記データ受信用メモリごとに未送信の前記送信用データを当該データ受信用メモリに記憶させた場合における当該データ受信用メモリの記憶データ量を計数し、
前記判別制御部は、各前記データ受信用メモリの前記記憶データ量と前記記憶容量とに基づいて、前記データ受信用メモリごとに未送信の前記送信用データの送信許否を判別し、いずれか１つの前記データ受信用メモリについて送信を許可すると判別した場合には当該データ受信用メモリに当該データ受信用メモリ専用のデータ送信経路を介して未送信の前記送信用データを送信するように前記データ送信装置を制御する、
ことを特徴とする請求項１に記載のデータ送信制御装置。
【請求項４】
前記取得部は、複数の前記データ受信用メモリの各々について前記被読出データのデータ量を取得し、
前記計数部は、前記送信用データのデータ量と複数の前記被読出データのデータ量とに基づいて、前記データ受信用メモリごとに未送信の前記送信用データを当該データ受信用メモリに記憶させた場合における当該データ受信用メモリの記憶データ量を計数し、
前記判別制御部は、各前記データ受信用メモリの前記記憶データ量と前記記憶容量とに基づいて、前記データ受信用メモリごとに未送信の前記送信用データの送信許否を判別し、少なくとも１つの前記データ受信用メモリについて送信を許可すると判別した場合には、送信を許可すると判別された前記データ受信用メモリのうちの所定条件を満たすいずれかの前記データ受信用メモリに当該データ受信用メモリ専用のデータ送信経路を介して未送信の前記送信用データを送信するように前記データ送信装置を制御する、
ことを特徴とする請求項１に記載のデータ送信制御装置。
【請求項５】
前記判別制御部は、送信を許可すると判別された前記データ受信用メモリのうちの空き容量が最小である前記データ受信用メモリに当該データ受信用メモリ専用のデータ送信経路を介して未送信の前記送信用データを送信するように前記データ送信装置を制御することを特徴とする請求項４に記載のデータ送信制御装置。
【請求項６】
前記計数部は、全ての前記データ受信用メモリについて送信を許可しないと判別された場合には予め定められた待ち時間が経過したか否かを判別し、前記待ち時間が経過したと判別した場合には前記データ受信用メモリごとに当該データ受信用メモリの記憶データ量を計数し、
前記判別制御部は、前記待ち時間経過後に計数された各前記データ受信用メモリの前記記憶データ量と前記記憶容量とに基づいて、前記データ受信用メモリごとに未送信の前記送信用データの送信許否を判別し、判別結果に基づいて前記データ送信装置を制御する、
ことを特徴とする請求項３乃至５のいずれか一項に記載のデータ送信制御装置。
【請求項７】
前記判別制御部は、前記記憶データ量が前記データ受信用メモリの記憶容量を超えた場合に送信を許可しないと判別することを特徴とする請求項１乃至６のいずれか一項に記載のデータ送信制御装置。
【請求項８】
送信用データのデータ量を受け付ける受付ステップと、
前記送信用データのデータ送信先から読み出される被読出データのデータ量を取得する取得ステップと、
前記送信用データのデータ量と前記被読出データのデータ量とに基づいて、未送信の前記送信用データを前記データ送信先に記憶させた場合における前記データ送信先の記憶データ量を計数する計数ステップと、
前記記憶データ量と前記データ送信先の記憶容量とに基づいて、未送信の前記送信用データの送信許否を判別し、送信を許可しないと判別した場合には未送信の前記送信用データを前記データ送信先に送信しないように制御する判別制御ステップと、
を備えることを特徴とするデータ送信制御方法。
【請求項９】
コンピュータを、
データ送信装置が備えるデータ送信用メモリに書き込まれる送信用データのデータ量を受け付ける受付部、
前記送信用データの送信先であるデータ受信用メモリから読み出される被読出データのデータ量を取得する取得部、
前記送信用データのデータ量と前記被読出データのデータ量とに基づいて、未送信の前記送信用データを前記データ受信用メモリに記憶させた場合における前記データ受信用メモリの記憶データ量を計数する計数部、
前記記憶データ量と前記データ受信用メモリの記憶容量とに基づいて、未送信の前記送信用データの送信許否を判別し、送信を許可しないと判別した場合には未送信の前記送信用データを前記データ受信用メモリに送信しないように前記データ送信装置を制御する判別制御部、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ送信制御装置、データ送信制御方法、及び、プログラムに関する。
【背景技術】
【０００２】
メモリがオーバーフローしないようにデータの受信側でフロー制御を行うデータ送受信システムが知られている。
【０００３】
例えば、特許文献１は、ネットワーク機器が備えるバッファメモリ内のパケット数がしきい値を超えた場合にはネットワーク機器からパケット送信装置にその旨を通知させてパケット送信を停止させるシステムを開示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１０４１９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一般的に、上記フロー制御にはＩＥＥＥ８０２．３ｘに規定されるＰＡＵＳＥフレームを用いた制御方法が採用される。この制御方法は、受信システムが備える受信メモリの空き容量が少なくなった場合に、受信システムから送信システムにデータ送信の停止を要求するＰＡＵＳＥフレームを送信させ、ＰＡＵＳＥフレームで指定された時間が経過するまで送信システムによるデータ出力を停止させる。これにより、メモリのオーバーフローの発生が抑制されるが、ＰＡＵＳＥフレームの通知はインバンド（In-Band）方式で行われるため、ＰＡＵＳＥフレームの通知のたびに通信帯域の一部が占有されてしまい送信システムによるデータ送信が遅延するという問題があった。
【０００６】
本発明は、以上のような課題を解決するためのものであり、メモリのオーバーフローの発生を抑制しつつ、メモリのオーバーフローの発生を抑制するための処理に起因するデータ送信の遅延を抑制するデータ送信制御装置等を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の第１の観点に係るデータ送信制御装置は、
データ送信装置が備えるデータ送信用メモリに書き込まれる送信用データのデータ量を受け付ける受付部と、
前記送信用データの送信先であるデータ受信用メモリから読み出される被読出データのデータ量を取得する取得部と、
前記送信用データのデータ量と前記被読出データのデータ量とに基づいて、未送信の前記送信用データを前記データ受信用メモリに記憶させた場合における前記データ受信用メモリの記憶データ量を計数する計数部と、
前記記憶データ量と前記データ受信用メモリの記憶容量とに基づいて、未送信の前記送信用データの送信許否を判別し、送信を許可しないと判別した場合には未送信の前記送信用データを前記データ受信用メモリに送信しないように前記データ送信装置を制御する判別制御部と、
を備えることを特徴とする。
【０００８】
上記目的を達成するために、本発明の第２の観点に係るデータ送信制御方法は、
送信用データのデータ量を受け付ける受付ステップと、
前記送信用データのデータ送信先から読み出される被読出データのデータ量を取得する取得ステップと、
前記送信用データのデータ量と前記被読出データのデータ量とに基づいて、未送信の前記送信用データを前記データ送信先に記憶させた場合における前記データ送信先の記憶データ量を計数する計数ステップと、
前記記憶データ量と前記データ送信先の記憶容量とに基づいて、未送信の前記送信用データの送信許否を判別し、送信を許可しないと判別した場合には未送信の前記送信用データを前記データ送信先に送信しないように制御する判別制御ステップと、
を備えることを特徴とする。
【０００９】
上記目的を達成するために、本発明の第３の観点に係るプログラムは、
コンピュータを、
データ送信装置が備えるデータ送信用メモリに書き込まれる送信用データのデータ量を受け付ける受付部、
前記送信用データの送信先であるデータ受信用メモリから読み出される被読出データのデータ量を取得する取得部、
前記送信用データのデータ量と前記被読出データのデータ量とに基づいて、未送信の前記送信用データを前記データ受信用メモリに記憶させた場合における前記データ受信用メモリの記憶データ量を計数する計数部、
前記記憶データ量と前記データ受信用メモリの記憶容量とに基づいて、未送信の前記送信用データの送信許否を判別し、送信を許可しないと判別した場合には未送信の前記送信用データを前記データ受信用メモリに送信しないように前記データ送信装置を制御する判別制御部、
として機能させることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、メモリのオーバーフローの発生を抑制しつつ、メモリのオーバーフローの発生を抑制するための処理に起因するデータ送信の遅延を抑制できる。
【図面の簡単な説明】
【００１１】
【図１】実施形態１のデータ送受信システムの全体構成を示す図である。
【図２】実施形態１のデータ送信制御装置（制御部）の構成を示すブロック図である。
【図３】実施形態１のデータ送信制御処理の流れを示すフローチャートである。
【図４】ＰＡＵＳＥフレームを用いたフロー制御の流れを示すシーケンス図である。
【図５】実施形態２のデータ送受信システムの全体構成を示す図である。
【図６】実施形態２のデータ送信制御処理の流れを示すフローチャートである。
【図７】変形例のデータ送信制御処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について、図面を参照して説明する。
【００１３】
（実施形態１）
データ送信先における記憶容量の逼迫をデータ送信元に知らせるために行われるＰＡＵＳＥフレームの通知は通信回線の混雑を引き起こし、その結果としてデータ送信元によるデータ送信が遅延する。この点に関し、本実施形態に係るデータ送信制御装置は、データ送信先のメモリにデータがどの程度滞留しているかをデータ送信元に推定させるので、データ送信元によるデータ送信を制御するにあたりＰＡＵＳＥフレームの通知を必要としない。従って、本実施形態に係るデータ送信制御装置は、メモリのオーバーフローを抑制しつつ、ＰＡＵＳＥフレームの通知に起因するデータ送信の遅延を抑制できる。以下、このデータ送信制御装置及びこのデータ送信制御装置を構成要素に含むデータ送信装置のハードウェア構成を、図１、２を参照して説明する。
【００１４】
図１に示すデータ送信装置１は、データ送信経路１を介して様々なデータをデータ受信装置２に送信する情報端末であり、データ送信用バッファメモリ１１と、データ書込制御部１２と、データ読出制御部１３と、制御部（データ送信制御装置）１４と、データベース１５と、を備える。
【００１５】
データ送信用バッファメモリ１１は、様々な送信用データを一時記憶する揮発性の半導体メモリから構成される。
【００１６】
データ書込制御部１２は、データ書込処理用のハードウェア回路を備え、送信用データを受け付けると、受け付けた送信用データをデータ送信用バッファメモリ１１に書き込む。また、データ書込制御部１２は、送信用データをデータ送信用バッファメモリ１１に書き込むたびに書き込んだ送信用データのデータ量を制御部１４に供給する。
【００１７】
データ読出制御部１３は、データ読出処理用のハードウェア回路を備え、データ送信用バッファメモリ１１が記憶している未送信の送信用データを読み出し、読み出した送信用データをデータ送信先に送信する。例えば、データ送信先がデータ受信用バッファメモリ２１の場合には、データ読出制御部１３は、読み出した送信用データをデータ送信経路１を介してデータ受信装置２に送信する。データ書込制御部２２は、データ送信経路１を介して送信されてきた送信用データを受信すると、受信した送信用データをデータ受信用バッフメモリ２１に書き込む。なお、データ送信経路１は、ＬＡＮケーブル等の通信ケーブルである。
【００１８】
制御部１４は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等（いずれも図示せず）を備え、データ送信装置１が行うデータ送信を制御する。制御部１４における本発明特有の機能については後述する。
【００１９】
データベース１５は、フラッシュメモリ等の読み書き可能な不揮発性の半導体メモリから構成される。データベース１５は、データ送信先であるデータ受信用バッファメモリ２１の記憶容量、データ読出制御部２３がデータ受信用バッファメモリ２１から周期的に読み出すデータ（以下、被読出データと称す。）のデータ量等を予め記憶している。
【００２０】
図２に示すように、データ送信装置１の制御部（データ送信制御装置）１４は、本発明特有の機能として、加算制御部（受付部）１４１と、減算制御部（取得部）１４２と、計数部１４３と、送信許否判別部（判別制御部）１４４と、を備える。これらの構成要素の機能は、ＣＰＵ等が、ＲＯＭに記憶されているデータ送信制御プログラムを実行することで実現される。
【００２１】
加算制御部１４１は、送信用データがデータ送信用バッファメモリ１１に書き込まれるたびにデータ書込制御部１２から供給される送信用データのデータ量を受け付ける。そして、受け付けた送信用データのデータ量を加算するよう計数部１４３に要求する。
【００２２】
減算制御部１４２は、データベース１５に記憶されているデータ受信用バッファメモリ２１についての被読出データのデータ量を取得する。そして、取得した被読出データのデータ量を減算するよう計数部１４３に要求する。
【００２３】
計数部１４３は、図１に示すデータ受信用バッファメモリ２１に記憶されているデータのサイズの推定値（以下、記憶データ量と称す。）を保持する。なお、記憶データ量の初期値は０（バイト）である。計数部１４３は、加算制御部１４１から加算要求を受け付けると、データ送信用バッファメモリ１１に書き込まれた送信用データのデータ量を、計数部１４３が保持するデータ受信用バッファメモリ２１の記憶データ量に加算する。また、減算制御部１４２から減算要求を受け付けると、計数部１４３が保持する記憶データ量からデータ受信用バッファメモリ２１の被読出データのデータ量を減算する。計数部１４３は、このような加算・減算により、データ受信用バッファメモリ２１の記憶データ量を計数する。
【００２４】
送信許否判別部１４４は、データベース１５に記憶されているデータ受信用バッファメモリ２１の記憶容量を取得する。そして、計数部１４３により計数された記憶データ量がデータ受信用バッファメモリ２１の記憶容量以下か否かを判別する。判別の結果、送信許否判別部１４４は、記憶データ量が記憶容量を超えていると判別した場合には、データ送信用バッファメモリ１１に記憶されている未送信の送信用データをデータ受信用バッファメモリ２１に送信することを許可しない旨をデータ読出制御部１３に通知する。そして、所定の待ち時間が経過すると再度同様の判別を行い、記憶データ量が記憶容量以下であると判別した場合には未送信の送信用データをデータ受信用バッファメモリ２１に送信することを許可する旨をデータ読出制御部１３に通知する。なお、上記待ち時間は、データ受信用バッファメモリ２１から被読出データが読み出される周期より長ければ、１μｓ、１０μｓ、データ送信装置１が備える（図示しない）ＲＴＣ（Real Time Clock）が計時する１０クロック分の時間、１００クロック分の時間等の固定時間であってよい。
【００２５】
以下、制御部（データ送信制御装置）１４が実行するデータ送信制御処理の流れについて、図３に示すフローチャートを参照して説明する。
【００２６】
［データ送信制御処理］
制御部１４は、データ書込制御部１２から送信用データのデータ量を受け付けると、データ送信制御処理を開始する。
【００２７】
制御部１４の構成要素である加算制御部１４１は、データ送信制御処理が開始されると、送信用データのデータ量を加算するよう計数部１４３に要求する（ステップＳ１）。また、減算制御部１４２は、データベース１５に記憶されているデータ受信用バッファメモリ２１についての被読出データのデータ量を取得する。そして、取得した被読出データのデータ量を減算するよう計数部１４３に要求する（ステップＳ２）。
【００２８】
計数部１４３は、加算制御部１４１からの加算要求に従い、保持するデータ受信用バッファメモリ２１の記憶データ量に送信用データのデータ量を加算する。なお、計数部１４３が保持する記憶データ量の初期値は０バイトである。次に、計数部１４３は、減算制御部１４２からの減算要求に従い、保持するデータ受信用バッファメモリ２１の記憶データ量からデータ受信用バッファメモリ２１の被読出データのデータ量を減算する。計数部１４３は、このような加算・減算により、データ受信用バッファメモリ２１の記憶データ量（推定値）を計数する（ステップＳ３）。なお、計数部１４３は、記憶データ量をバイト単位以外の任意のデータ量計数用の単位（例えばビット単位、ワード単位）で計数してよい。
【００２９】
送信許否判別部１４４は、データベース１５に予め記憶されているデータ受信用バッファメモリ２１の記憶容量を取得する。そして、ステップＳ３で計数されたデータ受信用バッファメモリ２１の記憶データ量がデータ受信用バッファメモリ２１の記憶容量以下か否かを判別し（ステップＳ４）、記憶データ量が記憶容量を超えていると判別した場合には（ステップＳ４；Ｎｏ）、送信用データの送信を許可しない旨をデータ読出制御部１３に通知する（ステップＳ５）。データ読出制御部１３は、上記通知を受けた場合にはデータ送信用バッファメモリ１１に記憶されている未送信の送信用データを送信先に送信しない。
【００３０】
送信許否判別部１４４は、データ送信を許可しない旨を通知した場合、所定の待ち時間（以下、単に待ち時間と称す。）が経過したか否かを判別する（ステップＳ６）。そして、待ち時間が経過していないと判別した場合には（ステップＳ６；Ｎｏ）、待ち時間が経過するまで繰り返しステップＳ６の処理を実行する。そして、待ち時間が経過したと判別した場合には（ステップＳ６；Ｙｅｓ）、ステップＳ１に処理を戻す。
【００３１】
ステップＳ１に処理が戻ると、加算制御部１４１は、データ書込制御部１２から新たに送信用データのデータ量を受け付けている場合には受け付けたデータ量を加算するよう計数部１４３に要求し、受け付けていなければ要求しない（ステップＳ１）。減算制御部１４２は、上記待ち時間経過中にデータ受信用バッファメモリ２１から読み出されたと推定される被読出データのデータ量を減算するよう計数部１４３に要求する（ステップＳ２）。
【００３２】
計数部１４３は、上記加算・減算要求に従って、保持するデータ受信用バッファメモリ２１の記憶データ量に対して加算・減算を行い、待ち時間経過後の記憶データ量を計数する（ステップＳ３）。
【００３３】
送信許否判別部１４４は、待ち時間経過後の記憶データ量がデータ受信用バッファメモリ２１の記憶容量以下か否かを判別し（ステップＳ４）、記憶データ量が記憶容量以下であると判別した場合には（ステップＳ４；Ｙｅｓ）、送信用データの送信を許可する旨をデータ読出制御部１３に通知する（ステップＳ７）。データ読出制御部１３は、上記通知を受けた場合にはデータ送信用バッファメモリ１１に記憶されている未送信の送信用データをデータ送信経路１を介してデータ受信装置２に送信する。データ書込制御部２２は、データ送信装置１から送信された送信用データを受信し、受信した送信用データをデータ受信用バッファメモリ２１に書き込む。
【００３４】
以上説明したように、本実施形態に係るデータ送信制御装置（制御部１４）によれば、データ受信用バッファメモリ２１に滞留するデータ量の推定値をデータ送信制御装置が計数するので、データ受信用バッファメモリ２１のオーバーフローを制御するにあたりＰＡＵＳＥフレームの通知を必要としない。従って、ＰＡＵＳＥフレームの通知に起因するデータ送信の遅延が抑制される。
【００３５】
また、本実施形態に係るデータ送信制御装置（制御部１４）によれば、従来よりデータ受信用バッファメモリ２１の記憶容量を削減することができる。以下、その理由を図４を参照して説明する。
図４は、送信システムから送信されたデータを受信システムが受信したことにより、システム間でフロー制御が発生した場合を示している。従来の方法におけるフロー制御は受信システム側が主導して行う。受信システムは、データ受信用バッファメモリのデータ滞留量を監視し、データの受信によりデータ滞留量が一定の値を超えた場合には送信システムに対してＰＡＵＳＥフレームを送信する。送信システムは、ＰＡＵＳＥフレームを受信した場合にはデータ送信経路へのデータ送出を停止することにより、データ受信用バッファメモリのオーバーフローを回避する。
【００３６】
本処理において、フロー制御の可否の判定から実際にデータ送信が停止されるまでの間には以下に示すタイムラグが発生する。受信システムにおけるＰＡＵＳＥフレームの送出は、対向側データ送信経路のインバンド通信で行われるため、他のデータ送信途中の場合はその送信終了まで待つ必要がある（以下、この待ち時間をＣ１とする。）。更に、ＰＡＵＳＥフレームが送信されてから送信システムに到達するまでの送信遅延時間（以下、この送信遅延時間をＣ２とする。）、送信システムがＰＡＵＳＥフレームを受信してからＰＡＵＳＥフレームの内容を解釈するまでの時間（以下、この時間をＣ３とする。）がかかる。また、送信システムがデータ送信中であれば送信処理の終了を待つ必要がある（以下、この待ち時間をＣ４とする。）。従って、データ受信用バッファメモリのオーバーフローを回避するためには、Ｃ１〜４の合計から求まるタイムラグの間に送信システムから受信システムに送信されるデータをデータ受信用バッファメモリに全て格納しなければならない。そのため、通常、データ受信用バッファメモリには記憶容量が十分に大きいものが採用される。
これに対して、本実施形態に係るデータ送信制御装置（制御部１４）は、ＰＡＵＳＥフレームの送出を必要としないため、Ｃ１〜４の合計であるタイムラグは発生しない。そのため、上記タイムラグの間に送信されるデータを考慮して記憶容量が十分に大きいデータ受信用バッファメモリを採用する必要がない。従って、データ受信用バッファメモリの記憶容量の削減が図れる。
【００３７】
（実施形態２）
続いて、図５に示すようにデータ送信経路が冗長化されたデータ送受信システムに本発明を適用した例を説明する。なお、以下の説明において、実施形態１と共通する構成要素等については、同一の符号を付し、その説明を省略する。
【００３８】
本実施形態において、データ送信装置１は、複数のデータ送信用バッファメモリ１１−１〜Ｎ（Ｎは２以上の整数）を備える。また、データ受信装置２は、複数のデータ受信用バッファメモリ２１−１〜Ｎを備える。なお、データ送信用バッファメモリ１１−１〜Ｎに記憶された各送信用データは、データ送信経路１〜Ｎを介してデータ受信用バッファメモリ２１−１〜Ｎのそれぞれに送信される。その他の構成は実施形態１と同様である。
【００３９】
次に、本実施形態におけるデータ送信制御処理の流れについて、図６に示すフローチャートを参照して説明する。
【００４０】
［データ送信制御処理］
制御部１４は、データ書込制御部１２から送信用データのデータ量を受け付けると、データ送信制御処理を開始する。
【００４１】
制御部１４の構成要素である加算制御部１４１は、データ送信制御処理が開始されると、制御部１４が記憶するカウンタ（内部変数）ｎに１を加算する（ステップＳ８）。なお、カウンタｎは１以上Ｎ以下の整数であり、カウンタｎの初期値は０である。続いて、加算制御部１４１は、送信用データのデータ量を加算するよう計数部１４３に要求する（ステップＳ１）。
【００４２】
減算制御部１４２は、カウンタｎの値が１なので、データベース１５に予め記憶されているデータ受信用バッファメモリ２１−１について被読出データのデータ量１を取得する。そして、取得した被読出データのデータ量１を減算するよう計数部１４３に要求する（ステップＳ２’）。
【００４３】
計数部１４３は、加算制御部１４１からの加算要求に従い、保持するデータ受信用バッファメモリ２１−１の記憶データ量１に送信用データのデータ量を加算する。なお、計数部１４３は、データ受信バッファメモリ２１−１〜Ｎの記憶データ量１〜Ｎ（それぞれ初期値は０）を保持している。ここでは、カウンタｎの値が１なので、加算対象にデータ受信用バッファメモリ２１−１の記憶データ量１が選択されている（後述する減算についても同様）。次に、計数部１４３は、保持するデータ受信用バッファメモリ２１−１の記憶データ量１からデータ受信用バッファメモリ２１−１の被読出データのデータ量１を減算する。計数部１４３は、このような加算・減算により、データ受信バッファメモリ２１−１の記憶データ量１（推定値）を計数する（ステップＳ３’）。
【００４４】
送信許否判別部１４４は、データベース１５に予め記憶されているデータ受信用バッファメモリ２１−１の記憶容量１を取得する。そして、ステップＳ３’で計数されたデータ受信用バッファメモリ２１−１の記憶データ量１がデータ受信用バッファメモリ２１−１の記憶容量１以下か否かを判別し（ステップＳ４’）、記憶データ量１が記憶容量１を超えていると判別した場合には（ステップＳ４’；Ｎｏ）、カウンタｎの値がＮ未満か否かを判別する（ステップＳ９）。なお、Ｎの値は、データ送信用バッファメモリ１１−１〜Ｎの個数及び受信用バッファメモリ２１−１〜Ｎの個数と一致する。
【００４５】
送信許否判別部１４４は、カウンタｎの値がＮ未満であると判別した場合には（ステップＳ９；Ｙｅｓ）、ステップＳ８に処理を戻す。この場合、加算制御部１４１は、カウンタｎに１を加算する。以下、データ受信用バッファメモリ２１−２について、上述した処理と同様の処理が実行される。
【００４６】
ステップＳ８、Ｓ１、Ｓ２’、Ｓ３’、Ｓ４’、Ｓ９の処理は、データ受信用バッファメモリ２１−２〜ＮのいずれかがステップＳ４’の条件を満たすまで、データ受信用バッファメモリ２１−２、２１−３、２１−４・・・というように昇順で実行される。ここで、データ受信用バッファメモリ２１−２がステップＳ４’の条件を満たしたとする。この場合、送信許否判別部１４４は、データ受信用バッファメモリ２１−２へのデータ送信経路２を介した送信用データの送信を許可する旨をデータ書込制御部１２とデータ読出制御部１３に通知し（ステップＳ７’）、カウンタｎの値を初期化する（カウンタｎの値を０に戻す）（ステップＳ１０）。
【００４７】
データ書込制御部１２は、上記通知を受けた場合には未送信の送信用データを送信用バッファメモリ１１−２に書き込む。また、データ読出制御部１３は、送信用バッファメモリ１１−２に書き込まれた未送信の送信用データを送信用バッファメモリ１１−２専用のデータ送信経路２を介してデータ受信装置２に送信する。データ書込制御部２２は、データ送信装置１から送信された送信用データを受信し、受信した送信用データをデータ受信用バッファメモリ２１−２に書き込む。このようにして、データ受信用バッファメモリ２１−１〜Ｎのうち、十分な空き領域を有するデータ受信用バッファメモリ２１−ｎに送信用データが書き込まれていく。そして、データ読出制御部２３は、周期的にデータ受信用バッファメモリ２１−１〜Ｎからデータを読み出し、多重部２４に供給する。多重部２４は、供給されたデータを論理的に１つのデータに纏めて他のデータ送信先に送信する。なお、このように複数のデータ送信経路１〜Ｎを１本の論理データ送信経路として扱う方法としては、ＩＥＥＥ８０２．３ａｄ規格で規定されているリングアグリケーション等が挙げられる。
【００４８】
続いて、データ受信用バッファメモリ２１−１〜ＮのいずれもステップＳ４’の条件を満たさない場合の処理について説明する。この場合、カウンタｎの値はＮまで加算されるため、ステップＳ９において、送信許否判別部１４４は、カウンタｎの値がＮ以上であると判別する（ステップＳ９；Ｎｏ）。そして、送信許否判別部１４４は、待ち時間が経過したか否かを判別し（ステップＳ６）、待ち時間が経過していないと判別した場合には（ステップＳ６；Ｎｏ）、待ち時間が経過するまで繰り返しステップＳ６の処理を実行する。そして、待ち時間が経過したと判別した場合には（ステップＳ６；Ｙｅｓ）、カウンタｎを初期化し（カウンタｎの値を０に戻し）（ステップＳ１１）、ステップＳ８に処理を戻す。そして、上述したステップＳ８以下の処理が再度実行される。
【００４９】
以上説明したように、本実施形態に係るデータ送信制御装置（制御部１４）によれば、データ送信経路が冗長化されたデータ送受信システムにおいて実施形態１と同様のオーバーフロー制御を実現できる。従って、実施形態１に比べてデータ送信速度と耐障害性に優れたデータ送受信システムにおいて、実施形態１と同様のオーバーフロー制御を実現できる。
【００５０】
（変形例）
以上、本発明の実施形態について説明したが、上記実施形態は一例であり、本発明の適用範囲はこれに限られない。即ち、本発明の実施形態は種々の応用が可能であり、あらゆる実施の形態が本発明の範囲に含まれる。
【００５１】
例えば、データ受信用バッファメモリ２１−１〜Ｎの中からデータ送信先を判別する方法は、データ送信先においてオーバーフローの発生を防止できれば、上記実施形態２で説明した判別方法に限定されない。例えば、ステップＳ４’のデータ送信条件を満たすデータ受信用バッファメモリ２１−ｎのうち、空き容量が最も小さいデータ受信用バッファメモリ２１−ｎをデータ送信先として判別してもよい。以下、この判別方法について図７を参照して具体的に説明する。
【００５２】
図７に示すように、ステップＳ４’において、送信許否判別部１４４は、データ受信用バッファメモリ２１−ｎの記憶データ量ｎがデータ受信用バッファメモリ２１−ｎの記憶容量ｎ以下か否かを判別する（なお、ステップＳ８、Ｓ１、Ｓ２’、Ｓ３’の処理内容は上記実施形態２と同様なので説明を省略する）。そして、記憶データ量ｎが記憶容量ｎ以下であると判別した場合には（ステップＳ４’；Ｙｅｓ）、データ受信用バッファメモリ２１−ｎの空き容量を計数する（ステップＳ１２）。次に、送信許否判別部１４４は、カウンタｎの値がＮ未満か否かを判別し（ステップＳ９）、カウンタｎの値がＮ未満であると判別した場合には（ステップＳ９；Ｙｅｓ）、ステップＳ８に処理を戻す。ステップＳ８に処理が戻ると、カウンタｎの値に１が加算され、カウンタｎの値がＮになるまでステップＳ８、Ｓ１、Ｓ２’、Ｓ３’、Ｓ４’、Ｓ１２、Ｓ９の処理が繰り返し実行される。なお、送信許否判別部１４４は、ステップＳ４’において記憶データ量ｎが記憶容量ｎを超えていると判別した場合には（ステップＳ４’；Ｎｏ）、データ受信用バッファメモリ２１−ｎはデータ送信先には成り得ないので、ステップＳ１２の空き容量の計数処理をスキップして、ステップＳ９の処理を実行する。
【００５３】
カウンタｎの値がＮまで加算されると、送信許否判別部１４４は、カウンタｎの値がＮ以上であると判別し（ステップＳ９；Ｎｏ）、ステップＳ４’のデータ送信条件を満たすデータ受信用バッファメモリ２１−ｎが存在するか否かを判別する（ステップＳ１３）。ここで、送信許否判別部１４４は、データ送信条件を満たすデータ受信用バッファメモリ２１−ｎが存在すると判別した場合には（ステップＳ１３；Ｙｅｓ）、ステップＳ１２で計数した各データ受信用バッファメモリ２１−ｎの空き容量に基づいて、データ送信条件を満たす受信用バッファメモリ２１−ｎのうちの空き容量が最少のものを判別する。そして、空き容量が最少のデータ受信用バッファメモリ２１−ｎへのデータ送信経路ｎ（データ受信用バッファメモリ２１−ｎ専用のデータ送信経路ｎ）を介したデータ送信を許可する旨をデータ書込制御部１２及びデータ読出制御部１３に通知し（ステップＳ７”）、カウンタｎの値を初期化する（カウンタｎの値を０に戻す）（ステップＳ１０）。なお、ステップＳ１３において、送信許否判別部１４４は、ステップＳ４’のデータ送信条件を満たすデータ受信用バッファメモリ２１−ｎが存在しないと判別した場合には（ステップＳ１３；Ｎｏ）、ステップＳ６、Ｓ１１の処理を実行する（ステップＳ６、Ｓ１１の処理内容は上記実施形態２と同様なので説明を省略する）。
【００５４】
また、上記実施形態２では、ステップＳ４’の判別をデータ受信用バッファメモリ２１−１、２１−２、２１−３・・・というように１からｎまで昇順で実行したが、Ｎからｎまで降順で実行してもよい。
【００５５】
また、上記実施形態２では図６のステップＳ１０においてカウンタｎの値を初期化したが（カウンタｎの値を０に戻したが）、初期化せずにデータ送信制御処理終了時のカウンタｎの値を保持してもよい。その場合、次のデータ送信制御処理は、前回のデータ送信制御処理終了時のカウンタｎの値が引き継がれた状態で実行される。
【００５６】
また、本発明は、レイヤ３におけるパケット通信、レイヤ２におけるフレーム通信、ＡＴＭ（Asynchronous Transfer Mode）等、非同期型のデータ通信分野に適用可能である。また、物理レイヤについても有線、無線を問わず適用可能である。
【００５７】
また、通常、データは双方向で送受信されるため、データ送信装置１とデータ受信装置２とがそれぞれ互いの全構成を含み、ある場面ではデータ送信装置１がデータ受信装置２として機能し、データ受信装置２がデータ送信装置１として機能してもよい。
【００５８】
なお、本発明に係る機能を実現するための構成を予め備えたデータ送信制御装置（制御部１４）として提供できることはもとより、プログラムの適用により、既存のパーソナルコンピュータや情報端末機器等を、本発明に係るデータ送信制御装置として機能させることもできる。即ち、上記実施形態で例示したデータ送信制御装置による各機能構成を実現させるためのプログラムを、既存のパーソナルコンピュータや情報端末機器等を制御するＣＰＵ等が実行できるように適用することで、本発明に係るデータ送信制御装置として機能させることができる。また、本発明に係るデータ送信制御方法は、データ送信制御装置を用いて実施できる。
【００５９】
また、このようなプログラムの適用方法は任意である。プログラムを、例えば、コンピュータが読取可能な記録媒体［ＣＤ−ＲＯＭ（Compact Disc Read-Only Memory）、ＤＶＤ（Digital Versatile Disc）、ＭＯ（Magneto Optical disc）等］に格納して適用できる他、インターネット等のネットワーク上のストレージにプログラムを格納しておき、これをダウンロードさせることにより適用することもできる。
【００６０】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００６１】
（付記１）
データ送信装置が備えるデータ送信用メモリに書き込まれる送信用データのデータ量を受け付ける受付部と、
前記送信用データの送信先であるデータ受信用メモリから読み出される被読出データのデータ量を取得する取得部と、
前記送信用データのデータ量と前記被読出データのデータ量とに基づいて、未送信の前記送信用データを前記データ受信用メモリに記憶させた場合における前記データ受信用メモリの記憶データ量を計数する計数部と、
前記記憶データ量と前記データ受信用メモリの記憶容量とに基づいて、未送信の前記送信用データの送信許否を判別し、送信を許可しないと判別した場合には未送信の前記送信用データを前記データ受信用メモリに送信しないように前記データ送信装置を制御する判別制御部と、
を備えることを特徴とするデータ送信制御装置。
【００６２】
（付記２）
前記計数部は、送信を許可しないと判別された場合には予め定められた待ち時間が経過したか否かを判別し、前記待ち時間が経過したと判別した場合には前記データ受信用メモリの記憶データ量を計数し、
前記判別制御部は、前記待ち時間経過後に計数された前記記憶データ量と前記データ受信用メモリの記憶容量とに基づいて、未送信の前記送信用データの送信許否を判別し、送信を許可すると判別した場合には前記データ送信用メモリが記憶する未送信の前記送信用データを前記データ受信用メモリに送信するように前記データ送信装置を制御する、
ことを特徴とする付記１に記載のデータ送信制御装置。
【００６３】
（付記３）
前記取得部は、複数の前記データ受信用メモリの各々について前記被読出データのデータ量を取得し、
前記計数部は、前記送信用データのデータ量と複数の前記被読出データのデータ量とに基づいて、前記データ受信用メモリごとに未送信の前記送信用データを当該データ受信用メモリに記憶させた場合における当該データ受信用メモリの記憶データ量を計数し、
前記判別制御部は、各前記データ受信用メモリの前記記憶データ量と前記記憶容量とに基づいて、前記データ受信用メモリごとに未送信の前記送信用データの送信許否を判別し、いずれか１つの前記データ受信用メモリについて送信を許可すると判別した場合には当該データ受信用メモリに当該データ受信用メモリ専用のデータ送信経路を介して未送信の前記送信用データを送信するように前記データ送信装置を制御する、
ことを特徴とする付記１に記載のデータ送信制御装置。
【００６４】
（付記４）
前記取得部は、複数の前記データ受信用メモリの各々について前記被読出データのデータ量を取得し、
前記計数部は、前記送信用データのデータ量と複数の前記被読出データのデータ量とに基づいて、前記データ受信用メモリごとに未送信の前記送信用データを当該データ受信用メモリに記憶させた場合における当該データ受信用メモリの記憶データ量を計数し、
前記判別制御部は、各前記データ受信用メモリの前記記憶データ量と前記記憶容量とに基づいて、前記データ受信用メモリごとに未送信の前記送信用データの送信許否を判別し、少なくとも１つの前記データ受信用メモリについて送信を許可すると判別した場合には、送信を許可すると判別された前記データ受信用メモリのうちの所定条件を満たすいずれかの前記データ受信用メモリに当該データ受信用メモリ専用のデータ送信経路を介して未送信の前記送信用データを送信するように前記データ送信装置を制御する、
ことを特徴とする付記１に記載のデータ送信制御装置。
【００６５】
（付記５）
前記判別制御部は、送信を許可すると判別された前記データ受信用メモリのうちの空き容量が最大である前記データ受信用メモリに当該データ受信用メモリ専用のデータ送信経路を介して未送信の前記送信用データを送信するように前記データ送信装置を制御することを特徴とする付記４に記載のデータ送信制御装置。
【００６６】
（付記６）
前記計数部は、全ての前記データ受信用メモリについて送信を許可しないと判別された場合には予め定められた待ち時間が経過したか否かを判別し、前記待ち時間が経過したと判別した場合には前記データ受信用メモリごとに当該データ受信用メモリの記憶データ量を計数し、
前記判別制御部は、前記待ち時間経過後に計数された各前記データ受信用メモリの前記記憶データ量と前記記憶容量とに基づいて、前記データ受信用メモリごとに未送信の前記送信用データの送信許否を判別し、判別結果に基づいて前記データ送信装置を制御する、
ことを特徴とする付記３乃至５のいずれかに記載のデータ送信制御装置。
【００６７】
（付記７）
前記判別制御部は、前記記憶データ量が前記データ受信用メモリの記憶容量を超えた場合に送信を許可しないと判別することを特徴とする付記１乃至６のいずれかに記載のデータ送信制御装置。
【００６８】
（付記８）
送信用データのデータ量を受け付ける受付ステップと、
前記送信用データのデータ送信先から読み出される被読出データのデータ量を取得する取得ステップと、
前記送信用データのデータ量と前記被読出データのデータ量とに基づいて、未送信の前記送信用データを前記データ送信先に記憶させた場合における前記データ送信先の記憶データ量を計数する計数ステップと、
前記記憶データ量と前記データ送信先の記憶容量とに基づいて、未送信の前記送信用データの送信許否を判別し、送信を許可しないと判別した場合には未送信の前記送信用データを前記データ送信先に送信しないように制御する判別制御ステップと、
を備えることを特徴とするデータ送信制御方法。
【００６９】
（付記９）
コンピュータを、
データ送信装置が備えるデータ送信用メモリに書き込まれる送信用データのデータ量を受け付ける受付部、
前記送信用データの送信先であるデータ受信用メモリから読み出される被読出データのデータ量を取得する取得部、
前記送信用データのデータ量と前記被読出データのデータ量とに基づいて、未送信の前記送信用データを前記データ受信用メモリに記憶させた場合における前記データ受信用メモリの記憶データ量を計数する計数部、
前記記憶データ量と前記データ受信用メモリの記憶容量とに基づいて、未送信の前記送信用データの送信許否を判別し、送信を許可しないと判別した場合には未送信の前記送信用データを前記データ受信用メモリに送信しないように前記データ送信装置を制御する判別制御部、
として機能させることを特徴とするプログラム。
【符号の説明】
【００７０】
１      データ送信装置
２      データ受信装置
１１、１１−１〜Ｎ  データ送信用バッファメモリ
１２    データ書込制御部
１３    データ読出制御部
１４    制御部
１５    データベース
２１、２１−１〜Ｎ  データ受信用バッファメモリ
２２    データ書込制御部
２３    データ読出制御部
２４    多重部
１４１  加算制御部
１４２  減算制御部
１４３  計数部
１４４  送信許否判別部
【図１】
0006502134.tif 000002
【図２】
0006502134.tif 000003
【図３】
0006502134.tif 000004
【図４】
0006502134.tif 000005
【図５】
0006502134.tif 000006
【図６】
0006502134.tif 000007
【図７】
0006502134.tif 000008