以下、本発明の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
[実施の形態1]
図1は、本発明の実施の形態1に係るEPONシステム100の概略構成を示すブロック図である。図1を参照して、EPONシステム100は、OLT101と、ONU102−1,102−2,・・・,102−nと、PON回線104と、スプリッタ105とを備える。ONU102−1〜102−nを総括的に説明する場合には、以下において、ONU102−1〜102−nを「ONU102」と表記する。
OLT101は、たとえば電話局に設置される。ONU102−1〜102−nの各々は、たとえばネットワークアクセスサービスの加入者の宅内に設置される。
ONU102−1〜102−nの各々にはユーザ端末111が接続される。各ONU102に接続されるユーザ端末111の数は特に限定されるものではない。たとえば1つのONUに複数のユーザ端末が接続されていてもよい。ユーザ端末111は、たとえばパーソナルコンピュータであるが、これに限定されるものではない。
PON回線104は光ファイバである。OLT101から送信された光信号は、PON回線104を通り、スプリッタ105によってONU102−1〜102−nへと分岐される。一方、ONU102−1〜102−nから送信された光信号は、スプリッタ105によって集束されるとともにPON回線104を通ってOLT101に送られる。スプリッタ105は、外部からの電源供給を特に必要とすることなく、入力された信号から受動的に信号を分岐または多重する。
OLT101は、上位ネットワーク109を介してデータを受信するとともに、そのデータをPON回線104に出力する。PONの物理的構成によれば、ONU102−1〜102−nのすべてが、OLT101から送信されたデータを受信可能である。このためOLT101は、送信フレームのプリアンブル部分に、その送信フレームを受信すべきONUの番号を示した識別子LLID(Logical Link ID)を挿入する。各ONUは、OLTから受信したフレームに含まれるLLIDを、予めOLTから通知された自己のLLIDと照合する。フレームに含まれるLLIDが自己のLLIDに一致する場合には、ONUはそのフレームを受信し、そうでない場合には、ONUは、そのフレームを破棄する。
一方、各ONUから送信される光信号はスプリッタ105において合流する。このため、各ONUからの信号(上り信号)がスプリッタ105で合流した後に衝突しないための制御が必要となる。
OLT101は、ONU102−1〜102−nから送信された制御フレーム(レポート)に基づいて、ONU102−1〜102−n内のバッファに蓄積されているデータの送信開始時刻および送信許可量を演算する。次に、OLT101は、指示信号を挿入した制御フレーム(グラント)を、PON回線104およびスプリッタ105を介してONU102−1〜102−nに送信する。
たとえば、ONU102−1は、宅側ネットワーク110を介してユーザ端末111から上り情報フレームを受信する。ONU102−1は、上り情報フレームをバッファに一旦蓄積する。ONU102−1は、グラントによって指定された時刻に、自己のバッファ内のデータの長さをレポートでOLT101に通知する。ONU102−1は、指示信号が挿入されたグラントをOLT101から受信するとともに、その指示信号に基づいて、自己のバッファ内のデータをレポートとともにOLT101に送信する。
ONU102−1〜ONU102−nの各々は、スリープ機能を有する。スリープ機能は、ONUとOLTとの間のトラフィックがない場合に、そのONUを構成するモジュールの一部を省電力状態に設定する機能である。スリープ機能によって、ONUの状態(モード)は、通常モードからスリープモードに移行する。設定されたスリープモードの期間(スリープ期間と呼ぶ)が経過した後に、ONUの状態は、スリープモードから通常モードに戻る。本実施の形態では、ONU102はOLTからの指示によりスリープモードに設定される。
図2は、実施の形態1に係るOLTの概略構成を示すブロック図である。図2を参照して、OLT101は、受信部11と、バッファメモリ12と、送信部13とを含む。受信部11と、バッファメモリ12と、送信部13とは下り方向の通信(OLT101からONU102への通信)に用いられる。
受信部11は、上位ネットワーク109から受信した下りデータフレームをバッファメモリ12に転送する。バッファメモリ12は、受信部11から下りデータフレームを受けるとともに、その下りデータフレームを蓄積する。送信部13は、バッファメモリ12に蓄積された下りデータフレームをPON回線104へ送信する。後述するように、送信部13は、さらに、制御フレームおよびスリープ要求をPON回線104へ送信する。
OLT101は、さらに、受信部14と、バッファメモリ15と、送信部16とを含む。受信部14と、バッファメモリ15と、送信部16とは上り方向の通信(ONU102からOLT101への通信)に用いられる。
受信部14は、ONU102から送信されたフレームを、PON回線104を介して受信する。受信部14は、フレームのヘッダ部分によって、そのフレームがデータフレームおよび制御フレームのいずれであるかを判定する。受信フレームがデータフレームである場合、受信部14は、当該データフレームをバッファメモリ15に転送する。バッファメモリ15は、受信部14から転送されたデータフレームを蓄積する。送信部16は、バッファメモリ15に蓄積されたデータフレームを上位ネットワーク109に送信する。
OLT101は、さらに、制御部21と、タイムアウト検出部22と、データベース23とを含む。
制御部21は、MPCP制御部21Aと、OAM制御部21Bとを含む。MPCP制御部21Aは、OLT101とONU102との間の論理リンク(MPCPリンク)を制御する。
たとえばMPCP制御部21Aは、ONU102−1〜102−nに対して上り信号を送信するタイミングを教示するためのMPCフレーム(ゲート)を生成するとともに、そのMPCPフレームを下り方向通信のための送信部13に送る。送信部13はMPCP制御部21AからのMPCPフレームをPON回線104に出力する。
MPCP制御部21Aは、MPCPフレームを周期的に送信する。この周期は、たとえば500μ秒であるが、これに限定されるものではない。
MPCP制御部21Aは、さらに、ONU102−1〜102−nの各々から、各ONUにおける上りデータの蓄積量を通知するためのMPCPフレーム(レポート)を受信する。上り方向通信のための受信部14が受信したフレームがMPCPフレームである場合、受信部14は、そのMPCPフレームをMPCP制御部21Aに転送する。各ONUからMPCPフレームが送られることにより、MPCPリンクが確立された状態となる。
OAM制御部21Bは、OAMフレームを用いて、ONU102およびPON回線を監視する。OAM制御部21BはONU102のループバック試験を実行する。
ループバック試験において、OAP制御部21Bは、制御フレーム(OAMフレーム)をONUに送信する。ONU102では、OLT101から送られたOAMフレームをOLT101に返送する。上り方向通信のための受信部14が受信したフレームがOAMフレームである場合、受信部14は、そのOAMフレームをOAM制御部21Aに転送する。OAP制御部21Bは、ONUから返送されたOAMフレームを確認することにより、光ファイバ(PON回線104)あるいはONU102の故障の有無を確認できる。
OAM制御部21Aは、OAMフレームを周期的に送信する。この周期は、たとえば1秒であるが、これに限定されるものではない。
データベース23には、ONUごとにMPCPフレームの最新の受信時刻の情報およびOAMフレームの最新の受信時刻の情報が格納される。MPCP制御部21Aは、MPCPフレームを受信したときに、そのMPCPフレームの受信時刻の情報をデータベース23に格納する。同じくOAM制御部21Bは、OAMフレームを受信したときに、そのOAMフレームの受信時刻の情報をデータベース23に格納する。これにより、データベース23に格納されたMPCPの受信時刻およびOAMフレームの受信時刻の各々が最新の受信時刻へと更新される。
タイムアウト検出部22は、ONU102−1〜102−nの各々について、制御プロトコルのタイムアウトを検出する。具体的には、タイムアウト検出部22は、ONU102−1〜102−nのタイムアウトをそれぞれ検出する検出部22−1,22−2,・・・,22−nを備える。
検出部22−1は、所定の周期(たとえば1秒)でデータベース23を参照することにより、ONU102−1から送られた制御フレームの最新の受信時刻を取得するとともに、その時刻をタイムアウト期間の基準時刻(起点)に設定する。検出部22−1は、その起点から現在時刻までの間の期間がタイムアウト期間よりも長い場合に、タイムアウトを検出する。
OLT101とONU102−1との間の通信が正常である場合、制御フレームの最新の受信時刻が更新され続けるため、タイムアウト期間の起点も更新される。したがって、現在時刻と起点との間の期間がタイムアウト期間よりも短くなる。一方、ONU102−1が停止した場合など、OLT101とONU102−1との間の通信が不能になった場合には、制御フレームの最新の受信時刻が更新されないため、タイムアウト期間の起点も更新されない。このため、起点から現在時刻までの期間がタイムアウト期間よりも長くなる。この場合、検出部22−1はタイムアウトを検出する。
タイムアウトは制御プロトコルごとに検出される。タイムアウト時間は、制御プロトコルごとに規定される。IEEE802.3で規定されるEPONの場合、MPCPプロトコルにおいて規定されたタイムアウト時間は1秒であり、OAMプロトコルにおいて規定されたタイムアウト時間は5秒である。
OLT101は、さらに、省電力設定部30と、停止命令生成部24とを備える。省電力設定部30は、ONU102−1〜102−nの各々をスリープモードに設定する。
省電力設定部30は、トラフィック監視部31と、省電力判定部32と、スリープ要求生成部33と、スリープ開始通知受信部34と、スリープ完了通知受信部35とを含む。
トラフィック監視部31は、OLT101とONU102との間のトラフィックを監視することで、OLT101とONU102との間のデータ通信の有無を監視する。トラフィック監視部31は、その監視結果を省電力判定部32へと送る。たとえばデータフレームの宛先アドレスおよび送信元アドレスからOLT101とONU102との間のデータ通信の有無を判断することができる。
省電力判定部32は、トラフィック監視部31の監視結果に基づいて、各ONUをスリープモードに設定すべきかどうかを判定する。具体的には、省電力判定部32は、ONU102−1〜102−nのそれぞれに対応する判定部32−1〜32−nを有する。判定部32−1は、トラフィック監視部31から、OLT101とONU102−1との間のデータ通信の有無に関する監視結果を受ける。判定部32−1は、OLT101とONU102−1との間でデータ通信が行なわれていない場合に、ONU102−1の状態をスリープモードに設定すべきであると判定する。判定部32−2〜32−nの各々の動作は、判定部32−1の上記の動作と同様であるので以後の詳細な説明は繰り返さない。
なお、省電力判定部32の判定方法は上記方法に限定されるものではない。たとえば省電力判定部32は、ONU102−1〜102−nの各々のデータ通信の実績(たとえば1日の間でのデータ通信の実績)を予め記憶するとともに、その実績に基づいて、各ONU102−1の状態をスリープモードに設定するかどうかを判定してもよい。
判定部32−1〜32−nの各々の判定結果は、スリープ要求生成部33に送られる。スリープ要求生成部33は、各判定部32−1〜32−nの判定結果に基づいて、対応するONUの状態をスリープモードに設定するためのスリープ要求を生成する。スリープ要求生成部33は、そのスリープ要求を、下り方向通信のための送信部13に送信する。送信部13は、そのスリープ要求を、PON回線104に送信する。
スリープ要求を受けたONUは、自身のモードをスリープモードに設定するとともに、スリープ開始通知をOLT101に送信する。スリープ開始通知受信部34は、そのスリープ開始通知を受信する。これによりスリープ開始通知受信部34は、対応するONUのスリープモードが開始されたことを検出する。スリープ開始通知受信部34は、スリープモードに設定されたONUを特定するための情報(たとえばONU102−1〜102−nを識別するための番号など)を停止命令生成部24に対して出力する。
スリープモードに設定されたONUはスリープ期間が経過したときに、ONUの状態をスリープモードから通常モードに戻すとともに、スリープ完了通知をOLT101に対して送信する。スリープ完了通知受信部35は、そのスリープ完了通知を、上り方向通信のための受信部14を介して受信する。OLT101(省電力設定部30)は、スリープ完了通知により、ONU102のスリープモードが終了したことを検出する。
本発明の実施の形態では、スリープ期間は、スリープ要求生成部33から送られるスリープ要求によって設定される。このスリープ期間は、可変であってよいし、固定されていてもよい。
停止命令生成部24は、スリープ開始通知受信部34から、スリープモードに設定されたONUを特定するための情報を受信する。停止命令生成部24は、その情報に基づいて、タイムアウト検出部22に、タイムアウトの検出を停止するための停止命令を出力する。
タイムアウト検出部22は、停止命令を受信したときからスリープ期間が経過するまでの間、タイムアウトの検出を停止する。タイムアウト検出部22は、スリープ期間の終了予定時刻においてタイムアウトの検出処理を再開する。停止命令生成部24により、スリープモードの間、タイムアウトの検出が待機させられる。
図3は、実施の形態1に係るONUの概略構成を示すブロック図である。図3を参照して、ONU102は、受信部41と、バッファメモリ42と、送信部43と、FEC(Frequency Check Sequence)デコーダ47と、暗号解読部48とを含む。
下り方向通信において、受信部41は、OLT101からの光信号を受信するとともに、フレームのヘッダ部分を読み取る。フレームに含まれるLLIDがONU102のLLIDに一致する場合には、受信部41はそのフレームを受信し、そうでない場合には、受信部41は、そのフレームを破棄する。
FECデコーダ47は、受信部41によって受信されたフレームの誤り訂正を行なう。暗号解読部48は、FECデコーダ47からのフレームを受けて、暗号を解読する。暗号解読部48から出力されたフレームがデータフレームである場合には、そのフレームはバッファメモリ42に一旦蓄積され、その後に送信部43に送られる。送信部43がバッファメモリ42からデータフレームを受けると、送信部43は、このデータフレームを宅側ネットワーク110へ送信する。
ONU102は、さらに、受信部44と、バッファメモリ45と、送信部46と、暗号部49とFECエンコーダ50とを備える。上り方向通信において、受信部44は宅側ネットワーク110を通じてユーザ端末からのデータフレームを受信するとともに、そのデータフレームをバッファメモリ45に転送する。バッファメモリ45は、受信部44から転送されたデータフレームを蓄積する。暗号部49は、バッファメモリ45からデータフレームを受信するとともに、そのデータフレームを暗号化する。FECエンコーダ50は、暗号化されたデータフレームをエンコードする。送信部46は、FECエンコーダ50から送られたフレームをPON回線104へ送信する。
ONU102は、さらに、制御部51と、タイムアウト検出部52と、データベース53とを含む。
制御部51は、MPCP制御部51Aと、OAM制御部51Bとを含む。MPCP制御部51Aは、OLT101から送られたMPCPフレーム(たとえばMPCPゲートフレーム)を受けて、そのフレームへの応答のためのMPCPフレーム(レポートフレーム)を出力する。OAM制御部51Bは、OLT101から送られたOAMフレームを受信する。OAM制御部51Bは、受信フレームに所定の処理を行なうとともに、そのフレームを出力する。MPCPフレームおよびOAMフレームは、データフレームと同様に、暗号部49、FECエンコーダ50および送信部46を経由してOLT101に送られる。
データベース53には、MPCPフレームの最新の受信時刻の情報およびOAMフレームの最新の受信時刻の情報が格納される。MPCP制御部51Aは、MPCPフレームを受信したときに、そのMPCPフレームの受信時刻の情報をデータベース53に格納する。同じくOAM制御部51Bは、OAMフレームを受信したときに、そのOAMフレームの受信時刻の情報をデータベース53に格納する。これにより、データベース23に格納されたMPCPの受信時刻およびOAMフレームの受信時刻の各々が最新の受信時刻に更新される。
タイムアウト検出部52は、データベース53を監視することによって、制御プロトコルのタイムアウトを検出する。タイムアウト検出部52は、OLT101から送られた制御フレームの最新の受信時刻をタイムアウト期間の起点に設定する。タイムアウト検出部52は、その起点から現在時刻までの間の期間がタイムアウト期間よりも長い場合に、タイムアウトを検出する。タイムアウトの検出方法は、図2に示されるタイムアウト検出部22による方法と同様であるので以後の詳細な説明は繰り返さない。
ONU102は、さらに、省電力設定部60と、停止命令生成部54とを備える。省電力設定部60は、OLT101からのスリープ要求によって、ONU102をスリープモードに設定する。
省電力設定部60は、スリープモード設定部62と、スリープ要求受信部63と、スリープ開始通知生成部64と、スリープ完了通知生成部65とを含む。
スリープ要求受信部63は、OLT101から送られたスリープ要求を受信するとともに、そのスリープ要求をスリープモード設定部62に送信する。スリープモード設定部62は、スリープ要求受信部63からスリープ要求を受けることによって、ONU102をスリープモードに設定する。スリープ期間は、スリープ要求受信部63によって受信されたスリープ要求によって設定される。
スリープモード時には、スリープモード設定部62は、受信部41、FECデコーダ47、暗号解読部48、暗号部49、FECエンコーダおよび送信部46を停止させる。これらは、下り方向通信および上り方向通信に関連する通信制御部を構成する。当該通信制御部の消費電力が比較的大きいため、スリープモード設定部62は、スリープモードにおいて、当該通信制御部を停止させる。これによりONU102の消費電力を効果的に低減することができる。
スリープモードの開始時に、スリープ開始通知生成部64は、スリープ開始通知を生成して出力する。一方、スリープモードの終了時に、スリープ完了通知生成部65は、スリープ完了通知を生成して出力する。スリープ開始通知およびスリープ完了通知は、ONU102からOLT101へと送信される。
停止命令生成部54は、スリープ開始通知生成部64からスリープ開始通知を受けるとともに、そのスリープ開始通知に応答して、タイムアウト検出部52に、タイムアウトの検出を停止するための停止命令を出力する。
タイムアウト検出部52は、停止命令を受信したときからスリープ期間が経過するまでの間、タイムアウトの検出を停止する。タイムアウト検出部52は、スリープ期間が経過したときを起点にしてタイムアウトの検出を再開する。タイムアウト検出部52は、スリープ期間の終了時刻においてタイムアウトの検出処理を再開する。停止命令生成部54により、スリープモードの間、タイムアウトの検出が待機させられる。
図2および図3に示された機能ブロックは、たとえばCPU、メモリ等のハードウェアあるいはそのCPUで実行されるソフトウェアによって実現可能である。したがって各機能ブロックの実現方法は特に限定されるものではない。
図4は、スリープ要求、スリープ開始通知およびスリープ完了通知に用いられるフレームの一例を示した図である。図4を参照して、フレームは、宛先アドレス、送信元アドレス、レングス/タイプ(Length/Type)、オペコード(Opcode)、タイムスタンプ、スリープ期間、パディング、およびFCSを含む。
フレームがスリープ要求である場合、宛先アドレスは、スリープモードに設定されるONUのアドレスであり、送信元アドレスは、OLT101のアドレスである。一方、フレームがスリープ開始通知またはスリープ完了通知である場合、宛先アドレスはOLT101のアドレスであり、送信元アドレスは、上記ONUのアドレスである。
レングス/タイプ(Length/Type)のフィールドには、スリープモードを示すコードが挿入される。オペコード(Opcode)のフィールドには、スリープ要求、スリープ開始通知およびスリープ完了通知を識別するためのコードが挿入される。
スリープ期間のフィールドには、OLT101の省電力設定部30によって設定されたスリープ期間の値が挿入される。この値は固定値でもよいし、トラフィック監視部31(図2参照)の監視結果に応じて変更されてもよい。スリープ要求を受け取ったONUは、スリープ期間のフィールドに挿入された期間の間、スリープモードに設定される。
図5は、図2に示されたOLT101のデータベース23の構成例を説明するための図である。図2および図5を参照して、データベース23は、ONU102−1〜102−nを識別するためのコード(図5では、1,2,・・・,n)を保存する。さらに、データベース23は、各ONUについて、MPCPフレームの最新の受信時刻およびOAMフレームの最新の受信時刻を保存する。
図6は、図3に示されたONU102のデータベース53の構成例を説明するための図である。図3および図6を参照して、データベース53は、MPCPフレームの最新の受信時刻およびOAMフレームの最新の受信時刻を保存する。
図7は、OLT101によるタイムアウト検出処理を説明するためのフローチャートである。このフローチャートに示す処理は、たとえば所定の周期でメインルーチンから呼び出されて実行される。なお、図7に示した処理は、ONU102−1〜102−nのうちの任意の1つのONUに対する処理を示す。すなわちOLT101はONU102−1〜102−nの各々を対象として、図7に示される処理を実行する。以下では、ONU102−1を代表例として図7に示される処理を説明する。
図2および図7を参照して、OLT101は、ONU102−1をスリープモードに設定するかどうかを判定する(ステップS1)。
OLT101(トラフィック監視部31)は、上り方向通信および下り方向通信のトラフィックを監視する。ONU102−1とOLTとの間でデータ通信が発生していない場合、その監視結果が省電力判定部32に送られる。これにより省電力判定部32は、ONU102−1をスリープモードに設定可能であると判定する。この場合(ステップS1においてYES)、処理はステップS2に進む。一方、ONU102−1をスリープモードに設定不可能と省電力判定部32が判定した場合(ステップS1においてNO)、処理はステップS9に進む。
ステップS2において、OLT101は、スリープ要求を生成するとともに、そのスリープ要求を送信する。具体的には、スリープ要求生成部33が、省電力判定部32の判定結果に基づいてスリープ要求を生成するとともに、そのスリープ要求を出力する。
ONU102−1は、スリープ要求に応じて、自己のモードをスリープモードに設定する。ONU102−1は、スリープ開始通知をOLT101に送信する。OLT101(スリープ開始通知受信部34)は、ONU102−1からスリープ開始通知を受信する(ステップS3)。スリープ開始通知受信部34は、スリープ開始通知を受信したことを停止命令生成部24に通知する。これにより停止命令生成部24は停止命令を生成する(ステップS4)。
タイムアウト検出部22は、停止命令を受けることにより、タイムアウトの検出を停止する(ステップS5)。停止期間は、スリープ要求により設定されたスリープ期間に相当する。タイムアウト検出部22は、スリープ期間が経過したかどうかを判定する(ステップS6)。スリープ期間がまだ経過していない場合(ステップS6においてNO)、処理はステップS6に戻される。すなわち、スリープ期間が経過するまでステップS6の判定処理が繰り返される。スリープ期間が経過した場合(ステップS6においてYES)、処理はステップS7に進む。
ステップS7において、タイムアウト検出部22は、停止処理を終了する。ステップS8において、タイムアウト検出部22は、タイムアウト検出処理の起点、すなわちタイムアウト期間の起点を現在時刻に設定する。ステップS9において、タイムアウト検出部22はタイムアウト検出処理を実行する。ステップS9の処理が終了すると、全体の処理はメインルーチンに戻される。
図8は、ONU102−1〜102−nの各々によるタイムアウト検出処理を説明するためのフローチャートである。このフローチャートに示す処理は、たとえば所定の周期でメインルーチンから呼び出されて実行される。以下では、ONU102−1を代表例として図8に示される処理を説明する。
図3および図8を参照して、処理が開始されると、ONU102−1は、OLT101からスリープ要求を受信したかどうかを判定する(ステップS11)。スリープ要求受信部63がスリープ要求を受信した場合(ステップS11においてYES)、処理はステップS12に進む。一方、スリープ要求受信部63にスリープ要求が入力されていない場合(ステップS11においてNO)、処理はステップS19に進む。
ステップS12において、ONU102は自己のモードをスリープモードに設定する。具体的には、スリープモード設定部62は、スリープ要求受信部63によって受信されたスリープ要求に基づいて、送信部46等の通信制御部を停止させる。これにより、ONU102の動作モードは、通常モードからスリープモードへと移行する。
スリープ開始通知生成部64は、スリープ開始通知を生成するとともに、そのスリープ開始通知をOLT101に送信する(ステップS13)。さらに、スリープ開始通知生成部64は、スリープ開始通知を出力したことを停止命令生成部54に通知する。これにより、停止命令生成部54は、停止命令を生成する(ステップS14)。
タイムアウト検出部52は、停止命令を受けることにより、タイムアウトの検出を停止する(ステップS15)。停止期間は、スリープ要求により設定されたスリープ期間に相当する。タイムアウト検出部52は、スリープ期間が経過したかどうかを判定する(ステップS16)。スリープ期間がまだ経過していない場合(ステップS16においてNO)、処理はステップS16に戻される。スリープ期間が経過した場合(ステップS16においてYES)、処理はステップS17に進む。
ステップS17において、タイムアウト検出部22は、停止処理を終了する。スリープ完了通知生成部65はスリープ完了通知を生成する。このスリープ完了通知は、OLT101に送信される。
ステップS18において、タイムアウト検出部22は、タイムアウト検出処理の起点を現在時刻に設定する。ステップS19において、タイムアウト検出部22はタイムアウト検出処理を実行する。ステップS19の処理が終了すると、全体の処理はメインルーチンに戻される。
図9は、タイムアウト検出処理を説明するための第1の図である。図10は、タイムアウト検出処理を説明するための第2の図である。図9は正常な場合を示し、図10はタイムアウトが発生した場合を示す。
図9を参照して、OLT101はONU102へ制御フレーム(図9ではOAMフレームを例示する)を送信する。OLT101は所定の周期(たとえば1秒)でONU102にOAMフレームを送信する。ONU102は、OLT101から送信されたOAMフレームをOLT101に送り返す。OLT101およびONU102ともに制御フレームを正常に送信および受信している。OLT101とONU102との間の双方向の通信が繰返されているのでタイムアウトは発生しない。
図10を参照して、OLT101がONU102からOAMフレームを一旦受信したものの、その受信時刻から所定のタイムアウト期間(5秒)が経過したにもかかわらず、OLT101はONU102から新しいOAMフレームを受信できない。この場合、OLT101はタイムアウトを検出する。同じく、ONU102は、OLT101からOAMフレームを一旦受信したものの、その受信時刻から所定のタイムアウト期間が経過したにもかかわらず、ONU102はOLT101から新しいOAMフレームを受信できない。この場合、ONU102はタイムアウトを検出する。
図11は、ONUのスリープモードの設定手順を説明するための図である。図11を参照して、まずOLT101からONU102へとスリープ要求が送信される。ONU102はスリープ要求を受信するとともに、そのスリープ要求に従って、自己のモードをスリープモードに設定する。
次にONU102はOLT101に対してスリープ開始通知を送信する。スリープ要求に従って設定されたスリープ期間が経過すると、ONU102は、スリープ完了通知をOLT101に送信するとともに、自己の動作モードを通常モードに設定する。
OLT101は、タイムアウトの検出と、ONUのスリープ期間の設定とを互いに独立して実行する。ONUのスリープモードの設定機能をタイムアウトの検出機能とは独立させることによって、省電力設定部30の設計およびOLT101への省電力設定部30の実装を容易にすることができる。
しかし、ONUのスリープモードの設定機能をタイムアウトの検出機能とは独立させることで、スリープモードの開始および完了のタイミングがタイムアウトの検出のタイミングと独立に設定される。このため、以下に説明する問題が生じうる。
図12は、ONUのスリープモードの設定によって起こりうる第1の課題を説明するためのシーケンス図である。図12を参照して、OLT101は所定の周期(たとえば1秒)でOAMフレームを送信している。しかし、ONU102はスリープモードに設定されているため、OLT101から送られたOAMフレームを受信できない。したがって、ONU102はOLT101にOAMフレームを送信できない。スリープ期間がタイムアウト期間よりも長いので、ONU102がスリープモードから通常モードに復帰するより先にタイムアウト期間が経過する。このためスリープ期間中にタイムアウトが検出される。
図13は、ONUのスリープモードの設定によって起こりうる第2の課題を説明するためのシーケンス図である。図13を参照して、スリープ期間は、タイムアウト期間よりも短く、かつ、断続的に設定される。このため、各スリープモード期間の間にタイムアウトが検出されることは回避される。しかしながら、OLT101からOAMフレームが送信されたときにONU102がスリープモードであるため、ONU102はOLT101からのOAMフレームを受信できない。スリープ期間が断続的に設定されることによって、ONU102がOLT101からのOAMフレームを受信できないことが繰り返される可能性がある。この場合にも、OLT101がONUから最新のOAMフレームを受信した時刻からタイムアウト期間が経過するので、タイムアウトが検出される。
図14は、実施の形態1に係るOLTおよびONUのタイムアウト検出を説明するためのシーケンス図である。図14を参照して、ONU102は、スリープ要求に応じて、自己のモードをスリープモードに設定する。ONU102は、スリープ開始通知をOLT101に送信するとともに、タイムアウトの検出を停止する。一方、OLT101は、ONU102からスリープ開始通知を受信するとともに、そのスリープ開始通知に応じてタイムアウトの検出を停止する。
スリープ期間が経過すると、ONU102は停止処理を終了するとともに自己のモードを通常モードに設定する。ONU102は、タイムアウトの検出の起点をスリープ完了時刻に設定する。一方、OLT101は、現在時刻がスリープ完了予定時刻になると、停止処理を終了させるとともに、現在時刻、すなわちスリープ完了予定時刻をタイムアウトの検出の起点に設定する。
その起点からタイムアウト期間が経過するまでに、OLT101がONU102に制御フレームを送信し、かつ、ONU102がOLT101に制御フレームを送信した場合には、OLT101およびONU102はタイムアウトを検出しない。しかし、起点からタイムアウト期間が経過するまでにOLT101がONU102から制御フレームを受け取っていない場合にはOLT101はタイムアウトを検出する。同じく起点からタイムアウト期間が経過するまでにONU102がOLT101から制御フレームを受け取っていない場合にはONU102はタイムアウトを検出する。
このように実施の形態1では、OLT101およびONU102の各々において、タイムアウト検出部は、スリープモードの期間の間は、タイムアウトの検出を待機するようにタイムアウト検出部を制御して、スリープモードの終了後にタイムアウト検出部がタイムアウトを検出しうるように、タイムアウト検出部によるタイムアウトの検出を制御する。より具体的にはOLT101およびONU102の各々において、タイムアウト検出部は、スリープ期間の間、タイムアウトの検出を停止する。これにより、ONU102がスリープモードである期間の間にタイムアウトが検出されることを回避できる。
[実施の形態2]
実施の形態2に係るEPONシステムでは、ONUのスリープモードの開始をOLTが確認した時点において、OLTが制御フレームの最新受信時刻を変更する。なお、本発明の実施の形態2に係るEPONシステムの全体的な構成は図1に示した構成と同様であるので、以後の詳細な説明は繰り返さない。
図15は、実施の形態2に係るOLTの概略構成を示すブロック図である。図2および図15を参照して、OLT201は、省電力設定部30に代えて省電力設定部30Aを備える点、および停止命令生成部24が省略される点においてOLT101と異なる。省電力設定部30Aは、スリープ開始通知受信部34に代えてスリープ開始通知受信部34Aを含む点において、省電力設定部30と異なる。
スリープ開始通知受信部34Aは、ONU102からスリープ開始通知を受信したときに、データベース23に格納された制御フレームの最新の受信時刻を変更する。具体的には、制御フレームの最新の受信時刻は、ONU102のスリープモードの完了予定時刻へと変更される。これにより、タイムアウト期間がスリープモードの終了予定時点以後に開始されるように、タイムアウト期間の起点が設定される。
スリープモードの完了予定時刻は、スリープ開始通知受信部34Aがスリープ開始通知を受信した時刻からスリープ期間が経過したときの時刻である。スリープ期間はスリープ要求生成部33によって設定される。したがって、スリープ開始通知受信部34Aは、スリープモードの完了予定時刻を把握できる。
なお、OLT201の他の部分の構成は、OLT101の対応する部分の構成と同様であるので、以後の詳細な説明は繰返さない。
図16は、OLT201によるタイムアウト検出処理を説明するためのフローチャートである。このフローチャートに示す処理は、たとえば所定の周期でメインルーチンから呼び出されて実行される。図16に示されたフローチャートは、ONU102−1〜102−nの各々に対するOLT201の処理を示す。
図7および図16を参照して、図16に示されたフローチャートでは、ステップS4〜S7の各ステップの処理が省略される点で図7に示されたフローチャートと異なる。さらにステップS8の処理に代えてステップS8Aの処理が実行される点において、図16に示されたフローチャートは、図7に示されたフローチャートと異なる。したがって、図7および図16の間で共通して示された処理については以後の詳細な説明を繰り返さない。
ステップS3において、OLT201は、ONU102(たとえばONU102−1)からスリープ開始通知を受信する。次にステップS8Aにおいて、OLT201は、制御フレームの最新の受信時刻をスリープモードの完了予定時刻に変更する。ステップS9において、OLT201は、タイムアウト検出処理を実行する。
図17は、実施の形態2に係るOLTのタイムアウト検出を説明するためのシーケンス図である。図17を参照して、OLT201は、ONU102からスリープ開始通知を受信したときに、制御フレーム(たとえばOAMフレーム)の最新の受信時刻を、スリープモードの完了予定時刻に設定する。この時刻は、ONU102がスリープモードから復帰すると予定される時刻である。復帰予定時刻は、スリープ開始通知の受信時刻からスリープ期間Tが経過したときの時刻である。したがって、ONU102がスリープモードである期間の間、現在時刻よりも最新の受信時刻が後になるので、OLT201(タイムアウト検出部22)によるタイムアウト検出は無効になる。スリープモードの完了予定時刻から所定のタイムアウト期間が経過するまでに、OLT201が制御フレームを受信できない場合にはOLT201はタイムアウトを検出する。
このように、実施の形態2によれば、OLTは、スリープモードの完了予定時刻を、タイムアウト期間の起点である制御フレームの最新の受信時刻として設定する。これにより、宅側装置がスリープモードに設定されたことによるタイムアウトの発生を回避することができる。したがって、ONUのスリープ期間中に、タイムアウトを誤って検出することを防ぐことができる。なお、タイムアウト期間の起点は、スリープモードの完了予定時刻より後であってもよい。
[実施の形態3]
実施の形態3に係るEPONシステムにおいて、ONUがスリープ開始通知を送信したときに、ONUはスリープモードの完了予定時刻を制御フレームの最新受信時刻に設定する。なお、本発明の実施の形態3に係るEPONシステムの全体的な構成は図1に示した構成と同様であるので、以後の詳細な説明は繰り返さない。
図18は、実施の形態3に係るONUの概略構成を示すブロック図である。図3および図18を参照して、ONU202は、省電力設定部60に代えて省電力設定部60Aを備える点、および停止命令生成部54が省略される点においてONU102と異なる。省電力設定部60Aは、スリープ開始通知生成部64に代えてスリープ開始通知生成部64Aを含む点において、省電力設定部60と異なる。
スリープ開始通知生成部64Aは、OLT201へスリープ開始通知を送信したときに、データベース53に格納された制御フレームの最新の受信時刻を変更する。実施の形態2と同じく、制御フレームの最新の受信時刻は、ONU202のスリープモードの完了予定時刻へと変更される。これによりタイムアウト期間がスリープモードの終了予定時点以後に開始されるようにタイムアウト期間の起点が設定される。ONU202の他の部分の構成は、ONU102の対応する部分の構成と同様であるので、以後の詳細な説明は繰返さない。
図19は、実施の形態3に係るONUによるタイムアウト検出処理を説明するためのフローチャートである。このフローチャートに示す処理は、たとえば所定の周期でメインルーチンから呼び出されて実行される。
図8および図19を参照して、図19に示されたフローチャートでは、ステップS14〜S17の各ステップの処理が省略される点で図8に示されたフローチャートと異なる。さらにステップS18の処理に代えてステップS18Aの処理が実行される点において、図19に示されたフローチャートは、図8に示されたフローチャートと異なる。したがって、図8および図19の間で共通して示された処理については以後の詳細な説明を繰り返さない。
ステップS13において、ONU202はスリープ開始通知を送信する。ステップS18Aにおいて、ONU202は、制御フレームの最新の受信時刻をスリープモードの完了予定時刻へと変更する。ステップS19において、OLT202は、タイムアウト検出処理を実行する。
図20は、実施の形態3に係るONUのタイムアウト検出を説明するためのシーケンス図である。なお、図20では、OLTの動作として、実施の形態2に係るOLT201の動作が示される。
図20を参照して、ONU202はスリープ開始通知を送信したときに、制御フレーム(たとえばOAMフレーム)の最新の受信時刻を、スリープモードの完了予定時刻に設定する。この時刻は、ONU202がスリープモードから復帰すると予定される時刻である。復帰予定時刻は、スリープ開始通知の受信時刻からスリープ期間Tが経過したときの時刻である。したがって、ONU202がスリープモードである期間の間、現在時刻よりも最新の受信時刻が後になるので、ONU202(タイムアウト検出部52)によるタイムアウト検出は無効になる。スリープモードの完了予定時刻から所定のタイムアウト期間が経過するまでに、ONU202が制御フレームを受信できない場合には、ONU202はタイムアウトを検出する。
このように、実施の形態3によれば、ONUは、スリープモードの完了予定時刻を、タイムアウト期間の起点である制御フレームの最新の受信時刻として設定する。これにより、宅側装置がスリープモードに設定されたことによるタイムアウトの発生を回避することができる。したがって、ONUのスリープ期間中に、タイムアウトを誤って検出することを防ぐことができる。なお、タイムアウト期間の起点は、スリープモードの完了予定時刻より後であってもよい。
[実施の形態4]
実施の形態4に係るEPONシステムにおいて、ONUは、スリープ完了通知をOLTに送信するとともに、制御フレームの最新受信時刻を、そのスリープ完了通知の送信時刻に変更する。
なお、本発明の実施の形態4に係るEPONシステムの全体的な構成は図1に示した構成と同様であるので、以後の詳細な説明は繰り返さない。
図21は、実施の形態4に係るONUの概略構成を示すブロック図である。図3および図21を参照して、ONU302は、省電力設定部60に代えて省電力設定部60Bを備える点、および停止命令生成部54が省略される点においてONU102と異なる。省電力設定部60Bは、スリープ完了通知生成部65に代えてスリープ完了通知生成部65Aを含む点において、省電力設定部60と異なる。
スリープ完了通知生成部65Aは、OLT101へスリープ完了通知を送信したときに、データベース53に格納された制御フレームの最新の受信時刻を変更する。制御フレームの最新の受信時刻は、スリープ完了通知の送信時刻(すなわち現在時刻)へと変更される。これによりタイムアウト期間が前記スリープモードの終了した時以後に開始されるようにタイムアウト期間の起点が設定される。
なお、ONU302の他の部分の構成は、ONU102の対応する部分の構成と同様であるので、以後の詳細な説明は繰返さない。
図22は、実施の形態4に係るONUによるタイムアウト検出処理を説明するためのフローチャートである。このフローチャートに示す処理は、たとえば所定の周期でメインルーチンから呼び出されて実行される。
図8および図22を参照して、図22に示したフローチャートでは、ステップS14,S15の処理が省略される点、およびステップS17,S18の処理に代えてステップS17B,S18Bの処理がそれぞれ実行される点において図8に示したフローチャートと異なる。したがって、図8および図22の間で共通して示された処理については以後の詳細な説明を繰り返さない。
ステップS16において、ONU302は、スリープ期間が経過したかどうかを判定する。スリープ期間が経過したと判定された場合(ステップS16においてYES)、処理はステップS17Bに進む。ステップS17Bにおいて、ONU302(スリープ完了通知生成部65A)はスリープ完了通知を生成するとともに、そのスリープ完了通知をOLTに対して送信する。ステップS18Bにおいて、スリープ完了通知生成部65Aは、制御フレームの最新の受信時刻を変更する。ステップS19において、OLT302は、タイムアウト検出処理を実行する。
図23は、実施の形態4に係るONUのタイムアウト検出を説明するためのシーケンス図である。なお、図23では、OLTの動作として、実施の形態1に係るOLT101の動作が示される。
図23を参照して、ONU302はスリープ完了通知を送信したときに、制御フレーム(たとえばOAMフレーム)の最新の受信時刻を、現在時刻、すなわちスリープ完了通知の送信時刻に設定する。実施の形態3と同様に、ONU302がスリープモードである期間の間、ONU302によるタイムアウト検出は無効になる。スリープモードの完了時刻から所定のタイムアウト期間が経過するまでに、ONU302が制御フレームを受信できない場合には、ONU302はタイムアウトを検出する。
実施の形態4によれば、実施の形態1〜3と同様に、宅側装置がスリープモードに設定されたことによるタイムアウトの発生を回避することができる。さらに実施の形態4によれば、ONUの実際のスリープ期間が、スリープ要求により設定されたスリープ期間Tよりも短くなった場合に、タイムアウト検出時刻を早めることができる。これにより、タイムアウトを早期に検出することができる。なお、タイムアウト期間の起点は、スリープ完了通知を送信した時刻より後であってもよい。
[実施の形態5]
実施の形態5に係るEPONシステムにおいて、OLTは、ONUからスリープ完了通知を受信するとともに、制御フレームの最新受信時刻を、そのスリープ完了通知の受信時刻に変更する。
なお、本発明の実施の形態5に係るEPONシステムの全体的な構成は図1に示した構成と同様であるので、以後の詳細な説明は繰り返さない。
図24は、実施の形態5に係るOLTの概略構成を示すブロック図である。図2および図24を参照して、OLT301は、省電力設定部30に代えて省電力設定部30Bを備える点、および停止命令生成部24が省略される点においてONU101と異なる。省電力設定部30Bは、スリープ完了通知受信部35に代えてスリープ完了通知受信部35Aを含む点において、省電力設定部30と異なる。
スリープ完了通知受信部35Aは、ONUからスリープ完了通知を送信したときに、データベース23に格納された制御フレームの最新の受信時刻を変更する。制御フレームの最新の受信時刻は、スリープ完了通知の送信時刻(すなわち現在時刻)へと変更される。これにより、OLT101が完了通知を受信した時点以後にタイムアウト期間が開始されるように、タイムアウト期間の起点が設定される。
なお、OLT301の他の部分の構成は、OLT101の対応する部分の構成と同様であるので、以後の詳細な説明は繰返さない。
図25は、実施の形態5に係るOLTによるタイムアウト検出処理を説明するためのフローチャートである。このフローチャートに示す処理は、たとえば所定の周期でメインルーチンから呼び出されて実行される。
図7および図25を参照して、図25に示したフローチャートでは、ステップS4〜S8の処理が省略される点、およびステップS7A,S8Aの処理が追加される点において図7に示したフローチャートと異なる。なおステップS8Aの処理は、図16のフローチャートに示された処理と同様である。したがって、図7、図16および図22の間で共通して示された処理については以後の詳細な説明を繰り返さない。
ステップS7Aにおいて、OLT301は、スリープ完了通知を受信する。ステップS8Aにおいて、OLT301は、制御フレームの最新の受信時刻を、現在時刻、すなわちスリープ完了通知の受信時刻に設定する。ステップS9において、OLT301は、タイムアウト検出処理を実行する。
図26は、実施の形態5に係るOLTのタイムアウト検出を説明するためのシーケンス図である。
図26を参照して、ONU(たとえばONU102)はスリープモードの間の期間、タイムアウト検出を停止するとともに、スリープモードが完了したときにスリープ完了通知をOLT301に送信する。OLT301は、スリープ完了通知を受信したときの時刻を、制御フレーム(たとえばOAMフレーム)の最新の受信時刻に設定する。実施の形態1,2と同様に、ONU102がスリープモードである期間の間、OLT301によるタイムアウト検出は無効になる。スリープモードの完了時刻から所定のタイムアウト期間が経過するまでに、OLT301が制御フレームを受信できない場合には、OLT301はタイムアウトを検出する。
実施の形態5によれば、実施の形態1〜4と同様に、宅側装置がスリープモードに設定されたことによるタイムアウトの発生を回避することができる。さらに実施の形態5によれば、実施の形態4と同様に、ONUの実際のスリープ期間が、スリープ要求により設定されたスリープ期間Tよりも短くなった場合に、タイムアウト検出時刻を早めることができる。これにより、タイムアウトを早期に検出することができる。なお、タイムアウト期間の起点は、スリープ完了通知を受信した時刻より後であってもよい。
[実施の形態6]
実施の形態6に係るEPONシステムにおいて、ONUは、スリープ期間の間、タイムアウト検出を無効にするだけでなく、制御フレームの最新受信時刻をスリープ完了通知の送信時刻に変更する。すなわち、実施の形態6に係るONUは、実施の形態1に係るONUの機能と実施の形態4に係るONUの機能とが組み合わされた機能を有する。
なお、本発明の実施の形態6に係るEPONシステムの全体的な構成は図1に示した構成と同様であるので、以後の詳細な説明は繰り返さない。
図27は、実施の形態6に係るONUの概略構成を示すブロック図である。図3および図27を参照して、ONU402は、省電力設定部60に代えて省電力設定部60Cを備える点においてONU102と異なる。省電力設定部60Cは、スリープ完了通知生成部65に代えてスリープ完了通知生成部65Aを含む点において、省電力設定部60と異なる。
実施の形態1と同様に、停止命令生成部54は、スリープ開始通知生成部64からスリープ開始通知を受けるとともに、そのスリープ開始通知に応答して、タイムアウト検出部52に、タイムアウトの検出を停止するための停止命令を出力する。実施の形態4と同じく、スリープ完了通知生成部65Aは、OLTへスリープ完了通知を送信したときに、データベース53に格納された制御フレームの最新の受信時刻を変更する。これにより制御フレームの最新の受信時刻は、スリープ完了通知の送信時刻へと変更される。さらに、タイムアウトの検出時刻は、スリープモードの終了以後の時刻となるように調整される。
図28は、実施の形態6に係るOLTによるタイムアウト検出処理を説明するためのフローチャートである。このフローチャートに示す処理は、たとえば所定の周期でメインルーチンから呼び出されて実行される。
図8および図28を参照して、図28に示されたフローチャートでは、ステップS18の処理に代わり、ステップS17B,S18Bの処理が実行される。ステップS17B,S18Bの処理は、図22に示された処理と同様の処理である。
図29は、実施の形態6に係るONUのタイムアウト検出を説明するためのシーケンス図である。図29では、OLTの動作として、実施の形態1に係るOLT101の動作が示される。
図29を参照して、ONU402は、スリープ開始通知をOLT101に送信する。次に、ONU402は、スリープ期間の間、タイムアウトの検出を停止する。スリープ期間が終了すると、ONU402はスリープ完了通知をOLT101に送信するとともに、現在時刻(スリープ完了通知の送信時刻)を制御フレームの最新の受信時刻に設定する。スリープ完了通知の送信時刻から所定のタイムアウト期間が経過するまでにONUが制御フレームを受信できない場合には、ONUは、制御プロトコルのタイムアウトを検出する。
実施の形態6によれば、スリープ期間の間は、ONU402はタイムアウトの検出を無効にする。したがって、スリープモードの期間にONUが誤ってタイムアウトを検出することを防ぐことができる。さらに、実施の形態6によれば、実施の形態4と同様に、スリープモードの完了時刻が最新の受信時刻に設定されるので、スリープモードの完了後には、タイムアウトを検出することが可能になる。なお、実施の形態4と同様に、タイムアウト期間の起点は、スリープ完了通知を送信した時刻より後であってもよい。
[実施の形態7]
実施の形態7に係るEPONシステムにおいて、OLTは、ONUのスリープモードを設定する前に、タイムアウトが発生していないことを予め確認する。
なお、本発明の実施の形態6に係るEPONシステムの全体的な構成は図1に示した構成と同様であるので、以後の詳細な説明は繰り返さない。
図30は、実施の形態7に係るOLTの概略構成を示すブロック図である。図2および図32を参照して、OLT401は、省電力設定部30に代えて省電力設定部30Cを備える点において実施の形態1に係るOLT101と異なる。省電力設定部30Cは、タイムアウト検出部22からタイムアウト通知を受ける。この場合、省電力設定部30C(具体的にはスリープ要求生成部33)は、スリープ要求生成の生成を停止する。この点において省電力設定部30Cは省電力設定部30と異なる。
一方、タイムアウト通知が省電力設定部30Cに入力されない場合には、省電力設定部30Cは、省電力設定部30と同様に動作する。すなわち、省電力設定部30Cは、上り方向通信および下り方向通信のトラフィック量に基づいて、各ONUに対してスリープ要求を生成する。なお、OLT401の他の部分の構成は、OLT101の対応する部分の構成と同様であるので、以後の詳細な説明は繰返さない。
図31は、OLT401によるタイムアウト検出処理を説明するためのフローチャートである。このフローチャートに示す処理は、たとえば所定の周期でメインルーチンから呼び出されて実行される。なお、図31に示した処理は、ONU102−1〜102−nのうちの任意の1つのONU(たとえばONU102−1)に対する処理を示す。図31を参照して、ステップS1において、OLT401は、ONU102−1をスリープモードに設定するかどうかを判定する(ステップS1)。省電力判定部32は、ONU102−1をスリープモードに設定可能であると判定する。この場合(ステップS1においてYES)、処理はステップS21に進む。一方、ONU102−1をスリープモードに設定不可能と省電力判定部32が判定した場合(ステップS1においてNO)、図7に示されるステップS9の処理が実行される。
ステップS21において、タイムアウト検出部22は、データベース23に格納された情報(制御フレームの最新の受信時刻)に基づいて、タイムアウトが発生したかどうかを判定する。タイムアウトが発生したと判定された場合(ステップS21においてYES)、処理はメインルーチンに戻される。したがってONU102−1はスリープモードには設定されない。一方、タイムアウトが発生していないと判定された場合(ステップS21においてNO)、図7のステップS2に示された処理が実行される。図7のステップS2以後の処理については、以後の説明は繰り返さない。
上記のように、ONUのスリープモードの設定は、タイムアウト検出とは独立して実行される。このため、タイムアウト検出停止処理が完了する前にスリープ要求が発生することが考えられる。
図32は、タイムアウト検出停止処理が完了する前にスリープ要求を発生させた場合に生じ得る問題点を説明するためのシーケンス図である。図32を参照して、OLTからONUにスリープ要求が送信される。この時点ではロジカルリンクは正常である。ONUは、OLTにスリープ開始通知を送信するとともに、スリープモードを開始する。OLTは時刻t1においてスリープ開始通知を受信するとともに、タイムアウト検出機能を停止する。もし、時刻t1以後にOLTからONUにスリープ要求が送信されない場合には、時刻t3においてタイムアウト検出を停止する処理が終了する。時刻t1から時刻t3までの期間は、スリープ要求により設定されたスリープ期間に等しい。
一方、時刻t1以後の時刻taにおいて、たとえばCPUのハングアップにより、ONUでは制御フレームが送信不能になったとする。この場合、ONUではリンクダウンが発生する。一方、OLTはONUからデータフレームおよび制御フレームを受信していないので、時刻t1から時刻t3までの間に、ONUにスリープ要求を再度送信する。
OLTとONUとの間の物理的なリンクは正常に保たれているため、ONUはスリープ要求を受信する。ONUはこのスリープ要求に応じて、スリープ開始通知をOLTに送信するとともに、スリープモードを継続する。
OLTは時刻t2においてスリープ開始通知を受信することにより、停止処理の終了時刻を時刻t3から時刻t4に遅らせる。OLTは、時刻t4から所定のタイムアウト期間が経過したときに、ONUのリンクダウンを検出する。このように、スリープ期間が延長されることによって、タイムアウト検出が無効となる期間(タイムアウト検出の停止期間)が伸びる。これによりタイムアウトの検出が遅れるという課題が発生する。
また、図32には示されていないが、停止機能の終了時点からタイムアウト期間が終了するまでの間にOLTからONUにスリープ要求が送られた場合にも、タイムアウト期間内にOLTおよびONUがタイムアウト検出を無効にする。したがってこの場合にも、タイムアウトの検出が遅れるという課題が発生する。
図33は、実施の形態7に係るOLTのタイムアウト検出を説明するためのシーケンス図である。図33を参照して、実施の形態7では、OLT401は、スリープ要求を発生させる前に、タイムアウト発生の有無を確認する。具体的に説明すると、時刻t3においてタイムアウト検出を停止する処理が終了する。ONUが正常であれば、時刻t3以後、ONUはバッファメモリに蓄積された複数の制御フレームを順次送信するのでタイムアウトは発生しない。したがってOLT401は、時刻t5においてタイムアウトが発生していないことを確認し、その後にスリープ要求を生成してONUに送信する。一方、図33に示した例と同じく、時刻taにおいてONUのリンクダウンが発生した場合、時刻t5においてOLT401はタイムアウトを検出する。この場合には、スリープ要求は発生しない。なお、時刻t3からタイムアウト期間が経過したときの時刻が時刻t5よりも前の時刻である場合には、その時刻においてタイムアウトが検出される。
実施の形態7によれば、OLTがONUにスリープ要求を送信するに先立って、タイムアウトが発生していないかどうかが予め確認される。これにより、ONUにタイムアウトが発生したまま、スリープ期間が延長されることを防止できるので、プロトコルのタイムアウトを正しく検出することができる。
(変形例)
図34は、実施の形態7に係るOLTの構成の変形例を示すブロック図である。図15および図34を参照して、OLT401Aは、省電力設定部30Aに代えて省電力設定部30Dを備える点において実施の形態2に係るOLT201とは異なる。省電力設定部30Dがタイムアウト検出部22からタイムアウト通知を受けた場合、省電力設定部30D(スリープ要求生成部33)は、スリープ要求生成の生成を停止する。省電力設定部30Dがタイムアウト検出部22からタイムアウト通知を受けた場合、省電力設定部30D(スリープ要求生成部33)は、スリープ要求生成の生成を停止する。
一方、タイムアウト通知が省電力設定部30Dに入力されない場合には、省電力設定部30Dは、省電力設定部30Aと同様に動作する。OLT401Aの他の部分の構成は、OLT201の対応する部分の構成と同様であるので以後の説明は繰返さない。
また、OLT401Aのタイムアウト検出を説明するフローチャートは、図16に示されたフローチャートと同様である。スリープ開始通知受信部34Aは、スリープ開始通知を受信したときに、データベース23に格納された制御フレームの最新の受信時刻を、スリープ完了予定時刻に更新する。その時刻までにOLT401Aがスリープ要求をONUに送信した場合には、タイムアウト検出の起点が遅くなる。図34に示す構成によっても、スリープ要求を発生させる前にタイムアウトの発生の有無が確認される。これにより、ONUにタイムアウトが発生したまま、スリープ期間が延長されることを防止できるので、プロトコルのタイムアウトを早期に検出することができる。
なお、上記の各実施の形態では、ONUの状態をスリープモードに設定するための方法として、OLTからONUに対して送られるスリープ要求を用いる方法が示される。しかしながら、ONUの状態をスリープモードに設定するための方法は、この方法に限定されるものではない。たとえば、ONUが、トラフィック量に基づいて、自身の状態を通常の動作モードからスリープモードに移行するかどうかを判断してもよい。あるいは、OLTがONUに対して、ONUの状態を通常の動作モードからスリープモードに移行可能かどうかを問合せ、通常モードからスリープモードへと移行可能であるとの応答がONUからOLTに送信された場合に、OLTからONUに対してスリープ要求を送信する方法を用いてもよい。これらの方法においても、ONUは、スリープ期間の開始時にスリープ開始通知をOLTに送信するとともに、スリープ期間の終了時にスリープ完了通知をOLTに送信すれば、上記の各実施の形態に従ってタイムアウトの検出を制御できる。
また、上記各実施の形態では、ONUがスリープモードであるか否かにかかわらずタイムアウト期間は一定であるとしたが、たとえばONU102のスリープモード開始時に、スリープモード期間とタイムアウト期間との合計の期間を一時的なタイムアウト期間に設定してもよい。この場合においても、スリープモードの間はタイムアウトの検出が待機されて、スリープモードの終了以後にタイムアウトが検出されうる。したがって、ONUがスリープモードに設定されたことによるタイムアウトの発生を回避することができる。
さらに、本発明の実施の形態に係るEPONを構成するOLTおよびONUの組み合わせは特に限定されず、上記の各実施の形態に係るOLTおよびONUの任意の組み合わせを、本発明の実施の形態に係るEPONに採用することができる。
また、本発明の適用可能な光通信システムはEPONに限定されることなく、OLTとONUとの間の通信がタイムアウト期間の間停止した場合にタイムアウトを検出し、OLTとONUとの間の通信が一時的に停止されるスリープモードが発生し、そのスリープモードを検出する光通信システムに適用可能である。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。