(57)【特許請求の範囲】
【請求項１】
送信用バッファに一時蓄積されているデータを順次読み出して送信する第１のネットワーク装置と、伝送路を介して前記第１のネットワーク装置から届いた到達データを受信用バッファへ順次蓄積する際、当該受信用バッファにおけるデータ蓄積量の増大に応じて、当該受信用バッファ内で第１のバッファから第２のバッファへ、前記到達データの蓄積先を切り替える第２のネットワーク装置とを備え、
前記第１のネットワーク装置は、
前記送信用バッファから読み出して前記第２のネットワーク装置へ送信したデータを監視することにより、前記第２のネットワーク装置の前記受信用バッファにおけるデータ蓄積量を推測する送信側蓄積量推測部と、
前記送信側蓄積量推測部で推測された前記データ蓄積量を示す推測値が所定の規定値を上回った時点を、前記第２のネットワーク装置における前記第２のバッファの起動処理開始時点として検出する起動検出部と、
前記起動検出部で検出された前記起動処理開始時点から前記第２のバッファの起動処理に要する起動処理期間長にわたって、前記送信用バッファから読み出して前記第２のネットワーク装置へ送信するデータの送信データレートを制限するデータレート制御部と
を備え、
前記第２のネットワーク装置は、
前記受信用バッファへ入力される前記到達データを監視することにより前記受信用バッファでのデータ蓄積量を推測する蓄積量推測部と、
前記受信用バッファでの実際のデータ蓄積量を計測する蓄積量計測部と、
前記蓄積量推測部で推測された前記データ蓄積量の推測値および蓄積量計測部で計測された前記データ蓄積量の計測値が前記規定値に達する時刻を予測し、これら時刻の間に入力される前記到達データを蓄積するための予備容量を算出し、前記規定値から当該予備容量を減算して得られた基準値を、前記推測値または前記計測値のうち少なくともいずれか一方が上回った時点で、前記第２のバッファを使用停止状態から使用可能状態とするための起動処理を開始する起動制御部と、
前記到達データの蓄積先を前記第１のバッファから前記第２のバッファへ切り替える際、前記計測値が前記規定値を上回り、かつ、前記起動処理が完了した時点で、前記蓄積先を前記第２のバッファへ切り替える切替制御部と
を備える
ことを特徴とするデータ通信システム。
【請求項２】
請求項１記載のデータ通信システムにおいて、
前記起動制御部は、
既定時間Ｔｓごとに、当該Ｔｓの間における前記計測値の時間変化量Ｓ１と前記推測値の時間変化量Ｓ２とを計算し、
前記Ｓ１が０以下の場合には、前記基準値として前記規定値を設定し、
前記Ｓ１が０よりも大きく、かつ前記Ｓ２が０よりも大きい場合には、前記計測値が前記規定値に達する時刻Ｔ１と前記推測値が前記規定値に達する時刻Ｔ２との差を時間差ΔＴとし、
前記Ｓ１が０よりも大きく、かつ前記Ｓ２が０以下の場合には、前記第２のバッファの前記起動処理期間長Ｔｗを前記時間差ΔＴとし、
前記第１のネットワーク装置における最大送信データレートＳｐｏｎと前記第１のネットワーク装置での前記送信データレートの制限下における送信データレートＳｓｈａｐとの差を、前記時間差ΔＴと乗算することにより予備容量ΔＮを算出し、得られた予備容量ΔＮだけ前記規定値から減算した値を前記基準値として設定する
ことを特徴とするデータ通信システム。
【請求項３】
請求項１または請求項２に記載のデータ通信システムにおいて、
前記起動検出部は、前記推測値が前記規定値を上回った時点で、前記送信データレートの制限開始を示す制限開始通知を前記第２のネットワーク装置へ送信し、
前記切替制御部は、前記制限開始通知の受信に応じて、前記第２のバッファを使用可能状態とするための前記起動処理を開始する
ことを特徴とするデータ通信システム。
【請求項４】
送信用バッファに一時蓄積されているデータを順次読み出して送信するとともに、通信相手となる第２のネットワーク装置の受信用バッファにおけるデータ蓄積量の推定値に基づいて、前記第２のネットワーク装置へ送信するデータの送信データレートを制御する第１のネットワーク装置から、伝送路を介して届いた到達データを受信用バッファへ順次蓄積する前記第２のネットワーク装置に設けられて、前記受信用バッファにおけるデータ蓄積量の増大に応じて、当該受信用バッファ内で第１のバッファから第２のバッファへ、前記到達データの蓄積先を切り替えるバッファ制御装置であって、
前記受信用バッファへ入力される前記到達データを監視することにより前記受信用バッファでのデータ蓄積量を推測する蓄積量推測部と、
前記受信用バッファでの実際のデータ蓄積量を計測する蓄積量計測部と、
前記蓄積量推測部で推測された前記データ蓄積量の推測値および蓄積量計測部で計測された前記データ蓄積量の計測値が所定の規定値に達する時刻を予測し、これら時刻の間に入力される前記到達データを蓄積するための予備容量を算出し、前記規定値から当該予備容量を減算して得られた基準値を、前記推測値または前記計測値のうち少なくともいずれか一方が上回った時点で、前記第２のバッファを使用停止状態から使用可能状態とするための起動処理を開始する起動制御部と、
前記到達データの蓄積先を前記第１のバッファから前記第２のバッファへ切り替える際、前記計測値が前記規定値を上回り、かつ、前記起動処理が完了した時点で、前記蓄積先を前記第２のバッファへ切り替える切替制御部と
を備えることを特徴とするバッファ制御装置。
【請求項５】
請求項４記載のバッファ制御装置において、
前記起動制御部は、
既定時間Ｔｓごとに、当該Ｔｓの間における前記計測値の時間変化量Ｓ１と前記推測値の時間変化量Ｓ２とを計算し、
前記Ｓ１が０以下の場合には、前記基準値として前記規定値を設定し、
前記Ｓ１が０よりも大きく、かつ前記Ｓ２が０よりも大きい場合には、前記計測値が前記規定値に達する時刻Ｔ１と前記推測値が前記規定値に達する時刻Ｔ２との差を時間差ΔＴとし、
前記Ｓ１が０よりも大きく、かつ前記Ｓ２が０以下の場合には、前記第２のバッファの起動処理期間長Ｔｗを前記時間差ΔＴとし、
前記第１のネットワーク装置における最大送信データレートＳｐｏｎと前記第１のネットワーク装置での前記送信データレートの制限下における送信データレートＳｓｈａｐとの差を、前記時間差ΔＴと乗算することにより予備容量ΔＮを算出し、得られた予備容量ΔＮだけ前記規定値から減算した値を前記基準値として設定する
ことを特徴とするバッファ制御装置。
【請求項６】
請求項４または請求項５に記載のバッファ制御装置において、
前記切替制御部は、前記第１のネットワーク装置からの前記送信データレートの制限開始を示す制限開始通知の受信に応じて、前記第２のバッファを使用可能状態とするための前記起動処理を開始する
ことを特徴とするバッファ制御装置。
【請求項７】
送信用バッファに一時蓄積されているデータを順次読み出して送信するとともに、通信相手となる第２のネットワーク装置の受信用バッファにおけるデータ蓄積量の推定値に基づいて、前記第２のネットワーク装置へ送信するデータの送信データレートを制御する第１のネットワーク装置から、伝送路を介して届いた到達データを受信用バッファへ順次蓄積する第２のネットワーク装置で用いられて、前記受信用バッファにおけるデータ蓄積量の増大に応じて、当該受信用バッファ内で第１のバッファから第２のバッファへ、前記到達データの蓄積先を切り替えるバッファ制御方法であって、
蓄積量推測部が、前記受信用バッファへ入力される前記到達データを監視することにより前記受信用バッファでのデータ蓄積量を推測する蓄積量推測ステップと、
蓄積量計測部が、前記受信用バッファでの実際のデータ蓄積量を計測する蓄積量計測ステップと、
起動制御部が、前記蓄積量推測ステップで推測された前記データ蓄積量の推測値および蓄積量計測ステップで計測された前記データ蓄積量の計測値が所定の規定値に達する時刻を予測し、これら時刻の間に入力される前記到達データを蓄積するための予備容量を算出し、前記規定値から当該予備容量を減算して得られた基準値を、前記推測値または前記計測値のうち少なくともいずれか一方が上回った時点で、前記第２のバッファを使用停止状態から使用可能状態とするための起動処理を開始する起動制御ステップと、
切替制御部が、前記到達データの蓄積先を前記第１のバッファから前記第２のバッファへ切り替える際、前記計測値が前記規定値を上回り、かつ、前記起動処理が完了した時点で、前記蓄積先を前記第２のバッファへ切り替える切替制御ステップと
を備える
ことを特徴とするバッファ制御方法。
【請求項８】
請求項７記載のバッファ制御方法において、
前記起動制御ステップは、
既定時間Ｔｓごとに、当該Ｔｓの間における前記計測値の時間変化量Ｓ１と前記推測値の時間変化量Ｓ２とを計算するステップと、
前記Ｓ１が０以下の場合には、前記基準値として前記規定値を設定するステップと、
前記Ｓ１が０よりも大きく、かつ前記Ｓ２が０よりも大きい場合には、前記計測値が前記規定値に達する時刻Ｔ１と前記推測値が前記規定値に達する時刻Ｔ２との差を時間差ΔＴとするステップと、
前記Ｓ１が０よりも大きく、かつ前記Ｓ２が０以下の場合には、前記第２のバッファの起動処理期間長Ｔｗを前記時間差ΔＴとするステップと、
前記第１のネットワーク装置における最大送信データレートＳｐｏｎと前記第１のネットワーク装置での前記送信データレートの制限下における送信データレートＳｓｈａｐとの差を、前記時間差ΔＴと乗算することにより予備容量ΔＮを算出し、得られた予備容量ΔＮだけ前記規定値から減算した値を前記基準値として設定するステップと
を含むことを特徴とするバッファ制御方法。
【請求項９】
請求項７または請求項８に記載のバッファ制御方法において、
前記切替制御ステップは、前記第１のネットワーク装置からの前記送信データレートの制限開始を示す制限開始通知の受信に応じて、前記第２のバッファを使用可能状態とするための前記起動処理を開始するステップを含むことを特徴とするバッファ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信技術に関し、特に送信元となるネットワーク装置から送信先となるネットワーク装置に対して送信されるデータのバッファ制御技術に関する。
【背景技術】
【０００２】
ＰＯＮシステムなどの光データ通信システムでは、多くの場合、光通信区間の通信速度に比べて、データ受信側のネットワーク装置におけるＵＮＩ（User Network Interface：ユーザ網インタフェース）の通信速度が低いため、データ受信側のネットワーク装置に、大容量のバッファを設ける必要がある。
【０００３】
図７は、従来のＰＯＮシステムにおけるバッファ構成を示す説明図である。
ＯＮＵ（Optical Network Unit：加入者側装置）には、上りバッファと下りバッファとが設けられており、ＵＮＩを介して受信したデータ（パケット）は、上りバッファを介してＯＬＴ（Optical Line Terminal：局側装置）へと送信され、ＯＬＴから受信したデータは下りバッファを介してＵＮＩへと送信される。また、ＯＬＴにも同様に上りバッファと下りバッファとが設けられており、ＯＮＵから受信したデータは上りバッファを介してＮＮＩ（Network Network Interface：網網インタフェース）へと送信され、ＮＮＩから受信したデータは下りバッファを介してＯＮＵへと送信される。
【０００４】
ＯＮＵの下りバッファには、特に大容量のバッファが必要となり、消費電力が大きい。ＯＮＵの下りバッファを省電力化する方法として、非特許文献１の方法が提案されている。この方法は、ＯＮＵの下りバッファに適用する併用バッファ方法と、ＯＬＴの下りバッファに適用する帯域制御方法の２つの方法とからなる。
【０００５】
図８は、従来の帯域制御方法および併用バッファ方法を適用したＰＯＮシステムでの下りバッファ構成を示す説明図である。
ＯＮＵの下りバッファは、小容量で消費電力が小さい内部バッファ、大容量で消費電力が大きい外部バッファ、両バッファへの蓄積制御を行うバッファ制御回路とからなる。非特許文献１においてＯＮＵの併用バッファ方法は、両バッファの蓄積量の和の値（以後バッファ蓄積量と呼ぶ）に応じてバッファを切り替えることで、ＯＮＵの下りバッファを省電力化する。
【０００６】
内部バッファは、規定値の容量と起動用領域用の容量とを備える。規定値の容量は、ＯＮＵが省電力用に備える容量のことであり、バッファ蓄積量が少ない場合には当該容量のみで当該ＯＮＵ宛の下りデータを蓄積して外部バッファを停止し、ＯＮＵの下りバッファを省電力化する。起動用領域用の容量とは、ＯＮＵが外部バッファの起動処理中に入力されるデータを蓄積するために用いる起動用領域の容量である。
【０００７】
この併用バッファ方法では、バッファ制御回路がバッファ蓄積量を計測し、当該計測値が規定値を上回ると、バッファ制御回路が外部バッファの起動を指示する。外部バッファは、当該指示を受けると、起動処理を開始する。外部バッファの起動処理中は、ＯＮＵは起動用領域にデータを蓄積し、外部バッファの起動が完了すると、外部バッファにデータを蓄積する。非特許文献１では、この併用バッファ方法を用いるとともに、さらに起動用領域を削減してコスト増大要因である内部バッファ容量を最小化するために、ＯＬＴに帯域制御方法を適用している。
【０００８】
帯域制御方法は、ＯＮＵが備える外部バッファが起動処理中の場合に、ＯＬＴが当該ＯＮＵ宛の下りデータレートを制限する。この方法により、ＯＮＵが備える外部バッファが起動処理中の場合にはＯＮＵが受信する下りデータ量が少なくなり、ＯＮＵのバッファに蓄積されるデータ量が少なくなるため、ＯＮＵが内部バッファ内に備える起動用領域を削減できる。
【０００９】
図９Ａは、ＯＬＴの下りバッファの動作（通常時）を示す説明図であり、図９Ｂは、ＯＬＴの下りバッファの動作（外部バッファ起動時）を示す説明図である。
ＯＬＴは、通常時、図９Ａに示すように、ＯＮＵに対して下りデータレートを制限することなく、下りデータをＯＮＵに送信する。これに対して、ＯＮＵが備える外部バッファが起動処理中とＯＬＴが判断した場合に、図９Ｂに示すように、予め計測した外部バッファの起動処理時間が経過するまで、当該ＯＮＵ宛の下りデータレートを制限する。
【００１０】
ＯＬＴは、ＯＮＵのバッファ蓄積量の推測値を算出する。ＯＮＵのバッファ蓄積量の推測値の算出は、当該ＯＮＵ宛の下りデータの積算値（単位はＢｙｔｅ）から、当該ＯＮＵが単位時間当たりにＵＮＩに出力可能なＢｙｔｅ量（８×ＵＮＩの伝送速度［bit/s］×単位時間）を減算して得る。ただし、単位時間とは例えば、ＯＮＵのプロトコル制御用ＬＳＩの１クロックサイクル時間である。
【００１１】
ＯＬＴは、このようにして算出した推測値が上記規定値を上回ると、当該ＯＮＵが備える外部バッファが起動処理中と判断し、下りデータレートの制限を開始する。下りデータレートの制限は、外部バッファの起動処理時間が経過するまで維持し、当該起動処理時間経過後は下りデータレートの制限を終了する。
【００１２】
図１０は、従来の帯域制御方法および併用バッファ方法を適用したＯＮＵのバッファ蓄積動作を示す説明図であり、図１０（ａ）はＯＮＵが受信する下りデータ、図１０（ｂ）はＯＮＵにてデータが蓄積されるバッファの種類と、バッファ蓄積量とを示している。図１０において、横軸は時間であり、図１０（ｂ）の縦軸はバッファ蓄積量である。
ＯＬＴが当該帯域制御方法を適用した場合には、ＯＮＵが備える外部バッファが起動処理中において、下りデータレートが制限され、ＯＮＵのバッファ蓄積量の増大量が少なくなる。これにより、ＯＮＵは起動用領域を小さくして内部バッファの容量を削減できる。下りデータレートの制限時の通信速度をＳｓｈａｐ［Byte/s］とし、外部バッファの起動処理期間長をＴｗとすれば、起動用領域の容量［byte］は、Ｓｓｈａｐ×Ｔｗで得られる。
【先行技術文献】
【非特許文献】
【００１３】
【非特許文献１】鵜澤寛之ほか、“ONUのバッファ省電力化手法の検討”、B-8-19、2010ソサイエティ大会、電子情報通信学会、2010-8-31発行。
【発明の概要】
【発明が解決しようとする課題】
【００１４】
前述した非特許文献１の帯域制御方法では、ＯＬＴにおいて、ＯＮＵの外部バッファが起動処理中か否かを正確に把握することが重要である。なぜなら、ＯＮＵでの外部バッファの起動処理の開始時間とＯＬＴでの下りデータレートの制限開始時間とが一致しなければ、ＯＮＵが備える起動用領域だけでは蓄積しきれず、ＯＮＵでデータ損失が発生するためである。
【００１５】
このため、非特許文献１では、ＯＮＵがＵＮＩからＰＡＵＳＥフレームを受信し、ＯＮＵがＵＮＩへのデータ送信を停止した場合、ＯＬＴがＯＮＵが備える外部バッファが起動処理中か否かを正確に把握できず、データ損失が発生する課題がある。
このデータ損失は、ＯＮＵがＵＮＩにデータの送信を停止した場合、ＯＮＵでの外部バッファの起動処理開始時刻がＯＬＴでの下りデータレートの制限開始時刻よりも早まり、ＯＮＵが外部バッファの起動処理中に入力される全てのデータを起動用領域だけでは蓄積しきれなくなることが原因で発生する。
【００１６】
すなわち、従来の帯域制御方法では、ＯＬＴがＯＮＵのバッファ蓄積量の推測値を算出し、当該推測値が規定値を上回ると、ＯＮＵが備える外部バッファが起動処理中と判断して下りデータレートを制限する。この推測値の算出では、常にＯＮＵはＵＮＩ伝送速度でＵＮＩにデータを送信し続けることを前提として算出する。このため、ＯＮＵがＰＡＵＳＥフレームをＵＮＩから受信し、ＯＮＵがＵＮＩへのデータ送信を停止した場合には、上記前提が成立しない状態となるため、実際のバッファ蓄積量が規定値を上回る時刻が、ＯＬＴでのバッファ蓄積量の推測値が規定値を上回る時刻よりも早まる。
【００１７】
このことは、ＯＮＵでの外部バッファ起動処理開始時刻が、ＯＬＴでの下りデータレート制限開始時刻よりも早まり、外部バッファの起動処理中でも下りデータレートが制限されない時間が生じることを意味する。このため、起動用領域だけでは、外部バッファの起動処理中に入力される全てのデータを蓄積するのに容量が不足し、データ損失が発生する。
【００１８】
図１１は、ＯＮＵのバッファ蓄積動作例（起動用領域不足時）を示す説明である。
図１１において、Ｔｗ［s］はＯＮＵが備える外部バッファの起動処理期間長、ΔＴ［s］はＯＮＵの実際のバッファ蓄積量とその推測値とが規定値を上回る時刻の時間差、Ｓｐｏｎ［Byte/s］は下りデータレート通信速度の最大値、Ｓｓｈａｐ［Byte/s］は下りデータレートの制限時の通信速度である。当該帯域制御方法を適用した場合には、ＯＮＵが備える外部バッファが起動処理中の間は、ＯＬＴで当該ＯＮＵの下りデータレートが制限され、ＯＮＵが受信する下りデータレートの通信速度がＳｓｈａｐになることを前提に、起動用領域の容量が決定される。
【００１９】
しかし、図１１に示すように、ＯＬＴでの下りデータレートの制限開始時刻がＯＮＵでの外部バッファの起動処理開始時刻よりもΔＴだけ遅れた場合には、当該ΔＴの間にＯＮＵが受信する下りデータレートが最大でＳｐｏｎになる。このため、当該ＯＮＵが外部バッファの起動処理中に入力されるデータを全て蓄積するには、起動用領域の他に、データ損失防止に要する容量が追加で必要になる。当該容量ΔＮは、（Ｓｐｏｎ−Ｓｓｈａｐ）×ΔＴで得られる値である。
【００２０】
このように、非特許文献１において、当該ＯＮＵが外部バッファの起動処理中に入力されるデータを蓄積するために備える容量は、起動用領域のみであるため、起動用領域の他に必要な容量ΔＮを備えておらず、容量が不足してデータ損失が発生してしまう。
【００２１】
本発明はこのような課題を解決するためのものであり、受信側ネットワーク装置での外部バッファ起動処理開始時刻と送信側ネットワーク装置での下りデータレート制限開始時刻との時間差に起因するデータ損失の発生を防止できるバッファ制御技術を提供することを目的とする。
【課題を解決するための手段】
【００２２】
このような目的を達成するために、本発明にかかるデータ通信システムは、送信用バッファに一時蓄積されているデータを順次読み出して送信する第１のネットワーク装置と、伝送路を介して第１のネットワーク装置から届いた到達データを受信用バッファへ順次蓄積する際、当該受信用バッファにおけるデータ蓄積量の増大に応じて、当該受信用バッファ内で第１のバッファから第２のバッファへ、到達データの蓄積先を切り替える第２のネットワーク装置とを備え、第１のネットワーク装置は、送信用バッファから読み出して第２のネットワーク装置へ送信したデータを監視することにより、第２のネットワーク装置の受信用バッファにおけるデータ蓄積量を推測する送信側蓄積量推測部と、送信側蓄積量推測部で推測されたデータ蓄積量を示す推測値が所定の規定値を上回った時点を、第２のネットワーク装置における第２のバッファの起動処理開始時点として検出する起動検出部と、起動検出部で検出された起動処理開始時点から前記第２のバッファの起動処理に要する起動処理期間長にわたって、送信用バッファから読み出して第２のネットワーク装置へ送信するデータの送信データレートを制限するデータレート制御部とを備え、第２のネットワーク装置は、受信用バッファへ入力される到達データを監視することにより受信用バッファでのデータ蓄積量を推測する蓄積量推測部と、受信用バッファでの実際のデータ蓄積量を計測する蓄積量計測部と、蓄積量推測部で推測されたデータ蓄積量の推測値および蓄積量計測部で計測されたデータ蓄積量の計測値が規定値に達する時刻を予測し、これら時刻の間に入力される到達データを蓄積するための予備容量を算出し、規定値から当該予備容量を減算して得られた基準値を、推測値または計測値のうち少なくともいずれか一方が上回った時点で、第２のバッファを使用停止状態から使用可能状態とするための起動処理を開始する起動制御部と、到達データの蓄積先を第１のバッファから第２のバッファへ切り替える際、計測値が規定値を上回り、かつ、起動処理が完了した時点で、蓄積先を第２のバッファへ切り替える切替制御部とを備えている。
【００２３】
この際、起動制御部で、既定時間Ｔｓごとに、当該Ｔｓの間における計測値の時間変化量Ｓ１と推測値の時間変化量Ｓ２とを計算し、Ｓ１が０以下の場合には、基準値として規定値を設定し、Ｓ１が０よりも大きく、かつＳ２が０よりも大きい場合には、計測値が規定値に達する時刻Ｔ１と推測値が規定値に達する時刻Ｔ２との差を時間差ΔＴとし、Ｓ１が０よりも大きく、かつＳ２が０以下の場合には、第２のバッファの起動処理期間長Ｔｗを時間差ΔＴとし、第１のネットワーク装置における最大送信データレートＳｐｏｎと第１のネットワーク装置での送信データレートの制限下における送信データレートＳｓｈａｐとの差を、時間差ΔＴと乗算することにより予備容量ΔＮを算出し、得られた予備容量ΔＮだけ規定値から減算した値を基準値として設定するようにしてもよい。
【００２４】
また、起動検出部で、推測値が規定値を上回った時点で、送信データレートの制限開始を示す制限開始通知を第２のネットワーク装置へ送信し、切替制御部で、制限開始通知の受信に応じて、第２のバッファを使用可能状態とするための起動処理を開始するようにしてもよい。
【００２５】
また、本発明にかかるバッファ制御装置は、送信用バッファに一時蓄積されているデータを順次読み出して送信するとともに、通信相手となる第２のネットワーク装置の受信用バッファにおけるデータ蓄積量の推定値に基づいて、第２のネットワーク装置へ送信するデータの送信データレートを制御する第１のネットワーク装置から、伝送路を介して届いた到達データを受信用バッファへ順次蓄積する第２のネットワーク装置に設けられて、受信用バッファにおけるデータ蓄積量の増大に応じて、当該受信用バッファ内で第１のバッファから第２のバッファへ、到達データの蓄積先を切り替えるバッファ制御装置であって、受信用バッファへ入力される到達データを監視することにより受信用バッファでのデータ蓄積量を推測する蓄積量推測部と、受信用バッファでの実際のデータ蓄積量を計測する蓄積量計測部と、蓄積量推測部で推測されたデータ蓄積量の推測値および蓄積量計測部で計測されたデータ蓄積量の計測値が所定の規定値に達する時刻を予測し、これら時刻の間に入力される到達データを蓄積するための予備容量を算出し、規定値から当該予備容量を減算して得られた基準値を、推測値または計測値のうち少なくともいずれか一方が上回った時点で、第２のバッファを使用停止状態から使用可能状態とするための起動処理を開始する起動制御部と、到達データの蓄積先を第１のバッファから第２のバッファへ切り替える際、計測値が規定値を上回り、かつ、起動処理が完了した時点で、蓄積先を第２のバッファへ切り替える切替制御部とを備えている。
【００２６】
この際、起動制御部で、既定時間Ｔｓごとに、当該Ｔｓの間における計測値の時間変化量Ｓ１と推測値の時間変化量Ｓ２とを計算し、Ｓ１が０以下の場合には、基準値として規定値を設定し、Ｓ１が０よりも大きく、かつＳ２が０よりも大きい場合には、計測値が規定値に達する時刻Ｔ１と推測値が規定値に達する時刻Ｔ２との差を時間差ΔＴとし、Ｓ１が０よりも大きく、かつＳ２が０以下の場合には、第２のバッファの起動処理期間長Ｔｗを時間差ΔＴとし、第１のネットワーク装置における最大送信データレートＳｐｏｎと第１のネットワーク装置での送信データレートの制限下における送信データレートＳｓｈａｐとの差を、時間差ΔＴと乗算することにより予備容量ΔＮを算出し、得られた予備容量ΔＮだけ規定値から減算した値を基準値として設定するようにしてもよい。
【００２７】
また、切替制御部で、第１のネットワーク装置からの送信データレートの制限開始を示す制限開始通知の受信に応じて、第２のバッファを使用可能状態とするための起動処理を開始するようにしてもよい。
【００２８】
また、本発明にかかるバッファ制御方法は、送信用バッファに一時蓄積されているデータを順次読み出して送信するとともに、通信相手となる第２のネットワーク装置の受信用バッファにおけるデータ蓄積量の推定値に基づいて、第２のネットワーク装置へ送信するデータの送信データレートを制御する第１のネットワーク装置から、伝送路を介して届いた到達データを受信用バッファへ順次蓄積する第２のネットワーク装置で用いられて、受信用バッファにおけるデータ蓄積量の増大に応じて、当該受信用バッファ内で第１のバッファから第２のバッファへ、到達データの蓄積先を切り替えるバッファ制御方法であって、蓄積量推測部が、受信用バッファへ入力される到達データを監視することにより受信用バッファでのデータ蓄積量を推測する蓄積量推測ステップと、蓄積量計測部が、受信用バッファでの実際のデータ蓄積量を計測する蓄積量計測ステップと、起動制御部が、蓄積量推測ステップで推測されたデータ蓄積量の推測値および蓄積量計測ステップで計測されたデータ蓄積量の計測値が所定の規定値に達する時刻を予測し、これら時刻の間に入力される到達データを蓄積するための予備容量を算出し、規定値から当該予備容量を減算して得られた基準値を、推測値または計測値のうち少なくともいずれか一方が上回った時点で、第２のバッファを使用停止状態から使用可能状態とするための起動処理を開始する起動制御ステップと、切替制御部が、到達データの蓄積先を第１のバッファから第２のバッファへ切り替える際、計測値が規定値を上回り、かつ、起動処理が完了した時点で、蓄積先を第２のバッファへ切り替える切替制御ステップとを備えている。
【００２９】
この際、起動制御ステップに、既定時間Ｔｓごとに、当該Ｔｓの間における計測値の時間変化量Ｓ１と推測値の時間変化量Ｓ２とを計算するステップと、Ｓ１が０以下の場合には、基準値として規定値を設定するステップと、Ｓ１が０よりも大きく、かつＳ２が０よりも大きい場合には、計測値が規定値に達する時刻Ｔ１と推測値が規定値に達する時刻Ｔ２との差を時間差ΔＴとするステップと、Ｓ１が０よりも大きく、かつＳ２が０以下の場合には、第２のバッファの起動処理期間長Ｔｗを時間差ΔＴとするステップと、第１のネットワーク装置における最大送信データレートＳｐｏｎと第１のネットワーク装置での送信データレートの制限下における送信データレートＳｓｈａｐとの差を、時間差ΔＴと乗算することにより予備容量ΔＮを算出し、得られた予備容量ΔＮだけ規定値から減算した値を基準値として設定するステップとを含んでもよい。
【００３０】
また、切替制御ステップに、第１のネットワーク装置からの送信データレートの制限開始を示す制限開始通知の受信に応じ、第２のバッファを使用可能状態とするための起動処理を開始するステップを含んでもよい。
【発明の効果】
【００３１】
本発明によれば、第１のネットワーク装置での送信データレート制限開始よりも前の時点で、第２のバッファの起動処理を開始することができる。したがって、受信側ネットワーク装置での第２のバッファの起動処理開始時刻と、第１のネットワーク装置での送信データレートの制限開始時刻との時間差に起因するデータ損失の発生を防止することが可能となる。
【図面の簡単な説明】
【００３２】
【図１】第１の実施の形態にかかるデータ通信システムの構成を示すブロック図である。
【図２】バッファ蓄積量の変化（ΔＴ＝０）を示す説明図である。
【図３】バッファ蓄積量の変化（ΔＴ＞０）を示す説明図である。
【図４】基準値算出処理を示すフローチャートである。
【図５】起動制御処理を示すフローチャートである。
【図６】切替制御処理を示すフローチャートである。
【図７】従来のＰＯＮシステムにおけるバッファ構成を示す説明図である。
【図８】従来の帯域制御方法および併用バッファ方法を適用したＰＯＮシステムでの下りバッファ構成を示す説明図である。
【図９Ａ】ＯＬＴの下りバッファの動作（通常時）を示す説明図である。
【図９Ｂ】ＯＬＴの下りバッファの動作（外部バッファ起動時）を示す説明図である。
【図１０】従来の帯域制御方法および併用バッファ方法を適用したＯＮＵのバッファ蓄積動作を示す説明図である。
【図１１】ＯＮＵのバッファ蓄積動作例（起動用領域不足時）を示す説明である。
【発明を実施するための形態】
【００３３】
次に、本発明の実施の形態について図面を参照して説明する。
［第１の実施の形態］
まず、図１を参照して、本発明の第１の実施の形態にかかるデータ通信システム１について説明する。図１は、第１の実施の形態にかかるデータ通信システムの構成を示すブロック図である。
【００３４】
このデータ通信システム１は、下りバッファ（送信用バッファ）１１を介してデータ（パケット）を送信するＯＬＴ（第１のネットワーク装置）１０と、伝送路Ｌを介して接続されたＯＬＴからのデータを、下りバッファ（受信用バッファ）２１に設けた内部バッファ（第１のバッファ）２２と外部バッファ（第２のバッファ）２３とを切り替えて蓄積する、１つ以上のＯＮＵ（第２のネットワーク装置）２０とを備えている。
【００３５】
本実施の形態では、データ通信システム１をＰＯＮシステムに適用した場合を例として説明するが、これに限定されるものではなく、他の一般的なデータ通信システムにも同様に適用可能である。
また、以下の説明では、ＯＬＴからＯＮＵへデータが送信される送信方向を下りといい、ＯＮＵからＯＬＴへデータが送信される送信方向を上りという。本実施の形態では、ＯＬＴからＯＮＵへの下り方向に対して適用した場合を例として説明するが、これに限定されるものではなく、ＯＮＵからＯＬＴへの上り方向に対しても同様に適用可能である。
【００３６】
本実施の形態において、ＯＬＴは従来と同一の帯域制御方法を実施し、ＯＮＵは従来と同一の併用バッファ方法に加えて、新たにデータ損失防止方法を実施する。
具体的には、ＯＬＴにおいて、下りバッファから読み出してＯＮＵへ送信したデータを監視することによりＯＮＵの下りバッファにおけるデータ蓄積量を推測し、推測されたデータ蓄積量を示す推測値が規定値を上回った時点を、ＯＮＵでのバッファ切替のために行われる外部バッファ２３の起動処理開始時点として検出し、この起動処理開始時点から外部バッファ２３の起動処理に要する起動処理期間長Ｔｗにわたって、送信用バッファから読み出してＯＮＵへ送信するデータの下りデータレートを制限する。
【００３７】
また、ＯＮＵにおいて、下りバッファへ入力される到達データを監視することにより下りバッファでのデータ蓄積量を推測し、受信用バッファでの実際のデータ蓄積量を計測し、これら推測値および計測値が規定値に達する時刻を予測し、これら時刻の間に入力される到達データを蓄積するための予備容量を算出し、規定値から当該予備容量を減算して得られた基準値を、推測値または計測値のうち少なくともいずれか一方が上回った時点で、第２のバッファを使用停止状態から使用可能状態とするための起動処理を開始し、到達データの蓄積先を内部バッファ２２から外部バッファ２３へ切り替える際、計測値が規定値を上回り、かつ、外部バッファ２３の起動処理が完了した時点で、蓄積先を外部バッファ２３へ切り替える。
【００３８】
本実施の形態によれば、外部バッファ起動処理開始時刻がＯＬＴでの下りデータレート制限開始時刻よりも早い場合にも、ＯＮＵが、外部バッファの起動処理中に入力されるデータを全て内部バッファに蓄積することで、データ損失を防止している。外部バッファの起動処理中に入力されるデータを全て蓄積するには、起動用領域の容量の他に、データ損失防止に要する容量が内部バッファに必要になる。本実施の形態におけるＯＮＵは、このようなデータ損失防止に要する容量を持つ予備領域を、内部バッファ内に動的に確保する。この際、外部バッファ起動処理開始時刻が下りデータレート制限開始時刻よりも遅れて時間差ΔＴが生じることは稀であるため、予備領域を動的に確保することで、従来と同等の省電力効果を発揮しつつ、データ損失を防止できる。
【００３９】
［ＯＬＴ］
次に、図１を参照して、本実施の形態にかかるデータ通信システム１で用いられるＯＬＴ１０の構成について詳細に説明する。
ＯＬＴ１０は、ＮＮＩから受信した下りデータを下りバッファに一時蓄積し、それぞれの送信先となるＯＮＵへ送信するネットワーク装置である。このＯＬＴ１０には、主な機能部として、下りバッファ１１、下りデータレート制御部１２、蓄積量推測部１３、および起動検出部１４が設けられている。
【００４０】
下りバッファ１１は、例えば半導体メモリからなり、ＮＮＩからの下りデータ（パケット）を一時蓄積する機能を有している。
下りデータレート制御部１２は、例えば専用の通信回路からなり、下りバッファ１１から読み出された、個々のＯＮＵへ送信する下りデータを、それぞれのＯＮＵに対して設定されている下りデータレートにしたがって送信する機能と、起動検出部１４からの指示に応じて、起動検出部１４で検出された起動処理開始時点からＯＮＵにおける外部バッファ２３の起動処理に要する起動処理期間長Ｔｗにわたって、指示されたＯＮＵへの下りデータレートを制限（低減）する機能とを有している。
【００４１】
蓄積量推測部１３は、例えば専用のＬＳＩからなり、下りデータレート制御部１２から伝送路Ｌへ出力された下りデータを、ＯＮＵごとに個別に監視する機能と、これら監視結果に基づいて、ＯＮＵごとに、当該ＯＮＵの下りバッファでのデータ蓄積量をそれぞれ推測する機能とを有している。
【００４２】
起動検出部１４は、例えば専用のＬＳＩからなり、ＯＮＵごとに、蓄積量推測部１３で推測されたデータ蓄積量の推測値と、予め設定されている規定値Ｎｗとを比較する機能と、この比較の結果、任意のＯＮＵに関する推測値が規定値を上回った時点を、ＯＮＵにおける外部バッファ２３の起動処理開始時点として検出する機能と、この起動処理開始時点から起動処理期間長Ｔｗにわたって、当該ＯＮＵに対する下りデータレートの制限を、下りデータレート制御部１２へ指示する機能とを有している。なお、規定値Ｎｗおよび起動処理期間長Ｔｗについては、通信開始時のネゴシエーションで、ＯＮＵからＯＬＴへ通知したものを用いてもよい。
【００４３】
［ＯＮＵ］
次に、図１を参照して、本実施の形態にかかるデータ通信システム１で用いられるＯＮＵ２０の構成について詳細に説明する。
ＯＮＵ２０は、伝送路Ｌを介してＯＬＴ１０から到達した下りデータ（到達データ）を下りバッファ２１に一時蓄積し、ＵＮＩから出力するネットワーク装置である。このＯＮＵ２０には、主な機能部として、下りバッファ２１、切替部２４Ａ，２４Ｂ、およびバッファ制御装置２５が設けられている。
【００４４】
下りバッファ２１は、例えば半導体メモリからなり、伝送路Ｌを介してＯＬＴ１０から到達した下りデータを一時蓄積する機能を有している。下りバッファ２１には、内部バッファ２２と外部バッファ２３の２つのバッファが並列的に設けられており、切替部２４Ａにより、いずれか一方が下りデータ（到達データ）の蓄積先として切替選択される。
【００４５】
内部バッファ（第１のバッファ）２２は、外部バッファ２３と比較して記憶容量が小さく、また消費電力も小さい半導体メモリからなり、例えば通信用ＬＳＩ（ＭＡＣ  ＬＳＩ）に内蔵されたメモリが用いられる。
外部バッファ（第２のバッファ）２３は、内部バッファ２２と比較して記憶容量が大きく、また消費電力も大きい半導体メモリからなり、例えば通信用ＬＳＩ（ＭＡＣ  ＬＳＩ）に外部接続されたメモリが用いられる。
【００４６】
本実施の形態では、基本的な動作として、下りデータを下りバッファ２１へ蓄積する際、内部バッファ２２を優先的に使用し、下りバッファ２１におけるデータ蓄積量の増加に応じて、下りデータの蓄積先を内部バッファ２２から外部バッファ２３へ切り替える。また、外部バッファ２３を使用しない場合、例えば外部バッファ２３への電源供給やクロックを制御するなどして、外部バッファ２３を使用可能状態から使用停止状態とする。これにより、下りバッファ２１全体の消費電力を低減できる。
【００４７】
切替部２４Ａは、例えば専用のＬＳＩなどの切替回路からなり、バッファ制御装置２５からの切替指示に応じて、下りバッファ２１へ蓄積する下りデータを、内部バッファ２２または外部バッファ２３のいずれか一方へ切り替え入力する機能を有している。
切替部２４Ｂは、例えば専用のＬＳＩなどの切替回路からなり、バッファ制御装置２５からの切替指示に応じて、下りバッファ２１に蓄積されている下りデータを、内部バッファ２２または外部バッファ２３のいずれか一方から切り替え出力する機能を有している。
【００４８】
バッファ制御装置２５は、下りバッファ２１の内部バッファ２２および外部バッファ２３の切替制御を行う機能を有している。このバッファ制御装置２５には、主な処理部として、蓄積量推測部２６、蓄積量計測部２７、起動制御部２８、および切替制御部２９が設けられている。バッファ制御装置２５を構成する、蓄積量推測部２６、蓄積量計測部２７、起動制御部２８、および切替制御部２９については、内部バッファ２２および切替部２４Ａ，２４Ｂとともに、例えば通信用ＬＳＩ（ＭＡＣ  ＬＳＩ）などの１つの共通したＬＳＩで実現してもよい。
【００４９】
蓄積量推測部２６は、伝送路Ｌを介してＯＬＴから下りバッファ２１へ届いた下りデータ（到達データ）を監視する機能と、この監視結果に基づいて下りバッファ２１でのデータ蓄積量、すなわち内部バッファ２２および外部バッファ２３の両方でのデータ蓄積量を推測し、推測値Ｎｅとして出力する機能とを有している。
蓄積量計測部２７は、伝送路Ｌを介してＯＬＴから下りバッファ２１へ届いた下りデータ（到達データ）を監視する機能と、下りバッファ２１から出力された下りデータを監視する機能と、この監視結果に基づいて下りバッファ２１でのデータ蓄積量、すなわち内部バッファ２２および外部バッファ２３の両方での実際のデータ蓄積量を計測し、計測値Ｎｍとして出力する機能とを有している。
【００５０】
起動制御部２８は、蓄積量推測部２６で得られた下りバッファ２１に関するデータ蓄積量の推測値Ｎｅ、および蓄積量計測部２７で得られた下りバッファ２１に関するデータ蓄積量の計測値Ｎｍが、規定値Ｎｗに達する時刻Ｔ１，Ｔ２を予測する機能と、これら時刻Ｔ１から時刻Ｔ２までの期間に入力される到達データを蓄積するための予備容量ΔＮを算出する機能と、規定値Ｎｗから当該予備容量を減算して基準値Ｎｓを算出する機能と、推測値Ｎｅおよび計測値Ｎｍを基準値Ｎｓとそれぞれ比較する機能と、これら推測値Ｎｅまたは計測値Ｎｍのうち、少なくともいずれか一方が基準値Ｎｓを上回った時点で（Ｎｅ＞Ｎｓ  ｏｒ  Ｎｍ＞Ｎｓ）、外部バッファ２３を停止状態から使用可能状態とするための起動処理の開始を、下りバッファ２１に対して指示する起動処理開始指示を出力する機能とを有している。
【００５１】
切替制御部２９は、下りバッファ２１におけるデータ蓄積量の増大に応じて、到達データの蓄積先を内部バッファ２２から外部バッファ２３へ切り替える際、蓄積量計測部２７で得られた計測値Ｎｍが規定値Ｎｗを上回り（Ｎｍ＞Ｎｗ）、かつ、外部バッファ２３の起動処理が完了した時点で、蓄積先を外部バッファ２３へ切り替える機能を有している。この際、内部バッファ２２から外部バッファ２３への切り替えについては、切替制御部２９から切替部２４Ａに対して、外部バッファ切替指示が出力される。
【００５２】
なお、本発明は、ＯＮＵの下りバッファ２１におけるデータ蓄積量の増大に応じて、下りバッファ２１内で内部バッファ２２から外部バッファ２３へ、到達データの蓄積先を切り替える制御に関するものであり、外部バッファ２３から内部バッファ２２への切り替えについては、任意の切替制御を採用すればよい。
外部バッファ２３から内部バッファ２２への切替制御の一例として、計測値Ｎｍがゼロとなったことが検出された時点で（Ｎｍ＝０）、切替制御部２９により、外部バッファ２３から内部バッファ２２へ切り替えるようにしてもよい。また、他の切替制御の例として、規定値Ｎｗより小さいデータ蓄積量からなるしきい値Ｎｖを予め設定しておき、切替制御部２９により、計測値Ｎｍがしきい値Ｎｖ以下となり、かつ、蓄積量計測部２７で得られた外部バッファ２３のデータ蓄積量Ｎｇがゼロとなったことが検出された時点で（Ｎｍ≦Ｎｖ  ａｎｄ  Ｎｇ＝０）、外部バッファ２３から内部バッファ２２へ切り替えるようにしてもよい。
【００５３】
［第１の実施の形態の動作］
次に、図２〜図６を参照して、本実施の形態にかかるデータ通信システム１の動作について説明する。図２は、バッファ蓄積量の変化（ΔＴ＝０）を示す説明図である。図３は、バッファ蓄積量の変化（ΔＴ＞０）を示す説明図である。図４は、基準値算出処理を示すフローチャートである。図５は、起動制御処理を示すフローチャートである。図６は、切替制御処理を示すフローチャートである。
【００５４】
ＯＮＵの下りバッファ２１において、外部バッファ２３の起動遅れに起因して発生するデータ損失の防止には、起動遅れの期間に入力される到達データを蓄積するための予備容量ΔＮを、内部バッファ２２内に確保する必要がある。この予備容量ΔＮは、ＯＮＵが時間差ΔＴを算出し、このΔＴの値に基づいてＯＮＵが動的に内部バッファ２２に確保する。
【００５５】
ΔＴは、ＯＮＵでの外部バッファ２３の起動処理開始時刻の予測値からなる起動開始予測時刻Ｔ１と、ＯＬＴでの下りデータレート制限開始時刻の予測値からなる制限開始予測時刻Ｔ２との時間差である。ＯＮＵは、実際のバッファ蓄積量を示す計測値Ｎｍと、ＯＬＴと同一の方法で算出したバッファ蓄積量の推測値Ｎｅとから、規定時間Ｔｓ［ｓ］ごとにＴ１、Ｔ２を線形補間により算出し、当該時間差ΔＴを算出する。
【００５６】
ＯＮＵは、このΔＴの値に基づいて、データ損失防止に要する予備容量ΔＮを算出をする。そして、外部バッファ２３を起動すべきデータ蓄積量を示す基準値Ｎｓを、初期値である規定値Ｎｗから予備容量ΔＮ分だけ減らした値とすることで、起動用領域とは別個に、データ損失防止に要する予備容量ΔＮを持つ予備領域を内部バッファ２２内に確保し、この予備領域分のデータを内部バッファ２２に蓄積する。この基準値Ｎｓの初期値は規定値Ｎｗであり、バッファ蓄積量の計測値Ｎｍもしくは推測値Ｎｅのいずれか一方でも基準値Ｎｓを上回ると、ＯＮＵは外部バッファ２３の起動処理を開始する。
【００５７】
ΔＴが０の場合には、図２に示すように、基準値Ｎｓは初期値、すなわち規定値Ｎｗと同一の値であるため、ＯＮＵは従来と同様に、外部バッファ２３の起動処理中に入力されるデータは全て起動用領域のみで蓄積する。一方、ΔＴが正の場合には、図３に示すように、データ損失防止に要する予備容量ΔＮ分だけ基準値Ｎｓを規定値Ｎｗから下げ、外部バッファ２３の起動処理中に入力されるデータを予備領域と起動用領域とに蓄積する。すなわち、ＯＮＵは、起動用領域とデータ損失防止に要する予備容量ΔＮとで、外部バッファ２３の起動処理中に入力される全てのデータを蓄積する。
【００５８】
ＯＮＵは、データ通信時、規定時間Ｔｓ［ｓ］ごとに、図３に示すデータ損失防止処理を実行することにより、時間差ΔＴの算出および基準値Ｎｓの変更を行う。この際、ＯＮＵが、ΔＴに基づいて基準値Ｎｓを下げるのは、Ｔ１がＴ２よりも早い場合のみである。なぜなら、本実施の形態にかかるＯＮＵは、推測値Ｎｅが基準値Ｎｓを上回る場合にも外部バッファ２３の起動処理を開始するため、Ｔ１がＴ２よりも遅い、もしくは同一の場合、外部バッファ２３の起動処理中は必ずＯＬＴで下りデータレートが制限され、起動用領域のみで蓄積できるからである。
【００５９】
一方、Ｔ１がＴ２よりも早くなる可能性があるのは、バッファ蓄積量の時間変化量Ｓ１が正の場合のみである。このため、起動制御部２８は、図４に示す基準値算出処理において、まず、蓄積量計測部２７で得られた下りバッファ２１に関するバッファ蓄積量の計測値Ｎｍに基づいて、計測値Ｎｍの時間変化量（傾き）Ｓ１を算出する（ステップ１００）。Ｓ１は、次の式（１）に示すように、現在の計測値Ｎｍから、時間Ｔｓ分だけ過去の計測値Ｎ'ｍを減算した値を、時間Ｔｓで除算することにより算出される。
【数１】
0005421306.tif 000002
【００６０】
また、起動制御部２８は、蓄積量推測部２６で得られた下りバッファ２１に関するバッファ蓄積量の推測値Ｎｅに基づいて、推測値Ｎｅの時間変化量（傾き）Ｓ２を算出する(ステップ１０１)。Ｓ２は、次の式（２）に示すように、現在の推測値Ｎｅから、時間Ｔｓ分だけ過去の推測値Ｎ'ｅを減算した値を、時間Ｔｓで除算することにより算出される。
【数２】
0005421306.tif 000003
なお、ステップ１００およびステップ１０１の処理順序については、これに限定されるものではなく、ステップ１０１を実行した後にステップ１００を実行してもよく、ステップ１００およびステップ１０１を並列的に実行してもよい。
【００６１】
ここで、Ｓ１が０以下の場合（ステップ１０２：ＮＯ）、起動制御部２８は、Ｔ１、Ｔ２を算出せずに基準値Ｎｓを初期値Ｎｗとして（ステップ１１０）、一連の基準値算出処理を終了する。これにより、前述した図２の場合と同様の動作となる。
【００６２】
一方、Ｓ１が０より大きく（ステップ１０２：ＹＥＳ）、Ｓ２も０より大きい場合（ステップ１０３：ＹＥＳ）、起動制御部２８は、蓄積量計測部２７で得られた下りバッファ２１に関するバッファ蓄積量の計測値Ｎｍに基づいて、外部バッファ２３の起動処理開始時刻の予測値からなる起動開始予測時刻Ｔ１を算出する（ステップ１０４）。Ｔ１は、次の式（３）に示すような線形補間式で、規定値Ｎｗから、現在の計測値Ｎｍを減算した値を、計測値Ｎｍの時間変化量Ｓ１で除算することにより算出される。なお、式（３）については、多項式補間等の他の式を用いてもよい。
【数３】
0005421306.tif 000004
【００６３】
続いて、起動制御部２８は、蓄積量推測部２６で得られた下りバッファ２１に関するバッファ蓄積量の推測値Ｎｅに基づいて、ＯＬＴにおける下りデータレート制限開始時刻の予測値からなる制限開始予測時刻Ｔ２を算出する（ステップ１０５）。Ｔ２は、次の式（４）に示すような線形補間式で、規定値Ｎｗから、現在の推測値Ｎｅを減算した値を、推測値Ｎｅの時間変化量Ｓ２で除算することにより算出される。なお、式（４）については、多項式補間等の他の式を用いてもよい。
【数４】
0005421306.tif 000005
なお、ステップ１０４およびステップ１０５の処理順序については、これに限定されるものではなく、ステップ１０５を実行した後にステップ１０４を実行してもよく、ステップ１０４およびステップ１０５を並列的に実行してもよい。
【００６４】
この後、起動制御部２８は、前述のようにして求めたＴ２からＴ１を減算することにより、ΔＴを算出し（ステップ１０６）、このΔＴと速度差Ｓｐｏｎ−Ｓｓｈａｐとから予備容量ΔＮを算出する（ステップ１０８）。ΔＮは、次の式（５）に示すように、下りデータレート通信速度の最大値Ｓｐｏｎ［Byte/s］と下りデータレートの制限時の通信速度Ｓｓｈａｐ［Byte/s］との速度差に、ΔＴを乗算することにより算出される。
【数５】
0005421306.tif 000006
【００６５】
続いて、起動制御部２８は、規定値（初期値）Ｎｗから予備容量ΔＮだけ減算することにより、基準値Ｎｓを算出し（ステップ１０９）、一連の基準値算出処理を終了する。これにより、前述した図３の場合と同様の動作となる。
【００６６】
なお、ステップ１０３において、Ｓ２が０以下の場合（ステップ１０３：ＮＯ）、Ｔ２は無限大となり、外部バッファの起動処理中にＯＬＴで下りデータレートが制限されない。この場合には、速度差が発生する時間は外部バッファ３２の起動処理期間長Ｔｗとなるため、ΔＴをＴｗとした後（ステップ１０７）、ステップ１０８へ移行する。
【００６７】
次に、図５を参照して、起動制御部２８における起動制御処理について説明する。
起動制御部２８は、まず、蓄積量推測部２６で得られた下りバッファ２１に関するバッファ蓄積量の推測値Ｎｅと、図４の基準値算出処理で求めた基準値Ｎｓとを比較する（ステップ１２０）。
ここで、推測値Ｎｅが基準値Ｎｓより大きい場合（ステップ１２０：ＹＥＳ）、下りバッファ２１の外部バッファ２３の起動を指示する起動処理開始指示を出力し（ステップ１２２）、一連の起動制御処理を終了する。
【００６８】
また、推測値Ｎｅが基準値Ｎｓ以下の場合（ステップ１２０：ＮＯ）、起動制御部２８は、蓄積量計測部２７で得られた下りバッファ２１に関するバッファ蓄積量の計測値Ｎｍと、図４の基準値算出処理で求めた基準値Ｎｓとを比較する（ステップ１２１）。
【００６９】
ここで、計測値Ｎｍが基準値Ｎｓより大きい場合（ステップ１２１：ＹＥＳ）、外部バッファ２３の起動を指示する起動処理開始指示を下りバッファ２１へ出力し（ステップ１２２）、一連の起動制御処理を終了する。
また、計測値Ｎｍが基準値Ｎｓ以下の場合（ステップ１２１：ＮＯ）、起動処理開始指示を出力せずに、一連の起動制御処理を終了する。
なお、ステップ１２０およびステップ１２１の処理順序については、これに限定されるものではなく、ステップ１２１を実行した後にステップ１２０を実行してもよく、ステップ１２０およびステップ１２１を並列的に実行し、これらの判定結果のいずれかがＹＥＳを示す場合に、ステップ１２２へ移行してもよい。
【００７０】
次に、図６を参照して、切替制御部２９における切替制御処理について説明する。ここでは、切替制御部２９における切替制御処理のうち、本発明の要旨にかかる、バッファ２１におけるデータ蓄積量の増大に応じて、下りバッファ２１内で内部バッファ２２から外部バッファ２３へ、到達データの蓄積先を切り替える制御について説明する。
【００７１】
切替制御部２９は、まず、蓄積量計測部２７で得られた下りバッファ２１に関するバッファ蓄積量の計測値Ｎｍと、予め設定されている規定値Ｎｗとを比較する（ステップ１３０）。
ここで、計測値Ｎｍが規定値Ｎｗより大きい場合（ステップ１３０：ＹＥＳ）、切替制御部２９は、外部バッファ２３での起動処理が完了するまで（ステップ１３１：ＮＯ）、それ以前に出力した内部バッファ切替指示による切替部２４Ａの状態を保持することにより、蓄積先として内部バッファを選択する。
【００７２】
また、起動処理が完了した後（ステップ１３１：ＹＥＳ）、切替制御部２９は、下りデータの蓄積先として外部バッファ２３を選択する外部バッファ切替指示を切替部２４Ａへ出力し（ステップ１３２）、一連の切替制御処理を終了する。
なお、計測値Ｎｍが規定値Ｎｗ以下の場合（ステップ１３０：ＮＯ）、切替制御部２９は、下りデータの蓄積先を内部バッファ２２から外部バッファ２３への切り替えをせずに、一連の切替制御処理を終了する。
【００７３】
［第１の実施の形態の効果］
このように、本実施の形態では、ＯＮＵにおいて、蓄積量推測部２６で、下りバッファ２１へ入力される到達データを監視することにより下りバッファ２１でのデータ蓄積量を推測し、蓄積量計測部２７で、下りバッファ２１での実際のデータ蓄積量を計測し、起動制御部２８で、これら推測値Ｎｅおよび計測値Ｎｍが規定値Ｎｗに達する時刻Ｔ１，Ｔ２をそれぞれ予測し、これら時刻Ｔ１，Ｔ２の間ΔＴに入力される到達データを蓄積するための予備容量ΔＮを算出し、規定値Ｎｗから予備容量ΔＮを減算して得られた基準値Ｎｓを、推測値Ｎｅまたは計測値Ｎｍのうち少なくともいずれか一方が上回った時点で、外部バッファ２３を使用停止状態から使用可能状態とするための起動処理を開始し、切替制御部２９で、到達データの蓄積先を内部バッファ２２から外部バッファ２３へ切り替える際、計測値Ｎｍが規定値Ｎｗを上回り、かつ、外部バッファ２３の起動処理が完了した時点で、蓄積先を第２のバッファへ切り替えるようにしたものである。
【００７４】
これにより、ＯＮＵがＵＮＩからＰＡＵＳＥフレームを受信して、ＵＮＩへのデータ送信を停止し、内部バッファ２２のデータ蓄積量が、ＯＬＴでの推測値Ｎｅより早いペースで増加している場合には、外部バッファ２３の起動処理開始判定に用いる基準値Ｎｓが、ＯＬＴでの下りデータレート制限開始判定に用いる規定値Ｎｗより、予備容量ΔＮ分だけ低く設定されるため、ＯＬＴでの下りデータレート制限開始よりも前の時点で、外部バッファ２３の起動処理を開始することができる。したがって、ＯＮＵでの外部バッファ起動処理開始時刻Ｔ２とＯＬＴでの下りデータレート制限開始時刻Ｔ１との時間差ΔＴに起因するデータ損失の発生を防止することが可能となる。
【００７５】
また、本実施の形態では、起動制御部２８で、既定時間Ｔｓごとに、当該Ｔｓの間における計測値Ｎｍの時間変化量Ｓ１と推測値Ｎｅの時間変化量Ｓ２とを計算し、Ｓ１が０以下の場合には、基準値Ｎｓとして規定値Ｎｗを用い、Ｓ１が０よりも大きく、かつＳ２が０よりも大きい場合には、計測値Ｎｍが規定値Ｎｗに達する時刻Ｔ１と推測値Ｎｅが規定値Ｎｗに達する時刻Ｔ２との差を時間差ΔＴとし、Ｓ１が０よりも大きく、かつＳ２が０以下の場合には、外部バッファ２３の起動処理期間長Ｔｗを時間差ΔＴとし、ＯＬＴにおける最大送信データレートＳｐｏｎとＯＬＴでの送信データレートの制限下における送信データレートＳｓｈａｐとの差を、時間差ΔＴと乗算することにより予備容量ΔＮを算出し、得られた予備容量ΔＮだけ規定値Ｎｗから減算した値を基準値Ｎｓとして用いるようにしたものである。
【００７６】
これにより、データ通信システムの通信特性に応じた、過不足のない最適な基準値Ｎｓを算出することができ、内部バッファ２２のデータ蓄積容量を必要最小限の容量に抑えることができる。
【００７７】
［第２の実施の形態］
次に、本発明の第２の実施の形態にかかるデータ通信システム１について説明する。
第１の実施の形態では、ＯＮＵ側で得られた推測値Ｎｅまたは計測値Ｎｍが基準値Ｎｓを上回った場合に、外部バッファ２３の起動処理を開始する場合を例として説明した。本実施の形態では、ＯＬＴから下りデータレートの制限開始が通知された場合にも、外部バッファ２３の起動処理を開始する場合について説明する。
【００７８】
本実施の形態において、ＯＬＴの起動検出部１４は、ＯＮＵのバッファ蓄積量の推測値Ｎｅが規定値Ｎｗを上回ったことを検出した場合、当該ＯＮＵへの下りデータレートの制限の開始を示す制限開始通知を、明示的に当該ＯＮＵに通知する機能を有している。
また、ＯＮＵの起動制御部２８は、ＯＬＴからの制限開始通知に応じて、外部バッファ２３の起動処理を開始する起動処理開始指示を下りバッファ２１へ出力する機能を有している。
【００７９】
これにより、伝送路Ｌでデータが失われて、ＯＮＵが蓄積量推測部２６で算出したバッファ蓄積量の推測値Ｎｅと、ＯＬＴが算出した当該ＯＮＵのバッファ蓄積量の推測値とに誤差が生じた場合であっても、ＯＬＴからの制限開始通知に応じて、外部バッファ２３の起動処理を開始することができ、データ損失を防止することが可能となる。
この際、ＯＬＴが下りデータレートの制限の開始をＯＮＵに通知するための構成については、例えばＭＡＣフレームを用いる方法やプリアンブルの一部に埋め込む等の手段がある。
【００８０】
［実施の形態の拡張］
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。
【符号の説明】
【００８１】
１…データ通信システム、１０…ＯＬＴ（第１のネットワーク装置）、１１…下りバッファ、１２…下りデータレート制御部、１３…蓄積量推測部、１４…起動検出部、２０…ＯＮＵ（第２のネットワーク装置）、２１…下りバッファ、２２…内部バッファ（第１のバッファ）、２３…外部バッファ（第２のバッファ）、２４Ａ，２４Ｂ…切替部、２５…バッファ制御装置、２６…蓄積量推測部、２７…蓄積量計測部、２８…起動制御部、２９…切替制御部。
【図１】
0005421306.tif 000007
【図２】
0005421306.tif 000008
【図３】
0005421306.tif 000009
【図４】
0005421306.tif 000010
【図５】
0005421306.tif 000011
【図６】
0005421306.tif 000012
【図７】
0005421306.tif 000013
【図８】
0005421306.tif 000014
【図９Ａ】
0005421306.tif 000015
【図９Ｂ】
0005421306.tif 000016
【図１０】
0005421306.tif 000017
【図１１】
0005421306.tif 000018