(57)【要約】【課題】複数の通信装置がマスタに時刻同期するための時間を短縮する。【解決手段】時刻同期をＰＴＰを用いて実行するマスタとスレーブとの間で時刻同期信号を中継する通信装置は、時刻同期信号がスレーブ宛の第１の時刻同期信号である場合、第１の時刻同期信号を受信した時点における通信装置の時刻である第１の時刻を記憶し、第１の時刻同期信号がマスタからスレーブに宛てて送信された時点におけるマスタの時刻である第２の時刻を、第１又は第２の時刻同期信号から取得し、スレーブの時刻として第１の時刻を用い、マスタの時刻として第２の時刻を用いて、マスタの基準時刻と通信装置が有する基準時刻との差分であるオフセット量を取得し、オフセット量に基づいて通信装置の基準時刻を補正する制御部を含む。【選択図】図６
2017098694.tif 000002
【特許請求の範囲】
【請求項１】
時刻同期をＰＴＰ（Precision Time Protocol）を用いて実行するマスタノードとスレ
ーブノードとの間で時刻同期信号を中継する通信装置であって、
前記通信装置で中継する時刻同期信号が前記スレーブノード宛の第１の時刻同期信号である場合、前記第１の時刻同期信号を受信した時点における前記通信装置の時刻である第１の時刻を記憶する第１の処理と、
前記第１の時刻同期信号が前記マスタノードから前記スレーブノードに宛てて送信された時点における前記マスタノードの時刻である第２の時刻を、前記第１の時刻同期信号又は前記第１の時刻同期信号の後に前記マスタノードから前記スレーブノードに宛てて送信された第２の時刻同期信号から取得する第２の処理と、
前記ＰＴＰの時刻同期アルゴリズムにおける前記スレーブノードの時刻として前記第１の時刻を用い、前記マスタノードの時刻として前記第２の時刻を用いて、前記マスタノードの基準時刻と前記通信装置が有する基準時刻との差分であるオフセット量を取得する第３の処理と、
前記取得したオフセット量に基づいて前記通信装置の基準時刻を補正する第４の処理とを行う制御部を含む、
通信装置。
【請求項２】
前記制御部は、さらに、
前記第１の時刻同期信号を受信した前記スレーブノードが前記マスタノード宛てに送信した第３の時刻同期信号を前記マスタノードへ向けて転送した時点における前記通信装置の時刻である第３の時刻を記憶する第５の処理と、
前記第３の時刻同期信号を前記マスタノードが受信した時点における前記マスタノードの時刻である第４の時刻を前記マスタノードが前記スレーブノード宛てに送信した第４の時刻同期信号から取得する第６の処理と、
を実行し、
前記第３の処理において、前記ＰＴＰの時刻同期アルゴリズムにおける前記スレーブノードの時刻として前記第１の時刻と前記第３の時刻を用い、前記マスタノードの時刻として前記第２の時刻と前記第４の時刻を用いて、前記マスタノードの基準時刻と前記通信装置が有する基準時刻との差分であるオフセット量を取得する
請求項１に記載の通信装置。
【請求項３】
前記第１〜第４の時刻同期信号のそれぞれは、前記第１〜第４の時刻同期信号のそれぞれを中継する各通信装置における滞留時間が加算される領域を含み、
前記制御部は、さらに、
前記第１の時刻同期信号の受信時における前記領域中の滞留時間を第１の滞留時間として記憶する第７の処理と、
前記第３の時刻同期信号を転送する際における前記領域中の滞留時間を第１時間として記憶する第８の処理と、
前記第４の時刻同期信号の受信時における前記領域に含まれた、前記スレーブノードから前記マスタノードまでの間における滞留時間の総和である第２時間から前記第１時間を減じて第２の滞留時間を取得する第９の処理と、
を実行し、
前記第３の処理において、前記オフセット量を取得する際に、前記第１の滞留時間及び前記第２の滞留時間を考慮する
請求項２に記載の通信装置。
【請求項４】
前記通信装置は、複数のノードとともにリングを形成するとともに、前記スレーブノードとなる前記複数のノード中の第１ノードと前記リングにおいて隣接しており、
前記制御部は、前記リングの障害時に受信される制御情報に基づいて前記リングの障害箇所を特定し、スレーブノード向けの時刻同期信号の宛先を、前記第１ノードから、前記障害箇所に基づき決定した前記複数のノード中の第２ノードに切り替える指示を前記マスタノードに送る
請求項１から３の何れか１項に記載の通信装置。
【請求項５】
前記制御部は、前記第２ノードにスレーブノードとして動作する指示を送るとともに、前記マスタノードからの時刻同期信号を前記第２ノードに転送する指示を前記第１ノードに送信する
請求項４に記載の通信装置。
【請求項６】
前記制御部は、前記リングの障害発生により前記第１ノードと切断されたノードと、前記リングの障害発生後も前記第１ノードと接続されているノードとを前記第２ノードとして決定した場合に、前記第１ノードと切断されたノードに対し、前記マスタノードからの時刻同期信号の受信を契機に前記第１ノード経由で前記中継ノードに到達するヘルスチェック信号を送信することを指示する
請求項４又は５に記載の通信装置。
【請求項７】
前記制御部は、前記ヘルスチェック信号が受信された場合に、スレーブノード向けの時刻同期信号の宛先を、前記第２ノードから前記第１ノードへ切り替える指示を前記マスタノードに送信する
請求項６に記載の通信装置。
【請求項８】
前記制御部は、前記第１ノードにスレーブノードとして動作する指示を送るとともに、前記マスタノードからの時刻同期信号を前記第１ノードに転送する指示を前記第２ノードに送信する
請求項７に記載の通信装置。
【請求項９】
時刻同期をＰＴＰ（Precision Time Protocol）を用いて実行するマスタノードとスレ
ーブノードとの間で送受信される時刻同期信号を中継する通信装置において実行される時刻同期方法であって、
前記通信装置が中継する時刻同期信号が前記スレーブノード宛の第１の時刻同期信号である場合、前記第１の時刻同期信号を前記通信装置が受信した時点における前記通信装置の時刻である第１の時刻を記憶し、
前記第１の時刻同期信号を前記マスタノードが送信した時点における前記マスタノードの時刻である第２の時刻を前記第１の時刻同期信号又は前記第１の時刻同期信号の後に前記マスタノードから前記スレーブノード宛てに送信された第２の時刻同期信号から取得し、
前記ＰＴＰの時刻同期アルゴリズムにおける前記スレーブノードの時刻として前記第１の時刻を用い、前記マスタノードの時刻として前記第２の時刻を用いて、前記マスタノードの基準時刻と前記通信装置が有する基準時刻との差分であるオフセット量を取得し、
前記オフセット量に基づいて前記通信装置の基準時刻を補正する
ことを含む通信装置の時刻同期方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置，及びその時刻同期方法に関する。
【背景技術】
【０００２】
無線基地局装置の一つとして、ベースバンド部（Base Band Unit：ＢＢＵ）と、ＢＢＵと接続される無線部（Remote Radio Head：ＲＲＨ）とを備える無線基地局装置がある。
ＢＢＵは、１以上のＢＢＵと、Open Base Station Architecture Initiative （ＯＢＳＡＩ）やCommon Public Radio Interface（ＣＰＲＩ）といった汎用インタフェースを介し
て接続される。
【０００３】
近年、急増する無線トラフィック量対策として、Time Division Duplex（ＴＤＤ）方式によるスモールセル化が行われている。ＴＤＤ方式では、無線基地局装置の出力アンテナ端での無線フレームの出力タイミングを無線基地局装置間で一致させる。また、ＴＤＤ方式では、無線フレームの送受信の切替タイミングを無線基地局装置間で一致させる。このため、無線基地局装置の基準クロック及び基準タイミングの同期が高精度で図られる。
【０００４】
基準クロック及び基準タイミングを高精度で同期させる手法の一つとして、ＩＥＥＥ１５８８で規定された時刻同期プロトコルであるPrecision Time Protocol（ＰＴＰ）があ
る。ＰＴＰは、ネットワーク接続された装置間でクロックを同期させるプロトコルである。
【０００５】
ＢＢＵ間で時刻同期をとる場合には、例えば、グランドマスタクロック（ＧＭＣ）を供給するＰＴＰマスタと、複数のＢＢＵのそれぞれとがスイッチングハブを用いてスター型に接続される。各ＢＢＵは、ＰＴＰマスタから時刻を受け取るＰＴＰスレーブとして、時刻同期のためのメッセージの送受信をＰＴＰマスタとの間で行い、基準クロック及び基準タイミングをＰＴＰマスタに同期させる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−１０６３２９号公報
【特許文献２】特開２０１３−１６５３２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＰＴＰマスタとスター型で接続された各ＢＢＵが、ＰＴＰマスタから独立したクロックで動作する、すなわち、ＰＴＰマスタと各ＢＢＵとは非同期で動作する場合がある。この場合、ＰＴＰによる時刻同期（ＰＴＰ同期）のために、ＰＴＰマスタは、ＰＴＰスレーブである各ＢＢＵと、順次、ＰＴＰメッセージの送受信を行う。このため、従来のシステムでは、各ＢＢＵに対するＰＴＰ同期を終えるまでの時間の浪費を強いられていた。
【０００８】
本発明は、複数の通信装置がマスタの基準時刻と同期するための時間を短縮可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一側面は、時刻同期をＰＴＰ（Precision Time Protocol）を用いて実行する
マスタノードとスレーブノードとの間で時刻同期信号を中継する通信装置である。この通信装置は、前記通信装置で中継する時刻同期信号が前記スレーブノード宛の第１の時刻同
期信号である場合、前記第１の時刻同期信号を受信した時点における前記通信装置の時刻である第１の時刻を記憶する第１の処理と、前記第１の時刻同期信号が前記マスタノードから前記スレーブノードに宛てて送信された時点における前記マスタノードの時刻である第２の時刻を、前記第１の時刻同期信号又は前記第１の時刻同期信号の後に前記マスタノードから前記スレーブノードに宛てて送信された第２の時刻同期信号から取得する第２の処理と、前記ＰＴＰの時刻同期アルゴリズムにおける前記スレーブノードの時刻として前記第１の時刻を用い、前記マスタノードの時刻として前記第２の時刻を用いて、前記マスタノードの基準時刻と前記通信装置が有する基準時刻との差分であるオフセット量を取得する第３の処理と、前記取得したオフセット量に基づいて前記通信装置の基準時刻を補正する第４の処理とを行う制御部を含む。
【発明の効果】
【００１０】
本発明によれば、複数の通信装置がマスタの基準時刻と同期するための時間を短縮することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、ＩＥＥＥ１５８８（ＰＴＰ）に基づくＰＴＰパケット（ＰＴＰメッセージ）の送受信フローを示すシーケンス図である。
【図２】図２は、中継ノードにおける待ち合わせ時間補正方法の説明図である。
【図３】図３は、参考例のネットワークトポロジを示す。
【図４】図４は、参考例におけるＰＴＰ同期の例を示すシーケンス図である。
【図５】図５は、実施形態に係るネットワークシステムの一例を示す。
【図６】図６は、図５に示したネットワークシステムの動作例を示すシーケンス図である。
【図７】図７は、リングプロトコルが適用されるネットワーク機器の接続例を示す。
【図８】図８は、リングプロトコルの障害発生時における動作の説明図である。
【図９】図９は、リングプロトコルの障害復旧時の動作を説明する図である。
【図１０】図１０は、図５に示したネットワークシステムに対するリングプロトコルの適用例を示す。
【図１１】図１１は、管理テーブルのデータ構造例及び初期設定情報の例を示す。
【図１２】図１２は、図１０に示したネットワークシステムにおけるヘルスチェックの通過ルートを示す。
【図１３】図１３は、図１０に示したネットワークシステムの例（リングネットワーク）において、リング断発生時における挙動を示す。
【図１４】図１４は、障害発生時における管理テーブルの登録内容（格納内容の遷移）を示す。
【図１５】図１５は、ヘルスチェックメッセージの転送経路を示す。
【図１６】図１６は、リング復旧時における動作の説明図である。
【図１７】図１７は、リング復旧時における管理テーブルの登録内容（格納内容の遷移）を示す。
【図１８】図１８は、実施形態における各ＢＢＵの構成例を示す図である。
【図１９】図１９は、リング／ＰＴＰ制御部の構成例を示す図である。
【図２０】図２０は、ＢＢＵのハードウェア構成例を示す図である。
【図２１】図２１は、リングマスタにおける処理例を示すフローチャートである。
【図２２】図２２は、ＰＴＰメッセージのルート及びＰＴＰスレーブの切替処理の例を示すフローチャートである。
【図２３】図２３は、ＰＴＰルート及びＰＴＰスレーブの切り戻し処理の例を示すフローチャートである。
【図２４】図２４は、リングのトランジットにおける処理例を示すフローチャートである。
【図２５】図２５は、「中継」としての動作例を示すフローチャートである。
【図２６】図２６は、「スレーブ」としての動作例を示すフローチャートである。
【図２７】図２７は、実施形態１の変形例を示すフローチャートである。
【図２８】図２８は、実施形態１の変形例を示すフローチャートである。
【図２９】図２９は、実施形態２の構成例を示す図である。
【図３０】図３０は、実施形態２の動作例を示すシーケンス図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して実施形態について説明する。実施形態の構成は例示であり、実施形態の構成に限定されない。
【００１３】
＜ＰＴＰによる時刻同期＞
実施形態で適用されるＰＴＰによる時刻同期（時刻同期アルゴリズム）について説明する。図１は、ＩＥＥＥ１５８８（ＰＴＰ）に基づくＰＴＰパケット（ＰＴＰメッセージ）の送受信フローを示すシーケンス図である。ＰＴＰメッセージの送受信（メッセージ送受信）は、ＰＴＰマスタとＰＴＰスレーブとの間で行われる。
【００１４】
ＰＴＰマスタ（グランドマスタクロック（ＧＭＣ）：Master）は、ＰＴＰスレーブ（スレーブクロック（ＳＣ）：Slave）に向かってSyncメッセージを送る。このとき、ＰＴＰ
マスタは、Syncメッセージの送信時刻Ｔ１を記憶する。また、ＰＴＰマスタは、Syncメッセージに続いてＰＴＰスレーブへ送るSync Follow Upメッセージを使って、送信時刻Ｔ１を記録するタイムスタンプ（Time Stamp：タイムスタンプＴ１という）を送る。
【００１５】
ＰＴＰスレーブは、Syncメッセージを受信すると、Syncメッセージの受信時刻Ｔ２を記憶する。また、ＰＴＰスレーブは、Syncメッセージに続いて受信されるSync Follow Upメッセージの中からタイムスタンプＴ１を取り出し、記憶する。さらに、ＰＴＰスレーブは、Delay RequestメッセージをＰＴＰマスタへ送信し、Delay Requestメッセージの送信時刻Ｔ３を、タイムスタンプＴ３として記憶する。
【００１６】
ＰＴＰマスタは、Delay Requestメッセージを受信すると、Delay Requestメッセージの受信時刻Ｔ４を記憶する。ＰＴＰマスタは、時刻Ｔ４を表すタイムスタンプ（タイムスタンプＴ４）を含むDelay ResponseメッセージをＰＴＰスレーブに送信する。
【００１７】
ＰＴＰスレーブは、Delay Responseメッセージを受信すると、Delay Responseメッセージの中からタイムスタンプＴ４を取り出し、記憶する。以上により、ＰＴＰスレーブは、タイムスタンプＴ１，Ｔ２，Ｔ３，Ｔ４を取得することができる。なお、タイムスタンプＴ１は、Syncメッセージに含まれ、ＰＴＰスレーブがSyncメッセージから取得する場合もあり得る。なお、Syncメッセージ，Sync Follow Upメッセージ，Delay Requestメッセー
ジ，Delay ResponseメッセージがＰＴＰメッセージであり、ＰＴＰメッセージを含むパケットがＰＴＰパケットである。
【００１８】
ＰＴＰスレーブは、タイムスタンプＴ１，Ｔ２，Ｔ３，Ｔ４を用いて、遅延時間及びオフセットを求める。例えば、ＰＴＰマスタとＰＴＰスレーブとの間の基準時刻の差分（オフセット）を“Ｘ”とする。ＰＴＰマスタとＰＴＰスレーブとの間のSyncメッセージの伝送遅延をＴＤ１２、Delay Requestメッセージの伝送遅延をＴＤ３４とすると、各伝送遅
延は以下の式１，式２で表現される。
ＴＤ１２＝（Ｔ２−Ｘ）−Ｔ１  ・・・（式１）
ＴＤ３４＝Ｔ４−（Ｔ３−Ｘ）  ・・・（式２）
【００１９】
ここで、ＴＤ１２＝ＴＤ３４と仮定すると、式３が得られる。
（Ｔ２−Ｘ）−Ｔ１＝Ｔ４−（Ｔ３−Ｘ）  ・・・（式３）
式３を展開すると、“２Ｘ＝−Ｔ１＋Ｔ２＋Ｔ３−Ｔ４”となり、オフセットＸで整理すると以下の式４が得られる。
Ｘ＝｛（Ｔ２−Ｔ１）−（Ｔ４−Ｔ３）｝／２  ・・・（式４）
【００２０】
上記原理は以下のようにも説明できる。すなわち、ＰＴＰマスタ時刻（Time on the master clock）に同期させるためのＰＴＰスレーブ時刻（Time on the slave clock）の補
正量（オフセット量）は以下のように表現してよい。補正量（オフセット量）は、上記オフセットＸを指す。
補正量（offsetFromMaster）＝<Time on the slave clock> - <Time on the master clock> =（Ｔ２−Ｔ１）− 平均伝送路遅延  ・・・（式Ａ）
ここで、平均伝送路遅延は以下のように表現してよい。
平均伝送路遅延（meanPathDelay）＝｛（Ｔ２−Ｔ１）＋（Ｔ４−Ｔ３）｝／２・・・
（式Ｂ）
【００２１】
スレーブは上記オフセットＸがゼロとなるようにスレーブの基準時刻（基準クロック）を補正する。これによって、ＰＴＰマスタとＰＴＰスレーブとの間の時刻同期が行われる。
【００２２】
＜トランスペアレントクロック（ＴＣ）＞
次に、実施形態に適用されるＰＴＰの中継ノードの動作方式の一つであるトランスペアレントモード（エンド−エンド  トランスペアレントクロック（ＴＣ））に関して説明する。図１に示したシーケンスでは、マスタクロック（ＭＣ）と、スレーブクロック（ＳＣ）とが示されている。これに対し、ＴＣでは、ＭＣとして動作するノードと、ＳＣとして動作するノードとの間に中継ノードが介在する。
【００２３】
図２は、中継ノードにおける待ち合わせ時間補正方法の説明図である。図２において、中継ノード（Residence time bridge）は、入口（Ingress）と出口（Egress）とを有し、入口で受信されるＰＴＰパケット（Message at ingress）は、次のようなフォーマットを有している。
【００２４】
すなわち、ＰＴＰパケットは、プリアンブル（Preamble）と、ネットワークプロトコルヘッダ（Network Protocol Headers）と、イベントメッセージ（Event Message）と、補
正（Correction）フィールドを含んでいる。Correctionフィールドは、ＰＴＰメッセージに含まれるフィールドの一つであり、中継ノードにおける滞留時間が記録される。
【００２５】
図２において、中継ノードは、入口でのＰＴＰパケットの受信時刻を、ＰＴＰパケットの出口からの送信時刻から減算し、中継ノードにおける滞留時間を求める。求められた滞留時間は、入口で受信されたＰＴＰパケット中のCorrectionフィールドに記録された滞留時間に加算される。すなわち、Correctionフィールドが更新される。Correctionフィールドが更新されたＰＴＰパケット（Message at egress）が、出口から送信される。
【００２６】
ＭＣとＳＣとの間に複数の中継ノード（ＴＣ）が存在する場合には、各ＴＣにおける滞留時間がCorrectionフィールドに加算される。よって、ＰＴＰメッセージの宛先（ＳＣ）に到着したCorrectionフィールドの値は、ＴＣの滞留時間の総和を示す。ＳＣは、Correctionフィールドの値（ＴＣの滞留時間の総和）を用いて、ＭＣとの間の正確な遅延時間を算出することができる。ＴＣの場合の平均伝送路遅延は、例えば以下の式５で求められる。式５中のCorrectionフィールドの値の値は、マスタからスレーブ方向の滞留時間の総和と、スレーブからマスタ方向の滞留時間の総和との合計を示す。
平均伝送路遅延＝｛（Ｔ４−Ｔ１）−（Ｔ３−Ｔ２））｝−Correctionフィールドの値
／２  ・・・（式５）
また、例えば、上記伝送路遅延と、Correctionフィールドの値（Syncメッセージに対する滞留時間）とを用いて、以下のように補正量（オフセット）を計算することができる。
補正量＝Ｔ２−Ｔ１−平均伝送路遅延 − Correctionフィールドの値  ・・・（式６）なお、式６における「Correctionフィールドの値」は、式５と異なり、往路又は復路の滞留時間である。例えば、ＳＣで受信されたSyncメッセージ中のCorrectionフィールドの値である。
【００２７】
＜参考例とその問題点＞
図３は、参考例のネットワークトポロジを示し、図４は、参考例におけるＰＴＰ同期の例を示すシーケンス図である。図３に示すように、マスタクロックであるＰＴＰマスタ（PTP-MASTER）は、複数のＢＢＵ（ＢＢＵ＃１，＃２，・・・，＃Ｎ−１，＃Ｎ（Ｎは、正の整数））をスイッチングハブ（ＳＷハブ）を介してスター型に接続されている。
【００２８】
各ＢＢＵは、ＰＴＰマスタとスター型で接続されているので、ＰＴＰマスタと各ＢＢＵ（スレーブ）とは相互に独立したクロックで動作、すなわち、非同期で動作している。このため、図４に示すように、ＰＴＰマスタは、各ＢＢＵに対し、図１に示したＰＴＰメッセージの交換（送受信）を行い、各ＢＢＵとのＰＴＰ同期を順次行う。このため、図３及び図４に示す参考例のシステムでは、各ＢＢＵとの間で順次行われるＰＴＰ同期の全てが完了するまでの時間を浪費していた。実施形態では、複数の装置について、精度の高い時刻同期をとるための時間を短縮可能な時刻同期システム，通信装置，無線基地局装置（以下「基地局」ともいう）について説明する。精度の高い時刻同期として、実施形態では、ＰＴＰ同期を例示する。
【００２９】
また、参考例では、ＰＴＰマスタと各ＢＢＵ（スレーブ）とは、非同期で動作しているので、両者間において、例えば、１秒当たり１６回の時刻同期（ＰＴＰ同期）が行われる。このような頻繁なＰＴＰ同期のためのメッセージ送受信により、ネットワークに大きな負荷がかかっていた。実施形態では、複数の装置について精度の高い時刻同期をとる場合において、ネットワークへの負荷を低減可能な時刻同期システム，通信装置，基地局について説明する。
【００３０】
＜実施形態１＞
＜＜ネットワークシステムの構成＞＞
図５は、実施形態１に係るネットワークシステム（時刻同期システム）の一例を示す。図５において、ネットワークシステムは、時刻同期方法を実施するためのシステムである。ネットワークシステムは、ＰＴＰマスタ（ＧＭＣ）１であるノードと、複数のＢＢＵ（ＢＢＵ＃１，＃２，・・・，＃Ｎ−１，＃Ｎ（Ｎは、正の整数））３とを備えている。但し、図５に示すネットワークシステムでは、参考例（図３）に示すようなスター型ではなく、リング型に接続されている。
【００３１】
図５の例では、複数のＢＢＵ３（ＢＢＵ＃１，＃２，．．．，＃Ｎ−１，＃Ｎ）は、その番号順で直列に接続されている。最終段に位置するＢＢＵ３（ＢＢＵ＃Ｎ）は、ＰＴＰスレーブ（ＳＣ）として動作し、トランスペアレントモードでＰＴＰ同期を行う。一方、ＰＴＰマスタとＢＢＵ＃Ｎとの間にあるＢＢＵ＃１，ＢＢＵ＃２，．．．，ＢＢＵ＃Ｎ−１は、中継ノード（トランスペアレントクロック（ＴＣ））として動作する。
【００３２】
そして、ＰＴＰマスタとＰＴＰスレーブであるＢＢＵ＃Ｎとの間でＰＴＰ同期が行われる。ＰＴＰ同期の際に、中継ノードとして動作する各ＢＢＵは、ＰＴＰ時刻情報を傍受して、ＰＴＰマスタとの間で同期確立を行う。これによって、各ＢＢＵ３がＰＴＰマスタ１との時刻同期を行うために要する時間を短縮できる。また、メッセージ送受信量が低減さ
れるので、ネットワーク負荷を軽減することができる。また、ＰＴＰマスタの負荷軽減も図られる。
【００３３】
ＰＴＰマスタ１は、「マスタノード」、「マスタ装置」の一例である。ＢＢＵ＃１〜＃Ｎ−１のそれぞれは、「中継ノード」、「通信装置」、「中継装置」の一例である。ＢＢＵ＃Ｎは、「スレーブノード」，「スレーブ装置」の一例である。
【００３４】
図２を用いて説明したように、トランスペアレントモードでは、伝送遅延誤差の大きな原因であるＢＢＵ（中継ノード）の滞留時間(処理待ちにより発生)がSyncメッセージとDelay Requestメッセージについて測定される。中継ノードは、滞留時間の測定結果をＰＴ
ＰパケットのCorrectionフィールドに加算し、後段に伝える。これによって、より正確な遅延時間の計算が可能となる。
【００３５】
Syncメッセージの滞留時間は、SyncメッセージのCorrectionフィールドに加算してよい。また、Syncメッセージの滞留時間は、Sync Follow upメッセージのCorrectionフィールドに設定してもよい。また、Delay Requestメッセージの滞留時間は、Delay Responseメ
ッセージのCorrectionフィールドに設定してよい。ＰＴＰパケットの転送経路上にある全ての中継ノードとして動作するＢＢＵ（中継ＢＢＵ）は、滞留時間の計算及びCorrectionフィールドへの加算を行う。従って、ＰＴＰスレーブが受信するSyncメッセージ及びDelay ResponseメッセージのCorrectionフィールドには、中継ＢＢＵにおける滞留時間の総和が含まれている。
【００３６】
ＰＴＰスレーブは、滞留時間の総和を、時刻同期（オフセット）の計算に用いる。一方各中継ＢＢＵは、ＰＴＰパケットの傍受により、Correctionフィールドの値を参照する。但し、Correctionフィールドで示される滞留時間は、中継ＢＢＵの同期確立において無用の（余剰の）滞留時間が含まれている。このため、各中継ＢＢＵは、滞留時間の再計算を行う。
＜＜動作例＞＞
図６は、図５に示したネットワークシステムの動作例を示すシーケンス図である。図６において、ＰＴＰマスタ（PTP-Master）は、ＰＴＰスレーブであるＢＢＵ＃Ｎ宛にSyncメッセージを送信するとともに、Syncメッセージの送信時刻をタイムスタンプ“Ｔ１”として記憶する。
【００３７】
中継ノードであるＢＢＵ＃１は、Syncメッセージの受信時に、以下の処理を行う（図６のＡ１）。すなわち、ＢＢＵ＃１は、Syncメッセージを受信した時点におけるＢＢＵ＃１の時刻を“Ｔ２−１”として記憶する。“Ｔ２−１”は、「第１の時刻」の一例であり、“Ｔ２−１”を記憶する処理は、「第１の処理」の一例である。また、ＢＢＵ＃２は、SyncメッセージのCorrectionフィールドの値を抜き出し、滞留時間“ｔａ−１”として記憶する。滞留時間“ｔａ−１”として記憶する処理は、「第７の処理」の一例である。さらに、ＢＢＵ＃１は、ＢＢＵ＃１における滞留時間“Δｔａ１”を、SyncメッセージのCorrectionフィールドに加算し、Correctionフィールドが更新されたSyncメッセージを次段のノード（ＢＢＵ＃２）へ転送する。
【００３８】
中継ノードであるＢＢＵ＃２は、Syncメッセージの受信時に、以下の処理を行う（図６のＡ２）。すなわち、ＢＢＵ＃２は、Syncメッセージの受信時刻を“Ｔ２−２”として記憶する。“Ｔ２−２”は、「第１の時刻」の一例であり、“Ｔ２−２”を記憶する処理は、「第１の処理」の一例である。また、ＢＢＵ＃２は、SyncメッセージのCorrectionフィールドの値を抜き出し、滞留時間“ｔａ−２”として記憶する。滞留時間“ｔａ−２”を記憶する処理は、「第７の処理」の一例である。さらに、ＢＢＵ＃２は、ＢＢＵ＃２における滞留時間“Δｔａ２”を、SyncメッセージのCorrectionフィールドに加算し、Correc
tionフィールドが更新されたSyncメッセージを次段のノード（ＢＢＵ＃３）へ転送する。
【００３９】
中継ノードであるＢＢＵ＃３は、Syncメッセージの受信時に、以下の処理を行う（図６のＡ３）。すなわち、ＢＢＵ＃３は、Syncメッセージの受信時刻を“Ｔ２−３”として記憶する。“Ｔ２−３”は、「第１の時刻」の一例であり、“Ｔ２−３”を記憶する処理は、「第１の処理」の一例である。また、ＢＢＵ＃２は、SyncメッセージのCorrectionフィールドの値を抜き出し、滞留時間“ｔａ−３”として記憶する。滞留時間“ｔａ−３”を記憶する処理は、「第７の処理」の一例である。さらに、ＢＢＵ＃３は、ＢＢＵ＃３における滞留時間“Δｔａ３”を、SyncメッセージのCorrectionフィールドに加算し、Correctionフィールドが更新されたSyncメッセージを次段のノード（ＢＢＵ＃Ｎ−１）へ転送する。
【００４０】
中継ノードであるＢＢＵ＃Ｎ−１は、Syncメッセージの受信時に、以下の処理を行う（図６のＡ４）。すなわち、ＢＢＵ＃Ｎ−１は、Syncメッセージの受信時刻を“Ｔ２−４”として記憶する。“Ｔ２−４”は、「第１の時刻」の一例であり、“Ｔ２−４”を記憶する処理は、「第１の処理」の一例である。また、ＢＢＵ＃２は、SyncメッセージのCorrectionフィールドの値を抜き出し、滞留時間“ｔａ−４”として記憶する。滞留時間“ｔａ−４”を記憶する処理は、「第７の処理」の一例である。さらに、ＢＢＵ＃Ｎ−１は、ＢＢＵ＃Ｎ−１における滞留時間“Δｔａ４”を、SyncメッセージのCorrectionフィールドに加算し、Correctionフィールドが更新されたSyncメッセージを次段のノード（ＢＢＵ＃Ｎ）へ転送する。
【００４１】
ＰＴＰスレーブ（最終段）であるＢＢＵ＃Ｎは、Syncメッセージの受信時に、以下の処理を行う（図６のＡ）。すなわち、ＢＢＵ＃Ｎは、Syncメッセージの受信時刻をタイムスタンプ“Ｔ２”として記憶するともに、SyncメッセージのCorrectionフィールドの値を抜き出し、滞留時間“ｔａ”として記憶する。
【００４２】
ＰＴＰマスタは、Syncメッセージに続いて、Syncメッセージの送信時刻を示すタイムスタンプ“Ｔ１”を含むSync follow upメッセージを生成し、ＰＴＰスレーブであるＢＢＵ＃Ｎに宛てて送信する。タイムスタンプ“Ｔ１”は、「第２の時刻」の一例である。
【００４３】
ＢＢＵ＃１は、Sync follow upメッセージの受信時に、以下の処理を行う（図６のＢ１）。すなわち、ＢＢＵ＃１は、Sync follow upメッセージに含まれたタイムスタンプＴ１を記憶する。タイムスタンプＴ１を記憶する処理は、「第２の処理」の一例である。また、ＢＢＵ＃１は、Sync follow upメッセージを次段のノード（ＢＢＵ＃２）へ転送する。
【００４４】
ＢＢＵ＃２は、Sync follow upメッセージの受信時に、以下の処理を行う（図６のＢ２）。すなわち、ＢＢＵ＃２は、Sync follow upメッセージに含まれたタイムスタンプＴ１を記憶する。タイムスタンプＴ１を記憶する処理は、「第２の処理」の一例である。ＢＢＵ＃２は、Sync follow upメッセージを次段のノード（ＢＢＵ＃３）へ転送する。
【００４５】
ＢＢＵ＃３は、Sync follow upメッセージの受信時に、以下の処理を行う（図６のＢ３）。すなわち、ＢＢＵ＃３は、Sync follow upメッセージに含まれたタイムスタンプＴ１を記憶する。タイムスタンプＴ１を記憶する処理は、「第２の処理」の一例である。ＢＢＵ＃３は、Sync follow upメッセージを次段のノード（ＢＢＵ＃Ｎ−１）へ転送する。
【００４６】
ＢＢＵ＃Ｎ−１は、Sync follow upメッセージの受信時に、以下の処理を行う（図６のＢ４）。すなわち、ＢＢＵ＃Ｎ−１は、Sync follow upメッセージに含まれたタイムスタンプＴ１を記憶する。タイムスタンプＴ１を記憶する処理は、「第２の処理」の一例である。ＢＢＵ＃３は、Sync follow upメッセージを次段のノード（ＢＢＵ＃Ｎ）へ転送する
。
【００４７】
ＢＢＵ＃Ｎは、Sync follow upメッセージの受信時に、以下の処理を行う（図６のＢ）。すなわち、ＢＢＵ＃Ｎは、Sync follow upメッセージに含まれたタイムスタンプＴ１として記憶する。
【００４８】
さらに、ＢＢＵ＃Ｎは、以下の処理を行う（図６のＣ）。すなわち、ＢＢＵ＃Ｎは、Delay Requestメッセージを生成し、ＰＴＰマスタに宛てて送信するとともに、Delay Requestメッセージの送信時刻をタイムスタンプ“Ｔ３”として記憶する。
【００４９】
ＢＢＵ＃Ｎ−１は、Delay Requestメッセージの受信時に、以下の処理を行う（図６の
Ｃ４）。すなわち、ＢＢＵ＃Ｎ−１は、ＢＢＵ＃Ｎ−１における滞留時間“Δｔｃ４”を、Delay RequestメッセージのCorrectionフィールドに加算し、Correctionフィールドが
更新されたDelay Requestメッセージを次段のノード（ＢＢＵ＃３）へ転送する。また、
ＢＢＵ＃Ｎ−１は、Delay Requestメッセージの送信時刻を“Ｔ３−４”として記憶する
。時刻“Ｔ３−４”は、「第３の時刻」の一例であり、“Ｔ３−４”を記憶する処理は、「第５の処理」の一例である。さらに、ＢＢＵ＃Ｎ−１は、Correctionフィールドに設定した値を滞留時間“ｔｃ−４”として記憶する。Correctionフィールドに設定した値は、Δｔｃ４を加算した後のCorrectionフィールド値である。滞留時間“ｔｃ−４”は、「第１時間」の一例であり、滞留時間“ｔｃ−４”を記憶する処理は、「第８の処理」の一例である。
【００５０】
ＢＢＵ＃３は、Delay Requestメッセージの受信時に、以下の処理を行う（図６のＣ３
）。すなわち、ＢＢＵ＃３は、ＢＢＵ＃３における滞留時間“Δｔｃ３”を、Delay RequestメッセージのCorrectionフィールドに加算し、Correctionフィールドが更新されたDelay Requestメッセージを次段のノード（ＢＢＵ＃２）へ転送する。また、ＢＢＵ＃３は、Delay Requestメッセージの送信時刻を“Ｔ３−３”として記憶する。時刻“Ｔ３−３”
は、「第３の時刻」の一例であり、“Ｔ３−３”を記憶する処理は、「第５の処理」の一例である。さらに、ＢＢＵ＃Ｎ−１は、Correctionフィールドに設定した値を滞留時間“ｔｃ−３”として記憶する。Correction フィールドに設定した値は、Δｔｃ３を加算し
た後のCorrectionフィールド値であり、例えば、Δｔｃ４とΔｔｃ３との累積値である。滞留時間“ｔｃ−３”は、「第１時間」の一例であり、滞留時間“ｔｃ−３”を記憶する処理は、「第８の処理」の一例である。
【００５１】
ＢＢＵ＃２は、Delay Requestメッセージの受信時に、以下の処理を行う（図６のＣ２
）。すなわち、ＢＢＵ＃２は、ＢＢＵ＃２における滞留時間“Δｔｃ２”を、Delay RequestメッセージのCorrectionフィールドに加算し、Correctionフィールドが更新されたDelay Requestメッセージを次段のノード（ＢＢＵ＃１）へ転送する。また、ＢＢＵ＃２は、Delay Requestメッセージの送信時刻を“Ｔ３−２”として記憶する。時刻“Ｔ３−２”
は、「第３の時刻」の一例であり、“Ｔ３−２”を記憶する処理は、「第５の処理」の一例である。さらに、ＢＢＵ＃Ｎ−１は、Correctionフィールドに設定した値を滞留時間“ｔｃ−２”として記憶する。Correctionフィールドに設定した値は、Δｔｃ２を加算した後のCorrectionフィールド値であり、例えば、Δｔｃ４とΔｔｃ３とΔｔｃ２との累積値である。滞留時間“ｔｃ−２”は、「第１時間」の一例であり、滞留時間“ｔｃ−２”を記憶する処理は、「第８の処理」の一例である。
【００５２】
ＢＢＵ＃１は、Delay Requestメッセージの受信時に、以下の処理を行う（図６のＣ１
）。すなわち、ＢＢＵ＃１は、ＢＢＵ＃１における滞留時間“Δｔｃ１”を、Delay RequestメッセージのCorrectionフィールドに加算し、Correctionフィールドが更新されたDelay Requestメッセージを次段のノード（ＰＴＰマスタ）へ転送する。また、ＢＢＵ＃１は
、Delay Requestメッセージの送信時刻を“Ｔ３−１”として記憶する。時刻“Ｔ３−１
”は、「第３の時刻」の一例であり、“Ｔ３−１”を記憶する処理は、「第５の処理」の一例である。さらに、ＢＢＵ＃Ｎ−１は、Correctionフィールドに設定した値を滞留時間“ｔｃ−１”として記憶する。Correctionフィールドに設定した値は、Δｔｃ１を加算した後のCorrectionフィールド値であり、例えば、Δｔｃ４とΔｔｃ３とΔｔｃ２とΔｔｃ１との累積値である。滞留時間“ｔｃ−１”は、「第１時間」の一例であり、滞留時間“ｔｃ−１”を記憶する処理は、「第８の処理」の一例である。
【００５３】
ＰＴＰマスタは、Delay Requestメッセージの受信時に、以下の処理を行う。すなわち
、ＰＴＰマスタは、Delay Requestメッセージの受信時刻をタイムスタンプ“Ｔ４”とし
て記憶する。タイムスタンプＴ４は、「第４の時刻」の一例である。また、ＰＴＰマスタは、タイムスタンプ“Ｔ４”を含むDelay Responseメッセージを生成し、ＰＴＰスレーブであるＢＢＵ＃Ｎに宛てて送信する。Delay ResponseメッセージのCorrectionフィールドには、Delay RequestメッセージのCorrectionフィールドの値（各中継ノードでの滞留時
間の和）が設定される。
【００５４】
ＢＢＵ＃１は、Delay Responseメッセージの受信時に、以下の処理を行う（図６のＤ１）。すなわち、ＢＢＵ＃１は、Delay Responseメッセージに含まれたタイプスタンプＴ４を取得して記憶する。タイプスタンプＴ４を取得する処理は、「第６の処理」の一例である。また、ＢＢＵ＃１は、Delay ResponseメッセージのCorrectionフィールドから値を抜き出す。当該値には、各中継ノード（ＢＢＵ＃１，ＢＢＵ＃２，ＢＢＵ＃３，ＢＢＵ＃Ｎ−１）で加算された各中継ノードにおけるDelay Requestメッセージの滞留時間が含まれ
ている。当該滞留時間は、ＢＢＵ＃１におけるオフセット計算に無用の時間である。このため、ＢＢＵ＃１は、Ｃ１で記憶した滞留時間ｔｃ−１（「第１時間」の一例）を、Correctionフィールドから抜き出した値（「第２時間」の一例）から減算し、減算結果を滞留時間“ｔｄ−１”として記憶する。なお、滞留時間ｔｄ−１の値は０になる。滞留時間“ｔｄ−１”は、「第２時間」の一例であり、滞留時間“ｔｄ−１”を取得して記憶する処理は、「第９の処理」の一例である。
【００５５】
ＢＢＵ＃１は、タイムスタンプＴ１，Ｔ２−１，Ｔ３−１，及びＴ４と、滞留時間ｔａ−１，及びｔｄ−１とを用いてオフセットを計算し、ＢＢＵ＃１における時刻をＰＴＰマスタの時刻に同期させることができる。例えば、タイムスタンプＴ１，Ｔ２−１，Ｔ３−１，及びＴ４を用いて、式４に基づいてオフセットを取得してよい。あるいは、タイムスタンプＴ１，Ｔ２−１，Ｔ３−１，及びＴ４と、滞留時間ｔａ−１及びｔｄ−１とを用いて、式５及び式６に基づいてオフセットを取得してよい。
【００５６】
例えば、式４に基づいてオフセットを取得する場合、ＢＢＵ＃１は、以下の式４．１の計算を行い、オフセットＸを得る。以下の式において、タイムスタンプや滞留時間の表記に用いられているハイフンは、アンダーバーで表記する。例えば、“Ｔ２−１”は“Ｔ２＿１”と表記する。
Ｘ＝｛（“Ｔ２＿１”−“Ｔ１”）−（“Ｔ４”−“Ｔ３＿１”）｝／２・・・（式４．１）
【００５７】
また、中継の通信装置における滞留時間を考慮してオフセットの精度を高める場合には、タイムスタンプ“Ｔ１”及び“Ｔ２−１（Ｔ２＿１）”と、滞留時間“ｔａ−１（ｔａ＿１）”とを用いて、以下の式６．１を用いてオフセットＸ（補正量）を算出する。
Ｘ＝“Ｔ２＿１”−“Ｔ１”−“平均伝送路遅延”−“ｔａ＿１（Correctionフィールドの値）”・・・（式６．１）
“平均伝送路遅延”は、例えば、ＢＢＵ＃１において、タイムスタンプ“Ｔ４”，“Ｔ１”，“Ｔ３＿１”及び“Ｔ２＿１”と、滞留時間“ｔａ＿１”及び“ｔｄ＿１”を用い
、以下の式５．１を用いて求めても良い。滞留時間“ｔａ＿１”は、「第１の滞留時間」の一例であり、滞留時間“ｔｄ＿１”は、「第２の滞留時間」の一例である。
平均伝送路遅延＝｛（“Ｔ４”−“Ｔ１”）−（“Ｔ３＿１”−“Ｔ２＿１”）｝−｛（“ｔａ＿１”＋“ｔｄ＿１”）／２・・・（式５．１）
上記式５．１における（“ｔａ＿１”＋“ｔｄ＿１”）は、ＢＢＵ＃１（ＴＣ）における滞留時間の総和（Correctionフィールドの値）を示す。このように、式５．１及び式６．１に基づいてオフセット量が求められることは、「第３の処理において、オフセット量を取得する際に、第１の滞留時間及び第２の滞留時間を考慮する」ことの一例である。
【００５８】
なお、平均伝送路遅延の値、或いは、平均伝送路遅延を求めるためのパラメータは、上記動作例で示したように、中継の通信装置（各ＢＢＵ＃１〜＃Ｎ−１）が取得しても良く、通信により他の通信装置から取得されても良い。平均伝送路遅延やパラメータを他の通信装置から得る場合、中継の通信装置がスレーブからマスタへの伝送路遅延を求めるためのタイムスタンプを得る処理、すなわち、各時刻“Ｔ３−ｘ”及び“Ｔ４−ｘ”（ｘは正の整数）を得る処理は、省略され得る。また、各中継の通信装置において、平均伝送路遅延の代わりに片道の伝送路遅延（遅延時間）を用いることもあり得る。
【００５９】
ＢＢＵ＃１は、補正量（オフセットＸ）を求めると、ＢＢＵ＃１の基準時刻をオフセットＸがゼロになるように補正する。これによって、ＢＢＵ＃１の基準時刻とＰＴＰマスタの基準時刻との差分がゼロになる。
【００６０】
ＢＢＵ＃２は、Delay Responseメッセージの受信時に、以下の処理を行う（図６のＤ２）。すなわち、ＢＢＵ＃２は、Delay Responseメッセージに含まれたタイムスタンプＴ４を取得して記憶する。タイプスタンプＴ４を取得する処理は、「第６の処理」の一例である。また、ＢＢＵ＃２は、Delay ResponseメッセージのCorrectionフィールドから値を抜き出す。当該値には、無用の時間である、ＢＢＵ＃２，ＢＢＵ＃３，及びＢＢＵ＃Ｎ−１で加算された滞留時間が含まれている。このため、ＢＢＵ＃２は、Ｃ２で記憶した滞留時間ｔｃ−２（「第１時間」の一例）を、Correctionフィールドから抜き出した値（「第２時間」の一例）から減算し、減算結果を滞留時間“ｔｄ−２”として記憶する。例えば、滞留時間“ｔｄ−２”は、Delay Requestメッセージを転送した前段のノードであるＢＢ
Ｕ＃１での滞留時間“Δｔｃ１”となる。滞留時間“ｔｄ−２”は、「第２の滞留時間」の一例であり、滞留時間“ｔｄ−２”を取得して記憶する処理は、「第９の処理」の一例である。
【００６１】
ＢＢＵ＃２は、タイムスタンプＴ１，Ｔ２−２，Ｔ３−２，Ｔ４と、滞留時間ｔａ−２，ｔｄ−２とを用いてオフセットを計算し、ＢＢＵ＃２における時刻を補正してＰＴＰマスタの時刻に同期させることができる。
【００６２】
例えば、式４に基づいてオフセットを取得する場合、ＢＢＵ＃２は、以下の式４．２の計算を行い、オフセットＸを得る。
Ｘ＝｛（“Ｔ２＿２”−“Ｔ１”）−（“Ｔ４”−“Ｔ３＿２”）｝／２・・・（式４．２）
【００６３】
また、式６に基づきオフセットを取得する場合では、タイムスタンプ“Ｔ１”及び“Ｔ２−２（Ｔ２＿２）”と、滞留時間“ｔａ−２（ｔａ＿２）”とを用いてオフセットＸ（補正量）を算出する。
Ｘ＝“Ｔ２＿２”−“Ｔ１”−“平均伝送路遅延”−“ｔａ＿２（Correctionフィールドの値）”・・・（式６．２）
“平均伝送路遅延”は、例えば、ＢＢＵ＃２において、以下の式５．２を用いて求めても良い。
平均伝送路遅延＝｛（“Ｔ４”−“Ｔ１”）−（“Ｔ３＿２”−“Ｔ２＿２”）｝−｛（“ｔａ＿２”＋“ｔｄ＿２”）／２・・・（式５．２）
上記式５．２における（“ｔａ＿２”＋“ｔｄ＿２”）は、ＢＢＵ＃２（ＴＣ）における滞留時間の総和（Correctionフィールドの値）を示す。式５．２及び式６．２を用いたオフセット量の算出は、「第３の処理において、オフセット量を取得する際に、第１の滞留時間及び第２の滞留時間を考慮する」ことの一例である。
【００６４】
ＢＢＵ＃３は、Delay Responseメッセージの受信時に、以下の処理を行う（図６のＤ３）。すなわち、ＢＢＵ＃３は、Delay Responseメッセージに含まれたタイムスタンプＴ４を取得して記憶する。タイプスタンプＴ４を取得する処理は、「第６の処理」の一例である。また、ＢＢＵ＃３は、Delay ResponseメッセージのCorrectionフィールドから値を抜き出す。当該値には、無用の時間である、ＢＢＵ＃３，及びＢＢＵ＃Ｎ−１で加算した滞留時間が含まれている。このため、ＢＢＵ＃３は、Ｃ３で記憶した滞留時間ｔｃ−３（「第１時間」の一例）を、Correctionフィールドから抜き出した値（「第２時間」の一例）から減算し、減算結果を滞留時間“ｔｄ−３”として記憶する。例えば、滞留時間“ｔｄ−２”は、Delay Requestメッセージを転送した前段のノードであるＢＢＵ＃１での滞留
時間“Δｔｃ１”とＢＢＵ＃２での滞留時間“Δｔｃ２”との累積値となる。滞留時間“ｔｄ−３”は、「第２の滞留時間」の一例であり、滞留時間“ｔｄ−３”を取得して記憶する処理は、「第９の処理」の一例である。
【００６５】
ＢＢＵ＃３は、タイムスタンプＴ１，Ｔ２−３，Ｔ３−３，Ｔ４と、滞留時間ｔａ−３及びｔｄ−３とを用いてオフセットを計算し、ＢＢＵ＃３における時刻を補正してＰＴＰマスタの時刻に同期させることができる。
【００６６】
例えば、式４に基づいてオフセットを取得する場合、ＢＢＵ＃３は、以下の式４．３の計算を行い、オフセットＸを得る。
Ｘ＝｛（“Ｔ２＿３”−“Ｔ１”）−（“Ｔ４”−“Ｔ３＿３”）｝／２・・・（式４．３）
【００６７】
また、式６に基づきオフセットを取得する場合では、以下の式６．３を用いてオフセットＸ（補正量）を算出する。
Ｘ＝“Ｔ２＿３”−“Ｔ１”−“平均伝送路遅延”−“ｔａ＿３（Correctionフィールドの値）”・・・（式６．３）
“平均伝送路遅延”は、例えば、ＢＢＵ＃３において、以下の式５．３を用いて求めても良い。
平均伝送路遅延＝｛（“Ｔ４”−“Ｔ１”）−（“Ｔ３＿２”−“Ｔ２＿２”）｝−｛（“ｔａ＿２”＋“ｔｄ＿２”）／２・・・（式５．３）
上記式５．３における（“ｔａ＿３”＋“ｔｄ＿３”）は、ＢＢＵ＃３（ＴＣ）における滞留時間の総和（Correctionフィールドの値）を示す。式５．３及び式６．３を用いたオフセット量の算出は、「第３の処理において、オフセット量を取得する際に、第１の滞留時間及び第２の滞留時間を考慮する」ことの一例である。
【００６８】
ＢＢＵ＃Ｎ−１は、Delay Responseメッセージの受信時に、以下の処理を行う（図６のＤ４）。すなわち、ＢＢＵ＃Ｎ−１は、Delay Responseメッセージに含まれたタイムスタンプＴ４を取得して記憶する。タイプスタンプＴ４を取得する処理は、「第６の処理」の一例である。また、ＢＢＵ＃Ｎ−１は、Delay ResponseメッセージのCorrectionフィールドから値を抜き出す。当該値には、無用の時間である、ＢＢＵ＃Ｎ−１で加算した滞留時間が含まれている。このため、ＢＢＵ＃Ｎ−１は、Ｃ４で記憶した滞留時間ｔｃ−４（「第１時間」の一例）を、Correctionフィールドから抜き出した値（「第２時間」の一例）から減算し、減算結果を滞留時間“ｔｄ−４”として記憶する。例えば、滞留時間“ｔｄ
−４”は、Delay Requestメッセージを転送した前段のノードであるＢＢＵ＃１での滞留
時間“Δｔｃ１”とＢＢＵ＃２での滞留時間“Δｔｃ２”とＢＢＵ＃３での滞留時間“Δｔｃ３”との累積値となる。滞留時間“ｔｄ−４”は、「第２の滞留時間」の一例であり、滞留時間“ｔｄ−４”を取得して記憶する処理は、「第９の処理」の一例である。
【００６９】
ＢＢＵ＃Ｎ−１は、タイムスタンプＴ１，Ｔ２−４，Ｔ３−４，Ｔ４と、滞留時間ｔａ−４，ｔｄ−４とを用いてオフセットを計算し、ＢＢＵ＃Ｎ−１における時刻を補正してＰＴＰマスタの時刻に同期させることができる。
【００７０】
例えば、式４に基づいてオフセットを取得する場合、ＢＢＵ＃Ｎ−１は、以下の式４．４の計算を行い、オフセットＸを得る。
Ｘ＝｛（“Ｔ２＿４”−“Ｔ１”）−（“Ｔ４”−“Ｔ３＿４”）｝／２・・・（式４．４）
【００７１】
また、式６に基づきオフセットを取得する場合では、以下の式６．４を用いてオフセットＸ（補正量）を算出する。
Ｘ＝“Ｔ２＿４”−“Ｔ１”−“平均伝送路遅延”−“ｔａ＿４（Correctionフィールドの値）”・・・（式６．４）
“平均伝送路遅延”は、例えば、ＢＢＵ＃Ｎ−１において、以下の式５．４を用いて求めても良い。
平均伝送路遅延＝｛（“Ｔ４”−“Ｔ１”）−（“Ｔ３＿４”−“Ｔ２＿４”）｝−｛（“ｔａ＿４”＋“ｔｄ＿４”）／２・・・（式５．４）
上記式５．４における（“ｔａ＿４”＋“ｔｄ＿４”）は、ＢＢＵ＃Ｎ−１（ＴＣ）における滞留時間の総和（Correctionフィールドの値）を示す。式５．４及び式６．４を用いたオフセット量の算出は、「第３の処理において、オフセット量を取得する際に、第１の滞留時間及び第２の滞留時間を考慮する」ことの一例である。
【００７２】
ＢＢＵ＃Ｎ（スレーブ）は、Delay Responseメッセージの受信時に、以下の処理を行う（図６のＤ）。すなわち、ＢＢＵ＃Ｎは、Delay Responseメッセージに含まれたタイムスタンプＴ４を記憶する。また、ＢＢＵ＃Ｎは、Delay ResponseメッセージのCorrectionフィールドから値を抜き出し、滞留時間“ｔｄ”として記憶する。
【００７３】
ＢＢＵ＃Ｎは、タイムスタンプＴ１，Ｔ２，Ｔ３，Ｔ４と、滞留時間ｔａ，ｔｄとを用いてオフセットを計算し、ＢＢＵ＃Ｎ−１における時刻を補正してＰＴＰマスタの時刻に同期させることができる。上記した動作が、１秒間に所定回数（例えば、秒間１６回）、行われる。
【００７４】
以上の説明において、ＰＴＰメッセージ（ＰＴＰパケット）は、「時刻同期信号」の一例である。Syncメッセージは、「第１の時刻同期信号」の一例であり、Sync follow upメッセージは、「第２の時刻同期信号」の一例である。Delay Requestメッセージは、「第
３の時刻同期信号」の一例であり、Delay Responseメッセージは、「第４の時刻同期信号」の一例である。オフセット計算は、「マスタノードの基準時刻に通信装置の基準時刻を同期させる計算」、「計算処理」の一例である。
【００７５】
また、Correction フィールドは、「前記第１〜第４の時刻同期信号のそれぞれを中継
する各通信装置における滞留時間が加算される領域」の一例である。また、ｔａ−ｘ，ｔｃ−ｘ，ｔｄ−ｘ（ｘは１以上の整数）は、「滞留時間」の一例であり、ｔａ−ｘは、「第１の滞留時間」の一例である。ｔｃ−ｘは、「第１時間」の一例であり、Delay Responseメッセージの受信時にCorrectionフィールドに格納されている値は、「第２時間」の一例である。ｔｄ−ｘは、「第２の滞留時間」の一例である。
【００７６】
以上説明した動作例によれば、ＰＴＰマスタとＰＴＰスレーブ（ＢＢＵ＃Ｎ）との間でのＰＴＰ同期処理が実行されている間に、中継ノードであるＢＢＵ＃１，ＢＢＵ＃２，ＢＢＵ＃３，ＢＢＵ＃Ｎ−１でも、ＰＴＰメッセージを用いたＰＴＰ同期が行われる。したがって、参考例と比較して、ＰＴＰマスタと各ＢＢＵとの間での個別のＰＴＰ同期処理のためのＰＴＰメッセージの送受信を省略できるため、ネットワークの負荷を低減することできる。また、ＰＴＰマスタの負荷を軽減することもできる。
【００７７】
なお、図６を用いて説明した動作例において、各中継ノードが、上記で取得したタイムスタンプ及び滞留時間のうち、タイムスタンプのみを用いてオフセットを式４に基づき求め、基準クロック及び基準タイミングを補正しても良い。すなわち、滞留時間をオフセット計算に使用しないこともある。
【００７８】
また、上述したように、式４に基づくオフセット量の算出方法より精度の高いオフセット量を求める方法として、滞留時間を用いた式５及び式６に基づくオフセット量の算出方法がある。この場合、既に説明したように、式５の“Correctionフィールドの値（ＴＣの滞留時間の総和）”に関して、中継装置は、滞留時間“ｔａ−ｘ”と“ｔｄ−ｘ”を加算した値を用い、スレーブ装置は、滞留時間ｔａとｔｄを加算した値を用いる。また式６の“Correctionフィールドの値(Syncメッセージに対する滞留時間)”に関して、中継装置は“ｔａ−ｘ”を用い、スレーブ装置は、“ｔａ”を用いる。
【００７９】
＜＜リングプロトコル＞＞
図５に示したネットワークに係る複数のＢＢＵ３は、リング型のトポロジを有する。この場合、中継ノードとして動作するＢＢＵ３やＰＴＰメッセージを中継するリンクで障害が発生した場合には、ＰＴＰマスタとＰＴＰスレーブとの間でＰＴＰ同期が確立できない問題が生じ得る。次に、実施形態１で適用されるリングプロトコルについて説明する。
【００８０】
リング型のトポロジで形成されたリング型ネットワークでは、リングを形成するノード（ネットワーク機器、データ転送装置）やノード間を結ぶリンク（伝送路）のいずれか一つにでも障害が発生すると、データの流れが途絶える。このため、ネットワークの障害検出と経路切替が行われる。
【００８１】
図７は、リングプロトコルが適用されるネットワーク機器の接続例を示す。図７では、複数のノード（ネットワーク機器、データ転送装置）が、リング状に接続されており、複数のノードの一つが、マスタノード（Master Node）に設定されている。残りのノードは
、トランジットノード（Transit Node）に設定されている。図７の例ではトランジットノード＃１〜＃４が例示されている。
【００８２】
マスタノードのリングに属するポートの一つは、プライマリポート（Primary Port）に設定され、もう一つは、セカンダリポート（Secondary Port）に設定されている。プライマリポートは、トランジットノード＃１に接続され、セカンダリポートは、トランジットノード＃４に接続されている。
【００８３】
マスタノードは、リングの状態が正常かどうかを監視するノードである。マスタノードは、プライマリポート（Primary Port）からヘルスチェックフレームを送信する。ヘルスチェックフレームの転送順は、トランジットノード＃１→トランジットノード＃２→トランジットノード＃３→トランジットノード＃４→マスタノードである。
【００８４】
マスタノードは、プライマリポートから送信したヘルスチェックフレームがリングを一周してセカンダリポートから戻ってくるか否かを以て、ネットワークの正常性を判定する
。ヘルスチェックフレームが戻ってきたときには、マスタノードはネットワークが正常と判定し、戻ってこなければ、マスタノードはネットワークに障害発生と判定する。
【００８５】
トランジットノード(Transit Node)＃１〜＃４は、マスタノードからのヘルスチェックフレームはそのまま転送し、障害検出時には制御フレームをマスタノードに送信するノードである。図７の例では、トランジットノード＃１〜＃４が例示されている。
【００８６】
図７の例では、マスタノードのプライマリポートに対し、回線の全データが送受信可能なフォワーディング（Fording）状態が設定されている。一方、セカンダリポートには、
ヘルスチェックフレームと、障害箇所を通知する制御フレームとを受信し、ヘルスチェックフレーム及び制御フレーム以外のフレーム（例えばデータフレーム）はブロックするブロッキング（Blocking）状態が設定されている。ブロッキング状態は、ループが発生した場合に、転送フレームが無限に巡回して帯域を圧迫し、通信不通状態に陥る可能性を回避する。
【００８７】
図８は、リングプロトコルの障害発生時における動作の説明図である。図８に示す例では、トランジットノード＃１とトランジットノード＃２との間のリンクに障害が発生している（図８（１））。リンク障害は、トランジットノード＃１とトランジットノード＃２のそれぞれで検出される。
【００８８】
障害を検知したトランジットノード＃１及びトランジットノード＃２は、制御フレームをマスタノードに送信し、障害が発生した旨をマスタノードに伝える（図８（２））。
【００８９】
マスタノードは、セカンダリポートからヘルスチェックフレームが受信されなくなることで、リングの障害を検知することができる。マスタノードは、制御フレームに含まれる情報を用いて障害箇所を特定し、障害箇所を回避したルート変更を行う。
【００９０】
図８の例では、マスタノードは、プライマリポートに到着したトランジットノード＃１からの制御フレームと、セカンダリポートに到着したトランジットノード＃２からの制御フレームとの少なくとも一方から、障害箇所を示す情報を得られる。マスタノードは、当該情報に基づき、障害箇所を特定することができる。
【００９１】
マスタノードは、セカンダリポートの状態をブロッキング状態からフォワーディング状態に遷移させる。そして、マスタノードは、障害箇所を回避したフレームのルート変更を行う。図８の例では、フレームのルートは、第１のルートと第２のルートとに変更される。
【００９２】
第１のルートでは、フレームは、プライマリポートからトランジットノード＃１へ送信される。一方、第２のルートでは、フレームは、セカンダリポートから送信され、トランジットノード＃４，及びトランジットノード＃３を経てトランジットノード＃２に到着する。
【００９３】
図９は、リングプロトコルの障害復旧時の動作を説明する図である。マスタノードは、は、障害の検知後もヘルスチェックフレームの送信を継続し、セカンダリポートにヘルスチェックフレームが届かない限り、障害が継続中であると判定する。
【００９４】
リンクが修復され、リングが正常になると、ヘルスチェックフレームがセカンダリポートに到着する状態となる。マスタノードは、セカンダリポートへのヘルスチェックフレームの到着を以て、障害からの復旧を認識する。すると、マスタノードは、セカンダリポートをフォワーディング状態からブロッキング状態へ変更するととともに、フレームの通信
ルートを図７に示した元の形態に戻す。
【００９５】
＜＜リングプロトコルの適用例＞＞
図５に示したネットワークシステムに対し、上述したリングプロトコルが適用される。図１０は、図５に示したネットワークシステムに対するリングプロトコルの適用例を示す。図１０において、ＢＢＵ＃１は、図７に示すリングにおけるマスタノード（「リングマスタ」ともいう）として動作する。一方、ＢＢＵ＃２，ＢＢＵ＃３，ＢＢＵ＃Ｎ−１，及びＢＢＵ＃Ｎは、トランジットノード（単に「トランジット」ともいう）＃１〜＃４として動作する。
【００９６】
ＢＢＵ＃１は、「中継ノード」の一例であり、ＢＢＵ＃２〜＃Ｎのそれぞれは、「中継ノードとともにリングを形成する複数のノード」の一例である。ＢＢＵ＃Ｎは、「前記リングにおいて前記中継ノードと隣接する、前記スレーブノードとなる前記複数のノード中の第１ノード」の一例である。
【００９７】
リングプロトコルに基づく通信ルートの切替動作は以下のようにして行われる。初期設定によって、リングマスタとして動作するＢＢＵを１台決定する。リングマスタは、リングネットワークを形成する他のＢＢＵを、リング／ＰＴＰ管理テーブル（以下単に「管理テーブル」と表記）を用いて一元管理し、障害発生時におけるＰＴＰメッセージのルート（経路）の切り替え動作を行う。
【００９８】
ＢＢＵ＃１（リングプロトコルのマスタノード）は、管理テーブルを具備する。図１１は、管理テーブルのデータ構造例及び初期設定情報の例を示す。管理テーブルは、リングを形成するノード毎のエントリを含む。
【００９９】
エントリは、ノード（ＢＢＵ）に対応する、「ＰＴＰプロトコル」，「リングプロトコル」，「リング状態」，「リングポート番号」，「リング回線状態」，「プライマリ／セカンダリポート」を含み、リングマスタはこれらを管理する。
【０１００】
「ＰＴＰプロトコル」は、ＰＴＰプロトコルにおけるノードの種別（役割）を示す。すなわち、「ＰＴＰプロトコル」として、ノード（ＢＢＵ）が、「中継」と「スレーブ」とのいずれで動作するかを示す情報が格納される。情報は、例えばフラグであっても良く、「中継」又は「スレーブ」を示すコードであっても良い。
【０１０１】
「リングプロトコル」は、リングプロトコルにおけるノードの種別（役割）を示す。すなわち、「リングプロトコル」として、ノード（ＢＢＵ）がリングプロトコルにおけるリングマスタとして動作するか所定番号を有する「トランジット」として動作するかを示す情報が格納される。情報は、例えばフラグであっても良く、「マスタ」及び「トランジット（番号）」を示すコードであっても良い。
【０１０２】
「リング状態」は、正常動作時における障害監視状態と、障害発生時における復旧監視状態との一方を示す情報である。情報は、上記したようにフラグであってもコードであっても良い。
【０１０３】
「リングポート番号」は、ＢＢＵが具備する複数の外部回線のポートのうち、リング接続に使用するポートの番号を示す。「リング回線状態」は、リングポート番号で特定される回線の状態を示す。回線の状態は、ブロッキングとフォワーディングとの一方で表される。ブロッキングは、ヘルスチェックフレームや制御フレームを通過させて、これら以外のフレームを遮断する回線状態である。フォワーディングは、ヘルスチェックフレーム及びヘルスチェックフレーム以外のフレームを通過させる。
【０１０４】
「プライマリ／セカンダリポート」（プライマリ／セカンダリ指定部ともいう）は、リングポート番号で特定されるポート（回線）が、プライマリポートとセカンダリポートとのいずれであるかを示す情報である。
【０１０５】
図１０に示すようなリングネットワークを形成するために、管理テーブルには、図１１に示すような情報が設定される。すなわち、「ＰＴＰプロトコル」については、最終段のＢＢＵ＃ＮがＰＴＰスレーブとなる設定が行われる。「リングプロトコル」については、ＢＢＵ＃１がリングマスタとなり、ＢＢＵ＃２〜＃Ｎがトランジット＃１〜＃Ｎとなる設定が行われる。
【０１０６】
また、リングマスタとの設定がなされたＢＢＵ＃１のエントリにおいて、ＢＢＵ＃１が具備するリングプロトコル用の２つのポートの一方が「プライマリポート」に設定され、他方が「セカンダリポート」に設定される。また、マスタノードのプライマリポートが「フォワーディング」に設定され、セカンダリポートが「ブロッキング」に設定される。また、ＢＢＵ＃Ｎに関して、ポート＃１は「フォワーディング」に設定され、ポート＃２は「ブロッキング」に設定される。残りの各トランジットノードが具備するリングプロトコル用のポートには、「フォワーディング」が設定される。
【０１０７】
そして、ＢＢＵ＃１（リングマスタ）のエントリの「リング状態」が「障害監視」に設定される。当該設定は、プライマリポートから送信されるヘルスチェックフレームがセカンダリポートで受信できるか否かを以てリングの状態を監視するためである。
【０１０８】
図１２は、図１０に示したネットワークシステムにおけるヘルスチェックの通過ルートを示す。リングの障害監視方法としては、ヘルスチェックフレームを用いる。但し、図７の例におけるヘルスチェックフレームの転送経路の一部については、ＰＴＰフレーム（ＰＰＴＰパケット）をヘルスチェックフレームとして用いる。
【０１０９】
図１０に示すネットワークシステムの構成では、ＰＴＰマスタ（PTP-MASTER）とスレーブであるＢＢＵ＃Ｎとの間で送受信されるＰＴＰパケットは、ＢＢＵ＃１のプライマリポートを経由する。このため、ＰＴＰパケットの転送経路上の導通性は確認できる。これに対し、ＢＢＵ＃ＮとＢＢＵ＃１との間は、ＰＴＰパケットが通過しないため、導通性を確認できない。
【０１１０】
このため、ＰＴＰスレーブであるＢＢＵ＃Ｎは、図１２に示すように、ＰＴＰマスタからのSyncメッセージを受信した場合には、ＢＢＵ＃１（リングマスタ）宛にヘルスチェックフレームを送信する。ＢＢＵ＃１（リングマスタ）は、ヘルスチェックフレームを受信したことを以て、リングネットワークが正常であると判定する。
【０１１１】
図１３は、図１０に示したネットワークシステムの例（リングネットワーク）において、リング断発生時における挙動を示す。図１４は、障害発生時における管理テーブルの登録内容（格納内容の遷移）を示す。
【０１１２】
ＢＢＵ＃１（リングマスタ）がセカンダリポートでヘルスチェックフレームを受信している間は、リングネットワークは正常である。これに対し、リングネットワークに障害が発生すると（図１３（１））、ＢＢＵ＃１（リングマスタ）はセカンダリポートでヘルスチェックフレームを受信できなくなる。これを以てＢＢＵ＃１は、障害を検知する（図１３（２ａ））。図１３の例では、ＢＢＵ＃２とＢＢＵ＃３との間のリンク障害（リンク切れ）によってリングが切断されている。
【０１１３】
リングの切断は、リンクを収容するＢＢＵ＃２（トランジット＃１）及びＢＢＵ＃３（トランジット＃２）のそれぞれで検出される。ＢＢＵ＃２（トランジット＃１）及びＢＢＵ＃３（トランジット＃２）のそれぞれは、リング障害を示す制御フレームをＢＢＵ＃１（リングマスタ）に送信する（図１３（２ｂ），（２ｃ））。ＢＢＵ＃１（リングマスタ）は、制御フレームに含まれる情報を元に、障害箇所を特定することができる。制御フレームは、「前記リングの障害時に受信される制御情報」の一例である。
【０１１４】
ＢＢＵ＃１（リングマスタ）は、リング切断を検知し、制御フレームで障害箇所を特定すると、セカンダリポートをブロッキング状態からフォワーディング状態に遷移させる（図１３（３））。これにより、新たにＰＴＰスレーブとなるＢＢＵ＃３宛のフレームがＢＢＵ＃Ｎへ送信されるようにする。
【０１１５】
また、ＢＢＵ＃１は、ＰＴＰスレーブの切り替えを行う。すなわち、ＢＢＵ＃１は、障害箇所（リングの切断箇所）がＢＢＵ＃２とＢＢＵ＃３との間と特定すると、ＰＴＰマスタに対し、ＢＢＵ＃２及びＢＢＵ＃３のそれぞれ（制御フレームの送信元）を、ＰＴＰスレーブに変更するための通知を行う。通知によって、ＰＴＰマスタからは、ＰＴＰスレーブとなるＢＢＵ＃２，ＢＢＵ＃３のそれぞれに宛てられたＰＴＰメッセージが送信されるようになる。ＢＢＵ＃２，ＢＢＵ＃３は、「前記障害箇所に基づき決定した前記複数のノード中の第２ノード」の一例である。ＢＢＵ＃２は、「前記リングの障害発生により前記第１ノードと切断されたノード」の一例であり、ＢＢＵ＃３は、「前記リングの障害発生後も前記第１ノードと接続されているノード」の一例である。
【０１１６】
また、ＢＢＵ＃１（リングマスタ）は、例えば、ＢＢＵ＃２及びＢＢＵ＃３にスレーブとして動作し、ＢＢＵ＃Ｎに中継ノードとして動作するための通知を送るようにしても良い。但し、各ＢＢＵに対し、ＰＴＰメッセージが自分宛でなければ中継ノードとして動作し、ＰＴＰメッセージが自分宛であればＰＴＰスレーブとして動作するための設定が予めなされている場合には、上記した通知の送信は省略し得る。また、ＢＢＵ＃１（リングマスタ）は、リング状態を障害監視状態から復旧監視状態に遷移させる。
【０１１７】
ヘルスチェックに関しては、新たにＰＴＰスレーブとなるＢＢＵ＃２が、ＰＴＰメッセージ（例えばSync）の受信を契機にＢＢＵ＃１宛てのヘルスチェックフレームをＢＢＵ＃２へ向けて送信するように、ＢＢＵ＃１（リングマスタ）がＢＢＵ＃２に指示する。この例では、ＢＢＵ＃２およびＢＢＵ＃３の二つのＰＴＰスレーブのうち、障害前にＰＴＰ待マスタから見て上流にある（若い番号を有する）ＢＢＵ＃２がヘルスチェックフレームを送信する。
【０１１８】
当該指示は、「前記第１ノードと切断されたノードに対し、前記マスタノードからの時刻同期信号の受信を契機に前記第１ノード経由で前記中継ノードに到達するヘルスチェック信号を送信すること」の指示の一例である。
【０１１９】
図１５は、ヘルスチェックメッセージの転送経路を示す。上述したように、ＰＴＰスレーブの変更によって、ＰＴＰメッセージのやりとりが、新たにＰＴＰスレーブとなったＢＢＵ＃２およびＢＢＵ＃３と、ＰＴＰマスタとの間で行われる。ＢＢＵ＃２は、Syncメッセージの受信を契機に、ＢＢＵ＃１（リングマスタ）宛のヘルスチェックフレームを、ＢＢＵ＃３へ向けて送信する。リンクが障害の間、ヘルスチェックフレームは、ＢＢＵ＃３に到着しない。しかし、リンクが修復され、リングが復旧すると、ヘルスチェックフレームは、ＢＢＵ＃１のセカンダリポートへ到着する。ＢＢＵ＃１は、ヘルスチェックフレームの到着を以て、リングの復旧を認識できる。
【０１２０】
図１６は、リング復旧時における動作の説明図であり、図１７は、リング復旧時におけ
る管理テーブルの登録内容（格納内容の遷移）を示す。図１６に示すように、ＢＢＵ＃２とＢＢＵ＃３との間のリンクが修復され、リングが復旧すると、ＢＢＵ＃２から送信されるヘルスチェックフレームが、ＢＢＵ＃３、ＢＢＵ＃Ｎ−１、ＢＢＵ＃Ｎを経てＢＢＵ＃１のセカンダリポートに到着する。これによって、ＢＢＵ＃１は、リングの復旧を認識する。
【０１２１】
すると、ＢＢＵ＃１は、セカンダリポートの状態をフォワーディングからブロッキングに遷移させる。また、ＢＢＵ＃１は、ＰＴＰマスタが再びＢＢＵ＃Ｎ宛のＰＴＰメッセージを送信するための通知をＰＴＰマスタに送る。そして、ＢＢＵ＃２およびＢＢＵ＃３が中継ノードとして動作するとともに、ＢＢＵ＃ＮがＰＴＰスレーブとして動作するための通知を送る。但し、ＢＢＵ＃２及びＢＢＵ＃３が、ＰＴＰメッセージについて、ＰＴＰメッセージの宛先が自身であればＰＴＰスレーブとして動作し、自身でなければ中継ノードとして動作する設定となっている場合には、上記通知は不要である。そして、ＢＢＵ＃１（リングマスタ）は、復旧監視状態から障害監視状態へ遷移する。以上によって、図１７に示すように、ＢＢＵ＃１の管理テーブルの登録内容は、障害発生前の状態に戻る。
【０１２２】
＜装置構成例＞
図１８は、実施形態における各ＢＢＵの構成例を示す図である。図１８において、ネットワークシステムは、ＰＴＰマスタ１と、複数のＢＢＵ３（ＢＢＵ＃１〜ＢＢＵ＃Ｎ）と、各ＢＢＵ３に接続されたＲＲＨ４とを含む。ＢＢＵ３とＲＲＨ４とで、基地局装置が形成される。但し、ＢＢＵ３とＲＲＨ４との関係は１：１に限られず、１：Ｎになることもある。
【０１２３】
複数のＢＢＵ３は、同じ構成を有しているのでＢＢＵ＃１を例に説明する。ＢＢＵ＃１は、Ｎ個のネットワーク終端部（ＮＷ終端部）３１と、装置内スイッチ（装置内ＳＷ）３２と、ＰＴＰ処理部３３と、同期／クロック処理部（SYNC／ＣＬＫ）処理部３４と、ベースバンド（ＢＢ）部３５と、Common Public Radio Interface（ＣＰＲＩ）インタフェー
ス（ＣＰＲＩ  ＩＦ）３６と、監視制御部３７と、リング／ＰＴＰ制御部３８と、を含む。
【０１２４】
各ＮＷ終端部３１（ＮＷ終端部＃１〜Ｎ）は、上位ネットワーク（図示せず），他のＢＢＵ３，ＰＴＰマスタ１と各種パケットの送受信を行う。例えば、基地局装置がLong Term Evolution（ＬＴＥ）における基地局（ｅＮＢ）として動作する場合には、上位ネット
ワークは、ＬＴＥにおけるコアネットワークである。但し、基地局装置が準拠又は適合する無線通信規格はＬＴＥ以外の規格であっても良い。
【０１２５】
さらに、ＢＢＵ＃１，ＢＢＵ＃２，及びＢＢＵ＃３が備えるＮＷ終端部３１は、トランスペアレントクロック時（中継ノードとして動作する場合）において、ＰＴＰパケットの送受信時刻（滞留時間）をCorrectionフィールドに加算する処理を行う。
【０１２６】
装置内ＳＷは、ＢＢＵ３内のブロック間（ＮＷ終端部３１，ＰＴＰ処理部３３，ＢＢ部３５，ＣＰＲＩ  ＩＦ３６，リング／ＰＴＰ制御部３８，監視制御部３７間）におけるパケット送受信のために、パケットのスイッチングを行う。
【０１２７】
ＰＴＰ処理部３３は、ＰＴＰスレーブとしての動作を司る。ＰＴＰ処理部３３は、ＰＴＰスレーブとして、ＰＴＰパケット送受信による時刻情報（タイムスタンプ）の抽出を行う。また、ＰＴＰ処理部３３は、中継ノードとして動作する場合における、同期確立処理を行う。
【０１２８】
同期／クロック処理部３４は、ＰＴＰメッセージの交換により取得した時刻情報に合わ
せた基準クロック及びタイミングの生成を行う。ＢＢ部３５は、無線通信対象のデータとベースバンド信号との間の変換処理を行う。ＣＰＲＩ  ＩＦ３６は、ベースバンド信号をＣＰＲＩ信号に変換してＲＲＨ４へ送る。また、ＣＰＲＩ  ＩＦ３６は、ＲＲＨ４から受信されたＣＰＲＩ信号をベースバンド信号に変換する。
【０１２９】
監視制御部３７は、ＢＢＵ３内における処理乃至動作の監視及び制御、並びにＲＲＨ４や上位装置との通信を行う。リング／ＰＴＰ制御部３８は、リングの障害発生時にリングプロトコルに基づく動作に追従して、ＰＴＰスレーブの切り替え処理を行う。管理テーブルは、リング／ＰＴＰ制御部３８によって管理される。リング／ＰＴＰ制御部３８は、「制御部」の一例である。
【０１３０】
図１９は、リング／ＰＴＰ制御部３８の構成例を示す図である。図１９に示す例では、リング／ＰＴＰ制御部３８は、リングマスタ部５１と、トランジット部５２と、デマルチプレクサ（ＤＭＵＸ）５３と、マルチプレクサ（ＭＵＸ）５４とを含む。
【０１３１】
リングマスタ部５１は、リング／ＰＴＰ管理テーブル（管理テーブル）５５と、リング／ＰＴＰ状態管理部５６と、ヘルスチェック受信部５７と、制御フレーム受信部５８とを含む。トランジット部５２は、トランジット制御部５９と、ヘルスチェック送信部６０と、制御フレーム送信部６１とを含む。
【０１３２】
管理テーブル５５には、汎用ポートから入力される、ネットワークの形態に応じた初期設定の情報が格納される。管理テーブル５５に係る情報の読み出し及び書き込みは、例えば、リング／ＰＴＰ状態管理部（以下「状態管理部」とも表記）５６で行われる。
【０１３３】
状態管理部５６は、ＢＢＵ３がリングマスタとして動作する場合に、管理テーブル５５に格納された情報に基づいて、リングネットワーク内のトランジットノードとして動作するＢＢＵ３の動作を制御する。各ＢＢＵ３の制御は、装置内ＳＷ３２経由で、ＢＢＵ制御用の信号や情報を含む主信号を対象のＢＢＵ３に送ることで行う。状態管理部５６は、管理テーブル５５の管理（情報の読み出し、情報の書き込み（更新））を行う。
【０１３４】
ヘルスチェック受信部５７は、リングマスタとして動作している場合に、セカンダリポートから受信されるヘルスチェックフレームをチェックする。ヘルスチェック受信部５７は、ヘルスチェックフレームを一定時間受信出来ない場合には、リングに障害が発生していると判定する。
【０１３５】
制御フレーム受信部５８は、リングネットワーク内で障害が発生した際に、障害を検出したＢＢＵ３（トランジット）が送信する制御フレームを受信し、状態管理部５６に通知する。状態管理部５６は、制御フレームに含まれる情報を元に障害箇所を特定し、リング内のルート変更を行う。
【０１３６】
トランジット部５２は、トランジット制御部５９と、ヘルスチェック送信部６０と、制御フレーム送信部６１とを含む。トランジット制御部５９は、装置内ＳＷからＤＭＵＸ５３経由で入力される、リングマスタからの信号（指示）を用いて、ヘルスチェック送信部６０及び制御フレーム送信部６１の動作を制御する。
【０１３７】
ヘルスチェック送信部６０は、ＰＴＰスレーブとして動作している場合において、リングマスタからの指示に基づき、ＰＴＰのSyncメッセージの受信を契機に、ヘルスチェックフレームをリングマスタに送信する。ＰＴＰスレーブがリング内に２以上存在する場合には、リングマスタは、ヘルスチェックフレームを送信するスレーブを選択し、当該スレーブにヘルスチェックフレームの送信指示を与える。本実施形態では、若い番号を有するＢ
ＢＵ３（トランジット）が、ヘルスチェックフレームを送信するスレーブとして選択される。制御フレーム送信部６１は、回線インタフェース部（回線ＩＦ）３１Ａ（図２０）の障害検出時にリングマスタ宛てに制御フレームを送信する。
【０１３８】
ＤＭＵＸ５３は、主信号を分離する。ＤＭＵＸ５３で受信される主信号のうち、ヘルスチェックの信号は、リングマスタ部５１のヘルスチェック受信部５７に送られる。また、主信号中の制御フレームは、リングマスタ部５１の制御フレーム受信部５８に送られる。ヘルスチェックの信号及び制御フレーム以外の信号は、トランジット部５２のトランジット制御部５９に送られる。ＭＵＸ５４は、トランジット制御部５９から送信される信号，状態管理部５６から送信される信号，ヘルスチェック送信部６０から送信されるヘルスチェックフレーム，制御フレーム送信部６１から送信される制御フレームを多重して出力する。
【０１３９】
図２０は、ＢＢＵ３のハードウェア構成例を示す図である。図２０において、ＢＢＵ３は、１以上の回線ＩＦ３１Ａと、装置内ＳＷ３２と、プロセッサ３３Ａと、メモリ３３Ｂと、SYNC／ＣＬＫ処理回路３４Ａと、ＢＢ回路３５Ａと、ＣＰＲＩ  ＩＦ３６とを含んでいる。プロセッサ３３Ａは、「制御部」、「制御装置」、「コントローラ」の一例である。
【０１４０】
回線ＩＦ３１Ａは、図１８に示したＮＷ終端部３１として動作するインタフェース回路であり、ＬＡＮ、ＩＰ等の回線を収容・終端する。メモリ３３Ｂは、プロセッサによって実行されるプログラムや、プログラムの実行に際して使用されるデータを記憶する。メモリ３３Ｂは、主記憶装置と、補助記憶装置とを含む。
【０１４１】
主記憶装置は、例えばRandom Access Memory（ＲＡＭ）と、ＲＡＭ及びRead Only Memory（ＲＯＭ）の組み合わせである。ＲＡＭは、プロセッサの作業領域，プログラムの展開領域，データのバッファ領域として使用される。ＲＯＭは、プログラム（ファームウェアなどの組み込みプログラム）やデータを記憶する。補助記憶装置は、プログラムやデータの記憶領域として使用される。補助記憶装置は、ハードディスク（ＨＤＤ），Solid State Drive（ＳＳＤ），フラッシュメモリ，Electrically Erasable Programmable Read-Only Memory（ＥＥＰＲＯＭ）などを含む。
【０１４２】
プロセッサ３３Ａは、メモリ３３Ｂに記憶されたプログラムをロードして実行する。これによって、プロセッサ３３Ａは、監視制御部３７，リング／ＰＴＰ制御部３８，ＰＴＰ処理部３３として動作する。プロセッサ３３Ａは、例えば、Central Processing Unit（
ＣＰＵ），Digital Signal Processor（ＤＳＰ），ＣＰＵとＤＳＰとの組み合わせなどである。
【０１４３】
ＢＢ回路３５Ａは、ＢＢ部３５として動作する回路であり、SYNC／ＣＬＫ処理回路３４Ａは、SYNC／ＣＬＫ処理部３４として動作する回路である。ＢＢ部３５，ＣＰＲＩ  ＩＦ３６，SYNC／ＣＬＫ処理回路３４Ａは、例えば、ＤＳＰ，半導体デバイス，ＤＳＰと反動体デバイスとの組み合わせで形成される。半導体デバイスは、例えば、Field Programmable Gate Array（ＦＰＧＡ）のようなプログラマブルロジックデバイス（ＰＬＤ），集積
回路（ＩＣ，ＬＳＩ，Application Specific Integrated Circuit（ＡＳＩＣ）），電気
・電子回路などを含む。
【０１４４】
なお、監視制御部３７，リング／ＰＴＰ制御部３８，ＰＴＰ処理部３３としての処理は、例えば、上述した半導体デバイスによって行われるようにしても良い。また、SYNC／ＣＬＫ処理部３４の処理の少なくとも一部が、ソフトウェア処理によってなされる場合もあり得る。
【０１４５】
図２１は、リングマスタにおける処理例を示すフローチャートである。図２１の処理は、例えば、リングマスタとして動作するＢＢＵ３（例えば、図１０のＢＢＵ＃１）のプロセッサ３３Ａによって行われる。図２１のステップ（Step）１において、リングマスタ部５１は、管理テーブル５５の初期設定を行う（図１１参照）。
【０１４６】
ステップ２において、リングマスタ部５１は、配下のＢＢＵ３（例えば、図１０のＢＢＵ＃２〜＃Ｎ）に機能分担を指示する。すなわち、リングマスタ部５１の状態管理部５６は、管理テーブル５５に設定された「ＰＴＰプロトコル」の初期設定に基づき、他のＢＢＵ３に対し、機能分担（役割：「中継」又は「スレーブ」）を示す指示を、各ＢＢＵ３宛てに送る。指示に従い、各ＢＢＵ３は、「中継」と「スレーブ」との一方として動作する。
【０１４７】
ステップ３では、リングマスタ部５１の状態管理部５６は、動作モード“リング障害監視状態”に基づいて、スレーブ（ＢＢＵ＃Ｎ：図１０）からのヘルスチェックの信号の有無に基づくヘルスチェックの判定（ＯＫ又はＮＧ）の判定を行う（ステップ４）。判定結果がＯＫであれば、処理がステップ３に戻り、判定結果がＮＧであれば、処理がステップ５に進む。
【０１４８】
ステップ５では、リングマスタ部５１の状態管理部５６は、セカンダリポートのブロッキング状態をフォワーディング状態に変更する（図１４参照）。ステップ６では、リングマスタ部５１の状態管理部５６は、リングの障害を検出したＢＢＵ３からの制御フレームを受信し、リングの障害箇所を特定する。
【０１４９】
ステップ７では、ＰＴＰメッセージ（ＰＴＰパケット）のルート及びＰＴＰスレーブの切り替え処理が行われる。図２２は、ステップ７の詳細例を示すフローチャートである。ステップ７ａにおいて、状態管理部５６は、障害検出ＢＢＵ（制御フレームの送信元のＢＢＵ３）に対し、ＰＴＰモード（機能分担）を、「中継」から「スレーブ」に切り替える指示（メッセージ）を生成して送信する。これによって、例えば、図１０に示すＢＢＵ＃２及びＢＢＵ＃３のそれぞれは、「中継」から「スレーブ」に切り替わる。
【０１５０】
ステップ７ｂでは、状態管理部５６は、最終段のＢＢＵ＃Ｎ（スレーブとして動作していたＢＢＵ３）に対し、（機能分担）を、「スレーブ」から「中継」に切り替える指示（メッセージ）を生成して送信する。これによって、例えば、図１０に示すＢＢＵ＃Ｎは、「スレーブ」から「中継」に切り替わる。
【０１５１】
ステップ７ｃでは、状態管理部５６は、ＰＴＰマスタに対し、ＰＴＰメッセージの宛先を、ＢＢＵ＃Ｎから、ＢＢＵ＃２及びＢＢＵ＃３へ変更することを指示するメッセージを生成して送信する。以上のような、ステップ５〜ステップ７のルート切り替え処理によって、ＰＴＰのスレーブ及びＰＴＰメッセージの宛先が変更され、各ＢＢＵ３におけるＰＴＰに基づく時刻同期が継続される（図１３）。なお、ステップ７ａ，７ｂ，７ｃの順序は適宜変更可能である。
【０１５２】
ステップ７ａ，７ｂの処理は、「前記第２ノードにスレーブノードとして動作する指示を送るとともに、前記マスタノードからの時刻同期信号を前記第２ノードに転送する指示を前記第１ノードに送信する」処理の一例である。
【０１５３】
また、ステップ７ｃの処理は、「スレーブノード向けの時刻同期信号の宛先を、前記第１ノードから、前記障害箇所に基づき決定した前記複数のノード中の第２ノードに切り替える指示を前記マスタノードに送る」処理の一例である。
【０１５４】
図２１に戻って、ステップ８では、状態管理部５６は、管理テーブル５５のリング状態を復旧監視に更新して（図１４）、リングマスタの動作を復旧監視状態に遷移させる。
【０１５５】
ステップ９では、状態管理部５６は、リングのヘルスチェックを行う。すなわち、状態管理部５６は、新たにヘルスチェックフレームの送信元となったＢＢＵ３（図１０の例ではＢＢＵ＃２）からのヘルスチェックフレームの受信の有無を判定することを以て、リングが障害から復旧したか否かを判定する。
【０１５６】
ステップ９においてヘルスチェックがＮＧ、すなわち、ＢＢＵ＃２からのヘルスチェックフレームが受信されない間（ヘルスチェックＮＧ）は、ＢＢＵ＃２とＢＢＵ＃３との間のリング障害が解消していないことを意味する。これに対し、ヘルスチェックフレームが受信された場合（ヘルスチェックＯＫ）には、処理がステップ１０に進む。
【０１５７】
ステップ１０では、状態管理部５６は、セカンダリポートの状態を、フォワーディングからブロッキングに遷移させる（図１７）。ステップ１１では、ルート及びＰＴＰスレーブの切り戻し処理が行われる。
【０１５８】
図２３は、ＰＴＰルート及びＰＴＰスレーブの切り戻し処理の例を示すフローチャートである。図２３に示すように、状態管理部５６は、スレーブとして動作している各ＢＢＵ３（ＢＢＵ＃２，ＢＢＵ＃３）に対し、ＰＴＰモードの切り戻し（「スレーブ」→「中継」）の指示を送信する（ステップ１１ａ）。
【０１５９】
ステップ１１２では、状態管理部５６は、リング障害に際して中継にＰＴＰモードが切り替えられたＢＢＵ３（ＢＢＵ＃Ｎ）に対し、ＰＴＰモードの切り戻し（「中継」→「スレーブ」）の指示を送信する（ステップ１１ｂ）。ステップ１１３では、状態管理部５６は、ＰＴＰマスタに対し、ＰＴＰメッセージの宛先を、元のＢＢＵ＃Ｎに変更する指示を与える（ステップ１１ｃ）。なお、ステップ１１ａ，１１ｂ，１１ｃの順序は適宜変更可能である。
【０１６０】
ステップ１１ａ，１１ｂの処理は、「前記第１ノードにスレーブノードとして動作する指示を送るとともに、前記マスタノードからの時刻同期信号を前記第１ノードに転送する指示を前記第２ノードに送信する」処理の一例である。
【０１６１】
ステップ１１ｃの処理は、「前記ヘルスチェック信号が受信された場合に、スレーブノード向けの時刻同期信号の宛先を、前記第２ノードから前記第１ノードへ切り替える指示を前記マスタノードに送信する」処理の一例である。
【０１６２】
以上のようなステップ９〜１１のルート復帰処理で、ＰＴＰメッセージのルート及びＰＴＰスレーブが、リング障害前の状態に戻る。なお、リングマスタ（ＢＢＵ＃１）では、状態管理部５６によって、リング状態が、復旧監視状態から障害監視状態へ遷移する（図１６、図１７参照）。
【０１６３】
図２４は、リングのトランジットにおける処理例を示すフローチャートである。図２４に示す処理は、例えば、リングのトランジットとして動作するＢＢＵ３のトランジット部５２（プロセッサ３３Ａ）によって行われる。
【０１６４】
図２４のステップ２１では、トランジット部５２のトランジット制御部５９は、リングマスタから機能分担（ＰＴＰモードの指示）を受信し、指示に従ったＰＴＰモードで動作する。
【０１６５】
ステップ２２において、トランジット制御部５９は、主信号が受信された場合に、自身のＰＴＰモードを判定する。ＰＴＰモードが「スレーブ」であれば、スレーブとしての動作を行い、ＰＴＰモードが「中継」であれば、中継としての動作を行う。
【０１６６】
ステップ２３において、トランジット制御部５９が回線ＩＦ３１Ａの障害を検出した場合（２３のＹ）には、制御フレーム送信部６１が制御フレームをリングマスタ宛てに送信する（ステップ２４）。
【０１６７】
ステップ２５において、トランジット制御部５９がヘルスチェック（ＨＣ）フレームの送信指示を検出した場合（２５のＹ）には、ヘルスチェック送信部６０は、Syncメッセージの受信を契機にヘルスチェックフレームを送信する（ステップ２６）。
【０１６８】
図２５は、「中継」としての動作例を示すフローチャートである。図２５に示す処理は、例えば、「中継」として動作するＢＢＵ３のプロセッサ３３Ａによって行われる。一例として、「中継」として動作するＢＢＵ３は、図６におけるＢＢＵ＃Ｎ−１であると仮定する。
【０１６９】
ステップ５１にて、ＢＢＵ＃Ｎ−１のプロセッサ３３Ａは、ＰＴＰマスタからのSyncメッセージを受信する（図６のＡ４）。ステップ５２にて、プロセッサ３３Ａは、Syncメッセージの受信時刻を時刻“Ｔ２−４”としてメモリ３３Ｂに記憶する。ステップ５３にて、プロセッサ３３Ａは、SyncメッセージのCorrectionフィールドの値を抜き出し、滞留時間“ｔａ−４”として記憶する。また、自装置内の滞留時間をCorrectionフィールドに加算し、次段のノードへ転送する。
【０１７０】
ステップ５４にて、ＢＢＵ＃Ｎ−１のプロセッサ３３Ａは、ＰＴＰマスタからのSync follow upメッセージを受信する（図６のＢ４）。ステップ５５にて、プロセッサ３３Ａは、Sync follow upメッセージから、時刻（タイムスタンプ）“Ｔ１”を抜き出してメモリ３３Ｂに記憶する。  
【０１７１】
ステップ５７にて、ＢＢＵ＃Ｎ−１のプロセッサ３３Ａは、ＰＴＰスレーブ（ＢＢＵ＃Ｎ）からのDelay Requestメッセージを受信する（図６のＣ４）。ステップ５８にて、プ
ロセッサ３３Ａは、Delay RequestメッセージのCorrectionフィールドに自装置内の滞留
時間を加算し、マスタ側へ転送する。また加算したCorrectionフィールドの値をｔｃ-4として記憶する。ステップ５９にて、プロセッサ３３Ａは、Delay RequestメッセージをＰ
ＴＰマスタ側へ送信した時刻を時刻 “Ｔ３−４”として記憶する。
【０１７２】
ステップ６０において、ＢＢＵ＃Ｎ−１のプロセッサ３３Ａは、ＰＴＰマスタからのDelay Responseメッセージを受信する（図６のＤ４）。ステップ６１において、プロセッサ３３Ａは、Delay Responseメッセージ中の時刻（タイプスタンプ）Ｔ４をメモリ３３Ｂに記憶する。ステップ６２において、プロセッサ３３Ａは、Delay ResponseメッセージのCorrectionフィールドの値から滞留時間“ｔｃ−４”を減じた結果を、滞留時間“ｔｄ−４”としてメモリ３３Ｂに記憶する。
【０１７３】
ステップ６３において、プロセッサ３３Ａは、時刻Ｔ１，時刻Ｔ２−４，時刻Ｔ３−４，及び時刻Ｔ４と、滞留時間ｔａ−４，及び滞留時間ｔｄ−４とから、ＰＴＰ時刻情報（オフセット）を取得する。なお、ＳＹＮＣ／ＣＬＫ処理回路３４Ａが、ＰＴＰ時刻情報に基づき、ＢＢＵ＃Ｎ−１のクロック及びタイミングをＰＴＰマスタに同期させる。
【０１７４】
図２６は、「スレーブ」としての動作例を示すフローチャートである。図２６に示す処
理は、例えば、「スレーブ」として動作するＢＢＵ３のプロセッサ３３Ａによって行われる。一例として、「スレーブ」として動作するＢＢＵ３は、図６におけるＢＢＵ＃Ｎであると仮定する。
【０１７５】
ステップ７１にて、ＢＢＵ＃Ｎのプロセッサ３３Ａは、ＰＴＰマスタからのSyncメッセージを受信する（図６のＡ）。ステップ７２にて、プロセッサ３３Ａは、Syncメッセージの受信時刻を時刻“Ｔ２”としてメモリ３３Ｂに記憶する。ステップ７３にて、プロセッサ３３Ａは、SyncメッセージのCorrectionフィールドの値を抜き出し、滞留時間“ｔａ”として記憶する。
【０１７６】
ステップ７４にて、ＢＢＵ＃Ｎのプロセッサ３３Ａは、ＰＴＰマスタからのSync follow upメッセージを受信する（図６のＢ）。ステップ７５にて、プロセッサ３３Ａは、Sync
follow upメッセージから、時刻（タイムスタンプ）“Ｔ１”を抜き出してメモリ３３Ｂに記憶する。  
【０１７７】
ステップ７７にて、ＢＢＵ＃Ｎ−１のプロセッサ３３Ａは、ＰＴＰスレーブ（ＢＢＵ＃Ｎ）からのDelay Requestメッセージを受信する（図６のＣ）。ステップ７８にて、プロ
セッサ３３Ａは、Delay RequestメッセージをＰＴＰマスタ側へ送信した時刻を時刻 “Ｔ３”として記憶する。
【０１７８】
ステップ７９において、ＢＢＵ＃Ｎのプロセッサ３３Ａは、ＰＴＰマスタからのDelay Responseメッセージを受信する（図６のＤ４）。ステップ８０において、プロセッサ３３Ａは、Delay Responseメッセージ中の時刻（タイプスタンプ）Ｔ４をメモリ３３Ｂに記憶する。ステップ８１において、プロセッサ３３Ａは、Delay ResponseメッセージのCorrectionフィールドの値を、滞留時間“ｔｄ”としてメモリ３３Ｂに記憶する。
【０１７９】
ステップ８２において、プロセッサ３３Ａは、時刻Ｔ１，時刻Ｔ２，時刻Ｔ３，及び時刻Ｔ４と、滞留時間ｔａ，及び滞留時間ｔｄとから、ＰＴＰ時刻情報（オフセット）を取得する。なお、SYNC／ＣＴＬ処理回路３４Ａが、ＰＴＰ時刻情報に基づき、ＢＢＵ＃Ｎのクロック及びタイミングをＰＴＰマスタに同期させる。
【０１８０】
＜効果＞
実施形態１によれば、ＰＴＰマスタとスレーブとの間で送受信されるＰＴＰメッセージを中継するノード（ＢＢＵ３）が、ＰＴＰメッセージを傍受してＰＴＰとの時刻同期を行う。このため、各ノードとＰＴＰマスタとの間のＰＴＰメッセージの送受信が不要となる。これによって、複数のＢＢＵ３がＰＴＰ同期をとるのに要する時間を短縮することができる。また、各ＢＢＵ３に対するＰＴＰメッセージの送受信が行われないので、ネットワークへ送信されるＰＴＰパケットの量を減らし、ネットワークに対する負荷を低減することができる。
【０１８１】
また、実施形態１によれば、ＰＴＰマスタに対して「中継」或いは「スレーブ」となる各ＢＢＵ３がリングを形成する。リングマスタとなるＢＢＵ３（ＢＢＵ＃１）は、リング障害の検出時に、ＰＴＰメッセージのルート（経路）及びＰＴＰスレーブの切り替え処理を行う。これによって、リング障害時においても、各ＢＢＵ３がＰＴＰ同期をとることが可能となる。
【０１８２】
＜変形例＞
なお、上記した実施形態の動作例では、リングマスタのＢＢＵ３が、トランジットのＢＢＵ３に対し、動作するＰＴＰモード（「中継」又は「スレーブ」）を指示している。これに対し、各ＢＢＵ３は、図２７に示す変形例のような処理を行っても良い。
【０１８３】
ステップ２１ａにおいて、ＰＴＰパケットが受信されると、ＢＢＵ３は、ＰＴＰパケットの宛先が自分か否かを判定する（ステップ２２ａ）。そして、ＰＴＰパケットの宛先が自分であれば（２２ａのＹＥＳ）、ＢＢＵ３は、「スレーブ」としての動作（図２６）を行う。これに対し、ＰＴＰパケットの宛先が自分でなければ（２２ａのＮＯ）、ＢＢＵ３は、中継としての動作（図２５）を行う。
【０１８４】
この場合、図２８に示すように、ステップ２は省略可能となる。また、ステップ７及びステップ１１においても、各ＢＢＵ３に対するＰＴＰモードの切り替え指示（ステップ７ａ，７ｂ）及びと切り戻しの指示（ステップ１１ａ，１１ｂ）は不要となる。
【０１８５】
＜実施形態２＞
図２９は、実施形態２の構成例を示す図である。実施形態２は、実施形態１と共通する構成を有するので、主として相違点について説明し、共通点については説明を省略する。
【０１８６】
実施形態２に係るネットワークシステムでは、ＰＴＰマスタ１と、複数のＢＢＵ３とが、スイッチングハブ（ハブ）２を介してスター型に接続されている。例えば、図３に示したような、ＰＴＰマスタと各ＢＢＵ３との接続関係を有する。但し、図２９には、複数のＢＢＵ３のうちの１つのみが図示されている。図２９の各ブロック内の丸括弧数字は、各ブロックに付与した符号を示す。
【０１８７】
実施形態２では、１つのＢＢＵ３に対し、複数の（Ｎ個の）ＲＲＨ４がカスケード接続されている。図２９に示す例では、複数のＲＲＨ４として、ＲＲＨ＃１，＃２，・・・＃Ｎ−１，＃Ｎが直列に接続されている。
【０１８８】
ＢＢＵ３は、実施形態１に係るＢＢＵ３と同様に、ＮＷ終端部３１と、装置内ＳＷ３２と、ＰＴＰ処理部３３と、SYNC／ＣＬＫ処理部３４と、ＢＢ部３５と、ＣＰＲＩ  ＩＦ３６とを含んでいる。これらの構成は実施形態１とほぼ同様である。
【０１８９】
ＰＴＰ処理部３３は、ＰＴＰマスタとしての動作と、ＰＴＰスレーブとしての動作とを行う。図２９では、ＰＴＰ処理部３３を示すブロック中に、ＰＴＰスレーブを示すシンボル「Ｓ」とＰＴＰマスタを示すシンボル「Ｍ」とを図示している。ＰＴＰ処理部３３は、ＰＴＰスレーブとして、装置内ＳＷ３２及びＮＷ終端部３１を介して、ＰＴＰマスタ１とＰＴＰパケットを送受信する。これによって、ＰＴＰマスタ１との時刻同期を行う。また、ＰＴＰ処理部３４は、ＰＴＰマスタとして、ＣＰＲＩ  ＩＦ（ＣＰＲＩ終端部）３６を経由して、ＲＲＨ４とＰＴＰパケット情報（ＰＴＰメッセージ）を送受信する。
【０１９０】
ＢＢＵ３が、「マスタノード」の一例であり、ＲＲＨ＃Ｎが「スレーブノード」の一例である。ＲＲＨ＃１〜＃Ｎ−１のそれぞれは「通信装置」の一例である。
【０１９１】
ＣＰＲＩ終端部３６では、ＰＴＰメッセージを、ＲＲＨ４に接続されたＣＰＲＩリンクにマッピングする。ＰＴＰメッセージは、ＣＰＲＩを介してＲＲＨ４との間で送受信される。SYNC／ＣＬＫ処理部３４は、ＰＴＰスレーブとして動作するＰＴＰ処理部３３で取得された時刻情報（オフセット）を元に、ＢＢＵ３内の基準クロック及び基準タイミング（ＰＴＰマスタ１と同期する）を生成する。
【０１９２】
実施形態２における各ＢＢＵ３は、上記したように、ＰＴＰマスタに対するＰＴＰスレーブとして動作し、ＰＴＰマスタ１に同期する基準クロック及び基準タイミングを生成する。さらに、ＰＴＰ処理部３３は、カスケード接続された各ＲＲＨ４に対するＰＴＰマスタとして動作し、複数のＲＲＨ４のうちの最終段にあるＲＲＨ４（ＲＲＨ＃Ｎ）をスレー
ブとしたＰＴＰメッセージの送受信を行う。ＢＢＵ３とＲＲＨ＃Ｎとの間にある各ＲＲＨ４は、実施形態１で説明した「中継」ノードとして動作し、ＲＲＨ＃ＮとＢＢＵ３との間で送受信されるＰＴＰパケットを傍受して、同期処理を行う。
【０１９３】
各ＲＲＨ４は、同じ構成を有しているので、ＲＲＨ＃１を例に説明する。ＲＲＨ４（ＲＲＨ＃１）は、ＣＰＲＩ終端部４１と、ＰＴＰ  ＴＣ部４２と、ＰＴＰスレーブ部４３と、遅延補正部４４と、ＲＦ（Radio Frequency）部４５と、ＣＰＲＩ終端部４６と、ＰＴ
Ｐ中継部４７とを含む。
【０１９４】
ＣＰＲＩ終端部４１は、ＢＢＵ３とのＣＰＲＩを介して受信されるＰＴＰメッセージを抽出し、ＰＴＰ  ＴＣ部４３に送る。ＰＴＰ  ＴＣ部４３は、ＲＲＨ４を、トランスペアレントモード（ＴＣ）で動作させる。すなわち、ＰＴＰ  ＴＣ部４３は、ＲＲＨ４でのＰＴＰメッセージの滞留時間を算出する。
【０１９５】
ＰＴＰスレーブ部４３は、ＰＴＰスレーブとしてＰＴＰマスタ（ＢＢＵ３）とのＰＴＰメッセージの送受信（図１の手順）を行い、ＰＴＰ時刻情報を取得する。遅延補正部４４は、ＣＰＲＩ伝送路の遅延補正用のＦＩＦＯ（First-in First-out）、すなわち揺らぎ吸収バッファとして使用される。遅延補正部４４は、ＰＴＰ時刻情報（オフセット）を用いて、ＣＰＲＩ伝送路のクロックと、ＲＲＨ４内の基準クロック及び基準タイミングとの揺らぎ吸収を行う。ＲＦ部４５は、無線端末（図示せず）との無線信号の送受信を行う。
【０１９６】
ＣＰＲＩ終端部４６は、後段のＲＲＨ４とのＣＰＲＩインタフェース（ＲＥインタフェース）を司る。ＲＲＨ４は、さらに、ＰＴＰ中継部４７を含む。ＰＴＰ中継部４７は、実施形態１で説明したＰＴＰの「中継」ノードとしての動作を司る。ＰＴＰ中継部４７は、「制御部」の一例である。
【０１９７】
なお、ＲＲＨ４には、例えば、ＣＰＲＩ終端部４１，ＣＰＲＩ終端部４６，遅延補正部４４，ＲＦ部４５として動作する回路（ハードウェア）が実装される。回路は、上述した半導体デバイスや、半導体デバイスと電気・電子回路との組み合わせで形成される。また、ＲＲＨ４には、例えば、プロセッサ（ＣＰＵ，ＤＳＰなど）とメモリ（主記憶装置、補助記憶装置）との組み合わせが実装され、プロセッサがプログラムを実行することによって、ＰＴＰ  ＴＣ部４２，ＰＴＰスレーブ部４３，及びＰＴＰ中継部４７として動作する。但し、ＰＴＰ  ＴＣ部４２，ＰＴＰスレーブ部４３，及びＰＴＰ中継部４７の少なくとも１以上が、ハードウェアによって実装されても良い。
【０１９８】
図２９に示すように、複数のＲＲＨ４のうちの最終段のＲＲＨ４（ＲＲＨ＃Ｎ）は、ＰＴＰマスタ（ＢＢＵ３）に対するスレーブとして動作する。このため、ＲＲＨ＃Ｎでは、ＰＴＰ  ＴＣ部４２及びＰＴＰスレーブ部４３で、ＰＴＰスレーブとしての動作が行われ、ＰＴＰに基づく時刻同期が行われる。図２９では、ＰＴＰスレーブ部４３のブロック中に、ＢＢＵ＃１のＰＴＰマスタ「Ｍ」に対するＰＴＰスレーブを示すシンボル「Ｓ」を図示している。これに対し、ＢＢＵ３とＲＲＨ＃Ｎとの間の各ＲＲＨ４（ＲＲＨ＃１，＃２，＃Ｎ−１）では、ＰＴＰ  ＴＣ部４２及びＰＴＰ中継部４７がＰＴＰ中継ノードとしての動作を行い、ＰＴＰマスタとの時刻同期を図る。
【０１９９】
図３０は、実施形態２の動作例を示すシーケンス図である。図３０に示すように、ＢＢＵ３がＰＴＰマスタとして動作し、ＲＲＨ＃Ｎがスレーブとして動作する。中間にあるＲＲＨ＃１，ＲＲＨ＃２，ＲＲＨ＃Ｎ−１は、トランスペアレントとして動作する一方で、ＰＴＰマスタとスレーブとの間で送受信されるＰＴＰ時刻情報を傍受して、時刻同期を行う。ＲＲＨ＃１，ＲＲＨ＃２，ＲＲＨ＃Ｎ−１のそれぞれは、図２５に示したような処理を行う。一方、ＲＲＨ＃Ｎにおける処理は、図２６に示す処理と同様の処理を行う。この
ようにして、各ＲＲＨ４がＢＢＵ３とＰＴＰによる時刻同期を行うので、各ＲＲＨ４における無線信号の出力タイミングを揃えることができる。
【０２００】
実施形態２によれば、以下の利点がある。複数のＲＲＨ４がＢＢＵ３にカスケード接続されている場合において、ＢＢＵ３をＰＴＰマスタとするトランスペアレントモードでＰＴＰメッセージの送受信がなされることを想定する。この場合、ＢＢＵ３と各ＲＲＨ４との間で、順次、図１に示すＰＴＰメッセージ送受信がなされる。このため、全てのＲＲＨ４に対するＰＴＰの時刻同期が終了するまでに時間を要する問題があった。
【０２０１】
これに対し、実施形態２では、ＢＢＵ３（ＰＴＰマスタ）と最終段のＲＲＨ４（スレーブ）とのＰＴＰメッセージの送受信の間において、各ＲＲＨ４でも、ＰＴＰメッセージを用いた時刻同期が行われる。これによって、複数のＲＲＨ４間で時刻同期をとるのに要する時間を短縮することができる。
【０２０２】
なお、上記した実施形態１、２では、ＢＢＵ３やＲＲＨ４が「中継ノード」である例について説明したが、「中継ノード」には、ＢＢＵ３やＲＲＨ４のような基地局装置以外の装置やノードが含まれる。以上説明した実施形態の構成は、適宜組み合わせることができる。
【符号の説明】
【０２０３】
１・・・ＰＴＰマスタ
３・・・ＢＢＵ
４・・・ＲＲＨ
３３Ａ・・・プロセッサ
３３Ｂ・・・メモリ
３８・・・ＰＴＰ／リング制御部
４７・・・ＰＴＰ中継部
【図１】
2017098694.tif 000003
【図２】
2017098694.tif 000004
【図３】
2017098694.tif 000005
【図４】
2017098694.tif 000006
【図５】
2017098694.tif 000007
【図６】
2017098694.tif 000008
【図７】
2017098694.tif 000009
【図８】
2017098694.tif 000010
【図９】
2017098694.tif 000011
【図１０】
2017098694.tif 000012
【図１１】
2017098694.tif 000013
【図１２】
2017098694.tif 000014
【図１３】
2017098694.tif 000015
【図１４】
2017098694.tif 000016
【図１５】
2017098694.tif 000017
【図１６】
2017098694.tif 000018
【図１７】
2017098694.tif 000019
【図１８】
2017098694.tif 000020
【図１９】
2017098694.tif 000021
【図２０】
2017098694.tif 000022
【図２１】
2017098694.tif 000023
【図２２】
2017098694.tif 000024
【図２３】
2017098694.tif 000025
【図２４】
2017098694.tif 000026
【図２５】
2017098694.tif 000027
【図２６】
2017098694.tif 000028
【図２７】
2017098694.tif 000029
【図２８】
2017098694.tif 000030
【図２９】
2017098694.tif 000031
【図３０】
2017098694.tif 000032