以下、図面を参照してこの発明に係わるいくつかの実施形態を説明する。
[第1の実施形態]
(構成例)
図1は、送受信システムSの概略図である。
送受信システムSは、拠点Aにおけるユーザ端末A1及び無瞬断装置A2、拠点Bにおけるユーザ端末B1及び無瞬断装置B2、並びに、拠点Cにおけるユーザ端末C1を備える。なお、拠点の数は、これに限定されない。
拠点Aは冗長拠点である。ユーザ端末A1は、PC(Personal Computer)などの端末である。無瞬断装置A2は、同期フレームF1及びユーザフレームF2を複製し、各フレームを第1の中継経路及び第2の中継経路のそれぞれを介して送信する装置である。無瞬断装置A2は、送信装置の一例である。第1の中継経路及び第2の中継経路は、複数の中継経路の一例である。
同期フレームF1は、OAM(Operation Administration Maintenance)等のショートフレームである。同期フレームF1は、汎用フレームである。同期フレームF1は、ユーザ端末A1によって生成される。ユーザフレームF2は、ユーザ端末A1からの汎用フレームである。
無瞬断装置A2は、第1の中継経路及び第2の中継経路のそれぞれを介して同期フレームF1及びユーザフレームF2を受信する装置である。無瞬断装置A2は、同期フレームF1を廃棄し、ユーザフレームF2をユーザ端末A1へ送信する。ユーザ端末A1は、ユーザフレームF2を処理する。無瞬断装置A2は、受信装置の一例でもある。
拠点Bは冗長拠点である。ユーザ端末B1は、ユーザ端末A1と同様の装置である。無瞬断装置B2は、無瞬断装置A2と同様の装置である。無瞬断装置B2は、送信装置でもあるし、受信装置でもある。
拠点Cは、シングル拠点である。ユーザ端末C1は、第1の中継経路から同期フレームF1及びユーザフレームF2を受信する装置である。ユーザ端末C1は、同期フレームF1を廃棄し、ユーザフレームF2を処理する。
なお、無瞬断装置A2を第1の無瞬断装置という場合、無瞬断装置B2は第2の無瞬断装置ともいう。これに代えて、無瞬断装置B2を第1の無瞬断装置という場合、無瞬断装置A2は第2の無瞬断装置ともいう。
以下では、無瞬断装置A2を例にして説明するが、無瞬断装置B2も同様である。
図2は、無瞬断装置A2のハードウェア構成を示すブロック図である。
無瞬断装置A2は、各フレームを処理するコンピュータにより構成される。無瞬断装置A2は、制御部20、記憶部21、第1の通信I/F(インタフェース)22及び第2の通信I/F23を備える。制御部20、記憶部21、第1の通信I/F22及び第2の通信I/F23は、バス24を介して互いに通信可能に接続されている。
制御部20は、無瞬断装置A2を制御する。制御部20は、中央処理ユニット(Central Processing Unit:CPU)などのハードウェアプロセッサを備える。
記憶部21は、記憶媒体である。例えば、記憶部21は、記憶媒体として、HDD(Hard Disk Drive)またはSSD(Solid State Drive)などの随時書込み及び読出し可能な不揮発性メモリと、ROM(Read Only Memory)などの不揮発性メモリと、RAM(Random Access Memory)などの揮発性メモリとを組み合わせて構成される。記憶部21は、記憶領域に、プログラム記憶領域と、データ記憶領域とを備える。プログラム記憶領域は、OS(Operating System)などのミドルウェアに加えて、各種処理を実行するために必要なアプリケーション・プログラムを格納する。
第1の通信I/F22は、ユーザ端末A1との間の通信を可能にするインタフェースである。例えば、第1の通信I/F22は、所定の規格により、ユーザ端末A1との間の有線通信を可能にする。第1の通信I/F22は、ユーザフレームF2をユーザ端末A1から受信する。または、第1の通信I/F22は、ユーザ端末B2から受信したユーザフレームF2をユーザ端末A1へ送信する。
第2の通信I/F23は、インターネットなどのネットワークにおける複数の中継経路を介して他の装置との間の通信を可能にするインタフェースである。例えば、第2の通信I/F23は、所定の規格により、他の装置との間の無線通信を可能にする。第2の通信I/F23は、複数の中継経路のそれぞれを介して同期フレームF1及びユーザフレームF2を受信する。または、第2の通信I/F23は、複数の中継経路のそれぞれで同期フレームF1及びユーザフレームF2を送信する。
図3は、無瞬断装置A2のソフトウェア構成を示すブロック図である。
制御部20は、記憶部21に格納されているアプリケーション・プログラムを起動することにより、受信FIFO(First In First Out)キュー2001、フレーム読取部2002、ユーザフレーム数カウンタ部2003、同期フレーム生成部2004、同期フレーム識別子付与部2005、同期フレーム挿入部2006、フレーム複製部2007、送信FIFOキュー2008、送信FIFOキュー2009、受信FIFOキュー2010、受信FIFOキュー2011、フレーム読取部2012、フレーム読取部2013、フレーム同期部2014、フレーム同期部2015、ユーザフレーム削除部2016、ユーザフレーム削除部2017、フレーム選択部2018、同期フレーム削除部2019及び送信FIFOキュー2020を実行する。受信FIFOキュー2001、フレーム読取部2002、ユーザフレーム数カウンタ部2003、同期フレーム生成部2004、同期フレーム識別子付与部2005、同期フレーム挿入部2006、フレーム複製部2007、送信FIFOキュー2008及び送信FIFOキュー2009は、送信処理に関連する。受信FIFOキュー2010、受信FIFOキュー2011、フレーム読取部2012、フレーム読取部2013、フレーム同期部2014、フレーム同期部2015、ユーザフレーム削除部2016、ユーザフレーム削除部2017、フレーム選択部2018、同期フレーム削除部2019及び送信FIFOキュー2020は、受信処理に関連する。
受信FIFOキュー2001は、ユーザ端末A1から第1の通信I/F22のポート221で受信されたユーザフレームF2を順に入力し、入力順に出力する。
フレーム読取部2002は、受信FIFOキュー2001へ順に入力されたユーザフレームF2を入力順に受信FIFOキュー2001から読み取る。
ユーザフレーム数カウンタ部2003は、フレーム読取部2002によって読み取られたユーザフレームF2の数をカウントする。
同期フレーム生成部2004は、同期フレームF1を生成する。
同期フレーム識別子付与部2005は、同期フレーム生成部2004によって生成された同期フレームF1の一フレーム毎に同期フレーム識別子を付与する。同期フレーム識別子付与部2005は、同期フレーム識別子を同期フレームF1に埋め込む。同期フレーム識別子は、同期フレームF1の送信順序性が認識できる識別子である。同期フレーム識別子は、同期フレームF1毎に異なり、同期フレームF1の送信順に大きくなる値であり、0または正の整数である。
同期フレーム挿入部2006は、同期フレーム識別子付与部2005によって同期フレーム識別子が埋め込まれた同期フレームF1を、連続する2つのユーザフレームF2の間に挿入する。
フレーム複製部2007は、フレーム読取部2002によって読み取られたユーザフレームF2及び同期フレーム挿入部2006によって挿入された同期フレームF1を複製する。フレーム複製部2007は、複製した同期フレームF1及びユーザフレームF2を第2の通信I/F23の第1のポート231及び第2のポート232に対応する送信FIFOキュー2008及び送信FIFOキュー2009へ出力する。第1のポート231及び第2のポート232は、複数の出力ポートの一例である。送信FIFOキュー2008及び送信FIFOキュー2009は、複数の送信FIFOキューの一例である。
送信FIFOキュー2008は、フレーム複製部2007から同期フレームF1及びユーザフレームF2の何れかのフレームを順に入力し、入力順にフレームを第1のポート231へ出力する。これにより、複数の同期フレームF1及び複数のユーザフレームF2で構成されるフレーム列は、第1の中継経路を介して、無瞬断装置A2から無瞬断装置B2及びユーザ端末C1へ送信される。
送信FIFOキュー2009は、フレーム複製部2007から同期フレームF1及びユーザフレームF2の何れかのフレームを順に入力し、入力順にフレームを第2のポート232へ出力する。これにより、複数の同期フレームF1及び複数のユーザフレームF2で構成されるフレーム列は、第2の中継経路を介して、無瞬断装置A2から無瞬断装置B2へ送信される。
受信FIFOキュー2010は、無瞬断装置B2から第1の中継経路を介して、第2の通信I/F23の第1のポート231で受信された同期フレームF1及びユーザフレームF2の何れかのフレームを順に入力し、入力順に出力する。第1のポート231は、入力ポートの一例である。
受信FIFOキュー2011は、無瞬断装置B2から第2の中継経路を介して、第2の通信I/F23の第2のポート232で受信された同期フレームF1及びユーザフレームF2の何れかのフレームを順に入力し、入力順に出力する。第2のポート232は、入力ポートの一例である。
フレーム読取部2012は、受信FIFOキュー2010へ順に入力された同期フレームF1及びユーザフレームF2の何れかのフレームを入力順に受信FIFOキュー2010から読み取る。
フレーム読取部2013は、受信FIFOキュー2011へ順に入力された同期フレームF1及びユーザフレームF2の何れかのフレームを入力順に受信FIFOキュー2011から読み取る。
なお、フレーム読取部2012及びフレーム読取部2013を合わせてフレーム読取部ということもある。
フレーム同期部2014は、フレーム読取部2012によって読み取られた第1の中継経路を介した各フレームの順序性を判別し、順序情報を生成する。順序情報は、同期フレームF1及びユーザフレームF2の順序性の正しさに関する情報である。
フレーム同期部2015は、フレーム読取部2013によって読み取られた第2の中継経路を介した各フレームの順序性を判別し、順序情報を生成する。
なお、フレーム同期部2014及びフレーム同期部2015を合わせてフレーム同期部ということもある。
ユーザフレーム削除部2016は、フレーム同期部2014からの順序情報に基づいて、フレーム読取部2012によって読み取られた第1の中継経路を介したユーザフレームF2を必要に応じて削除する。
ユーザフレーム削除部2017は、フレーム同期部2015からの順序情報に基づいて、フレーム読取部2013によって読み取られた第2の中継経路を介したユーザフレームF2を必要に応じて削除する。
なお、ユーザフレーム削除部2016及びユーザフレーム削除部2017を合わせてフレーム削除部ということもある。
フレーム選択部2018は、フレーム同期部2014からの順序情報及びフレーム同期部2015からの順序情報に基づいて、第1の中継経路または第2の中継経路を介した同期フレームF1及びユーザフレームF2を選択する。
同期フレーム削除部2019は、フレーム選択部2018によって選択された同期フレームF1及びユーザフレームF2のうち同期フレームF1を削除する。同期フレーム削除部2019は、フレーム選択部2018によって選択された同期フレームF1及びユーザフレームF2のうちユーザフレームF2を送信FIFOキュー2020へ出力する。
送信FIFOキュー2020は、同期フレーム削除部2019からユーザフレームF2を順に入力し、入力順にユーザフレームF2をポート221へ出力する。ポート221は、出力ポートの一例である。これにより、複数のユーザフレームF2で構成されるフレーム列は、ユーザ端末A1へ送信される。
図4は、同期フレームF1の構成を示す図である。
例えば、同期フレームF1は、プリアンブル、宛先アドレス、送信元アドレス、イーサタイプ、データ及びFCS(Frame Check Sequence)の各フィールドで構成されるフレームである。同期フレーム識別子は、データフィールドに埋め込まれる。「N」は、同期フレームF1毎に異なる同期フレーム識別子の値である。
(動作例)
以上のように構成された無瞬断装置A2により実行される動作を説明する。
図5は、無瞬断装置A2の送信処理の処理手順と処理内容を示すフローチャートである。ここでは、無瞬断装置A2が同じフレーム列を第1の中継経路及び第2の中継経路の両方を介して無瞬断装置B2へ送信する送信処理を例にして説明する。
フレーム読取部2002は、受信FIFOキュー2001へ順に入力されたユーザフレームF2を入力順に受信FIFOキュー2001から読み取る(ステップS1)。ステップS1では、例えば、フレーム読取部2002は、ユーザ端末A1からのユーザフレームF2を順に読み取る。
ユーザフレーム数カウンタ部2003は、フレーム読取部2002によって読み取られたユーザフレームF2の数をカウントする(ステップS2)。ステップS2では、例えば、ユーザフレーム数カウンタ部2003は、フレーム読取部2002によってユーザフレームF2を読み取る毎にユーザフレームF2の数をカウントする。
同期フレーム生成部2004は、ユーザフレームF2の一フレーム毎に関連付ける同期フレームF1を生成する(ステップS3)。ステップS3では、例えば、同期フレーム生成部2004は、ユーザフレーム数カウンタ部2003によってカウントされた1つのユーザフレームF2に対して1つの同期フレームF1を生成する。
同期フレーム識別子付与部2005は、同期フレーム生成部2004によって生成された同期フレームF1の一フレーム毎に同期フレーム識別子を付与し、同期フレーム識別子を同期フレームF1に埋め込む(ステップS4)。ステップS4では、例えば、同期フレーム識別子付与部2005は、同期フレーム生成部2004によって同期フレームF1が生成される毎に各同期フレームF1に同期フレーム識別子の値Nを0から順に付与する。同期フレーム識別子付与部2005は、各同期フレームF1に1つの同期フレーム識別子を埋め込む。
同期フレーム挿入部2006は、同期フレーム識別子付与部2005によって同期フレーム識別子が埋め込まれた同期フレームF1を、連続する2つのユーザフレームF2の間に挿入する(ステップS5)。ステップS5では、例えば、同期フレーム挿入部2006は、同期フレームF1を、この同期フレームF1に関連付けられたユーザフレームF2の1つ前の他の同期フレームF1に関連付けられた他のユーザフレームF2の直後、かつ、この同期フレームF1に関連付けられたユーザフレームF2の直前の間に挿入する。同期フレーム識別子の値2の場合を例にして説明する。同期フレーム挿入部2006は、値2の同期フレーム識別子が埋め込まれた同期フレームF1を、値1の同期フレーム識別子が埋め込まれた同期フレームF1に関連付けられた他のユーザフレームF2の直後、かつ、値2の同期フレーム識別子が埋め込まれた同期フレームF1に関連付けられたユーザフレームF2の直前の間に挿入する。つまり、同期フレーム挿入部2006は、同期フレームF1とユーザフレームF2とが1つずつ交互になるように、同期フレームF1を連続する2つのユーザフレームF2の間に挿入する。1つの同期フレームF1とこの同期フレームF1の直後の1つのユーザフレームF2により同期グループが構成される。
フレーム複製部2007は、同期フレームF1及びユーザフレームF2を複製する(ステップS6)。ステップS6では、例えば、フレーム複製部2007は、フレーム読取部2002によって読み取られたユーザフレームF2及び同期フレーム挿入部2006によって挿入された同期フレームF1を複製する。フレーム複製部2007は、複数の同期フレームF1及び複数のユーザフレームF2で構成されるフレーム列を複製する。フレーム複製部2007は、複製した同期フレームF1及びユーザフレームF2を複数の出力ポートに対応する複数の送信FIFOキューへ出力する。フレーム複製部2007は、複製した同期フレームF1及びユーザフレームF2を第2の通信I/F23の第1のポート231及び第2のポート232に対応する送信FIFOキュー2008及び送信FIFOキュー2009へ出力する。フレーム複製部2007は、複製した複数の同期フレームF1及び複数のユーザフレームF2で構成される同じフレーム列を送信FIFOキュー2008及び送信FIFOキュー2009へ出力する。これにより、同じフレーム列は、第1の中継経路及び第2の中継経路の両方を介して、無瞬断装置A2から無瞬断装置B2へ送信される。
図6は、無瞬断装置A2の受信処理の処理手順と処理内容を示すフローチャートである。ここでは、無瞬断装置A2が同じフレーム列を第1の中継経路及び第2の中継経路の両方を介して無瞬断装置B2から受信する受信処理を例にして説明する。
フレーム読取部2012及びフレーム読取部2013は、複数の中継経路から複数の受信FIFOキューのそれぞれへ順に入力された同期フレーム識別子が埋め込まれた同期フレームF1及びユーザフレームF2を読み取る(ステップS11)。ステップS11では、例えば、フレーム読取部2012は、第1の中継経路から受信FIFOキュー2010へ順に入力された同期フレームF1及びユーザフレームF2の何れかのフレームを入力順に受信FIFOキュー2010から読み取る。フレーム読取部2013は、第2の中継経路から受信FIFOキュー2011へ順に入力された同期フレームF1及びユーザフレームF2の何れかのフレームを入力順に受信FIFOキュー2011から読み取る。
フレーム同期部2014及びフレーム同期部2015は、複数の中継経路を介した各フレームの順序性を判別する(ステップS12)。ステップS12では、例えば、フレーム同期部2014は、フレーム読取部2012によって読み取られた第1の中継経路を介した同期フレームF1の同期フレーム識別子に基づいて、同期フレームF1の順序性を認識する。フレーム同期部2014は、同期フレームF1の順序性が正しい(同期フレーム識別子に沿った正しい順序)か否かを判別する。順序性が正しいことは、フレームロスがないことに対応する。フレーム同期部2014は、同期フレーム識別子に基づいて、同期フレームF1と次の同期フレームF1との間に含まれるユーザフレームF2をカウントする。同期フレームF1と次の同期フレームF1との間に含まれるユーザフレームF2の数が1である場合、フレーム同期部2014は、この同期フレームF1の同期フレーム識別子の値Nで識別される同期グループについて同期と判別する。同期と判別することは、この同期フレームF1の同期フレーム識別子の値Nで識別される同期グループを構成する同期フレームF1及びこの同期フレームF1に関連付けられたユーザフレームF2の順序性が正しいと判別することに対応する。フレーム同期部2014は、この同期フレームF1の同期フレーム識別子の値Nで識別される同期グループについて同期を示す順序情報を生成する。他方、同期フレームF1と次の同期フレームF1との間に含まれるユーザフレームF2の数が0または1よりも大きい場合、フレーム同期部2014は、この同期フレームF1の同期フレーム識別子の値Nで識別される同期グループについて非同期と判別する。非同期と判別することは、この同期フレームF1の同期フレーム識別子の値Nで識別される同期グループを構成する同期フレームF1及びこの同期フレームF1に関連付けられたユーザフレームF2の順序性が正しくない(正しくない順序)と判別することに対応する。順序性が正しくないことは、フレームロスがあることに対応する。同期フレームF1と次の同期フレームF1との間に含まれるユーザフレームF2の数が0の場合は、ユーザフレームF2のフレームロスに対応する。同期フレームF1と次の同期フレームF1との間に含まれるユーザフレームF2の数が1よりも大きい場合は、この同期フレームF1に埋め込まれた同期フレーム識別子の次の値の同期フレーム識別子が埋め込まれた同期フレームF1のフレームロスに対応する。フレーム同期部2014は、この同期フレームF1の同期フレーム識別子の値Nで識別される同期グループについて非同期を示す順序情報を生成する。このように、フレーム同期部2014は、同期フレームF1の同期フレーム識別子の値Nで識別される同期グループ毎に、同期または非同期を示す順序情報を生成する。順序情報は、同期フレームF1の順序性が正しいか否かを示す情報を含み得る。順序情報は、同期フレーム識別子の値Nを含み得る。
フレーム同期部2015は、フレーム読取部2013によって読み取られた第2の中継経路を介した同期フレームF1の同期フレーム識別子に基づいて、同期フレームF1の順序性を認識する。フレーム同期部2015は、同期フレームF1の順序性が正しいか否かを判別する。フレーム同期部2015は、同期フレーム識別子に基づいて、同期フレームF1と次の同期フレームF1との間に含まれるユーザフレームF2をカウントする。同期フレームF1と次の同期フレームF1との間に含まれるユーザフレームF2の数が1である場合、フレーム同期部2015は、この同期フレームF1の同期フレーム識別子の値Nで識別される同期グループについて同期と判別する。フレーム同期部2015は、この同期フレームF1の同期フレーム識別子Nで識別される同期グループについて同期を示す順序情報を生成する。他方、同期フレームF1と次の同期フレームF1との間に含まれるユーザフレームF2の数が0または1よりも大きい場合、フレーム同期部2015は、この同期フレームF1の同期フレーム識別子の値Nで識別される同期グループについて非同期と判別する。フレーム同期部2015は、この同期フレームF1の同期フレーム識別子の値Nで識別される同期グループについて非同期を示す順序情報を生成する。このように、フレーム同期部2015は、同期フレームF1の同期フレーム識別子の値Nで識別される同期グループ毎に、同期または非同期を示す順序情報を生成する。順序情報は、同期フレームF1の順序性が正しいか否かを示す情報を含み得る。順序情報は、同期フレーム識別子の値Nを含み得る。
ユーザフレーム削除部2016及びユーザフレーム削除部2017は、フレーム同期部2014及びフレーム同期部2015からの順序情報に基づいて、複数の中継経路を介したユーザフレームF2を必要に応じて削除する(ステップS13)。ステップS13では、例えば、ユーザフレーム削除部2016は、フレーム同期部2014からの順序情報が非同期を示す同期グループについて、この同期グループに含まれる同期フレームF1から次の同期フレームF1までの間に含まれるユーザフレームF2を削除する。他方、ユーザフレーム削除部2016は、フレーム同期部2014からの順序情報が同期を示す同期グループについて、この同期グループに含まれる同期フレームF1から次の同期フレームF1までの間に含まれるユーザフレームF2を削除しない。ユーザフレーム削除部2017は、フレーム同期部2015からの順序情報が非同期を示す同期グループについて、この同期グループに含まれる同期フレームF1から次の同期フレームF1までの間に含まれるユーザフレームF2を削除する。他方、ユーザフレーム削除部2017は、フレーム同期部2015からの順序情報が同期を示す同期グループについて、この同期グループに含まれる同期フレームF1から次の同期フレームF1までの間に含まれるユーザフレームF2を削除しない。
フレーム選択部2018は、同期フレーム識別子に基づいて判別される正しい順序でかつ第1の中継経路及び第2の中継経路のうち最も早く到着した中継経路における1つの同期フレームF1及びこの同期フレームF1に関連付けられた1つのユーザフレームF2で構成される同期グループを採用する。(ステップS14)。ステップS14では、例えば、フレーム選択部2018は、フレーム同期部2014からの順序情報及びフレーム同期部2015からの順序情報に基づいて、同期フレーム識別子の値N毎に、正しい順序の同期グループであって、第1の中継経路及び第2の中継経路のうち最も早く到着した中継経路における同期グループを採用する。採用することは、選択することを含む。
例えば、ある同期フレーム識別子の値Nに関して、フレーム同期部2014からの順序情報が同期を示し、同期フレームF1の順序性が正しいこと示す情報を含むものとする。フレーム同期部2015からの順序情報が同期を示し、同期フレームF1の順序性が正しいこと示す情報を含むものとする。フレーム選択部2018は、フレーム同期部2014からの順序情報に基づいて、第1の中継経路の同期グループを構成する同期フレームF1及びユーザフレームF2は正しい順序と判別する。フレーム同期部2014からの順序情報は同期フレーム識別子に基づいて生成されているので、フレーム選択部2018は、同期フレーム識別子に基づいて正しい順序と判別するといえる。フレーム選択部2018は、フレーム同期部2015からの順序情報に基づいて、第2の中継経路の同期グループを構成する同期フレームF1及びユーザフレームF2は正しい順序と判別する。フレーム同期部2015からの順序情報は同期フレーム識別子に基づいて生成されているので、フレーム選択部2018は、同期フレーム識別子に基づいて正しい順序と判別するといえる。フレーム選択部2018は、正しい順序でかつ第1の中継経路及び第2の中継経路のうち最も早く到着した中継経路における同期グループを採用する。第1の中継経路おける同期グループは、フレーム読取部2012によって読み取られた1つの同期フレームF1及びユーザフレーム削除部2016によって削除されていない1つのユーザフレームF2により構成されている。第2の中継経路おける同期グループは、フレーム読取部2013によって読み取られた1つの同期フレームF1及びユーザフレーム削除部2017によって削除されていない1つのユーザフレームF2により構成されている。フレーム選択部2018は、第1の中継経路及び第2の中継経路のうち採用しない中継経路における同期グループを構成するフレームを削除する。
例えば、ある同期フレーム識別子の値Nに関して、フレーム同期部2014からの順序情報が同期を示し、同期フレームF1の順序性が正しいこと示す情報を含むものとする。フレーム同期部2015からの順序情報が非同期を示し、同期フレームF1の順序性が正しいこと示す情報を含むものとする。フレーム選択部2018は、フレーム同期部2014からの順序情報に基づいて、第1の中継経路の同期グループを構成する同期フレームF1及びユーザフレームF2は正しい順序と判別する。フレーム選択部2018は、フレーム同期部2015からの順序情報に基づいて、第2の中継経路の同期グループを構成するフレームは正しくない順序と判別する。フレーム同期部2015からの順序情報は同期フレーム識別子に基づいて生成されているので、フレーム選択部2018は、同期フレーム識別子に基づいて正しくない順序と判別するといえる。この例では、第1の中継経路における同期グループは、正しい順序でかつ第1の中継経路及び第2の中継経路のうち最も早く到着した中継経路の同期グループである。フレーム選択部2018は、第1の中継経路における同期グループを採用する。フレーム選択部2018は、第2の中継経路における同期グループを不採用とする。フレーム選択部2018は、採用しない第2の中継経路における同期グループを構成するフレームを削除する。
例えば、ある同期フレーム識別子の値Nに関して、フレーム同期部2014からの順序情報が非同期を示し、同期フレームF1の順序性が正しいこと示す情報を含むものとする。フレーム同期部2015からの順序情報が同期を示し、同期フレームF1の順序性が正しいこと示す情報を含むものとする。フレーム選択部2018は、フレーム同期部2014からの順序情報に基づいて、第1の中継経路の同期グループを構成するフレームは正しくない順序と判別する。フレーム選択部2018は、フレーム同期部2015からの順序情報に基づいて、第2の中継経路の同期グループを構成する同期フレームF1及びユーザフレームF2は正しい順序と判別する。この例では、第2の中継経路における同期グループは、正しい順序でかつ第1の中継経路及び第2の中継経路のうち最も早く到着した中継経路の同期グループである。フレーム選択部2018は、第2の中継経路における同期グループを採用する。フレーム選択部2018は、第1の中継経路における同期グループを不採用とする。フレーム選択部2018は、採用しない第1の中継経路における同期グループを構成するフレームを削除する。
同期フレーム削除部2019は、フレーム選択部2018によって採用された同期グループに含まれる同期フレームF1及びユーザフレームF2のうちの同期フレームF1を削除する(ステップS15)。ステップS15では、同期フレーム削除部2019は、同期フレーム識別子で識別される正しい順序でフレーム選択部2018によって採用された各同期グループについて、同期フレームF1を削除する。他方、同期フレーム削除部2019は、フレーム選択部2018によって採用された同期グループに含まれる同期フレームF1及びユーザフレームF2のうちのユーザフレームF2を送信FIFOキュー2020へ出力する。これにより、同期フレーム削除部2019は、フレーム選択部2018によって選択された各同期グループについて、ユーザフレームF2を送信FIFOキュー2020へ出力する。複数のユーザフレームF2で構成されるフレーム列は、ユーザ端末A1へ送信される。
図7は、無瞬断装置A2の受信処理により採用されるフレーム列を示す図である。
第1の中継経路を介したフレーム列は、第2の中継経路を介したフレーム列よりも早く無瞬断装置A2に到着するものとする。
フレーム選択部2018は、同期フレーム識別子の値0から順に、正しい順序でかつ第1の中継経路及び第2の中継経路のうち最も早く到着した中継経路における同期グループを採用する。
同期フレーム識別子の値0については、第1の中継経路における同期グループ及び第2の中継経路における同期グループはいずれも正しい順序の同期グループである。第1の中継経路における同期グループは、第2の中継経路の同期グループよりも早く到着する。そのため、第1の中継経路における同期グループは、正しい順序でかつ第1の中継経路及び第2の中継経路のうち最も早く到着した中継経路の同期グループである。フレーム選択部2018は、到着した同期フレームF1の連続性から、第1の中継経路の同期グループを採用する。フレーム選択部2018は、第2の中継経路の同期グループを不採用とし、第2の中継経路の同期グループを構成するフレームを削除する。同期フレーム識別子の値1、2、5、8についても同様である。
同期フレーム識別子の値3については、第1の中継経路の同期グループは、第2の中継経路の同期グループよりも早く到着している。第1の中継経路における同期グループは、同期フレームF1のフレームロスが発生している正しくない順序の同期グループである。第2の中継経路における同期グループは、フレームロスが発生していない正しい順序の同期グループである。そのため、第2の中継経路における同期グループは、正しい順序でかつ第1の中継経路及び第2の中継経路のうち最も早く到着した中継経路の同期グループである。フレーム選択部2018は、第2の中継経路の同期グループを採用し、第1の中継経路でロスした同期フレームF1を復旧する。フレーム選択部2018は、第1の中継経路の同期グループを不採用とし、第1の中継経路の同期グループを構成するフレームを削除する。
同期フレーム識別子の値4については、第1の中継経路の同期グループは、第2の中継経路の同期グループよりも早く到着している。第1の中継経路における同期グループは、ユーザフレームF2のフレームロスが発生している正しくない順序の同期グループである。第2の中継経路における同期グループは、フレームロスが発生していない正しい順序の同期グループである。そのため、第2の中継経路における同期グループは、正しい順序でかつ第1の中継経路及び第2の中継経路のうち最も早く到着した中継経路の同期グループである。フレーム選択部2018は、第2の中継経路の同期グループを採用し、第1の中継経路でロスした同期フレームF1を復旧する。フレーム選択部2018は、第1の中継経路の同期グループを不採用とし、第1の中継経路の同期グループを構成するフレームを削除する。
同期フレーム識別子の値6については、第1の中継経路の同期グループは、第2の中継経路の同期グループよりも早く到着している。第1の中継経路における同期グループは、フレームロスが発生していない正しい順序の同期グループである。第2の中継経路における同期グループは、同期フレームF1のフレームロスが発生している正しくない順序の同期グループである。そのため、第1の中継経路における同期グループは、正しい順序でかつ第1の中継経路及び第2の中継経路のうち最も早く到着した中継経路の同期グループである。フレーム選択部2018は、第1の中継経路の同期グループを採用する。フレーム選択部2018は、第2の中継経路の同期グループを不採用とし、第2の中継経路の同期グループを構成するフレームを削除する。
同期フレーム識別子の値7については、第1の中継経路の同期グループは、第2の中継経路の同期グループよりも早く到着している。第1の中継経路における同期グループは、フレームロスが発生していない正しい順序の同期グループである。第2の中継経路における同期グループは、ユーザフレームF2のフレームロスが発生している正しくない順序の同期グループである。そのため、第1の中継経路における同期グループは、正しい順序でかつ第1の中継経路及び第2の中継経路のうち最も早く到着した中継経路の同期グループである。フレーム選択部2018は、第1の中継経路の同期グループを採用する。フレーム選択部2018は、第2の中継経路の同期グループを不採用とし、第2の中継経路の同期グループを構成するフレームを削除する。
このように、フレーム選択部2018は、同期フレーム識別子の値3及び4については第2の中継経路における同期グループを採用する。フレーム選択部2018は、同期フレーム識別子の値3及び4以外については第1の中継経路における同期グループを採用する。フレーム選択部2018は、採用した各同期グループによりフレーム列を構成する。
(作用効果)
以上述べたように第1の実施形態では、無瞬断装置は、同期フレームに同期フレーム識別子を埋め込み、複数の同期フレーム及び複数のユーザフレームで構成されるフレーム列を複数の中継経路を介して送信する。無瞬断装置は、複数の中継経路を介した複数のフレーム列について、同期フレーム識別子に基づいて判別される正しい順序でかつ複数の中継経路のうち最も早く到着した中継経路における同期グループを採用する。
これにより、ユーザフレームにシーケンス番号等の情報を付加することなく、フレームロスを判別可能にする。冗長経路と同期し、冗長性を確保することによってロスレス通信を実現することができる。ユーザフレームにはシーケンス番号等の情報が付加されないことから、専用装置の設置されないシングル拠点においても受信可能となる。専用装置の設置、非設置の拠点の混在も可能となるため、ユーザへの適用ネットワーク範囲の拡大が可能になる。シングル拠点には冗長経路、専用装置は不要となることから、回線コスト、装置コストの低減も可能となる。
[第2の実施形態]
第2の実施形態では、第1の実施形態と同様であってもよい部分には同一符号を付し、その説明を省略する。第2の実施形態では、第1の実施形態とは異なる部分を中心に説明する。
(構成例)
図8は、無瞬断装置A2のソフトウェア構成を示すブロック図である。
制御部20は、第1の実施形態で説明した各部に加えて、同期フレーム挿入設定部2021、ユーザフレーム数比較部2022及びユーザフレーム数比較部2023を実行する。同期フレーム挿入設定部2021は送信処理に関連する。ユーザフレーム数比較部2022及びユーザフレーム数比較部2023は受信処理に関連する。
同期フレーム挿入設定部2021は、1つのユーザ情報の塊として表す同期グループに含まれるユーザフレームF2の数の設定値を設定する。設定値は、正の整数の値である。
ユーザフレーム数比較部2022は、フレーム読取部2012によって読み取られた第1の中継経路を介した同期フレームF1と次の同期フレームF1との間に含まれるユーザフレームF2をカウントする。ユーザフレーム数比較部2022は、同期フレームF1と次の同期フレームF1との間に含まれるユーザフレームF2の数を設定値と比較する。
ユーザフレーム数比較部2023は、フレーム読取部2013によって読み取られた第2の中継経路を介した同期フレームF1と次の同期フレームF1との間に含まれるユーザフレームF2をカウントする。ユーザフレーム数比較部2023は、同期フレームF1と次の同期フレームF1との間に含まれるユーザフレームF2の数を設定値と比較する。
なお、ユーザフレーム数比較部2022及びユーザフレーム数比較部2023を合わせてユーザフレーム数比較部ということもある。
図9は、同期フレームF1の構成を示す図である。
設定値は、同期フレーム識別子と同様に、データフィールドに埋め込まれる。「n」は、設定値である。
(動作例)
以上のように構成された無瞬断装置A2により実行される動作を説明する。
図10は、無瞬断装置A2の送信処理の処理手順と処理内容を示すフローチャートである。ここでは、無瞬断装置A2が同じフレーム列を第1の中継経路及び第2の中継経路の両方を介して無瞬断装置B2へ送信する送信処理を例にして説明する。
フレーム読取部2002は、受信FIFOキュー2001へ順に入力されたユーザフレームF2を入力順に受信FIFOキュー2001から読み取る(ステップS21)。ステップS21では、例えば、フレーム読取部2002は、ユーザ端末A1からのユーザフレームF2を順に読み取る。
同期フレーム挿入設定部2021は、設定値を設定する(ステップS22)。ステップS22では、例えば、同期フレーム挿入設定部2021は、手動での有限の整数値の入力により設定値を設定する。これに代えて、例えば、同期フレーム挿入設定部2021は、同期フレームF1同士の間を同間隔とするように自動で計算された値を設定値として設定する。
ユーザフレーム数カウンタ部2003は、フレーム読取部2002によって読み取られたユーザフレームF2の数をカウントする(ステップS23)。ステップS23では、例えば、ユーザフレーム数カウンタ部2003は、フレーム読取部2002によって読み取られたユーザフレームF2の数を、同期フレーム挿入設定部2021によって設定された設定値までカウントする。
同期フレーム生成部2004は、同期グループ毎に同期フレームを生成する(ステップS24)。ステップS24では、同期フレーム生成部2004は、ユーザフレーム数カウンタ部2003によってカウントされた設定値に対応する数のユーザフレームF2を含む同期グループ毎に同期フレームF1を生成する。同期フレーム生成部2004は、同期フレームF1に設定値を埋め込む。同期フレーム生成部2004は、各同期フレームF1に1つの設定値を埋め込む。
同期フレーム識別子付与部2005は、同期フレーム生成部2004によって生成された同期フレームF1の一フレーム毎に同期フレーム識別子を付与し、同期フレーム識別子を同期フレームF1に埋め込む(ステップS25)。ステップS25では、例えば、同期フレーム識別子付与部2005は、同期フレーム生成部2004によって同期フレームF1が生成される毎に各同期フレームF1に同期フレーム識別子の値Nを0から順に付与する。同期フレーム識別子付与部2005は、各同期フレームF1に1つの同期フレーム識別子を埋め込む。
同期フレーム挿入部2006は、設定値及び同期フレーム識別子が埋め込まれた同期フレームF1を、連続する2つのユーザフレームF2の間に挿入する(ステップS26)。ステップS26では、例えば、同期フレーム挿入部2006は、同期フレームF1を、この同期フレームF1に関連付けられた同期グループに含まれる1番目(先頭)のユーザフレームF2の直前に挿入する。1番目のユーザフレームF2は、同期グループに含まれる設定値に対応する数のユーザフレームF2のうちの送出順で1番目のユーザフレームF2である。つまり、同期フレーム挿入部2006は、同期フレームF1と設定値に対応する数のユーザフレームF2とが交互になるように、同期フレームF1を連続する2つのユーザフレームF2の間に挿入する。1つの同期フレームF1とこの同期フレームF1の直後の設定値に対応する数のユーザフレームF2により同期グループが構成される。
フレーム複製部2007は、同期フレームF1及びユーザフレームF2を複製する(ステップS27)。ステップS27では、例えば、フレーム複製部2007は、フレーム読取部2002によって読み取られたユーザフレームF2及び同期フレーム挿入部2006によって挿入された同期フレームF1を複製する。フレーム複製部2007は、複数の同期フレームF1及び複数のユーザフレームF2で構成されるフレーム列を複製する。フレーム複製部2007は、複製した同期フレームF1及びユーザフレームF2を複数の出力ポートに対応する複数の送信FIFOキューへ出力する。フレーム複製部2007は、複製した同期フレームF1及びユーザフレームF2を第2の通信I/F23の第1のポート231及び第2のポート232に対応する送信FIFOキュー2008及び送信FIFOキュー2009へ出力する。フレーム複製部2007は、複製した複数の同期フレームF1及び複数のユーザフレームF2で構成される同じフレーム列を送信FIFOキュー2008及び送信FIFOキュー2009へ出力する。これにより、同じフレーム列は、第1の中継経路及び第2の中継経路の両方を介して、無瞬断装置A2から無瞬断装置B2へ送信される。
図11は、無瞬断装置A2の受信処理の処理手順と処理内容を示すフローチャートである。ここでは、無瞬断装置A2が同じフレーム列を第1の中継経路及び第2の中継経路の両方を介して無瞬断装置B2から受信する受信処理を例にして説明する。
フレーム読取部2012及びフレーム読取部2013は、複数の中継経路から複数の受信FIFOキューのそれぞれへ順に入力された同期フレーム識別子及び設定値が埋め込まれた同期フレームF1及びユーザフレームF2を読み取る(ステップS31)。ステップS31では、例えば、フレーム読取部2012は、第1の中継経路から受信FIFOキュー2010へ順に入力された同期フレームF1及びユーザフレームF2の何れかのフレームを入力順に受信FIFOキュー2010から読み取る。フレーム読取部2013は、第2の中継経路から受信FIFOキュー2011へ順に入力された同期フレームF1及びユーザフレームF2の何れかのフレームを入力順に受信FIFOキュー2011から読み取る。
ユーザフレーム数比較部2022及びユーザフレーム数比較部2023は、複数の中継経路のそれぞれについて、ユーザフレームF2の数を設定値と比較する(ステップS32)。ステップS32では、例えば、ユーザフレーム数比較部2022は、フレーム読取部2012によって読み取られた第1の中継経路を介した同期フレームF1毎に、この同期フレームF1と次の同期フレームF1との間に含まれるユーザフレームF2をカウントする。ユーザフレーム数比較部2022は、同期フレームF1と次の同期フレームF1との間に含まれるユーザフレームF2の数をフレーム同期部2014によってこの同期フレームF1から読み取られた設定値と比較する。ユーザフレームF2の数が設定値と一致する場合、ユーザフレーム数比較部2022は、ユーザフレームF2の順序が一致すると判別する。ユーザフレームF2の順序が一致することは、ユーザフレームF2の数が設定値と一致することに対応する。ユーザフレームF2の数が設定値と一致しない場合、ユーザフレーム数比較部2022は、ユーザフレームF2の順序が不一致と判別する。ユーザフレームF2の順序が不一致であることは、ユーザフレームF2の数が設定値と一致しないことに対応する。ユーザフレーム数比較部2022は、同期フレームF1の同期フレーム識別子の値Nで識別される同期グループ毎に、ユーザフレームF2の順序一致または不一致を示す情報をフレーム同期部2014へ送る。ユーザフレーム数比較部2023は、フレーム読取部2013によって読み取られた第2の中継経路を介した同期フレームF1毎に、この同期フレームF1と次の同期フレームF1との間に含まれるユーザフレームF2をカウントする。ユーザフレーム数比較部2023は、同期フレームF1と次の同期フレームF1との間に含まれるユーザフレームF2の数をフレーム同期部2015によって同期フレームF1から読み取られた設定値と比較する。ユーザフレームF2の数が設定値と一致する場合、ユーザフレーム数比較部2023は、ユーザフレームF2の順序が一致すると判別する。ユーザフレームF2の数が設定値と一致しない場合、ユーザフレーム数比較部2023は、ユーザフレームF2の順序が不一致であると判別する。ユーザフレーム数比較部2023は、同期フレームF1の同期フレーム識別子の値Nで識別される同期グループ毎に、ユーザフレームF2の順序一致または不一致を示す情報をフレーム同期部2015へ送る。
フレーム同期部2014及びフレーム同期部2015は、複数の中継経路を介した各フレームの順序性を判別する(ステップS33)。ステップS33では、例えば、フレーム同期部2014は、フレーム読取部2012によって読み取られた第1の中継経路を介した同期フレームF1の同期フレーム識別子に基づいて、同期フレームF1の順序性を認識する。フレーム同期部2014は、同期フレームF1の順序性が正しいか否かを判別する。フレーム同期部2014は、ユーザフレーム数比較部2022からのユーザフレームF2の順序一致を示す情報に基づいて、この情報に関連付けられた同期フレーム識別子の値Nで識別される同期グループを構成するユーザフレームF2の順序性が正しいと判別する。他方、フレーム同期部2014は、ユーザフレーム数比較部2022からのユーザフレームF2の順序不一致を示す情報に基づいて、この情報に関連付けられた同期フレーム識別子の値Nで識別される同期グループを構成するユーザフレームF2の順序性が正しくないと判別する。フレーム同期部2014は、同期フレーム識別子の値Nで識別される同期グループ毎に順序情報を生成する。順序情報は、同期グループに含まれる同期フレームF1の順序性が正しいか否かを示す情報を含み得る。順序情報は、同期グループに含まれる同期フレームF1の同期フレーム識別子の値Nを含み得る。順序情報は、同期グループに含まれるユーザフレームF2の順序一致または不一致を示す情報を含み得る。ユーザフレームF2の順序一致は、ユーザフレームF2の順序性が正しいことに対応し、同期グループに含まれるユーザフレーム列上にフレームロスが発生していないことにも対応する。ユーザフレームF2の順序不一致は、ユーザフレームF2の順序性が正しくないことに対応し、同期グループに含まれるユーザフレーム列上にフレームロスが発生していることにも対応する。
フレーム同期部2015は、フレーム読取部2013によって読み取られた第2の中継経路を介した同期フレームF1の同期フレーム識別子に基づいて、同期フレームF1の順序性を認識する。フレーム同期部2015は、同期フレームF1の順序性が正しいか否かを判別する。フレーム同期部2015は、ユーザフレーム数比較部2023からのユーザフレームF2の順序一致を示す情報に基づいて、この情報に関連付けられた同期フレーム識別子の値Nで識別される同期グループを構成するユーザフレームF2の順序性が正しいと判別する。他方、フレーム同期部2015は、ユーザフレーム数比較部2023からのユーザフレームF2の順序不一致を示す情報に基づいて、この情報に関連付けられた同期フレーム識別子の値Nで識別される同期グループを構成するユーザフレームF2の順序性が正しくないと判別する。フレーム同期部2015は、同期フレーム識別子の値Nで識別される同期グループ毎に順序情報を生成する。フレーム同期部2015は、同期フレーム識別子の値Nで識別される同期グループ毎に順序情報を生成する。順序情報は、同期グループに含まれる同期フレームF1の順序性が正しいか否かを示す情報を含み得る。順序情報は、同期グループに含まれる同期フレームF1の同期フレーム識別子の値Nを含み得る。順序情報は、同期グループに含まれるユーザフレームF2の順序一致または不一致を示す情報を含み得る。
ユーザフレーム削除部2016及びユーザフレーム削除部2017は、フレーム同期部2014及びフレーム同期部2015からの順序情報に基づいて、複数の中継経路を介したユーザフレームF2を必要に応じて削除する(ステップS34)。ステップS34では、例えば、ユーザフレーム削除部2016は、フレーム同期部2014からの順序情報にユーザフレームF2の順序不一致を示す情報が含まれる場合、この順序情報に関連付けられた同期フレームF1から次の同期フレームF1までの間に含まれるユーザフレームF2を削除する。他方、ユーザフレーム削除部2016は、フレーム同期部2014からの順序情報にユーザフレームF2の順序一致を示す情報が含まれる場合、この順序情報に関連付けられた同期フレームF1から次の同期フレームF1までの間に含まれるユーザフレームF2を削除しない。ユーザフレーム削除部2017は、フレーム同期部2015からの順序情報にユーザフレームF2の順序不一致を示す情報が含まれる場合、この順序情報に関連付けられた同期フレームF1から次の同期フレームF1までの間に含まれるユーザフレームF2を削除する。他方、ユーザフレーム削除部2017は、フレーム同期部2015からの順序情報にユーザフレームF2の順序一致を示す情報が含まれる場合、この順序情報に関連付けられた同期フレームF1から次の同期フレームF1までの間に含まれるユーザフレームF2を削除しない。
フレーム選択部2018は、同期フレーム識別子及び設定値に基づいて判別される正しい順序でかつ第1の中継経路及び第2の中継経路のうち最も早く到着した中継経路における1つの同期フレームF1及びこの同期フレームF1に関連付けられた設定値に対応する数のユーザフレームF2で構成される同期グループを採用する(ステップS35)。ステップS35では、例えば、フレーム選択部2018は、フレーム同期部2014からの順序情報及びフレーム同期部2015からの順序情報に基づいて、同期フレーム識別子の値N毎に、正しい順序の同期グループであって、第1の中継経路及び第2の中継経路のうち最も早く到着した中継経路における同期グループを採用する。
例えば、ある同期フレーム識別子の値Nに関して、フレーム同期部2014からの順序情報は、ユーザフレームF2の順序一致を示す情報を含み、同期フレームF1の順序性が正しいこと示す情報を含むものとする。フレーム同期部2015からの順序情報は、ユーザフレームF2の順序一致を示す情報を含み、同期フレームF1の順序性が正しいこと示す情報を含むものとする。フレーム選択部2018は、フレーム同期部2014からの順序情報に基づいて、第1の中継経路の同期グループを構成する同期フレームF1及び設定値に対応する数のユーザフレームF2は正しい順序と判別する。フレーム同期部2014からの順序情報は同期フレーム識別子及び設置値に基づいて生成されているので、フレーム選択部2018は、同期フレーム識別子及び設置値に基づいて正しい順序と判別するといえる。フレーム選択部2018は、フレーム同期部2015からの順序情報に基づいて、第2の中継経路の同期グループを構成する同期フレームF1及び設定値に対応する数のユーザフレームF2は正しい順序と判別する。フレーム同期部2015からの順序情報は同期フレーム識別子及び設置値に基づいて生成されているので、フレーム選択部2018は、同期フレーム識別子及び設定値に基づいて正しい順序と判別するといえる。フレーム選択部2018は、正しい順序でかつ第1の中継経路及び第2の中継経路のうち最も早く到着した中継経路における同期グループを採用する。第1の中継経路おける同期グループは、フレーム読取部2012によって読み取られた1つの同期フレームF1及びユーザフレーム削除部2016によって削除されていない設定値に対応する数のユーザフレームF2により構成されている。第2の中継経路おける同期グループは、フレーム読取部2013によって読み取られた1つの同期フレームF1及びユーザフレーム削除部2017によって削除されていない設定値に対応する数のユーザフレームF2により構成されている。フレーム選択部2018は、第1の中継経路及び第2の中継経路のうち採用しない中継経路における同期グループを構成するフレームを削除する。
例えば、ある同期フレーム識別子の値Nに関して、フレーム同期部2014からの順序情報は、ユーザフレームF2の順序一致を示す情報を含み、同期フレームF1の順序性が正しいこと示す情報を含むものとする。フレーム同期部2015からの順序情報は、ユーザフレームF2の順序不一致を示す情報を含み、同期フレームF1の順序性が正しいこと示す情報を含むものとする。フレーム選択部2018は、フレーム同期部2014からの順序情報に基づいて、第1の中継経路の同期グループを構成する同期フレームF1及び設定値に対応する数のユーザフレームF2は正しい順序と判別する。フレーム選択部2018は、フレーム同期部2015からの順序情報に基づいて、第2の中継経路の同期グループを構成するフレームは正しくない順序と判別する。フレーム同期部2015からの順序情報は同期フレーム識別子及び設定値に基づいて生成されているので、フレーム選択部2018は、同期フレーム識別子及び設定値に基づいて正しくない順序と判別するといえる。この例では、第1の中継経路における同期グループは、正しい順序でかつ第1の中継経路及び第2の中継経路のうち最も早く到着した中継経路の同期グループである。フレーム選択部2018は、第1の中継経路における同期グループを採用する。フレーム選択部2018は、第2の中継経路における同期グループを不採用とする。フレーム選択部2018は、採用しない第2の中継経路における同期グループを構成するフレームを削除する。
例えば、ある同期フレーム識別子の値Nに関して、フレーム同期部2014からの順序情報は、ユーザフレームF2の順序不一致を示す情報を含み、同期フレームF1の順序性が正しいこと示す情報を含むものとする。フレーム同期部2015からの順序情報は、ユーザフレームF2の順序一致を示す情報を含み、同期フレームF1の順序性が正しいこと示す情報を含むものとする。フレーム選択部2018は、フレーム同期部2014からの順序情報に基づいて、第1の中継経路の同期グループを構成するフレームは正しくない順序と判別する。フレーム選択部2018は、フレーム同期部2015からの順序情報に基づいて、第2の中継経路の同期グループを構成する同期フレームF1及び設定値に対応する数のユーザフレームF2は正しい順序と判別する。この例では、第2の中継経路における同期グループは、正しい順序でかつ第1の中継経路及び第2の中継経路のうち最も早く到着した中継経路の同期グループである。フレーム選択部2018は、第2の中継経路における同期グループを採用する。フレーム選択部2018は、第1の中継経路における同期グループを不採用とする。フレーム選択部2018は、採用しない第1の中継経路における同期グループを構成するフレームを削除する。
同期フレーム削除部2019は、フレーム選択部2018によって採用された同期グループに含まれる同期フレームF1及びユーザフレームF2のうちの同期フレームF1を削除する(ステップS36)。ステップS36では、同期フレーム削除部2019は、同期フレーム識別子で識別される正しい順序でフレーム選択部2018によって採用された各同期グループについて、同期フレームF1を削除する。他方、同期フレーム削除部2019は、フレーム選択部2018によって採用された同期グループに含まれる同期フレームF1及びユーザフレームF2のうちのユーザフレームF2を送信FIFOキュー2020へ出力する。これにより、同期フレーム削除部2019は、フレーム選択部2018によって選択された各同期グループについて、ユーザフレームF2を送信FIFOキュー2020へ出力する。複数のユーザフレームF2で構成されるフレーム列は、ユーザ端末A1へ送信される。
図12は、無瞬断装置A2の受信処理により採用されるフレーム列を示す図である。
第1の中継経路を介したフレーム列は、第2の中継経路を介したフレーム列よりも早く無瞬断装置A2に到着するものとする。各同期フレームF1に埋め込まれた設定値nは、3とする。
フレーム選択部2018は、同期フレーム識別子の値0から順に、正しい順序でかつ第1の中継経路及び第2の中継経路のうち最も早く到着した中継経路における同期グループを採用する。
例えば、同期フレーム識別子の値0については、第1の中継経路における同期グループ及び第2の中継経路における同期グループはいずれも正しい順序の同期グループである。第1の中継経路における同期グループは、第2の中継経路の同期グループよりも早く到着する。そのため、第1の中継経路における同期グループは、正しい順序でかつ第1の中継経路及び第2の中継経路のうち最も早く到着した中継経路の同期グループである。フレーム選択部2018は、到着した同期フレームF1の連続性から、第1の中継経路の同期グループを採用する。フレーム選択部2018は、第2の中継経路の同期グループを不採用とし、第2の中継経路の同期グループを構成するフレームを削除する。同期フレーム識別子の値2、4についても同様である。
同期フレーム識別子の値1については、第1の中継経路の同期グループは、第2の中継経路の同期グループよりも早く到着している。第1の中継経路における同期グループは、同期フレームF1及び2つのユーザフレームF2のフレームロスが発生している正しくない順序の同期グループである。第2の中継経路における同期グループは、フレームロスが発生していない正しい順序の同期グループである。そのため、第2の中継経路における同期グループは、正しい順序でかつ第1の中継経路及び第2の中継経路のうち最も早く到着した中継経路の同期グループである。フレーム選択部2018は、第2の中継経路の同期グループを採用し、第1の中継経路でロスした同期フレームF1を復旧する。フレーム選択部2018は、第1の中継経路の同期グループを不採用とし、第1の中継経路の同期グループを構成するフレームを削除する。
同期フレーム識別子の値3については、第1の中継経路の同期グループは、第2の中継経路の同期グループよりも早く到着している。第1の中継経路における同期グループは、フレームロスが発生していない正しい順序の同期グループである。第2の中継経路における同期グループは、同期フレームF1及び1つのユーザフレームF2のフレームロスが発生している正しくない順序の同期グループである。そのため、第1の中継経路における同期グループは、正しい順序でかつ第1の中継経路及び第2の中継経路のうち最も早く到着した中継経路の同期グループである。フレーム選択部2018は、第1の中継経路の同期グループを採用する。フレーム選択部2018は、第2の中継経路の同期グループを不採用とし、第2の中継経路の同期グループを構成するフレームを削除する。
このように、フレーム選択部2018は、同期フレーム識別子の値1については第2の中継経路における同期グループを採用する。フレーム選択部2018は、同期フレーム識別子の値1以外については第1の中継経路における同期グループを採用する。フレーム選択部2018は、採用した各同期グループによりフレーム列を構成する。
図13は、無瞬断装置A2の送信処理によるフレーム列を示す図である。
同期フレームF1同士の間隔は、同間隔であってもいいし、可変であってもよい。
同期フレームF1同士の間に含まれるユーザフレームF2の数は、同じであってもいいし、異なっていてもよい。
(作用効果)
以上述べたように第2の実施形態では、無瞬断装置は、同期フレームに同期フレーム識別子及び設定値を埋め込み、複数の同期フレーム及び複数のユーザフレームで構成されるフレーム列を複数の中継経路を介して送信する。無瞬断装置は、複数の中継経路を介した複数のフレーム列について、同期フレーム識別子及び設定値に基づいて判別される正しい順序でかつ複数の中継経路のうち最も早く到着した中継経路における同期グループを採用する。
これにより、1つの同期フレームについて設定値に対応する任意の数のユーザフレームの転送が可能になるので、ユーザフレームの伝送効率が向上する。
[第3の実施形態]
第3の実施形態では、第1の実施形態または第2の実施形態と同様であってもよい部分には同一符号を付し、その説明を省略する。第3の実施形態では、第1の実施形態または第2の実施形態とは異なる部分を中心に説明する。
(構成例)
図14は、無瞬断装置A2のソフトウェア構成を示すブロック図である。
制御部20は、第1の実施形態で説明した各部に加えて、同期フレーム挿入設定部2024、送信側ユーザフレーム情報演算処理部2025、ユーザフレーム数カウンタ部2026、ユーザフレーム数カウンタ部2027、受信側ユーザフレーム情報演算処理部2028及び受信側ユーザフレーム情報演算処理部2029を実行する。制御部20は、第1の実施形態で説明したユーザフレーム削除部2016及びユーザフレーム削除部2017に代えて、ユーザフレーム追加/削除部2030及びユーザフレーム追加/削除部2031を実行する。同期フレーム挿入設定部2024及び送信側ユーザフレーム情報演算処理部2025は送信処理に関連する。ユーザフレーム数カウンタ部2026、ユーザフレーム数カウンタ部2027、受信側ユーザフレーム情報演算処理部2028、受信側ユーザフレーム情報演算処理部2029、ユーザフレーム追加/削除部2030及びユーザフレーム追加/削除部2031は受信処理に関連する。
同期フレーム挿入設定部2024は、同期フレーム挿入設定部2021と同様に、1つのユーザ情報の塊として表す同期グループに含まれるユーザフレームF2の数の設定値を設定する。設定値は、正の整数の値である。
送信側ユーザフレーム情報演算処理部2025は、送信側演算情報を生成する。送信側演算情報は、同期フレーム挿入設定部2024によって設定された設定値に対応する数のユーザフレームF2それぞれの一部の第1の個別情報を順に並べた情報である。第1の個別情報は、ユーザフレームF2の内容を示す情報(伝送情報)である。例えば、第1の個別情報は、ユーザフレームF2のFCSフィールドまたはDATAフィールドの一部の情報であるが、ユーザフレームF2の一部の情報であればよく、限定されない。例えば、第1の個別情報は、CRC(Cyclic Redundancy Check)などである。
ユーザフレーム数カウンタ部2026は、フレーム読取部2012によって読み取られた第1の中継経路を介した同期フレームF1と次の同期フレームF1との間に含まれるユーザフレームF2をカウントする。
ユーザフレーム数カウンタ部2027は、フレーム読取部2013によって読み取られた第2の中継経路を介した同期フレームF1と次の同期フレームF1との間に含まれるユーザフレームF2をカウントする。
なお、ユーザフレーム数カウンタ部2026及びユーザフレーム数カウンタ部2027を合わせてユーザフレーム数カウンタ部ということもある。
受信側ユーザフレーム情報演算処理部2028は、受信側演算情報を生成する。受信側演算情報は、ユーザフレーム数カウンタ部2026によってカウントされたユーザフレームF2それぞれの一部の第2の個別情報を順に並べた情報である。第2の個別情報は、第1の個別情報と同様に、ユーザフレームF2の内容を示す情報である。第2の個別情報は、ユーザフレームF2における第1の個別情報と同じ部分の情報であり得る。例えば、第2の個別情報は、第1の個別情報と同様に、ユーザフレームF2のFCSフィールドまたはDATAフィールドの一部の情報である。
受信側ユーザフレーム情報演算処理部2029は、受信側演算情報を生成する。受信側演算情報は、ユーザフレーム数カウンタ部2027によってカウントされたユーザフレームF2それぞれの一部の第2の個別情報を順に並べた情報である。
なお、受信側ユーザフレーム情報演算処理部2028及び受信側ユーザフレーム情報演算処理部2029を合わせて受信側ユーザフレーム情報演算処理部ということもある。
ユーザフレーム追加/削除部2030は、フレーム同期部2014からの順序情報に基づいて、フレーム読取部2012によって読み取られた第1の中継経路を介したユーザフレームF2を必要に応じて削除する。ユーザフレーム追加/削除部2030は、フレーム同期部2014からの順序情報に基づいて、同期グループにダミーフレームを必要に応じて追加(パディング)する。
ユーザフレーム追加/削除部2031は、フレーム同期部2015からの順序情報に基づいて、フレーム読取部2013によって読み取られた第2の中継経路を介したユーザフレームF2を必要に応じて削除する。ユーザフレーム追加/削除部2031は、フレーム同期部2015からの順序情報に基づいて、同期グループにダミーフレームを必要に応じて追加(パディング)する。
なお、ユーザフレーム追加/削除部2030及びユーザフレーム追加/削除部2031を合わせてユーザフレーム追加/削除部ということもある。
図15は、同期フレームF1の構成を示す図である。
送信側演算情報は、同期フレーム識別子及び設定値と同様に、データフィールドに埋め込まれる。送信側演算情報は、第1の個別情報p1~pn(nは設定値に対応する数)を順に並べた情報である。例えば、送信側演算情報は、受信FIFOキュー2001へ入力されたユーザフレームF2の順に、各ユーザフレームF2に関する第1の個別情報p1~pnを並べた情報である。第1の個別情報p1~pnの数は、同期グループに含まれるユーザフレームF2の数に対応する。
(動作例)
以上のように構成された無瞬断装置A2により実行される動作を説明する。
図16は、無瞬断装置A2の送信処理の処理手順と処理内容を示すフローチャートである。ここでは、無瞬断装置A2が同じフレーム列を第1の中継経路及び第2の中継経路の両方を介して無瞬断装置B2へ送信する送信処理を例にして説明する。
フレーム読取部2002は、受信FIFOキュー2001へ順に入力されたユーザフレームF2を入力順に受信FIFOキュー2001から読み取る(ステップS41)。ステップS41では、例えば、フレーム読取部2002は、ユーザ端末A1からのユーザフレームF2を順に読み取る。
同期フレーム挿入設定部2024は、設定値を設定する(ステップS42)。ステップS42では、例えば、同期フレーム挿入設定部2024は、手動での有限の整数値の入力により設定値を設定する。これに代えて、例えば、同期フレーム挿入設定部2024は、同期フレームF1同士の間を同間隔とするように自動で計算された値を設定値として設定する。
ユーザフレーム数カウンタ部2003は、フレーム読取部2002によって読み取られたユーザフレームF2の数をカウントする(ステップS43)。ステップS43では、例えば、ユーザフレーム数カウンタ部2003は、フレーム読取部2002によって読み取られたユーザフレームF2の数を、同期フレーム挿入設定部2021によって設定された設定値までカウントする。
送信側ユーザフレーム情報演算処理部2025は、送信側演算情報を生成する(ステップS44)。ステップS44では、例えば、送信側ユーザフレーム情報演算処理部2025は、同期フレーム挿入設定部2024によって設定された設定値に対応する数のユーザフレームF2それぞれの一部の第1の個別情報p1~pnを順に並べた送信側演算情報を生成する。送信側ユーザフレーム情報演算処理部2025は、受信FIFOキュー2001へ入力されたユーザフレームF2の順に、各ユーザフレームF2に関する第1の個別情報p1~pnを取得して並べる。受信FIFOキュー2001へ入力されたユーザフレームF2の順は、フレーム読取部2002によるユーザフレームF2の読み取り順に対応する。受信FIFOキュー2001へ入力されたユーザフレームF2の順は、無瞬断装置A2からのユーザフレームF2の送出順にも対応する。送信側ユーザフレーム情報演算処理部2025は、ユーザフレーム数カウンタ部2003によってカウントされた設定値に対応する数のユーザフレームF2毎に同期グループ毎の送信側演算情報を生成する。
同期フレーム生成部2004は、同期グループ毎に同期フレームを生成する(ステップS45)。ステップS45では、同期フレーム生成部2004は、ユーザフレーム数カウンタ部2003によってカウントされた設定値に対応する数のユーザフレームF2を含む同期グループ毎に同期フレームF1を生成する。同期フレーム生成部2004は、同期フレームF1に設定値及び送信側演算情報を埋め込む。同期フレーム生成部2004は、各同期フレームF1に1つの設定値及び別個の送信側演算情報を埋め込む。
同期フレーム識別子付与部2005は、同期フレーム生成部2004によって生成された同期フレームF1の一フレーム毎に同期フレーム識別子を付与し、同期フレーム識別子を同期フレームF1に埋め込む(ステップS46)。ステップS46では、例えば、同期フレーム識別子付与部2005は、同期フレーム生成部2004によって同期フレームF1が生成される毎に各同期フレームF1に同期フレーム識別子の値Nを0から順に付与する。同期フレーム識別子付与部2005は、各同期フレームF1に1つの同期フレーム識別子を埋め込む。
同期フレーム挿入部2006は、設定値、送信側演算情報及び同期フレーム識別子が埋め込まれた同期フレームF1を、連続する2つのユーザフレームF2の間に挿入する(ステップS47)。ステップS47では、例えば、同期フレーム挿入部2006は、同期フレームF1を、この同期フレームF1に関連付けられた同期グループに含まれる1番目(先頭)のユーザフレームF2の直前に挿入する。1番目のユーザフレームF2は、同期グループに含まれる設定値に対応する数のユーザフレームF2のうちの送出順で1番目のユーザフレームF2である。つまり、同期フレーム挿入部2006は、同期フレームF1と設定値に対応する数のユーザフレームF2とが交互になるように、同期フレームF1を連続する2つのユーザフレームF2の間に挿入する。1つの同期フレームF1とこの同期フレームF1の直後の設定値に対応する数のユーザフレームF2により同期グループが構成される。
フレーム複製部2007は、同期フレームF1及びユーザフレームF2を複製する(ステップS48)。ステップS48では、例えば、フレーム複製部2007は、フレーム読取部2002によって読み取られたユーザフレームF2及び同期フレーム挿入部2006によって挿入された同期フレームF1を複製する。フレーム複製部2007は、複数の同期フレームF1及び複数のユーザフレームF2で構成されるフレーム列を複製する。フレーム複製部2007は、複製した同期フレームF1及びユーザフレームF2を複数の出力ポートに対応する複数の送信FIFOキューへ出力する。フレーム複製部2007は、複製した同期フレームF1及びユーザフレームF2を第2の通信I/F23の第1のポート231及び第2のポート232に対応する送信FIFOキュー2008及び送信FIFOキュー2009へ出力する。フレーム複製部2007は、複製した複数の同期フレームF1及び複数のユーザフレームF2で構成される同じフレーム列を送信FIFOキュー2008及び送信FIFOキュー2009へ出力する。これにより、同じフレーム列は、第1の中継経路及び第2の中継経路の両方を介して、無瞬断装置A2から無瞬断装置B2へ送信される。
図17は、無瞬断装置A2の受信処理の処理手順と処理内容を示すフローチャートである。ここでは、無瞬断装置A2が同じフレーム列を第1の中継経路及び第2の中継経路の両方を介して無瞬断装置B2から受信する受信処理を例にして説明する。
フレーム読取部2012及びフレーム読取部2013は、複数の中継経路から複数の受信FIFOキューのそれぞれへ順に入力された同期フレーム識別子、設定値及び送信側演算情報が埋め込まれた同期フレームF1及びユーザフレームF2を読み取る(ステップS51)。ステップS51では、例えば、フレーム読取部2012は、第1の中継経路から受信FIFOキュー2010へ順に入力された同期フレームF1及びユーザフレームF2の何れかのフレームを入力順に受信FIFOキュー2010から読み取る。フレーム読取部2013は、第2の中継経路から受信FIFOキュー2011へ順に入力された同期フレームF1及びユーザフレームF2の何れかのフレームを入力順に受信FIFOキュー2011から読み取る。
ユーザフレーム数カウンタ部2026及びユーザフレーム数カウンタ部2027は、複数の中継経路のそれぞれについて、ユーザフレームF2の数をカウントする(ステップS52)。ステップS52では、例えば、ユーザフレーム数カウンタ部2026は、フレーム読取部2012によって読み取られた第1の中継経路を介した同期フレームF1毎に、この同期フレームF1と次の同期フレームF1との間に含まれるユーザフレームF2をカウントする。ユーザフレームF2のフレームロスが発生していない場合、ユーザフレーム数カウンタ部2026によってカウントされるユーザフレームF2の数は、設定値に対応する。ユーザフレーム数カウンタ部2027は、フレーム読取部2013によって読み取られた第2の中継経路を介した同期フレームF1毎に、この同期フレームF1と次の同期フレームF1との間に含まれるユーザフレームF2をカウントする。ユーザフレームF2のフレームロスが発生していない場合、ユーザフレーム数カウンタ部2027によってカウントされるユーザフレームF2の数は、設定値に対応する。
受信側ユーザフレーム情報演算処理部2028及び受信側ユーザフレーム情報演算処理部2029は、受信側演算情報を生成する(ステップS53)。ステップS53では、例えば、受信側ユーザフレーム情報演算処理部2028は、ユーザフレーム数カウンタ部2026によってカウントされた数のユーザフレームF2それぞれの一部の第2の個別情報を順に並べた受信側演算情報を生成する。第2の個別情報の数は、最大で設定値に対応する数である。受信側ユーザフレーム情報演算処理部2028は、受信FIFOキュー2010へ入力されたユーザフレームF2の順に各ユーザフレームF2に関する第2の個別情報を取得して並べる。受信FIFOキュー2010へ入力されたユーザフレームF2の順は、フレーム読取部2012によるユーザフレームF2の読み取り順に対応する。受信側ユーザフレーム情報演算処理部2028は、同期グループ毎の受信側演算情報を生成する。受信側ユーザフレーム情報演算処理部2029は、ユーザフレーム数カウンタ部2027によってカウントされた数のユーザフレームF2それぞれの一部の第2の個別情報を順に並べた受信側演算情報を生成する。第2の個別情報の数は、最大で設定値に対応する数である。受信側ユーザフレーム情報演算処理部2029は、受信FIFOキュー2011へ入力されたユーザフレームF2の順に各ユーザフレームF2に関する第2の個別情報を取得して並べる。受信FIFOキュー2011へ入力されたユーザフレームF2の順は、フレーム読取部2013によるユーザフレームF2の読み取り順に対応する。受信側ユーザフレーム情報演算処理部2029は、同期グループ毎の受信側演算情報を生成する。
フレーム同期部2014及びフレーム同期部2015は、複数の中継経路を介した各フレームの順序性を判別する(ステップS54)。ステップS54では、例えば、フレーム同期部2014は、フレーム読取部2012によって読み取られた第1の中継経路を介した同期フレームF1の同期フレーム識別子に基づいて、同期フレームF1の順序性を認識する。フレーム同期部2014は、同期フレームF1の順序性が正しいか否かを判別する。フレーム同期部2014は、同期フレームF1から取得する送信側演算情報と、受信側ユーザフレーム情報演算処理部2028によって生成された受信側演算情報とを比較し、同期グループに含まれるユーザフレームF2の順序性を認識する。送信側演算情報に含まれる第1の個別情報それぞれが受信側演算情報に含まれる第2の個別情報と全て一致する場合、フレーム同期部2014は、同期フレーム識別子の値Nで識別される同期グループに含まれるユーザフレームF2の順序一致と判別する。ユーザフレームF2の順序一致は、同期グループに含まれるユーザフレーム列上にフレームロスが発生しておらず、ユーザフレームF2の順序性が正しいことに対応する。ユーザフレームF2の順序一致は、ユーザフレームF2の数が設定値と一致することにも対応する。送信側演算情報に含まれる第1の個別情報の一部が受信側演算情報に含まれる第2の個別情報と一致しない場合、フレーム同期部2014は、同期フレーム識別子の値Nで識別される同期グループに含まれるユーザフレームF2の順序不一致と判別する。ユーザフレームF2の順序不一致は、同期グループに含まれるユーザフレーム列上にフレームロスが発生しており、ユーザフレームF2の順序性が正しくないことに対応する。ユーザフレームF2の順序不一致は、ユーザフレームF2の数が設定値と一致しないことにも対応する。ユーザフレームF2の順序不一致の場合、フレーム同期部2014は、送信側演算情報と受信側演算情報との比較により、同期グループに含まれるユーザフレーム列上のフレームロス位置を特定する。フレームロス位置は、フレームロスが発生したユーザフレームF2の同期グループにおけるユーザフレーム列上の並び位置である。例えば、フレーム同期部2014は、第1の個別情報に対応する第2の個別情報が受信側演算情報に存在しない場合、この第1の個別情報に対応するユーザフレームF2のフレームロスを特定する。フレーム同期部2014は、第1の個別情報の並び順に基づいて、フレームロスの発生したユーザフレームF2の位置をフレームロス位置として特定する。フレーム同期部2014は、同期フレーム識別子の値Nで識別される同期グループ毎に順序情報を生成する。順序情報は、同期グループに含まれる同期フレームF1の順序性が正しいか否かを示す情報を含み得る。順序情報は、同期グループに含まれる同期フレームF1の同期フレーム識別子の値Nを含み得る。順序情報は、同期グループに含まれるユーザフレームF2の順序一致または不一致を示す情報を含み得る。順序情報は、ユーザフレームF2の不一致を示す情報を含む場合、フレームロス位置を示す情報を含み得る。
フレーム同期部2015は、フレーム読取部2013によって読み取られた第2の中継経路を介した同期フレームF1の同期フレーム識別子に基づいて、同期フレームF1の順序性を認識する。フレーム同期部2015は、同期フレームF1の順序性が正しいか否かを判別する。フレーム同期部2015は、同期フレームF1から取得する送信側演算情報と、受信側ユーザフレーム情報演算処理部2029によって生成された受信側演算情報とを比較し、同期グループに含まれるユーザフレームF2の順序性を認識する。送信側演算情報に含まれる第1の個別情報それぞれが受信側演算情報に含まれる第2の個別情報と全て一致する場合、フレーム同期部2015は、同期フレーム識別子の値Nで識別される同期グループに含まれるユーザフレームF2の順序一致と判別する。送信側演算情報に含まれる第1の個別情報の一部が受信側演算情報に含まれる第2の個別情報と一致しない場合、フレーム同期部2015は、同期フレーム識別子の値Nで識別される同期グループに含まれるユーザフレームF2の順序不一致と判別する。ユーザフレームF2の順序不一致の場合、フレーム同期部2015は、送信側演算情報と受信側演算情報との比較により、同期グループに含まれるユーザフレーム列上のフレームロス位置を特定する。フレーム同期部2015は、同期フレーム識別子の値Nで識別される同期グループ毎に順序情報を生成する。順序情報は、同期グループに含まれる同期フレームF1の順序性が正しいか否かを示す情報を含み得る。順序情報は、同期グループに含まれる同期フレームF1の同期フレーム識別子の値Nを含み得る。順序情報は、同期グループに含まれるユーザフレームF2の順序一致または不一致を示す情報を含み得る。順序情報は、ユーザフレームF2の不一致を示す情報を含む場合、フレームロス位置を示す情報を含み得る。
ユーザフレーム追加/削除部2030及びユーザフレーム追加/削除部2031は、複数の中継経路を介したユーザフレームF2を必要に応じて削除し、必要に応じてダミーフレームを追加する(ステップS55)。ステップS55では、例えば、ユーザフレーム追加/削除部2030は、フレーム同期部2014からの順序情報に同期フレームF1の順序性が正しくないことを示す情報が含まれる場合、順序性が正しい次の同期フレームF1までの間に含まれるユーザフレームF2を削除する。ユーザフレーム追加/削除部2030は、フレーム同期部2014からの順序情報にユーザフレームF2の不一致を示す情報が含まれる場合、順序情報に含まれるフレームロス位置を示す情報を参照し、同期グループのユーザフレーム列上のフレームロス位置にダミーフレームを追加する。
ユーザフレーム追加/削除部2031は、フレーム同期部2015からの順序情報に同期フレームF1の順序性が正しくないことを示す情報が含まれる場合、順序性が正しい次の同期フレームF1までの間に含まれるユーザフレームF2を削除する。ユーザフレーム追加/削除部2031は、フレーム同期部2015からの順序情報にユーザフレームF2の不一致を示す情報が含まれる場合、順序情報に含まれるフレームロス位置を示す情報を参照し、同期グループのユーザフレーム列上のフレームロス位置にダミーフレームを追加する。
フレーム選択部2018は、フレーム同期部2014からの順序情報及びフレーム同期部2015からの順序情報に基づいて、複数の中継経路から同期フレームF1及びユーザフレームF2を選択する(ステップS56)。ステップS56では、フレーム選択部2018は、フレーム同期部2014からの順序情報及びフレーム同期部2015からの順序情報に基づいて、同期フレーム識別子の値N毎に、第1の中継経路及び第2の中継経路のそれぞれにおける同期フレーム識別子の同じ値で識別される同期フレームF1を含む同期グループのうち、最も早く到着した同期グループにおいてユーザフレーム列上のフレームロスの発生があるか否かを判別する。ここでは、ある同期フレーム識別子の値Nに関して、第1の中継経路の同期グループは、第2の中継経路の同期グループよりも早く到着しているものとする。例えば、フレーム同期部2014からの順序情報は、ユーザフレームF2の順序一致を示す情報を含み、同期フレームF1の順序性が正しいこと示す情報を含むものとする。フレーム選択部2018は、フレーム同期部2014からの順序情報に基づいて、最も早く到着した第1の中継経路の同期グループにおいてユーザフレーム列上のフレームロスの発生がないと判別する。フレーム同期部2014からの順序情報は少なくとも送信側演算情報に基づいて生成されているので、最も早く到着した第1の中継経路の同期グループにおいてユーザフレーム列上のフレームロスの発生がないことは、送信側演算情報に基づいて判別されるといえる。他方、例えば、フレーム同期部2014からの順序情報は、ユーザフレームF2の順序不一致を示す情報を含み、同期フレームF1の順序性が正しいこと示す情報を含むものとする。フレーム選択部2018は、フレーム同期部2014からの順序情報に基づいて、最も早く到着した第1の中継経路の同期グループにおいてユーザフレーム列上のフレームロスの発生があると判別する。フレーム同期部2014からの順序情報は少なくとも送信側演算情報に基づいて生成されているので、最も早く到着した第1の中継経路の同期グループにおいてユーザフレーム列上のフレームロスの発生があることは、送信側演算情報に基づいて判別されるといえる。
同期フレーム識別子の同じ値で識別される同期グループのうち最も早く到着した同期グループにおいてユーザフレーム列上のフレームロスの発生がないと判別された場合について説明する。フレーム選択部2018は、最も早く到着した中継経路における同期グループを構成する同期フレームF1及びユーザフレームF2を選択する。この同期グループには、ユーザフレーム列上のフレームロスの発生がないので、ユーザフレームF2の数は、設定値に対応する数である。他方、フレーム選択部2018は、第1の中継経路及び第2の中継経路のうち最も早く到着した中継経路以外の他の中継経路における同期グループを構成する同期フレームF1及びユーザフレームF2を削除する。
同期フレーム識別子の同じ値で識別される同期グループのうち最も早く到着した同期グループにおいてユーザフレーム列上のフレームロスの発生があると判別された場合について説明する。フレーム選択部2018は、最も早く到着した中継経路における同期グループを構成する同期フレームF1及びユーザフレームF2を選択する。この同期グループには、ユーザフレーム列上のフレームロスの発生があるので、ユーザフレームF2の数は、設定値に対応する数よりも少ない。フレーム選択部2018は、順序情報に含まれるフレームロス位置を示す情報を参照し、ユーザフレーム列上のフレームロス位置を特定する。フレーム選択部2018は、第1の中継経路及び第2の中継経路のうち最も早く到着した中継経路以外の他の中継経路の同期グループからフレームロス位置に対応するユーザフレームF2を選択する。
同期フレーム削除部2019は、フレーム選択部2018によって選択された同期フレームF1を削除する(ステップS57)。ステップS57では、同期フレーム削除部2019は、フレーム選択部2018によって選択された同期フレームF1及びユーザフレームF2のうちの同期フレームF1を削除する。他方、同期フレーム削除部2019は、フレーム選択部2018によって選択された同期フレームF1及びユーザフレームF2のうちのユーザフレームF2を送信FIFOキュー2020へ出力する。複数のユーザフレームF2で構成されるフレーム列は、ユーザ端末A1へ送信される。
図18は、無瞬断装置A2の受信処理により採用されるフレーム列を示す図である。
第1の中継経路を介したフレーム列は、第2の中継経路を介したフレーム列よりも早く無瞬断装置A2に到着するものとする。各同期フレームF1に埋め込まれた設定値nは、3とする。各同期フレームF1には、個別情報p1~p3を並べた送信側演算情報が埋め込まれているものとする。
例えば、同期フレーム識別子の値0については、第1の中継経路における同期グループ及び第2の中継経路における同期グループは、いずれもユーザフレーム列上のフレームロスの発生がない同期グループである。第1の中継経路における同期グループは、第2の中継経路の同期グループよりも早く到着する。フレーム選択部2018は、第1の中継経路における同期グループを構成する同期フレームF1及び設定値に対応する数のユーザフレームF2を選択する。他方、フレーム選択部2018は、第2の中継経路における同期グループを構成する同期フレームF1及びユーザフレームF2を削除する。同期フレーム識別子の値2、3、4についても同様である。
同期フレーム識別子の値1については、第1の中継経路における同期グループは、ユーザフレーム列上の1フレーム目にフレームロスの発生のある同期グループである。第2の中継経路における同期グループにおける同期グループは、ユーザフレーム列上の3フレーム目にフレームロスの発生のある同期グループである。第1の中継経路における同期グループは、第2の中継経路の同期グループよりも早く到着する。フレーム選択部2018は、第1の中継経路における同期グループを構成する同期フレームF1及びユーザフレーム列上の2フレーム目及び3フレーム目のユーザフレームF2を選択する。フレーム選択部2018は、第2の中継経路における同期グループから、第1の中継経路における同期グループのフレームロス位置(ユーザフレーム列上の1フレーム目)に対応するユーザフレームF2を選択する。フレーム選択部2018は、第1の中継経路における同期グループを構成するユーザフレーム列上の1フレーム目のダミーフレームを削除する。フレーム選択部2018は、第2の中継経路における同期グループを構成する同期フレームF1並びにユーザフレーム列上の2フレーム目のユーザフレームF2及び3フレーム目のダミーフレームを削除する。
このように、フレーム選択部2018は、同期フレーム識別子の値0、2、3及び4については第1の中継経路における同期グループを構成する同期フレームF1及び設定値に対応する数のユーザフレームF2を選択する。フレーム選択部2018は、同期フレーム識別子の値1については、第1の中継経路における同期グループ及び第2の中継経路における同期グループからユーザフレームF2を選択する。
(作用効果)
以上述べたように第3の実施形態では、無瞬断装置は、同期フレームに送信側演算情報を埋め込み、複数の同期フレーム及び複数のユーザフレームで構成されるフレーム列を複数の中継経路を介して送信する。無瞬断装置は、送信側演算情報を用いて複数の中継経路のうち最も早く到着した同期グループに含まれるユーザフレーム列上のフレームロス位置を特定し、複数の中継経路のうちの他の中継経路の同期グループからフレームロスの位置に対応するユーザフレームF2を選択する。
これにより、ロスフレームの判別が可能になるので、一方の中継経路にユーザフレームの欠損があっても、他方の中継経路から欠損したユーザフレームを復元可能になる。
要するに、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は可能な限り適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適当な組み合わせにより種々の発明が抽出され得る。