"送信用バッファに一時蓄積されているデータを順次読み出して送信する第1のネットワーク装置と、伝送路を介して前記第1のネットワーク装置から届いた到達データを受信用バッファへ順次蓄積する際、当該受信用バッファにおけるデータ蓄積量の増大に応じて、当該受信用バッファ内で第1のバッファから第2のバッファへ、前記到達データの蓄積先を切り替える第2のネットワーク装置とを備え、前記第1のネットワーク装置は、前記送信用バッファから読み出して前記第2のネットワーク装置へ送信したデータを監視することにより、前記第2のネットワーク装置の前記受信用バッファにおけるデータ蓄積量を推測する送信側蓄積量推測部と、前記送信側蓄積量推測部で推測された前記データ蓄積量を示す推測値が所定の規定値を上回った時点を、前記第2のネットワーク装置における前記第2のバッファの起動処理開始時点として検出する起動検出部と、前記起動検出部で検出された前記起動処理開始時点から前記第2のバッファの起動処理に要する起動処理期間長にわたって、前記送信用バッファから読み出して前記第2のネットワーク装置へ送信するデータの送信データレートを制限するデータレート制御部とを備え、前記第2のネットワーク装置は、前記受信用バッファへ入力される前記到達データを監視することにより前記受信用バッファでのデータ蓄積量を推測する蓄積量推測部と、前記受信用バッファでの実際のデータ蓄積量を計測する蓄積量計測部と、前記蓄積量推測部で推測された前記データ蓄積量の推測値および蓄積量計測部で計測された前記データ蓄積量の計測値が前記規定値に達する時刻を予測し、これら時刻の間に入力される前記到達データを蓄積するための予備容量を算出し、前記規定値から当該予備容量を減算して得られた基準値を、前記推測値または前記計測値のうち少なくともいずれか一方が上回った時点で、前記第2のバッファを使用停止状態から使用可能状態とするための起動処理を開始する起動制御部と、前記到達データの蓄積先を前記第1のバッファから前記第2のバッファへ切り替える際、前記計測値が前記規定値を上回り、かつ、前記起動処理が完了した時点で、前記蓄積先を前記第2のバッファへ切り替える切替制御部とを備えることを特徴とするデータ通信システム。請求項1記載のデータ通信システムにおいて、前記起動制御部は、既定時間Tsごとに、当該Tsの間における前記計測値の時間変化量S1と前記推測値の時間変化量S2とを計算し、前記S1が0以下の場合には、前記基準値として前記規定値を設定し、前記S1が0よりも大きく、かつ前記S2が0よりも大きい場合には、前記計測値が前記規定値に達する時刻T1と前記推測値が前記規定値に達する時刻T2との差を時間差ΔTとし、前記S1が0よりも大きく、かつ前記S2が0以下の場合には、前記第2のバッファの前記起動処理期間長Twを前記時間差ΔTとし、前記第1のネットワーク装置における最大送信データレートSponと前記第1のネットワーク装置での前記送信データレートの制限下における送信データレートSshapとの差を、前記時間差ΔTと乗算することにより予備容量ΔNを算出し、得られた予備容量ΔNだけ前記規定値から減算した値を前記基準値として設定することを特徴とするデータ通信システム。請求項1または請求項2に記載のデータ通信システムにおいて、前記起動検出部は、前記推測値が前記規定値を上回った時点で、前記送信データレートの制限開始を示す制限開始通知を前記第2のネットワーク装置へ送信し、前記切替制御部は、前記制限開始通知の受信に応じて、前記第2のバッファを使用可能状態とするための前記起動処理を開始することを特徴とするデータ通信システム。送信用バッファに一時蓄積されているデータを順次読み出して送信するとともに、通信相手となる第2のネットワーク装置の受信用バッファにおけるデータ蓄積量の推定値に基づいて、前記第2のネットワーク装置へ送信するデータの送信データレートを制御する第1のネットワーク装置から、伝送路を介して届いた到達データを受信用バッファへ順次蓄積する前記第2のネットワーク装置に設けられて、前記受信用バッファにおけるデータ蓄積量の増大に応じて、当該受信用バッファ内で第1のバッファから第2のバッファへ、前記到達データの蓄積先を切り替えるバッファ制御装置であって、前記受信用バッファへ入力される前記到達データを監視することにより前記受信用バッファでのデータ蓄積量を推測する蓄積量推測部と、前記受信用バッファでの実際のデータ蓄積量を計測する蓄積量計測部と、前記蓄積量推測部で推測された前記データ蓄積量の推測値および蓄積量計測部で計測された前記データ蓄積量の計測値が所定の規定値に達する時刻を予測し、これら時刻の間に入力される前記到達データを蓄積するための予備容量を算出し、前記規定値から当該予備容量を減算して得られた基準値を、前記推測値または前記計測値のうち少なくともいずれか一方が上回った時点で、前記第2のバッファを使用停止状態から使用可能状態とするための起動処理を開始する起動制御部と、前記到達データの蓄積先を前記第1のバッファから前記第2のバッファへ切り替える際、前記計測値が前記規定値を上回り、かつ、前記起動処理が完了した時点で、前記蓄積先を前記第2のバッファへ切り替える切替制御部とを備えることを特徴とするバッファ制御装置。請求項4記載のバッファ制御装置において、前記起動制御部は、既定時間Tsごとに、当該Tsの間における前記計測値の時間変化量S1と前記推測値の時間変化量S2とを計算し、前記S1が0以下の場合には、前記基準値として前記規定値を設定し、前記S1が0よりも大きく、かつ前記S2が0よりも大きい場合には、前記計測値が前記規定値に達する時刻T1と前記推測値が前記規定値に達する時刻T2との差を時間差ΔTとし、前記S1が0よりも大きく、かつ前記S2が0以下の場合には、前記第2のバッファの起動処理期間長Twを前記時間差ΔTとし、前記第1のネットワーク装置における最大送信データレートSponと前記第1のネットワーク装置での前記送信データレートの制限下における送信データレートSshapとの差を、前記時間差ΔTと乗算することにより予備容量ΔNを算出し、得られた予備容量ΔNだけ前記規定値から減算した値を前記基準値として設定することを特徴とするバッファ制御装置。請求項4または請求項5に記載のバッファ制御装置において、前記切替制御部は、前記第1のネットワーク装置からの前記送信データレートの制限開始を示す制限開始通知の受信に応じて、前記第2のバッファを使用可能状態とするための前記起動処理を開始することを特徴とするバッファ制御装置。送信用バッファに一時蓄積されているデータを順次読み出して送信するとともに、通信相手となる第2のネットワーク装置の受信用バッファにおけるデータ蓄積量の推定値に基づいて、前記第2のネットワーク装置へ送信するデータの送信データレートを制御する第1のネットワーク装置から、伝送路を介して届いた到達データを受信用バッファへ順次蓄積する第2のネットワーク装置で用いられて、前記受信用バッファにおけるデータ蓄積量の増大に応じて、当該受信用バッファ内で第1のバッファから第2のバッファへ、前記到達データの蓄積先を切り替えるバッファ制御方法であって、蓄積量推測部が、前記受信用バッファへ入力される前記到達データを監視することにより前記受信用バッファでのデータ蓄積量を推測する蓄積量推測ステップと、蓄積量計測部が、前記受信用バッファでの実際のデータ蓄積量を計測する蓄積量計測ステップと、起動制御部が、前記蓄積量推測ステップで推測された前記データ蓄積量の推測値および蓄積量計測ステップで計測された前記データ蓄積量の計測値が所定の規定値に達する時刻を予測し、これら時刻の間に入力される前記到達データを蓄積するための予備容量を算出し、前記規定値から当該予備容量を減算して得られた基準値を、前記推測値または前記計測値のうち少なくともいずれか一方が上回った時点で、前記第2のバッファを使用停止状態から使用可能状態とするための起動処理を開始する起動制御ステップと、切替制御部が、前記到達データの蓄積先を前記第1のバッファから前記第2のバッファへ切り替える際、前記計測値が前記規定値を上回り、かつ、前記起動処理が完了した時点で、前記蓄積先を前記第2のバッファへ切り替える切替制御ステップとを備えることを特徴とするバッファ制御方法。請求項7記載のバッファ制御方法において、前記起動制御ステップは、既定時間Tsごとに、当該Tsの間における前記計測値の時間変化量S1と前記推測値の時間変化量S2とを計算するステップと、前記S1が0以下の場合には、前記基準値として前記規定値を設定するステップと、前記S1が0よりも大きく、かつ前記S2が0よりも大きい場合には、前記計測値が前記規定値に達する時刻T1と前記推測値が前記規定値に達する時刻T2との差を時間差ΔTとするステップと、前記S1が0よりも大きく、かつ前記S2が0以下の場合には、前記第2のバッファの起動処理期間長Twを前記時間差ΔTとするステップと、前記第1のネットワーク装置における最大送信データレートSponと前記第1のネットワーク装置での前記送信データレートの制限下における送信データレートSshapとの差を、前記時間差ΔTと乗算することにより予備容量ΔNを算出し、得られた予備容量ΔNだけ前記規定値から減算した値を前記基準値として設定するステップとを含むことを特徴とするバッファ制御方法。請求項7または請求項8に記載のバッファ制御方法において、前記切替制御ステップは、前記第1のネットワーク装置からの前記送信データレートの制限開始を示す制限開始通知の受信に応じて、前記第2のバッファを使用可能状態とするための前記起動処理を開始するステップを含むことを特徴とするバッファ制御方法。前述した非特許文献1の帯域制御方法では、OLTにおいて、ONUの外部バッファが起動処理中か否かを正確に把握することが重要である。なぜなら、ONUでの外部バッファの起動処理の開始時間とOLTでの下りデータレートの制限開始時間とが一致しなければ、ONUが備える起動用領域だけでは蓄積しきれず、ONUでデータ損失が発生するためである。このため、非特許文献1では、ONUがUNIからPAUSEフレームを受信し、ONUがUNIへのデータ送信を停止した場合、OLTがONUが備える外部バッファが起動処理中か否かを正確に把握できず、データ損失が発生する課題がある。このデータ損失は、ONUがUNIにデータの送信を停止した場合、ONUでの外部バッファの起動処理開始時刻がOLTでの下りデータレートの制限開始時刻よりも早まり、ONUが外部バッファの起動処理中に入力される全てのデータを起動用領域だけでは蓄積しきれなくなることが原因で発生する。すなわち、従来の帯域制御方法では、OLTがONUのバッファ蓄積量の推測値を算出し、当該推測値が規定値を上回ると、ONUが備える外部バッファが起動処理中と判断して下りデータレートを制限する。この推測値の算出では、常にONUはUNI伝送速度でUNIにデータを送信し続けることを前提として算出する。このため、ONUがPAUSEフレームをUNIから受信し、ONUがUNIへのデータ送信を停止した場合には、上記前提が成立しない状態となるため、実際のバッファ蓄積量が規定値を上回る時刻が、OLTでのバッファ蓄積量の推測値が規定値を上回る時刻よりも早まる。このことは、ONUでの外部バッファ起動処理開始時刻が、OLTでの下りデータレート制限開始時刻よりも早まり、外部バッファの起動処理中でも下りデータレートが制限されない時間が生じることを意味する。このため、起動用領域だけでは、外部バッファの起動処理中に入力される全てのデータを蓄積するのに容量が不足し、データ損失が発生する。図11は、ONUのバッファ蓄積動作例起動用領域不足時を示す説明である。図11において、Tw[s]はONUが備える外部バッファの起動処理期間長、ΔT[s]はONUの実際のバッファ蓄積量とその推測値とが規定値を上回る時刻の時間差、Spon[Bytes]は下りデータレート通信速度の最大値、Sshap[Bytes]は下りデータレートの制限時の通信速度である。当該帯域制御方法を適用した場合には、ONUが備える外部バッファが起動処理中の間は、OLTで当該ONUの下りデータレートが制限され、ONUが受信する下りデータレートの通信速度がSshapになることを前提に、起動用領域の容量が決定される。しかし、図11に示すように、OLTでの下りデータレートの制限開始時刻がONUでの外部バッファの起動処理開始時刻よりもΔTだけ遅れた場合には、当該ΔTの間にONUが受信する下りデータレートが最大でSponになる。このため、当該ONUが外部バッファの起動処理中に入力されるデータを全て蓄積するには、起動用領域の他に、データ損失防止に要する容量が追加で必要になる。当該容量ΔNは、Spon-Sshap×ΔTで得られる値である。このように、非特許文献1において、当該ONUが外部バッファの起動処理中に入力されるデータを蓄積するために備える容量は、起動用領域のみであるため、起動用領域の他に必要な容量ΔNを備えておらず、容量が不足してデータ損失が発生してしまう。本発明はこのような課題を解決するためのものであり、受信側ネットワーク装置での外部バッファ起動処理開始時刻と送信側ネットワーク装置での下りデータレート制限開始時刻との時間差に起因するデータ損失の発生を防止できるバッファ制御技術を提供することを目的とする。このような目的を達成するために、本発明にかかるデータ通信システムは、送信用バッファに一時蓄積されているデータを順次読み出して送信する第1のネットワーク装置と、伝送路を介して第1のネットワーク装置から届いた到達データを受信用バッファへ順次蓄積する際、当該受信用バッファにおけるデータ蓄積量の増大に応じて、当該受信用バッファ内で第1のバッファから第2のバッファへ、到達データの蓄積先を切り替える第2のネットワーク装置とを備え、第1のネットワーク装置は、送信用バッファから読み出して第2のネットワーク装置へ送信したデータを監視することにより、第2のネットワーク装置の受信用バッファにおけるデータ蓄積量を推測する送信側蓄積量推測部と、送信側蓄積量推測部で推測されたデータ蓄積量を示す推測値が所定の規定値を上回った時点を、第2のネットワーク装置における第2のバッファの起動処理開始時点として検出する起動検出部と、起動検出部で検出された起動処理開始時点から前記第2のバッファの起動処理に要する起動処理期間長にわたって、送信用バッファから読み出して第2のネットワーク装置へ送信するデータの送信データレートを制限するデータレート制御部とを備え、第2のネットワーク装置は、受信用バッファへ入力される到達データを監視することにより受信用バッファでのデータ蓄積量を推測する蓄積量推測部と、受信用バッファでの実際のデータ蓄積量を計測する蓄積量計測部と、蓄積量推測部で推測されたデータ蓄積量の推測値および蓄積量計測部で計測されたデータ蓄積量の計測値が規定値に達する時刻を予測し、これら時刻の間に入力される到達データを蓄積するための予備容量を算出し、規定値から当該予備容量を減算して得られた基準値を、推測値または計測値のうち少なくともいずれか一方が上回った時点で、第2のバッファを使用停止状態から使用可能状態とするための起動処理を開始する起動制御部と、到達データの蓄積先を第1のバッファから第2のバッファへ切り替える際、計測値が規定値を上回り、かつ、起動処理が完了した時点で、蓄積先を第2のバッファへ切り替える切替制御部とを備えている。この際、起動制御部で、既定時間Tsごとに、当該Tsの間における計測値の時間変化量S1と推測値の時間変化量S2とを計算し、S1が0以下の場合には、基準値として規定値を設定し、S1が0よりも大きく、かつS2が0よりも大きい場合には、計測値が規定値に達する時刻T1と推測値が規定値に達する時刻T2との差を時間差ΔTとし、S1が0よりも大きく、かつS2が0以下の場合には、第2のバッファの起動処理期間長Twを時間差ΔTとし、第1のネットワーク装置における最大送信データレートSponと第1のネットワーク装置での送信データレートの制限下における送信データレートSshapとの差を、時間差ΔTと乗算することにより予備容量ΔNを算出し、得られた予備容量ΔNだけ規定値から減算した値を基準値として設定するようにしてもよい。また、起動検出部で、推測値が規定値を上回った時点で、送信データレートの制限開始を示す制限開始通知を第2のネットワーク装置へ送信し、切替制御部で、制限開始通知の受信に応じて、第2のバッファを使用可能状態とするための起動処理を開始するようにしてもよい。また、本発明にかかるバッファ制御装置は、送信用バッファに一時蓄積されているデータを順次読み出して送信するとともに、通信相手となる第2のネットワーク装置の受信用バッファにおけるデータ蓄積量の推定値に基づいて、第2のネットワーク装置へ送信するデータの送信データレートを制御する第1のネットワーク装置から、伝送路を介して届いた到達データを受信用バッファへ順次蓄積する第2のネットワーク装置に設けられて、受信用バッファにおけるデータ蓄積量の増大に応じて、当該受信用バッファ内で第1のバッファから第2のバッファへ、到達データの蓄積先を切り替えるバッファ制御装置であって、受信用バッファへ入力される到達データを監視することにより受信用バッファでのデータ蓄積量を推測する蓄積量推測部と、受信用バッファでの実際のデータ蓄積量を計測する蓄積量計測部と、蓄積量推測部で推測されたデータ蓄積量の推測値および蓄積量計測部で計測されたデータ蓄積量の計測値が所定の規定値に達する時刻を予測し、これら時刻の間に入力される到達データを蓄積するための予備容量を算出し、規定値から当該予備容量を減算して得られた基準値を、推測値または計測値のうち少なくともいずれか一方が上回った時点で、第2のバッファを使用停止状態から使用可能状態とするための起動処理を開始する起動制御部と、到達データの蓄積先を第1のバッファから第2のバッファへ切り替える際、計測値が規定値を上回り、かつ、起動処理が完了した時点で、蓄積先を第2のバッファへ切り替える切替制御部とを備えている。この際、起動制御部で、既定時間Tsごとに、当該Tsの間における計測値の時間変化量S1と推測値の時間変化量S2とを計算し、S1が0以下の場合には、基準値として規定値を設定し、S1が0よりも大きく、かつS2が0よりも大きい場合には、計測値が規定値に達する時刻T1と推測値が規定値に達する時刻T2との差を時間差ΔTとし、S1が0よりも大きく、かつS2が0以下の場合には、第2のバッファの起動処理期間長Twを時間差ΔTとし、第1のネットワーク装置における最大送信データレートSponと第1のネットワーク装置での送信データレートの制限下における送信データレートSshapとの差を、時間差ΔTと乗算することにより予備容量ΔNを算出し、得られた予備容量ΔNだけ規定値から減算した値を基準値として設定するようにしてもよい。また、切替制御部で、第1のネットワーク装置からの送信データレートの制限開始を示す制限開始通知の受信に応じて、第2のバッファを使用可能状態とするための起動処理を開始するようにしてもよい。また、本発明にかかるバッファ制御方法は、送信用バッファに一時蓄積されているデータを順次読み出して送信するとともに、通信相手となる第2のネットワーク装置の受信用バッファにおけるデータ蓄積量の推定値に基づいて、第2のネットワーク装置へ送信するデータの送信データレートを制御する第1のネットワーク装置から、伝送路を介して届いた到達データを受信用バッファへ順次蓄積する第2のネットワーク装置で用いられて、受信用バッファにおけるデータ蓄積量の増大に応じて、当該受信用バッファ内で第1のバッファから第2のバッファへ、到達データの蓄積先を切り替えるバッファ制御方法であって、蓄積量推測部が、受信用バッファへ入力される到達データを監視することにより受信用バッファでのデータ蓄積量を推測する蓄積量推測ステップと、蓄積量計測部が、受信用バッファでの実際のデータ蓄積量を計測する蓄積量計測ステップと、起動制御部が、蓄積量推測ステップで推測されたデータ蓄積量の推測値および蓄積量計測ステップで計測されたデータ蓄積量の計測値が所定の規定値に達する時刻を予測し、これら時刻の間に入力される到達データを蓄積するための予備容量を算出し、規定値から当該予備容量を減算して得られた基準値を、推測値または計測値のうち少なくともいずれか一方が上回った時点で、第2のバッファを使用停止状態から使用可能状態とするための起動処理を開始する起動制御ステップと、切替制御部が、到達データの蓄積先を第1のバッファから第2のバッファへ切り替える際、計測値が規定値を上回り、かつ、起動処理が完了した時点で、蓄積先を第2のバッファへ切り替える切替制御ステップとを備えている。この際、起動制御ステップに、既定時間Tsごとに、当該Tsの間における計測値の時間変化量S1と推測値の時間変化量S2とを計算するステップと、S1が0以下の場合には、基準値として規定値を設定するステップと、S1が0よりも大きく、かつS2が0よりも大きい場合には、計測値が規定値に達する時刻T1と推測値が規定値に達する時刻T2との差を時間差ΔTとするステップと、S1が0よりも大きく、かつS2が0以下の場合には、第2のバッファの起動処理期間長Twを時間差ΔTとするステップと、第1のネットワーク装置における最大送信データレートSponと第1のネットワーク装置での送信データレートの制限下における送信データレートSshapとの差を、時間差ΔTと乗算することにより予備容量ΔNを算出し、得られた予備容量ΔNだけ規定値から減算した値を基準値として設定するステップとを含んでもよい。また、切替制御ステップに、第1のネットワーク装置からの送信データレートの制限開始を示す制限開始通知の受信に応じ、第2のバッファを使用可能状態とするための起動処理を開始するステップを含んでもよい。本発明によれば、第1のネットワーク装置での送信データレート制限開始よりも前の時点で、第2のバッファの起動処理を開始することができる。したがって、受信側ネットワーク装置での第2のバッファの起動処理開始時刻と、第1のネットワーク装置での送信データレートの制限開始時刻との時間差に起因するデータ損失の発生を防止することが可能となる。次に、本発明の実施の形態について図面を参照して説明する。[第1の実施の形態]まず、図1を参照して、本発明の第1の実施の形態にかかるデータ通信システム1について説明する。図1は、第1の実施の形態にかかるデータ通信システムの構成を示すブロック図である。このデータ通信システム1は、下りバッファ送信用バッファ11を介してデータパケットを送信するOLT第1のネットワーク装置10と、伝送路Lを介して接続されたOLTからのデータを、下りバッファ受信用バッファ21に設けた内部バッファ第1のバッファ22と外部バッファ第2のバッファ23とを切り替えて蓄積する、1つ以上のONU第2のネットワーク装置20とを備えている。本実施の形態では、データ通信システム1をPONシステムに適用した場合を例として説明するが、これに限定されるものではなく、他の一般的なデータ通信システムにも同様に適用可能である。また、以下の説明では、OLTからONUへデータが送信される送信方向を下りといい、ONUからOLTへデータが送信される送信方向を上りという。本実施の形態では、OLTからONUへの下り方向に対して適用した場合を例として説明するが、これに限定されるものではなく、ONUからOLTへの上り方向に対しても同様に適用可能である。本実施の形態において、OLTは従来と同一の帯域制御方法を実施し、ONUは従来と同一の併用バッファ方法に加えて、新たにデータ損失防止方法を実施する。具体的には、OLTにおいて、下りバッファから読み出してONUへ送信したデータを監視することによりONUの下りバッファにおけるデータ蓄積量を推測し、推測されたデータ蓄積量を示す推測値が規定値を上回った時点を、ONUでのバッファ切替のために行われる外部バッファ23の起動処理開始時点として検出し、この起動処理開始時点から外部バッファ23の起動処理に要する起動処理期間長Twにわたって、送信用バッファから読み出してONUへ送信するデータの下りデータレートを制限する。また、ONUにおいて、下りバッファへ入力される到達データを監視することにより下りバッファでのデータ蓄積量を推測し、受信用バッファでの実際のデータ蓄積量を計測し、これら推測値および計測値が規定値に達する時刻を予測し、これら時刻の間に入力される到達データを蓄積するための予備容量を算出し、規定値から当該予備容量を減算して得られた基準値を、推測値または計測値のうち少なくともいずれか一方が上回った時点で、第2のバッファを使用停止状態から使用可能状態とするための起動処理を開始し、到達データの蓄積先を内部バッファ22から外部バッファ23へ切り替える際、計測値が規定値を上回り、かつ、外部バッファ23の起動処理が完了した時点で、蓄積先を外部バッファ23へ切り替える。本実施の形態によれば、外部バッファ起動処理開始時刻がOLTでの下りデータレート制限開始時刻よりも早い場合にも、ONUが、外部バッファの起動処理中に入力されるデータを全て内部バッファに蓄積することで、データ損失を防止している。外部バッファの起動処理中に入力されるデータを全て蓄積するには、起動用領域の容量の他に、データ損失防止に要する容量が内部バッファに必要になる。本実施の形態におけるONUは、このようなデータ損失防止に要する容量を持つ予備領域を、内部バッファ内に動的に確保する。この際、外部バッファ起動処理開始時刻が下りデータレート制限開始時刻よりも遅れて時間差ΔTが生じることは稀であるため、予備領域を動的に確保することで、従来と同等の省電力効果を発揮しつつ、データ損失を防止できる。[OLT]次に、図1を参照して、本実施の形態にかかるデータ通信システム1で用いられるOLT10の構成について詳細に説明する。OLT10は、NNIから受信した下りデータを下りバッファに一時蓄積し、それぞれの送信先となるONUへ送信するネットワーク装置である。このOLT10には、主な機能部として、下りバッファ11、下りデータレート制御部12、蓄積量推測部13、および起動検出部14が設けられている。下りバッファ11は、例えば半導体メモリからなり、NNIからの下りデータパケットを一時蓄積する機能を有している。下りデータレート制御部12は、例えば専用の通信回路からなり、下りバッファ11から読み出された、個々のONUへ送信する下りデータを、それぞれのONUに対して設定されている下りデータレートにしたがって送信する機能と、起動検出部14からの指示に応じて、起動検出部14で検出された起動処理開始時点からONUにおける外部バッファ23の起動処理に要する起動処理期間長Twにわたって、指示されたONUへの下りデータレートを制限低減する機能とを有している。蓄積量推測部13は、例えば専用のLSIからなり、下りデータレート制御部12から伝送路Lへ出力された下りデータを、ONUごとに個別に監視する機能と、これら監視結果に基づいて、ONUごとに、当該ONUの下りバッファでのデータ蓄積量をそれぞれ推測する機能とを有している。起動検出部14は、例えば専用のLSIからなり、ONUごとに、蓄積量推測部13で推測されたデータ蓄積量の推測値と、予め設定されている規定値Nwとを比較する機能と、この比較の結果、任意のONUに関する推測値が規定値を上回った時点を、ONUにおける外部バッファ23の起動処理開始時点として検出する機能と、この起動処理開始時点から起動処理期間長Twにわたって、当該ONUに対する下りデータレートの制限を、下りデータレート制御部12へ指示する機能とを有している。なお、規定値Nwおよび起動処理期間長Twについては、通信開始時のネゴシエーションで、ONUからOLTへ通知したものを用いてもよい。[ONU]次に、図1を参照して、本実施の形態にかかるデータ通信システム1で用いられるONU20の構成について詳細に説明する。ONU20は、伝送路Lを介してOLT10から到達した下りデータ到達データを下りバッファ21に一時蓄積し、UNIから出力するネットワーク装置である。このONU20には、主な機能部として、下りバッファ21、切替部24A,24B、およびバッファ制御装置25が設けられている。下りバッファ21は、例えば半導体メモリからなり、伝送路Lを介してOLT10から到達した下りデータを一時蓄積する機能を有している。下りバッファ21には、内部バッファ22と外部バッファ23の2つのバッファが並列的に設けられており、切替部24Aにより、いずれか一方が下りデータ到達データの蓄積先として切替選択される。内部バッファ第1のバッファ22は、外部バッファ23と比較して記憶容量が小さく、また消費電力も小さい半導体メモリからなり、例えば通信用LSIMACLSIに内蔵されたメモリが用いられる。外部バッファ第2のバッファ23は、内部バッファ22と比較して記憶容量が大きく、また消費電力も大きい半導体メモリからなり、例えば通信用LSIMACLSIに外部接続されたメモリが用いられる。本実施の形態では、基本的な動作として、下りデータを下りバッファ21へ蓄積する際、内部バッファ22を優先的に使用し、下りバッファ21におけるデータ蓄積量の増加に応じて、下りデータの蓄積先を内部バッファ22から外部バッファ23へ切り替える。また、外部バッファ23を使用しない場合、例えば外部バッファ23への電源供給やクロックを制御するなどして、外部バッファ23を使用可能状態から使用停止状態とする。これにより、下りバッファ21全体の消費電力を低減できる。切替部24Aは、例えば専用のLSIなどの切替回路からなり、バッファ制御装置25からの切替指示に応じて、下りバッファ21へ蓄積する下りデータを、内部バッファ22または外部バッファ23のいずれか一方へ切り替え入力する機能を有している。切替部24Bは、例えば専用のLSIなどの切替回路からなり、バッファ制御装置25からの切替指示に応じて、下りバッファ21に蓄積されている下りデータを、内部バッファ22または外部バッファ23のいずれか一方から切り替え出力する機能を有している。バッファ制御装置25は、下りバッファ21の内部バッファ22および外部バッファ23の切替制御を行う機能を有している。このバッファ制御装置25には、主な処理部として、蓄積量推測部26、蓄積量計測部27、起動制御部28、および切替制御部29が設けられている。バッファ制御装置25を構成する、蓄積量推測部26、蓄積量計測部27、起動制御部28、および切替制御部29については、内部バッファ22および切替部24A,24Bとともに、例えば通信用LSIMACLSIなどの1つの共通したLSIで実現してもよい。蓄積量推測部26は、伝送路Lを介してOLTから下りバッファ21へ届いた下りデータ到達データを監視する機能と、この監視結果に基づいて下りバッファ21でのデータ蓄積量、すなわち内部バッファ22および外部バッファ23の両方でのデータ蓄積量を推測し、推測値Neとして出力する機能とを有している。蓄積量計測部27は、伝送路Lを介してOLTから下りバッファ21へ届いた下りデータ到達データを監視する機能と、下りバッファ21から出力された下りデータを監視する機能と、この監視結果に基づいて下りバッファ21でのデータ蓄積量、すなわち内部バッファ22および外部バッファ23の両方での実際のデータ蓄積量を計測し、計測値Nmとして出力する機能とを有している。起動制御部28は、蓄積量推測部26で得られた下りバッファ21に関するデータ蓄積量の推測値Ne、および蓄積量計測部27で得られた下りバッファ21に関するデータ蓄積量の計測値Nmが、規定値Nwに達する時刻T1,T2を予測する機能と、これら時刻T1から時刻T2までの期間に入力される到達データを蓄積するための予備容量ΔNを算出する機能と、規定値Nwから当該予備容量を減算して基準値Nsを算出する機能と、推測値Neおよび計測値Nmを基準値Nsとそれぞれ比較する機能と、これら推測値Neまたは計測値Nmのうち、少なくともいずれか一方が基準値Nsを上回った時点でNe>NsorNm>Ns、外部バッファ23を停止状態から使用可能状態とするための起動処理の開始を、下りバッファ21に対して指示する起動処理開始指示を出力する機能とを有している。切替制御部29は、下りバッファ21におけるデータ蓄積量の増大に応じて、到達データの蓄積先を内部バッファ22から外部バッファ23へ切り替える際、蓄積量計測部27で得られた計測値Nmが規定値Nwを上回りNm>Nw、かつ、外部バッファ23の起動処理が完了した時点で、蓄積先を外部バッファ23へ切り替える機能を有している。この際、内部バッファ22から外部バッファ23への切り替えについては、切替制御部29から切替部24Aに対して、外部バッファ切替指示が出力される。なお、本発明は、ONUの下りバッファ21におけるデータ蓄積量の増大に応じて、下りバッファ21内で内部バッファ22から外部バッファ23へ、到達データの蓄積先を切り替える制御に関するものであり、外部バッファ23から内部バッファ22への切り替えについては、任意の切替制御を採用すればよい。外部バッファ23から内部バッファ22への切替制御の一例として、計測値Nmがゼロとなったことが検出された時点でNm=0、切替制御部29により、外部バッファ23から内部バッファ22へ切り替えるようにしてもよい。また、他の切替制御の例として、規定値Nwより小さいデータ蓄積量からなるしきい値Nvを予め設定しておき、切替制御部29により、計測値Nmがしきい値Nv以下となり、かつ、蓄積量計測部27で得られた外部バッファ23のデータ蓄積量Ngがゼロとなったことが検出された時点でNm≦NvandNg=0、外部バッファ23から内部バッファ22へ切り替えるようにしてもよい。[第1の実施の形態の動作]次に、図2~図6を参照して、本実施の形態にかかるデータ通信システム1の動作について説明する。図2は、バッファ蓄積量の変化ΔT=0を示す説明図である。図3は、バッファ蓄積量の変化ΔT>0を示す説明図である。図4は、基準値算出処理を示すフローチャートである。図5は、起動制御処理を示すフローチャートである。図6は、切替制御処理を示すフローチャートである。ONUの下りバッファ21において、外部バッファ23の起動遅れに起因して発生するデータ損失の防止には、起動遅れの期間に入力される到達データを蓄積するための予備容量ΔNを、内部バッファ22内に確保する必要がある。この予備容量ΔNは、ONUが時間差ΔTを算出し、このΔTの値に基づいてONUが動的に内部バッファ22に確保する。ΔTは、ONUでの外部バッファ23の起動処理開始時刻の予測値からなる起動開始予測時刻T1と、OLTでの下りデータレート制限開始時刻の予測値からなる制限開始予測時刻T2との時間差である。ONUは、実際のバッファ蓄積量を示す計測値Nmと、OLTと同一の方法で算出したバッファ蓄積量の推測値Neとから、規定時間Ts[s]ごとにT1、T2を線形補間により算出し、当該時間差ΔTを算出する。ONUは、このΔTの値に基づいて、データ損失防止に要する予備容量ΔNを算出をする。そして、外部バッファ23を起動すべきデータ蓄積量を示す基準値Nsを、初期値である規定値Nwから予備容量ΔN分だけ減らした値とすることで、起動用領域とは別個に、データ損失防止に要する予備容量ΔNを持つ予備領域を内部バッファ22内に確保し、この予備領域分のデータを内部バッファ22に蓄積する。この基準値Nsの初期値は規定値Nwであり、バッファ蓄積量の計測値Nmもしくは推測値Neのいずれか一方でも基準値Nsを上回ると、ONUは外部バッファ23の起動処理を開始する。ΔTが0の場合には、図2に示すように、基準値Nsは初期値、すなわち規定値Nwと同一の値であるため、ONUは従来と同様に、外部バッファ23の起動処理中に入力されるデータは全て起動用領域のみで蓄積する。一方、ΔTが正の場合には、図3に示すように、データ損失防止に要する予備容量ΔN分だけ基準値Nsを規定値Nwから下げ、外部バッファ23の起動処理中に入力されるデータを予備領域と起動用領域とに蓄積する。すなわち、ONUは、起動用領域とデータ損失防止に要する予備容量ΔNとで、外部バッファ23の起動処理中に入力される全てのデータを蓄積する。ONUは、データ通信時、規定時間Ts[s]ごとに、図3に示すデータ損失防止処理を実行することにより、時間差ΔTの算出および基準値Nsの変更を行う。この際、ONUが、ΔTに基づいて基準値Nsを下げるのは、T1がT2よりも早い場合のみである。なぜなら、本実施の形態にかかるONUは、推測値Neが基準値Nsを上回る場合にも外部バッファ23の起動処理を開始するため、T1がT2よりも遅い、もしくは同一の場合、外部バッファ23の起動処理中は必ずOLTで下りデータレートが制限され、起動用領域のみで蓄積できるからである。一方、T1がT2よりも早くなる可能性があるのは、バッファ蓄積量の時間変化量S1が正の場合のみである。このため、起動制御部28は、図4に示す基準値算出処理において、まず、蓄積量計測部27で得られた下りバッファ21に関するバッファ蓄積量の計測値Nmに基づいて、計測値Nmの時間変化量傾きS1を算出するステップ100。S1は、次の式1に示すように、現在の計測値Nmから、時間Ts分だけ過去の計測値Nmを減算した値を、時間Tsで除算することにより算出される。また、起動制御部28は、蓄積量推測部26で得られた下りバッファ21に関するバッファ蓄積量の推測値Neに基づいて、推測値Neの時間変化量傾きS2を算出する。S2は、次の式2に示すように、現在の推測値Neから、時間Ts分だけ過去の推測値Neを減算した値を、時間Tsで除算することにより算出される。なお、ステップ100およびステップ101の処理順序については、これに限定されるものではなく、ステップ101を実行した後にステップ100を実行してもよく、ステップ100およびステップ101を並列的に実行してもよい。ここで、S1が0以下の場合ステップ102:NO、起動制御部28は、T1、T2を算出せずに基準値Nsを初期値Nwとしてステップ110、一連の基準値算出処理を終了する。これにより、前述した図2の場合と同様の動作となる。一方、S1が0より大きくステップ102:YES、S2も0より大きい場合ステップ103:YES、起動制御部28は、蓄積量計測部27で得られた下りバッファ21に関するバッファ蓄積量の計測値Nmに基づいて、外部バッファ23の起動処理開始時刻の予測値からなる起動開始予測時刻T1を算出するステップ104。T1は、次の式3に示すような線形補間式で、規定値Nwから、現在の計測値Nmを減算した値を、計測値Nmの時間変化量S1で除算することにより算出される。なお、式3については、多項式補間等の他の式を用いてもよい。続いて、起動制御部28は、蓄積量推測部26で得られた下りバッファ21に関するバッファ蓄積量の推測値Neに基づいて、OLTにおける下りデータレート制限開始時刻の予測値からなる制限開始予測時刻T2を算出するステップ105。T2は、次の式4に示すような線形補間式で、規定値Nwから、現在の推測値Neを減算した値を、推測値Neの時間変化量S2で除算することにより算出される。なお、式4については、多項式補間等の他の式を用いてもよい。なお、ステップ104およびステップ105の処理順序については、これに限定されるものではなく、ステップ105を実行した後にステップ104を実行してもよく、ステップ104およびステップ105を並列的に実行してもよい。この後、起動制御部28は、前述のようにして求めたT2からT1を減算することにより、ΔTを算出しステップ106、このΔTと速度差Spon-Sshapとから予備容量ΔNを算出するステップ108。ΔNは、次の式5に示すように、下りデータレート通信速度の最大値Spon[Bytes]と下りデータレートの制限時の通信速度Sshap[Bytes]との速度差に、ΔTを乗算することにより算出される。続いて、起動制御部28は、規定値初期値Nwから予備容量ΔNだけ減算することにより、基準値Nsを算出しステップ109、一連の基準値算出処理を終了する。これにより、前述した図3の場合と同様の動作となる。なお、ステップ103において、S2が0以下の場合ステップ103:NO、T2は無限大となり、外部バッファの起動処理中にOLTで下りデータレートが制限されない。この場合には、速度差が発生する時間は外部バッファ32の起動処理期間長Twとなるため、ΔTをTwとした後ステップ107、ステップ108へ移行する。次に、図5を参照して、起動制御部28における起動制御処理について説明する。起動制御部28は、まず、蓄積量推測部26で得られた下りバッファ21に関するバッファ蓄積量の推測値Neと、図4の基準値算出処理で求めた基準値Nsとを比較するステップ120。ここで、推測値Neが基準値Nsより大きい場合ステップ120:YES、下りバッファ21の外部バッファ23の起動を指示する起動処理開始指示を出力しステップ122、一連の起動制御処理を終了する。また、推測値Neが基準値Ns以下の場合ステップ120:NO、起動制御部28は、蓄積量計測部27で得られた下りバッファ21に関するバッファ蓄積量の計測値Nmと、図4の基準値算出処理で求めた基準値Nsとを比較するステップ121。ここで、計測値Nmが基準値Nsより大きい場合ステップ121:YES、外部バッファ23の起動を指示する起動処理開始指示を下りバッファ21へ出力しステップ122、一連の起動制御処理を終了する。また、計測値Nmが基準値Ns以下の場合ステップ121:NO、起動処理開始指示を出力せずに、一連の起動制御処理を終了する。なお、ステップ120およびステップ121の処理順序については、これに限定されるものではなく、ステップ121を実行した後にステップ120を実行してもよく、ステップ120およびステップ121を並列的に実行し、これらの判定結果のいずれかがYESを示す場合に、ステップ122へ移行してもよい。次に、図6を参照して、切替制御部29における切替制御処理について説明する。ここでは、切替制御部29における切替制御処理のうち、本発明の要旨にかかる、バッファ21におけるデータ蓄積量の増大に応じて、下りバッファ21内で内部バッファ22から外部バッファ23へ、到達データの蓄積先を切り替える制御について説明する。切替制御部29は、まず、蓄積量計測部27で得られた下りバッファ21に関するバッファ蓄積量の計測値Nmと、予め設定されている規定値Nwとを比較するステップ130。ここで、計測値Nmが規定値Nwより大きい場合ステップ130:YES、切替制御部29は、外部バッファ23での起動処理が完了するまでステップ131:NO、それ以前に出力した内部バッファ切替指示による切替部24Aの状態を保持することにより、蓄積先として内部バッファを選択する。また、起動処理が完了した後ステップ131:YES、切替制御部29は、下りデータの蓄積先として外部バッファ23を選択する外部バッファ切替指示を切替部24Aへ出力しステップ132、一連の切替制御処理を終了する。なお、計測値Nmが規定値Nw以下の場合ステップ130:NO、切替制御部29は、下りデータの蓄積先を内部バッファ22から外部バッファ23への切り替えをせずに、一連の切替制御処理を終了する。[第1の実施の形態の効果]このように、本実施の形態では、ONUにおいて、蓄積量推測部26で、下りバッファ21へ入力される到達データを監視することにより下りバッファ21でのデータ蓄積量を推測し、蓄積量計測部27で、下りバッファ21での実際のデータ蓄積量を計測し、起動制御部28で、これら推測値Neおよび計測値Nmが規定値Nwに達する時刻T1,T2をそれぞれ予測し、これら時刻T1,T2の間ΔTに入力される到達データを蓄積するための予備容量ΔNを算出し、規定値Nwから予備容量ΔNを減算して得られた基準値Nsを、推測値Neまたは計測値Nmのうち少なくともいずれか一方が上回った時点で、外部バッファ23を使用停止状態から使用可能状態とするための起動処理を開始し、切替制御部29で、到達データの蓄積先を内部バッファ22から外部バッファ23へ切り替える際、計測値Nmが規定値Nwを上回り、かつ、外部バッファ23の起動処理が完了した時点で、蓄積先を第2のバッファへ切り替えるようにしたものである。これにより、ONUがUNIからPAUSEフレームを受信して、UNIへのデータ送信を停止し、内部バッファ22のデータ蓄積量が、OLTでの推測値Neより早いペースで増加している場合には、外部バッファ23の起動処理開始判定に用いる基準値Nsが、OLTでの下りデータレート制限開始判定に用いる規定値Nwより、予備容量ΔN分だけ低く設定されるため、OLTでの下りデータレート制限開始よりも前の時点で、外部バッファ23の起動処理を開始することができる。したがって、ONUでの外部バッファ起動処理開始時刻T2とOLTでの下りデータレート制限開始時刻T1との時間差ΔTに起因するデータ損失の発生を防止することが可能となる。また、本実施の形態では、起動制御部28で、既定時間Tsごとに、当該Tsの間における計測値Nmの時間変化量S1と推測値Neの時間変化量S2とを計算し、S1が0以下の場合には、基準値Nsとして規定値Nwを用い、S1が0よりも大きく、かつS2が0よりも大きい場合には、計測値Nmが規定値Nwに達する時刻T1と推測値Neが規定値Nwに達する時刻T2との差を時間差ΔTとし、S1が0よりも大きく、かつS2が0以下の場合には、外部バッファ23の起動処理期間長Twを時間差ΔTとし、OLTにおける最大送信データレートSponとOLTでの送信データレートの制限下における送信データレートSshapとの差を、時間差ΔTと乗算することにより予備容量ΔNを算出し、得られた予備容量ΔNだけ規定値Nwから減算した値を基準値Nsとして用いるようにしたものである。これにより、データ通信システムの通信特性に応じた、過不足のない最適な基準値Nsを算出することができ、内部バッファ22のデータ蓄積容量を必要最小限の容量に抑えることができる。[第2の実施の形態]次に、本発明の第2の実施の形態にかかるデータ通信システム1について説明する。第1の実施の形態では、ONU側で得られた推測値Neまたは計測値Nmが基準値Nsを上回った場合に、外部バッファ23の起動処理を開始する場合を例として説明した。本実施の形態では、OLTから下りデータレートの制限開始が通知された場合にも、外部バッファ23の起動処理を開始する場合について説明する。本実施の形態において、OLTの起動検出部14は、ONUのバッファ蓄積量の推測値Neが規定値Nwを上回ったことを検出した場合、当該ONUへの下りデータレートの制限の開始を示す制限開始通知を、明示的に当該ONUに通知する機能を有している。また、ONUの起動制御部28は、OLTからの制限開始通知に応じて、外部バッファ23の起動処理を開始する起動処理開始指示を下りバッファ21へ出力する機能を有している。これにより、伝送路Lでデータが失われて、ONUが蓄積量推測部26で算出したバッファ蓄積量の推測値Neと、OLTが算出した当該ONUのバッファ蓄積量の推測値とに誤差が生じた場合であっても、OLTからの制限開始通知に応じて、外部バッファ23の起動処理を開始することができ、データ損失を防止することが可能となる。この際、OLTが下りデータレートの制限の開始をONUに通知するための構成については、例えばMACフレームを用いる方法やプリアンブルの一部に埋め込む等の手段がある。[実施の形態の拡張]以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。"