以下、本発明の実施の形態について、図面を参照して詳細に説明する。なお、各図において共通する部分には、同一の符号が付される。また、特に断らない限り、PON区間の制御フレームの説明は、10G−EPONの規格で規定されている制御フレームに基づいて実施する。
図1は、実施例1のWDM/TDM−PONによる光アクセス網を示すブロック図である。
実施例1の光アクセス網は、OLT10、光スプリッタ30、複数のONU20(20−1−1〜20−4−N4)、及び複数の端末50(50−1−1〜50−4−N4)を備える。OLT10は、光回線装置であり、局側装置である。ONU20は、光ネットワーク装置であり、加入者装置である。
OLT10は、幹線の光ファイバ40−0を介して光スプリッタ30と接続される。光スプリッタ30は、支線の光ファイバ40−1−1〜40−4−N4を介してONU20−1−1〜20−4−nに接続される。端末50−1−1〜50−4−N4は、それぞれONU20−1−1〜20−4−N4に接続される。
次に、下り伝送及び上り伝送の方法に関して説明する。ここで、ONU20−1−1〜20−1−N1は、下り波長λD1及び上り波長λU1を用いて、OLT10と通信する。ONU20−2−1〜20−1−N2は、下り波長λD2及び上り波長λU2を用いて、OLT10と通信する。
ONU20−3−1〜20−3−N3は、下り波長λD3及び上り波長λU3を用いて、OLT10と通信する。ONU20−4−1〜20−4−N4は、下り波長λD4及び上り波長λU4を用いて、OLT10と通信する。なお、実施例1の波長可変WDM/TDM−PONシステムにおいて、ONU20は、一つに固定された波長を用いて上り通信及び下り通信せず、動的に変更される波長を用いて上り通信及び下り通信を行う。
以下に、WDM/TDM−PONにおけるOLT10からONU20への下り伝送に関して説明する。OLT10は、ONU20−1−1〜20−1−N1宛ての信号を、下り波長λD1の下り光信号によって送信する。また、OLT10は、ONU20−2−1〜20−2−N2宛ての信号を、下り波長λD2の下り光信号によって送信する。
また、OLT10は、ONU20−3−1〜20−3−N3宛ての信号を、下り波長λD3の下り光信号によって送信する。また、OLT10は、ONU20−4−1〜20−4−N4宛ての信号を、下り波長λD4の下り光信号によって送信する。
従って、OLT10から送信される光信号は、複数の下り波長(λD1、λD2、λD3、λD4)が波長多重された光信号である。波長多重された光信号は、光スプリッタ30、光ファイバ40−1−1〜40−4−N4を介してONU20−1−1〜20−4−N4に入力される。ONU20は、送受信する波長を可変に設定可能な波長可変光送受信器を備えており、特定の波長のみ送受信が可能である。
ONU20は、波長多重された下り光信号を受信した場合、特定の波長のみ受信する。例えば、ONU20−1−1〜20−1−N1は、下り波長λD1のみの信号を選択し、選択された信号を受信する。また、ONU20−2−1〜20−2−N2は、下り波長λD2のみの信号を選択し、選択された信号を受信する。また、ONU20−3−1〜20−3−N3は、下り波長λD3のみの信号を選択し、選択された信号を受信する。また、ONU20−4−1〜20−4−N4は、下り波長λD4の信号のみを選択し、選択された信号を受信する。
各波長の下り光信号は、各ONU20宛の信号が時分割で多重される。例えば、下り波長λD1の下り光信号には、ONU20−1−1〜20−1−N1宛の信号が時分割多重されているため、ONU20の各々は、OLT10から受信したフレームを解析し、自宛か否かを判定し、自宛のフレームのみを選択する。
次に、WDM/TDM−PONにおけるONU20からOLT10への上り伝送に関して説明する。各ONU20は、上り波長λU1〜λU4のいずれかを選択し、選択された波長によって、OLT10から指示された期間に上り光信号を送信する。なお、ONU20は、指示された期間のみ上り光信号を送信するため、送信される上り光信号はバースト光信号である。
例えば、ONU20−1−1〜20−1−N1は、上り波長λU1の上りバースト光信号を送信し、ONU20−2−1〜20−2−N2は、上り波長λU2の上りバースト光信号を送信し、ONU20−3−1〜20−3−N3は、上り波長λU3の上りバースト光信号を送信し、ONU20−4−1〜20−4−N4は、上り波長λU4の上りバースト光信号を送信する。
各ONU20から送信された上り光信号(上りバースト光信号)は、光スプリッタ30によって多重された後、OLT10に入力される。従って、OLT10には、時分割多重され、さらに、波長多重された上り波長λU1〜λU4の上り光信号が入力される。
このようにWDM/TDM−PONは、従来のTDM−PONを複数の波長で束ねたシステムである。このため、1台のOLT10は、より多くのONU20を収容可能であり、さらに、WDM/TDM−PONは、OLT10とONU20との間において、より大きな伝送容量を実現できる。
図2は、実施例1のOLT10の構成を示すブロック図である。
OLT10は、合波分波器(WDMカプラ)100、複数のOSU110(110−1〜110−4)、レイヤー2スイッチ(L2SW)170、ネットワークノードインタフェース(NNI)部180、及び、制御部190から構成される。
OSU110(110−1〜110−4)は、更に、光送受信器(TRx)120(120−1〜120−4)、PON PHY/MAC処理部130(130−1〜130−4)、下りユーザトラフィック処理部140(140−1〜140−4)、上りユーザトラフィック処理部150(150−1〜150−4)、及び、波長切替処理部160(160−1〜160−4)から構成される。
合波分波器100は、波長λU1〜λU4の上り光信号と波長λD1〜λD4の下り光信号とを合波及び分波する。
合波分波器100は、OSU110−1から入力された下り波長λD1の光信号、OSU110−2から入力された下り波長λD2の光信号、OSU110−3から入力された下り波長λD3の光信号、及び、OSU110−4から入力された下り波長λD4の光信号を合波し、合波した光信号を光スプリッタ30に出力する。
また、合波分波器100は、光スプリッタ30から入力された波長λU1〜λU4が合波された光信号を分波する。そして、合波分波器100は、分波後の上り波長λU1の光信号をOSU110−1に入力し、上り波長λU2の光信号をOSU110−2に入力し、上り波長λU3の光信号をOSU110−3に入力し、上り波長λU4の光信号をOSU110−4に入力する。
光送受信器(TRx)120−1〜120−4は、それぞれ合波分波器100から入力された上り波長λU1〜λU4の上り光信号を受信し、受信した上り光信号を電流信号に変換する。さらに、光送受信器120−1〜120−4の各々は、変換結果である電流信号を電圧信号に変換及び増幅し、変換及び増幅結果である電気信号を、それぞれPON PHY/MAC処理部130−1〜130−4の各々に入力する。
また、光送受信器120−1〜120−4は、PON PHY/MAC処理部130−1〜130−4の各々から入力された電気信号をそれぞれ下り波長λD1〜λD4の光信号の各々に変換する。そして、光送受信器120−1〜120−4は、変換結果である光信号を、合波分波器100に出力する。
PON PHY/MAC処理部130は、光アクセスネットワーク区間の通信のPHY層及びMAC層の処理を、受信した電気信号に行なう。まず、上り信号の処理内容を説明する。
PON PHY/MAC処理部130は、光送受信器120から入力された電気信号からクロックを抽出する。そして、PON PHY/MAC処理部130は、抽出されたクロックで電気信号をリタイミングし、電気信号をデジタル信号に変換する。
さらに、PON PHY/MAC処理部130は、デジタル信号に対して復号化処理を行い、FECデコード処理を行う。そして、PON PHY/MAC処理部130は、デジタル信号からフレームを抽出し、フレームのヘッダを解析し、フレームを種別毎に各部に振分ける。
具体的には、ヘッダ解析により、フレームがユーザーデータであると判定した場合、PON PHY/MAC処理部130は、フレームを上りユーザトラフィック処理部150に出力する。また、フレームが波長切替制御用のフレームであると判定した場合、PON PHY/MAC処理部130は、そのフレームを波長切替処理部160に出力する。
次に、下り信号の処理内容を説明する。PON PHY/MAC処理部130は、下りユーザトラフィック処理部140から入力されたフレームに、光アクセス区間用のヘッダを付加し、さらに、FECエンコード処理及び符号化処理を行なう。また、PON PHY/MAC処理部130は、符号化されたデジタル信号を電気信号に変換して、変換結果の電気信号を光送受信器120に出力する。
下りユーザトラフィック処理部140は、L2SW170から入力されたMACフレームをキューに溜め、予め設定されたルールに基づいて帯域制御、優先制御及びVLAN操作をMACフレームに実行する。そして、下りユーザトラフィック処理部140は、キューに溜められたMACフレームを、PON PHY/MAC処理部130に出力する。
上りユーザトラフィック処理部150は、PON PHY/MAC処理部130から入力されたMACフレームをキューに溜め、予め設定されたルールに基づいて帯域制御、優先制御及びVLAN操作をMACフレームに実行する。そして、上りユーザトラフィック処理部150は、キューに溜められたMACフレームを、L2SW170に出力する。
波長切替処理部160は、ONU20に送信する波長切替指示用の制御フレームを生成したり、ONU20から受信した波長切替完了通知用の制御フレームを終端したりする。
レイヤー2スイッチ(L2SW)170は、各OSU110から入力されたMACフレームを多重してNNI部180に出力する。また、L2SW170は、NNI部180から入力されたMACフレームの宛先に基づいて、MACフレームの出力先ポートを決定する。そして、L2SW170は、決定したポートにMACフレームを出力する。
NNI部180は、L2SW170から受信した多重されたユーザデータフレームをNNI(Network Node Interface)に準拠した信号に変換し、変換後のユーザーデータ用フレームをネットワーク6に出力する。また、NNI部180は、ネットワーク6から入力されたユーザーデータ用フレームをL2SW170に転送する。
NNI部180は、制御部190からの指示に基づいて、波長切替処理中に受信した波長切替対象の下りユーザデータフレームを蓄積し、波長切替処理完了後にL2SW170に転送する。
制御部190は、OSU110−1〜110−4、L2SW170、NNI部180に指示を出したり、各部の状態をモニタしたりする。例えば、制御部190は、波長切替処理部160に波長切替指示を出したり、波長切替処理部160がONU20から波長切替完了通知を受信したことを検知したりする。
また、制御部190は、下りユーザトラフィック処理部140が保持する管理テーブルの値を更新することによって、下りユーザトラフィック処理部140の処理を切り替えたり、当該管理テーブルの値を読み出したりする。
また、制御部190は、NNI部180に、波長切替対象宛のフレームを一時的に蓄積するように指示したり、フレームの蓄積を解除するように指示したりする。
実施例1のOLT10は、複数のOSU110が有する波長切替処理部160及び下りユーザトラフィック処理部140、並びに、NNI部180を連携して制御することが可能である。
図3は、実施例1のONU20の構成を示すブロック図である。
ONU20は、波長可変光送受信器210、PON PHY/MAC処理部230、UNI処理部240、及び、波長切替処理部250から構成される。
波長可変光送受信器210は、ONU20が送信する波長(以下、送信波長)、及び、ONU20が受信する波長(以下、受信波長)を調整することができる光送受信器である。波長可変光送受信器210は、送信波長及び受信波長を設定する指示を波長切替処理部250から受け付ける。
そして、波長可変光送受信器210は、受信した上り光信号の送信波長に上り波長λU1〜λU4のいずれかを、波長切替処理部250の指示に従って設定する。そして、波長可変光送受信器210は、上り光信号をOLT10に向けて送信する。また、波長可変光送受信器210は、下り波長λD1〜λD4のいずれかが設定された下り光信号を、指示に従って受信する。
ここで、送信波長が上り波長λU1に設定され、受信波長が下り波長λD1に設定された場合の、波長可変光送受信器210の処理を説明する。OLT10から送信された下り光信号であり、かつ、下り波長λD1〜λD4が波長多重された下り光信号を受信した場合、波長可変光送受信器210は、下り波長λD1以外の波長をカットする。
これによって、波長可変光送受信器210は、下り波長λD1の下り光信号のみを選択し、選択された下り光信号を受信する。波長可変光送受信器210は、このような処理を、例えば、透過波長が可変な光フィルタを備えることによって実装する。
波長可変光送受信器210は、下り波長λD1の下り光信号を電流信号に変換し、変換結果である電流信号を電圧信号に変換する。さらに、波長可変光送受信器210は、電圧信号を増幅することによって、電気信号を生成する。そして、波長可変光送受信器210は、生成された電気信号を、PON PHY/MAC処理部230に入力する。
また、波長可変光送受信器210は、PON PHY/MAC処理部230から入力された電気信号を、上り波長λU1の上り光信号に変換し、変換結果である上り光信号をOLT10に向けて出力する。
PON PHY/MAC処理部230は、波長可変光送受信器210から入力された電気信号からクロックを抽出する。そして、PON PHY/MAC処理部230は、抽出されたクロックによって電気信号をリタイミングし、電気信号をデジタル信号に変換する。
PON PHY/MAC処理部230は、さらに、デジタル信号に復号化処理を行い、必要に応じてFECデコード処理を行い、デジタル信号からフレームを抽出する。そして、PON PHY/MAC処理部230は、フレームのヘッダを解析し、受信したフレームがユーザデータフレームか制御フレームかを判定する。
PON PHY/MAC処理部230は、受信したフレームがユーザデータフレームである場合、受信したフレームをUNI処理部240に出力し、受信したフレームが波長切替制御フレームである場合、受信したフレームを波長切替処理部250に出力する。
また、PON PHY/MAC処理部230は、UNI処理部240から入力されたユーザデータフレームと波長切替処理部から入力された波長切替制御フレームとを多重し、光アクセス区間のヘッダを付加したフレームに変換する。そして、PON PHY/MAC処理部230は、変換結果であるフレームに符号化及びFECエンコード処理を行ない、デジタル信号を電気信号に変換して、フレームを波長可変光送受信器210に出力する。
UNI処理部240は、PON PHY/MAC処理部230から入力されたユーザーデータ用フレームをUNI(User Network Interface)に準拠した信号に変換し、変換結果であるフレームを端末5に送信する。また、UNI処理部240は、端末5から送信されたユーザーデータ用フレームを、PON PHY/MAC処理部230に転送する。
図4は、実施例1の制御部190の処理を示すフローチャートである。
図4に示す処理は、ONU20のトラフィックを測定してから、ONU20の波長切替が終了するまでの処理を示す。制御部190は、1回のみ波長を切替える場合に図4に示す処理を実行してもよいし、周期的に繰り返し波長切替処理を行なう場合に図4に示す処理を実行してもよい。
図4に示す処理が開始した後、制御部190は、OSU110が各々有するONU20毎のトラフィックカウンタ(後述する、下りトラフィック管理テーブル149)を読み出す。これによって、制御部190は、ONU20毎のトラフィック量を取得する(S401)。
また、制御部190は、S401において、あらかじめ蓄積した過去のトラフィック量を用いて移動平均値を算出し、算出結果をトラフィック量として取得してもよい。
S401の後、制御部190は、あらかじめ有する動的波長割当アルゴリズムを用いて、切替え対象となるONU20と各ONU20に設定すべき切替先波長を決める演算処理を実行する(S402)。ここで、アルゴリズムを実行した結果、波長を切り替えるONU20がない場合もある。
本実施例の制御部190は、動的波長割当アルゴリズムとして、例えば、DWA(Dynamic Wavelength Allocation)アルゴリズムを用いる。本実施例において用いられるDWAアルゴリズムは、本実施例の光アクセス網を管理する管理者によって定められたものであり、いかなるDWAアルゴリズムであってもよい。
具体的には、DWAアルゴリズムは、例えば、一つの波長を用いる複数のONU20からのトラフィックが過剰になっている場合、他の波長にトラフィックが分散するように、ONU20に波長を割り当てる方法であってもよい。また、DWAアルゴリズムは、例えば、すべてのONU20からのトラフィックが全体的に少ない場合、一つの波長にトラフィックを集中させることによって、リソースの使用を低減するような方法であってもよい。
S402の後、制御部190は、切替え対象のONU20があるか否かを、DWA(Dynamic Wavelength Allocation)アルゴリズムの演算結果に基づいて判定する(S403)。切替え対象ONU20がある場合、制御部190は、S404を実行し、切替え対象ONU20がない場合、図4に示す処理を終了する。
なお、実施例1の制御部190は、管理者によって入力された波長切替えの指示を、OLT10に接続する入出力装置を介して受け付けてもよい。制御部190が波長切替えの指示を受け付けた場合、S402の処理は不要であり、制御部190は、S403を実行する。
S404において、制御部190は、新たにネットワーク60から受信したフレームのうち、切替え対象ONU20宛てのフレームを蓄積するように、NNI部180に指示する。
S404の後、制御部190は、切替え対象ONU20の波長切替え前の収容先OSU110を特定し、当該OSU110の下りユーザトラフィック処理部140の管理テーブル(後述の下りトラフィック管理テーブル149)を更新する(S405)。
後述するように、下りユーザトラフィック処理部140は、下りトラフィック管理テーブル149に基づいてトラフィック処理を行なう。このため、制御部190が下りトラフィック管理テーブル149を更新することにより、下りユーザトラフィック処理部140は、トラフィック処理の処理を動的に切り替えることが可能である。
また、S405において制御部190は、下りトラフィック管理テーブル149に切替え対象ONU20を示すフラグ(切替え対象フラグ)を格納するため、下りユーザトラフィック処理部140は、更新後の下りトラフィック管理テーブル149を参照することにより、切替え対象ONU20宛てのフレームの送信を制御できる。
S405の後、制御部190は、切替え対象ONU20宛てのフレームがOSU110に残っているか否かを判定する(S406)。制御部190は、S406において、下りユーザトラフィック処理部140が有する下りトラフィック管理テーブル149を参照し、各ONU20宛のキューに残っているデータ量を読み取ることにより、切替え対象ONU20宛てのフレームがOSU110に残っているか否かを判定する。
切替え対象ONU20宛てのフレームが下りキュー群145に残っている場合、制御部190は、S406に戻り、残っていない場合、S407を実行する。これによって、OLT10は切替え対象ONU20宛てのフレームを全て送信し、下りキュー群145に残っていないことを確認してから、S407で実行される波長切替指示フレームを送信する。そのため、切替え対象ONU20は波長切替中に自宛の下りフレームを受信することがなく、ONU20宛てのフレームがフレームロスすることを防ぐことができる。
なお、ONU20は、波長切替え処理を開始するまでに、波長切替え前の波長によってフレームを受信すれば、フレームロスを発生させない。このため、波長切替え対象ONU宛フレームのロスを防ぐ別の方法として、制御部190は、切替え対象ONU20に一つのフレームを送信するために必要な送信時間をあらかじめ保持し、下りキュー群145に蓄積される切替え対象ONU20宛てのフレームをすべて送信し終わる時刻を算出し、その算出時刻に基づいてS407で送出される波長切替指示フレーム内の波長切替開示時刻を算出してもよい。
具体的には、制御部190は、下りキュー群145に蓄積される切替え対象ONU20宛てのフレームの量を取得し、取得したフレームの量と送信時間とを乗じることによって、下りキュー群145に蓄積される切替え対象ONU20宛てのフレームをすべて送信し終わる時刻を算出してもよい。
そして、制御部190は、下りキュー群145に蓄積される切替え対象ONU20宛てのフレームが送信し終わる時刻を、波長切替え処理を開始する時刻として格納する波長切替指示フレームを、OSU110に送信させてもよい。これによって、ONU20は、フレームロスなくフレームを受信することができ、かつ、速やかに波長切替え処理を開始することができる。なお、この場合、OLT10とONU20とは、あらかじめ時刻同期されている。
また、制御部190は、OLT10に接続される入出力装置を介して、下りキュー群145に蓄積される切替え対象ONU20宛てのフレームをすべて送信し終わるのに十分な時間を、管理者から受け付けてもよい。そして、制御部190は、受け付けた時間に基づいて、切替え対象ONU20宛てのフレームが送信し終わる時刻を算出し、算出した時刻を、波長切替え処理を開始する時刻として波長切替指示フレームに格納してもよい。
これによって、OLT10は、フレームロスを低減することができ、かつ、波長切替え処理を速やかに開始することができる。
S407において、制御部190は、切替え対象ONU20の波長切替前の収容先OSU110の波長切替処理部160に、切替え対象ONU20に波長切替指示フレームを送信するように指示する。
S407の後、制御部190は、切替え対象ONU20の波長切替後の収容先OSU110をモニタすることにより、切替え対象ONU20から波長切替完了通知を含むフレームを受信したか否かを定期的に確認する(S408)。波長切替完了通知の受信を確認した後、制御部190は、S409を実行する。
S408の後、制御部190は、NNI部180に、切替え対象ONU20宛てのフレームの蓄積を解除するように指示する。指示の後、制御部190は、図4に示す処理を終了する。
以上の制御部190による処理により、ONU20の波長切替を決定してから、ONU20に波長切替指示を出すまでに、OSU110下りトラフィック処理を切り替えて処理させることが可能である。
図5は、実施例1の波長切替処理を示すシーケンス図である。
以下において、1台のONU20aの波長をλ1からλ2に変更する場合の例を示すが、同時に複数のONU20aの波長を切り替えてもよい。具体的には、図5に示す処理が複数のONU20に平行して実行されてもよい。
まず初めに、制御部190は、各OSU110が収容するトラフィック量を各OSU110から取得する(SIG500)。SIG500は、図4に示すS401に相当する。SIG500において、ONU20aが通信する波長はλ1である。また、トラフィック量を取得するための時間は、T1である。
次に、制御部190は、取得したトラフィック量に基づいてDWAアルゴリズムの演算処理を実行し、切替え対象ONU20と切替え先の波長とを決定する(図4に示すS402に相当)。ここで、決定される切替え対象ONU20は、ONU20aであり、切替え先の波長はλ2である。
また、DWAアルゴリズムにより切替え対象ONU20を決定するための時間は、T2である。
切替え対象ONU20の決定後、制御部190は、NNI部180に、切替え対象ONU20宛てのフレームの蓄積を指示する(SIG501)。SIG501は、図4に示すS404に相当する。SIG501以降、NNI部180は、切替え対象ONU20宛ての下りフレームを受信した場合(SIG503)、当該フレームをバッファリングし、制御部190から蓄積解除を指示されるまで、フレームをバッファリングし続ける。
制御部190は、切替え対象ONU20であるONU20aを収容するOSU110−1に、下りユーザトラフィック処理部140が保持する下りトラフィック管理テーブル149を更新し、ONU20aの切替え対象フラグを格納する(SIG502)。SIG502は、図4に示すS405に相当する。
SIG501の後、下りユーザトラフィック処理部140は、下りユーザトラフィック処理部140のキューに蓄積されていたONU20a宛てのフレームをONU20a向けに出力することによって、OSU110−1から追い出す。そして、キューに蓄積されていたONU20a宛てのフレームをすべて追い出すまでの時間が、T3aである。
制御部190は、ONU20a宛のフレームを格納するキューが空になったと判定した場合、ONU20a宛てに波長切替指示を送信するよう、OSU110−1に指示する(SIG504)。
OSU110−1は、波長切替指示を送信するように指示された場合、波長切替指示フレームであるλ−SETを、ONU20aに送信する(SIG505)。SIG505は、図4に示すS407に相当する。
ONU20aが波長切替指示フレームλ−SETを受信した場合、ONU20aの波長可変光送受信器210は、波長切替指示フレームλ−SETによって指示された波長λ2に、送受信する信号の波長切替え処理を開始する。なお、波長切替指示フレームに、波長切替え処理を開始する時刻が含まれる場合、ONU20aは、波長切替指示フレームが示す時刻に波長切替え処理を開始する。
ONU20aは、波長切替終了後に、波長λ2によって通信するOSU110−2から、上り送信許可フレームであるGATEフレームを受信する(SIG506)。
ONU20aは、GATEフレームを受信した場合、波長の切替えが終了したことをOSU110−2に通知するため、波長切替終了通知であるλ−SETACKをOSU110−2に送信する(SIG−507)。
OSU110−2は、ONU20aからλ−SETACKを受信した場合、波長切替終了通知受信を制御部190に通知する(SIG508)。SIG508は、図4に示すS408に相当する。
制御部190は、SIG508の後、ONU20a宛てのフレームの蓄積を解除するように、NNI部180に指示する(SIG509)。これによって、NNI部180に蓄積されていたONU20a宛ての下りフレームは、OSU110から出力される(SIG510)。
下りユーザトラフィック処理部140のキューからONU20a宛てのフレームがすべて追い出されてから、NNI部180における蓄積が解除されるまでの時間は、T3bである。T3bは、波長を切り替えるためのプロトコル処理に要する時間である。
以上のシーケンスにより、OLT10は、波長切替時に切替え対象ONU20宛てのフレームであり、かつ、OSU110に入力される前のフレームを一時的に蓄積し、ONU20の波長切替終了後にNNI部180に蓄積されていたフレームを送信し始める。これにより、フレームロスなく、ONU20において波長が切り替わる。
また、制御部190は、切替え対象ONU20決定後に、下りトラフィック管理テーブル149を更新しており、この更新されたテーブルに基づき下りユーザトラフィック処理部140がトラフィック処理することにより、切替え対象ONU20宛てのフレームを速やかに追い出し、フレームがOLT10に滞留する時間を短縮することができる。この結果、速やかにONU20における波長切替えを開始することができる。
図6は、実施例1の下りユーザトラフィック処理部140の構成を示すブロック図である。
下りユーザトラフィック処理部140は、下りトラフィック管理部141、下り振分部143、下りキュー群145、及び、下りスケジューラ147から構成される。
下りトラフィック管理部141は、各ONU20のキューの状態を管理する。下りトラフィック管理部141は、下りトラフィック管理テーブル149を保持するメモリを有する。下りトラフィック管理部141は、下りキュー群145に含まれる複数の下りキューの状態を定期的に(又は、管理者による指示により)モニタし、モニタ結果を下りトラフィック管理テーブル149に格納する。
また、下り振分部143及び下りスケジューラ147は、下りトラフィック管理テーブル149に基づいてトラフィック処理を実行する。また、制御部190は、下りトラフィック管理テーブル149を参照したり、更新したりする。
下り振分部143は、レイヤー2スイッチから受信したフレームのヘッダを解析し、ヘッダの宛先情報に基づいて宛先に対応する下りキューにフレームを振り分け、下りキュー群145に入力する。ここで宛先情報とは、例えば、VLAN−ID、又は、宛先MACアドレスである。
下りキュー群145は、ユニキャストフレーム用の複数のキューと、マルチキャスト/ブロードキャスト用(MC/BC)のキューとを有し、ユニキャスト用の複数のキューは、ONU20に各々対応する。また、図6に示すマルチキャスト/ブロードキャスト用のキューは一つであるが、下りキュー群145は、マルチキャスト用のキューとブロードキャスト用のキューとの二つのキューを有してもよい。
下りスケジューラ147は、下りキュー群145の各キューから読み出すデータ量及び順序を決定する。そして、下りスケジューラ147は、決定した順序に従って、キューに蓄積されていたフレームをPON PHY/MAC処理部130に出力する。
図7は、実施例1の下りトラフィック管理テーブル149の例を示す説明図である。
下りトラフィック管理テーブル149は、ONU ID1491、波長切替対象1492、蓄積データ量1493を含む。ONU ID1491は、ONU20の識別子を示す。
波長切替対象1492は、ONU ID1491が示すONU20が切替え対象ONU20であるか否かを示す。本実施例において波長切替対象1492が示す「Yes」は、切替え対象ONU20を示す切替え対象フラグである。
蓄積データ量1493は、ONU ID1491が示すONU20に対応するユニキャスト用のキューにおいて、蓄積されているデータ量を示す。
図8は、実施例1の下り振分部143の処理を示すフローチャートである。
図8に示す処理は、フレームを受信するごとに1回実行される。
下り振分部143は、フレームを受信した場合、受信したフレームのヘッダを解析する(S801)。具体的には、下り振分部143は、宛先MACアドレス又はVLANタグの情報(宛先情報)を、受信したフレームから取得する。
S801の後、下り振分部143は、S801において取得した宛先情報に基づいて、受信したフレームの宛先がユニキャストか否かを判定する(S802)。受信したフレームの宛先がユニキャストである場合、下り振分部143は、S803を実行する。また、下り振分部143は、受信したフレームの宛先がマルチキャスト又はユニキャストである場合、S806を実行する。
S803において、下り振分部143は、S801において取得した宛先情報に基づいて、取得した宛先情報とONU20の識別子とが対応するエントリを、下り振分部143が保持するテーブルから抽出できるか否かを判定する。エントリを抽出できる場合、下り振分部143は、S804を実行し、エントリを抽出できない場合、下り振分部132は、S805を実行する。
S804において、下り振分部143は、S803おいて抽出したエントリが示すONU20の識別子に基づいて、振分先のキューを決定する。そして、下り振分部143は、決定したキューに受信したフレームを振り分ける。そして、下り振分部143は、図8に示す処理を終了する。
S805において、下り振分部143は、受信したフレームを破棄し、図8に示す処理を終了する。
S806において、下り振分部143は、受信したフレームをMC/BC用のキューに振り分ける。そして、下り振分部143は、図8に示す処理を終了する。
以上の図8に示す処理により、下り振分部143は、受信したフレームの宛先に対応するONU20のキューに、受信したフレームを振り分けることができる。
図9は、実施例1の下りスケジューラ147の処理を示すフローチャートである。
図9に示す処理において、MC/BC用のキューにフレームが残っている場合、下りスケジューラ147は、MC/BC用のキューを常に優先してこれらに格納されたフレームを読み出す。また、MC/BC用のキューにフレームが残っていない場合、下りスケジューラ147は、ユニキャスト用のキューからフレームを読み出す。
また、以下において、ONU20に対応するキューの各々を識別するための引数として、jを用いる。図9に示す処理は、OLT10の起動時に開始されてもよく、また、管理者の指示によって開始されてもよい。
下りスケジューラ147は、まず、図9に示す処理を初期化する(S901)。具体的には、下りスケジューラ147は、自らが保持する引数jを0に設定することによって初期化する。
S901の後、下りトラフィック管理部141は、下りトラフィック管理テーブル149を更新する。具体的には、下りスケジューラ147は、下りキュー群145の各キューに蓄積しているデータの量を下りキュー群145から取得する。そして、下りスケジューラ147は、下りトラフィック管理部141に、下りトラフィック管理テーブル149の蓄積データ量1493を、取得したデータの量に従って更新させる。また、下りトラフィック管理部141は、制御部190から、切替え対象ONU20を指示された場合(図4に示すS405に相当)、指示に従って、下りトラフィック管理テーブル149の波長切替対象1492を更新する。
S902の後は、下りスケジューラ147は、MC/BC用のキューにデータが蓄積されているか否かを判定する(S903)。下りスケジューラ147は、MC/BC用のキューにデータが蓄積されている場合、S904を実行し、MC/BC用のキューにデータが蓄積されていない場合、S905を実行する。
S904において、下りスケジューラ147は、MC/BC用のキューからフレームを読み出し、PON PHY/MAC処理部130に読み出したフレームを入力する。S904の後、下りスケジューラ147は、S902に戻る。
S905において、下りスケジューラ147は、優先してフレームを追い出すべきキューがあるか否かを判定する。具体的には、下りスケジューラ147は、下りトラフィック管理テーブル149に、波長切替対象1492が「Yes」であり、かつ、蓄積データ量1493が正数であるエントリが一つ以上含まれる場合、優先してフレームを追い出すべきキューがあると判定し、S906を実行する。
優先してフレームを追い出すべきキューがないと判定した場合、下りスケジューラ147は、S907を実行する。
S906において、下りスケジューラ147は、ONU#jが切替え対象ONU20であるか否かを、下りトラフィック管理テーブル149の波長切替対象1492に基づいて判定する。下りスケジューラ147は、ONU#jが切替え対象ONU20である場合、S907を実行し、ONU#jが切替え対象ONU20でない場合、S909を実行する。
S907において、下りスケジューラ147は、ONU#jに対応するユニキャスト用のキューにデータが蓄積されるか否かを判定する。下りスケジューラ147は、データがある場合、S908を実行し、データがない場合、S909を実行する。
S908において、下りスケジューラ147は、ONU#jに対応するユニキャスト用のキューからフレームを読み出す。そして、下りスケジューラ147は、読み出したフレームを、PON PHY/MAC処理部130に入力する。
S908の後、S909において、下りスケジューラ147は、jに1を加算し、加算した値をNで割った余りを算出する。そして、下りスケジューラ147は、算出した値を新たなjとする。S909の後、下りスケジューラ147は、S902に戻る。なお、Nとは、ONU20の総数である。
図9に示す処理により、切替え対象ONU20宛てのフレームが下りキュー群145に残っており、切替え対象ONU20に波長切替を指示する場合、下りスケジューラ147は、切替え対象ONU20宛てのフレームを優先して読み出し、切替え対象ONU20へ送信することができる。また、切替え対象ONU20宛のフレームがなくなった後、切替え対象ONU20以外のONU20宛てのフレームを送信することができる。
これによって、下りスケジューラ147は、切替え対象ONU20宛てのフレームを、最優先に送信することができる。そして、ONU20における波長切替え処理を速やかに開始することができる。
なお、切替え対象ONU20宛てのフレームを優先して送信する図9に示す処理は、一例であり、それ以外の方法であってもよい。例えば、下りスケジューラ147は、ラウンドロビン処理によって、切替え対象ONU20以外のONU20へのフレームの送信機会を確保してもよい。下りスケジューラ147が重み付けラウンドロビンによって下りキュー群145を読み出す場合の処理を示す。
切替え対象ONU20のキューにデータが残っているとS907において判定された場合、下りスケジューラ147は、S908において、切替え対象ONU20のキューの重みを切替え対象ONU20以外のキューより大きく設定することによって、切替え対象ONU20のキューから読み出すフレームの割合を、切替え対象ONU20以外のONU20のキューから読み出すフレームの割合より多くしてもよい。切替え対象ONU20の重みと切替え対象ONU20以外の重みは、予め設定したり管理者が設定してもよい。また、キューに残っているデータ量に基づいて重みを決めてもよい。
そして、下りスケジューラ147は、切替え対象ONU20宛てのフレームを送信する回数又は量の割合を、切替え対象ONU20ではないONU20よりも多くしてもよい。なお、この場合、下りスケジューラ147は、切替え対象ONU20のキューにフレームが蓄積されていても、切替え対象ONU20以外のONU20へフレームを送信する。
これによって、下りスケジューラ147は、切替え対象ONU20以外のONU20へフレームを送信する機会を確保しつつ、切替え対象ONU20宛てのフレームを迅速に送信することができる。
また、図9に示す処理において、下りスケジューラ147は、MC/BC用のキューから、ユニキャスト用のキューよりも優先してフレームを読み出したが、ユニキャスト用のキューを優先してフレームを読み出してもよい。例えば、切替え対象ONU宛ユニキャスト、切替え対象ONU以外宛ユニキャスト、マルチキャスト/ブロードキャストの順序で優先して読み出してもよいし、切替え対象ONU宛ユニキャスト、マルチキャスト/ブロードキャスト、切替え対象ONU以外宛ユニキャストの順序で優先して読み出してもよい。
実施例1による効果について、従来例と比較して述べる。ここでは、ONU#1からONU#N宛のフレームがほぼ同等の量だけ、キューに蓄積されている場合を例として示す。また、切替え対象ONU20は、図15及び図10におけるONU#1である。
図15は、従来例のOSU110から送信される下りフレームを示す説明図である。
図15において、「#1」が記載された四角形が、ONU#1宛ての一つのフレームを示す。図15は、「#1」が示すフレームが、周期的にOSU110から送信されることを示す。
図15における下りスケジューラ147は、波長切替処理に関係なく、ONU20毎のキューから、ラウンドロビンでフレームを読み出す。ONU#1からONU#Nの各キューにそれぞれデータが蓄積される場合、下りスケジューラ147は、ONU#1宛てのフレーム、ONU#2宛てのフレーム、・・・、ONU#N宛てのフレームの順に繰り返して読み出す。
下りスケジューラ147が切替え対象ONU20とそれ以外とを区別することなく読み出すため、ONU#1宛てのフレームを全てOLT10から出力するまで、Ta1の時間が必要である。
図10は、実施例1のOSU110から送信される下りフレームを示す説明図である。
図10は、「#1」が示すフレームが、最初に優先してOSU110から送信されることを示す。ONU#1は、図10における切替え対象ONU20であるため、実施例1の下りスケジューラ147は、ONU#1宛てのフレームがキューからなくなるまでONU#1のフレームのみを読み出す。
ONU#1宛てのデータがキューからなくなった場合、実施例1の下りスケジューラ147は、ONU#2からONU#Nまでのキューに蓄積されたフレームを読み出す。その結果、切替え対象ONU20であるONU#1のフレームを全てOSU110から送信するまで、Ta1’の時間が必要である。
図15及び図10より、Ta1’<Ta1である。このため、実施例1の下りスケジューラ147がONU#1宛てのフレームを優先して読み出した結果、キューに残存したONU#1宛てのフレームをOLT10が追い出すために要する時間は、短縮される。
従って、実施例1によれば、OLT10は、ONU20において波長を切り替える前に切替え対象ONU20宛てのフレームであり、OSU110に蓄積されるフレームを優先して送信するため、波長を切り替える前にOSU110のキューに蓄積されたフレームをすべて送信するのに要する時間を短縮することができる。その結果、切替え対象ONU20宛てのフレームが、波長切替え処理によってフレームロスすることを防ぎ、切替え対象ONU20の通信品質低下を抑えることができる。また、ONU20が波長を切り替える処理に要する時間を短縮することができる。
実施例1は、フレームの優先度を考慮せずにフレームの宛先が切替え対象ONU20であるか否かに基づいて、フレームの送信をスケジューリングした。しかし、低遅延が求められる優先トラフィックと遅延が長くても構わない非優先トラフィックが混在する状態において、実施例1の処理を実行した場合、波長切替以外の処理によって、優先度の高いフレームの遅延が長くなる。
そこで、実施例2のOLT10は、宛先が切替え対象ONU20であるか否かに加え、フレームの優先度に基づいて、フレームの送信をスケジューリングする。以下では、実施例2での実施形態について、実施例1との差分を中心に説明する。
実施例2の光アクセス網、OLT10、OSU110、及び、ONU20の構成は実施例1と同じである。また、図4に示す制御部190の処理、図5に示す波長切替えのシーケンスは実施例1と同じである。
図11は、実施例2の下りユーザトラフィック処理部140の構成を示すブロック図である。
下りユーザトラフィック処理部140は、下りトラフィック管理部141、下り振分部144、下りキュー群146、及び、下りスケジューラ148から構成される。
下りトラフィック管理部141は、実施例1の下りトラフィック管理部141と同じ機能を有する。また、下りトラフィック管理テーブル149も、実施例1と同じである。
下り振分部144は、実施例1の下り振分部143と同様な機能を有するが、以下に下り振分部143との相違点を示す。下り振分部144は、L2SW170から受信したフレームのヘッダを解析し、宛先情報及びフレームの優先度を取得する。そして、下り振分部144は、取得した宛先情報及び優先度に基づいて、受信したフレームをキューに振分け、受信したフレームを下りキュー群145に出力する。
宛先情報は、実施例1と同じく、例えば、VLAN−ID又は宛先MACアドレスである。優先度は、例えば、VLANタグのCos値である。
下り振分部144は、さらに、ONU20毎のユニキャスト用のキュー、MC/BC用キュー、及び、最優先キューに、受信したフレームを振り分ける。
下りキュー群146は、実施例1と同じくユニキャストフレーム用のキュー及びMC/BC用のキューを有し、更に、最優先キューを含む。最優先キューとは、優先度が所定の閾値より高いフレームが蓄積されるキューである。
下りスケジューラ148は、実施例1の下りスケジューラ147と同様な機能を有するが、以下に下りスケジューラ147との相違点を示す。下りスケジューラ148は、下りキュー群146の各キューから、フレームの優先度及び切替え対象ONU20宛てであるか否かに基づいて、フレームを読み出す。そして、下りスケジューラ148は、読み出したフレームを、PON PHY/MAC処理部130に出力する。
図12は、実施例2の下り振分部144の処理を示すフローチャートである。
下り振分部144は、S801と同じく、受信したフレームから宛先情報を取得する(S1201)。また、下り振分部144は、S1201において、受信したフレームのヘッダを解析することによって、フレームの優先度(CoS値等)を取得する。S1201の後、下り振分部144は、S1202を実行する。
S1202、S1203、S1205及びS1208は、図8に示すS802、S803、S805及びS806と同じである。
取得した宛先情報とONU20の識別子とが対応するエントリを、下り振分部143が保持するテーブルから抽出できるとS1203において判定された場合、下り振分部144は、S1201において取得したフレームの優先度を、予め設定された閾値と比較する。そして、下り振分部144は、取得したフレームの優先度が、予め設定された閾値以上であるか否かを判定する(S1204)。
下り振分部144は、フレームの優先度が閾値以上である場合、S1206を実行する。また、下り振分部144は、フレームの優先度が閾値未満である場合、S1207を実行する。
S1206において、下り振分部144は、受信したフレームを下りキュー群146の最優先キューに振分け、その後、図12に示す処理を終了する。
また、S1207において、S1203において抽出したエントリに基づいて、受信したフレームの宛先であるONU20のユニキャスト用のキューを特定し、特定したキューに受信したフレームを振り分ける。そして、下り振分部144は、図12に示す処理を終了する。
図12に示す処理により、下り振分部144は、受信したフレームのうち優先度の高いフレームを最優先キューに振分け、優先度の低いフレームは宛先が対応するユニキャスト用のキューに振り分ける。
図13は、実施例2の下りスケジューラ148の処理を示すフローチャートである。
なお、実施例2の下りスケジューラ148は、MC/BC用のキューにフレームが残っている場合、MC/BC用のキューからフレームを最優先して読み出す。そして、MC/BC用のキューにフレームが残っていない場合、下りスケジューラ148は、最優先キューからフレームを読み出す。更に、最優先キューにもフレームが残っていない場合、下りスケジューラ148は、ユニキャスト用のキューからフレームを読み出す。
また、以下において、ONU20に対応するキューの各々を識別するための引数として、jを用いる。図13に示す処理は、図9と同じく、OLT10の起動時に開始されてもよく、また、管理者の指示によって開始されてもよい。
S1301〜S1304は、図9に示すS901〜S904と同じである。また、S1307〜S1311は、図9に示すS905〜S909と同じである。
S1303において、MC/BC用のキューにデータが蓄積されていないと判定された場合、下りスケジューラ148は、最優先キューにデータが蓄積されているか否か、すなわち、優先して追い出すべきフレームが最優先キューに残っているか否かを判定する(S1305)。
下りスケジューラ148は、最優先キューにデータが蓄積されている場合、S1306を実行し、最優先キューにデータが蓄積されていない場合、S1307を実行する。
S1306において、下りスケジューラ148は、最優先キューからフレームを読み出し、PON PHY/MAC処理部130に読み出したフレームを入力する。その後、下りスケジューラ148は、S1302に戻る。
図13に示す処理により、OLT10は、優先度の高いフレームを第1に優先して送信し、切替え対象ONU20宛てのフレームを、第2に優先して送信することができる。
なお、図13に示した、優先度の高いフレーム、及び、切替え対象ONU20宛てのフレームを優先して送信する方法は一例であり、それ以外の方法を用いてもよい。例えば、下りスケジューラ148が重み付けラウンドロビンによってキューからフレームを読み出し、かつ、最優先キューのデータが残っている場合、最優先キューの重みを最優先キュー以外のキューの重みより大きく設定することによって、最優先キューのフレームを優先して読み出してもよい。最優先キューの重み、切替え対象ONU20の重み、切替え対象ONU20以外の重みは、予め設定したり管理者が設定してもよい。また、キューに残っているデータ量に基づいて重みを決めてもよい。
また、下りスケジューラ148は、MC/BC用のキューよりも、最優先キュー及びユニキャスト用のキューを優先し、キューからフレームを読み出してもよい。例えば、最優先ユニキャスト、MC/BC、切替え対象ONU宛ユニキャスト、切替え対象ONU以外宛ユニキャストの順で優先して読み出ししてもよい。また、最優先ユニキャスト、切替え対象ONU宛ユニキャスト、MC/BC、切替え対象ONU以外宛ユニキャストの順で優先して読み出ししてもよい。
具体的には、下りスケジューラ148は、S1307において優先してフレームを追い出すべきキューがないと判定した場合、S1305及びS1306の処理を実行する。この場合、下りスケジューラ148は、MC/BC用のキューにデータが蓄積されていないとS1303において判定した後に、S1307を実行する。
実施例2による効果を、実施例1及び従来例と比較して以下に記載する。
ここでは、ユニキャスト用のキューの各々は、ONU#1からONU#Nまでのフレームをほぼ同等の量を蓄積している。また、最優先キューは、高優先のフレームとして、ONU#1宛てのフレーム及びONU#N宛てのフレームを含む。また、ONU#1のキューは、低優先のフレームを含む。また、切替え対象ONU20は、ONU#1である。
図10に示す実施例1において、下りスケジューラ147は、ONU#1が切替え対象ONU20であるため、ONU#1宛のフレームがすべて読み出した後、切替え対象ONU20以外のONU20のフレームを読み出す。このため、ONU#N宛の高優先のフレームは、ONU#1宛のフレームが全て読み出された後に読み出される。そして、実施例1において、ONU#1及びONU#Nの高優先のフレームを読み出すために必要な時間は、Tb1’である。
また、図15に示す従来例において、下りスケジューラ147は、ONU20宛てのフレームを順番に読み出す。このため、従来例において、ONU#1及びONU#Nの高優先のフレームを読み出すために必要な時間は、Tb1である。
図14は、実施例2のOSU110から送信される下りフレームを示す説明図である。
実施例2において、下りスケジューラ148は、高優先のフレームが優先して読み出す。このため、ONU#1及びONU#Nの高優先のフレームを最初に読み出し、その後、切替え対象ONU20であるONU#1宛てのフレームを読み出す。
このため、実施例2において、下りスケジューラ148がONU#1及びONU#Nを読み出すために必要な時間はTb1”である。また、実施例2において、下りスケジューラ148が切替え対象ONU20宛てのフレームをすべて読み出すまでの時間は、Ta1”である。
ここで、Tb1’>Tb1>Tb1”である。また、Ta1”>Ta1’>Ta1である。
すなわち、高優先のフレームを全て読み出すまでの実施例2における時間は、実施例1及び従来例のその時間よりも、短い。また、切替え対象ONU20宛ての低優先のフレームを読み出すまでの実施例2における時間は、実施例1に比べると長いが、一方で、従来例に比べ短い。
従って、実施例2によれば、従来例に比べ、高優先のフレームを追い出す時間を短縮しつつ、かつ、切替え対象ONU20宛てのフレームを追い出す時間も短縮することできる。
なお、前述において、OLT10及びONU20間において多重される波長が、四つの種類であるとして説明したが、本実施例において多重される波長は、二つ以上の波長であればいくつの波長でもよい。
また、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。